例如,如果我将/category/topic/post/
重写为/index.php?cat=1&topic=2&post=3
,我如何才能使用PHP获取/index.php?cat=1&topic=2&post=3
?
答案 0 :(得分:13)
您可以轻松地重新创建它。 $_SERVER['PHP_SELF']
仍然会为您提供脚本的正确文件名。这应该可以解决问题:
$url = $_SERVER['PHP_SELF'];
$parts = array();
foreach( $_GET as $k=>$v ) {
$parts[] = "$k=" . urlencode($v);
}
$url .= "?" . implode("&", $parts);
$url
现在将成为您正在寻找的网址。
答案 1 :(得分:9)
原始uri应该在$_SERVER['REQUEST_URI']
答案 2 :(得分:0)
以下是在Apache中用mod_rewrite重写后如何获取PHP接收的URL:
$url = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
您可以将该URL与浏览器中的实际URL进行比较,以调试.htaccess中的所有重写规则。