【发布时间】:2012-08-27 17:28:50
【问题描述】:
我正在尝试在 PHP 中创建 URL,并在 if 语句 中使用路径 ($path)。
在工作中,我们使用 ASP Classic 并有一些文件允许我们执行以下操作:
<%
if path = "checkout" then
<!--#include file="ViewCheckout.asp"-->
elseif path = "billing" then
<!--#include file="ViewBilling.asp"-->
end if
%>
我们几乎可以在我们网站的任何地方使用'if path = "checkout"'。奇怪的是,'http://myworksite.com/checkout/' 是 checkout 页面的 URL,但我们的服务器上没有名为“checkout"... 以上只是我们的 'start.asp' 中出现的 'if path = "blah"' 列表中的几个(该文件包含页面的基本模板)。
我见过像 ParseURL.asp 和其他文件(在工作中)以某种方式创建这些 URL 并允许我们在全球范围内使用它们。我正在尝试了解这是如何在 PHP 中完成的(在工作中,我们运行 Windows Server,我有一个 Linux 机器)。
我要做的是为各自的页面创建以下 URL:
- http://mysite.com/browse/ - 浏览.php
- http://mysite.com/contact/-contact.php
- http://mysite.com/top100/ - top100.php
我想再次创建这些 URL,不为路径创建目录。
我已经阅读了 *http_build_url* 和 *parse_url*,但我很难确定以上述方式创建 URL 的方式。
我发现的 http_build_url 教程显示了这一点:
<?php
echo http_build_url("http://user@www.example.com/pub/index.php?a=b#files",
array(
"scheme" => "ftp",
"host" => "ftp.example.com",
"path" => "files/current/",
"query" => "a=c"
),
HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY | HTTP_URL_STRIP_FRAGMENT
);
?>
问题是,我不知道这只是将 ftp://ftp.example.com/pub/files/current/?a=b&a=c 输出为文本还是这是一种创建有效 URL 的方法...(这显然是一个 FTP 地址...) - PHP.net
注意: 在工作中,我们还可以使用 if path = "contact" 来包含某些 sn-ps,如下所示:
<%
if path = "contact" or path = "chat" or path = "checkout" then
<div id="communication-nav">
<ul>
<li>Some link 1</li>
<li>Some link 2</li>
<li>Some link 3</li>
</ul>
</div>
end if
%>
如果有人能给我一些关于如何使用 PHP 重新创建它的指示,我将非常感激!
我是否在研究正确的功能?我需要使用某种 URL Re-write 功能吗?
【问题讨论】:
-
你能在你的服务器上使用 Apache mod_rewrite 吗?
-
htaccess 和 URL Rewrite 完成工作
-
@dpk2442 我会看看我能不能。我还没有阅读 mod_rewrite。这与 Gabriel 所指的 URL 重写不同吗?
标签: php apache url-rewriting