2009-01-11 48 views
2

如果我通過在url中輸入/?id=some_text來實現,那麼index.php腳本可以像shuld一樣工作,但如果我這樣做/some_text然後index.php總是收到id值爲「index」。

起初,我有RewriteRule ^([^/]+) ?id=$1,但返回「內部服務器錯誤」,而不是網頁,然後我將它改爲RewriteRule ^([az] +)index.php?id = $ 1,我停止reciving錯誤頁面,但腳本啓動無論我輸入什麼值都可以接收「索引」作爲值

此規則在使用MAMP的本地計算機上工作,但是當我將其上載到服務器時,它停止工作。此文件夾

.htaccess文件僅包含該規則

RewriteEngine on 
RewriteRule ^([^/]+) ?id=$1 

回答

1

我認爲這很可能是想通過index.php文件,因爲它似乎符合規則遞歸。

嘗試:

RewriteEngine On 
RewriteCond %{REQUEST_URI} !index 
RewriteRule ^([^/]+) index.php?id=$1 [L] 

的的RewriteCond是爲了確保它不會將規則應用於自身所具有的結果。而[L]則是確保它不會嘗試應用任何其他規則。

相關問題