在php脚本中访问重写的URI

时间:2010-10-22 10:30:00

标签: php mod-rewrite apache2

所以我有一个.htaccess文件正在从/testscript1.php/testvar1/testvar2执行重写 /testscript2.php/testvar3/testvar4 (这是一种过度简化,但你明白了。)

现在虽然在我的testscript2.php脚本中,当我访问$ _SERVER ['REQUEST_URI']变量时,我看到/testscript1.php/testvar1/testvar2而不是/testscript2.php/testvar3/testvar4这就是我要找的。即$ _SERVER ['REQUEST_URI']在重写之前包含uri。

我的问题很简单,有没有办法访问重写的uri?

2 个答案:

答案 0 :(得分:2)

尝试使用phpinfo()查看重写页面上$_SERVER的内容。 Apache提供了大量可能有用的信息。

在我的测试服务器上,我得到以下可能对您有所帮助:

$_SERVER["REDIRECT_QUERY_STRING"]
$_SERVER["REDIRECT_URL"]
$_SERVER["QUERY_STRING"]
$_SERVER["REQUEST_URI"]
$_SERVER["SCRIPT_NAME"]
$_SERVER["PHP_SELF"]

我希望至少有一个或这些组合能够可靠地为您提供您正在寻找的信息。

干杯。

答案 1 :(得分:1)

如果您使用路径信息传递其他路径,则可以从 PHP_SELF 中删除该后缀:

substr(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH), -strlen($_SERVER['PATH_INFO']))

或者只需使用 SCRIPT_NAME ,因为 PHP_SELF = SCRIPT_NAME + PATH_INFO 。只需查看$_SEVER中的各种值。