,我有以下我.htaccess
文件措辭:簡單重寫規則不工作,因爲它應該
Options -Indexes
RewriteEngine on
RewriteBase /properties/
RewriteRule ^view/([0-9]+)$ view.php?id=$1 [QSA]
我想寫一個「漂亮」的網址像http://example.com/properties/view/1到http://example.com/properties/view.php?id=1。
RewriteRule
正在將請求傳遞給我的view.php
腳本,但它似乎沒有執行查詢字符串位。例如,如果我這樣做print_r($_SERVER)
我看到以下內容:
Array
(
...
[DOCUMENT_ROOT] => /Users/Martin/Sites/[removed]/
...
[SCRIPT_FILENAME] => /Users/Martin/Sites/[removed]/properties/view.php
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /properties/view/1
[SCRIPT_NAME] => /properties/view.php
[PATH_INFO] => /1
[PATH_TRANSLATED] => /Users/Martin/Sites/[removed]/1
[PHP_SELF] => /properties/view.php/1
...
)
爲什麼QUERY_STRING
空?爲什麼我不能通過$_GET['id']
訪問「1」?
注意:顯然我已將[removed]
標記放置在文件路徑中。
的[重寫規則的QS(http://wiki.apache.org/httpd/RewriteQueryString)似乎是正確的。你不應該,但是可以嘗試`[NC,L,QSA]`然而。可能會顯示一個`REDIRECT_QUERY_STRING` env變量嗎?否則,你可能必須設置`RewriteLog`才能找到。 – mario 2011-12-14 18:16:21
您確定沒有其他規則先運行? – 2011-12-14 18:17:53
我已經用我的`.htaccess`文件的全部內容更新了OP。 – 2011-12-14 18:24:25