【发布时间】:2013-08-20 08:55:12
【问题描述】:
有没有办法在 IIS 上用 PHP 获取当前完全重写的 URL。
例如,我有一个类似的 URL:
http://www.domain.com/searchresults.php?section=99&page=1&model=section-name
重写为: http://www.domain.com/section99/page1/section-name
我已经能够使用以下方法拼凑原始 URL:
function selfURL(){
if(!isset($_SERVER['REQUEST_URI'])){
$serverrequri = $_SERVER['PHP_SELF'];
}else{
$serverrequri = $_SERVER['REQUEST_URI'];
}
$s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
$protocol = "http";
$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
return $protocol."://".$_SERVER['SERVER_NAME'].$port.$serverrequri.$_SERVER['QUERY_STRING'];
}
print(selfURL());
我是否可以轻松选择重写后的 URL,以避免根据当前页面类型从多种不同格式和变量中计算出友好 URL 的开销?
【问题讨论】:
-
您是否在为 IIS 使用 ISAPI_Rewrite?
-
你到底想做什么?获取非重写 URL 的重写 URL?为什么?为什么不一直使用重写后的 URL?
-
没有。我们在 IIS7 上并使用内置的重写模块
-
这就是我想要做的。使用重写的 URL。我试图抓住这个。我的问题是我只能获取原始 URL 而不是重写的 URL
-
我建议您在
.htaccess文件中使用 Apache 的mod_rewrite规则,然后将它们导入 IIS 7。这将生成web.config文件。