2010-10-22 52 views
2

所以我是從/testscript1.php/testvar1/testvar2進行重寫 /testscript2.php/testvar3/testvar4 (.htaccess文件訪問重寫的URI,這是過於簡化,但你明白了)。在PHP腳本

現在儘管在我的testscript2.php腳本中,當我訪問$ _SERVER ['REQUEST_URI']變量時,我看到/testscript1.php/testvar1/testvar2而不是/testscript2.php/testvar3/testvar4,這就是我正在尋找的對於。即$ _SERVER ['REQUEST_URI']包含重寫前的uri。

我的問題很簡單,有沒有辦法訪問重寫的uri?

回答

2

嘗試使用phpinfo()來查看$_SERVER在重寫的頁面上的樣子。 Apache提供了很多可能有用的信息。

在我的測試服務器,我得到它可以幫助你的情況如下:

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

我希望至少有一個或那些的組合應該能夠可靠地給你你要找的信息對於。

乾杯。

+0

我看了一下phpinfo,結果發現PATH_INFO有我需要的信息。非常感謝。 – Andrew 2010-10-22 11:37:51

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中的各種值即可。