2011-07-08 68 views
0

這裏是我的.htaccess這個Apache重寫規則有什麼問題?

RewriteEngine On 
RewriteRule ^([^/]+)$ /index.php?id=$1 [L] 

,並要求不斷造成500

+2

什麼是你的'error_log'說? –

+0

它在錯誤日誌中說了什麼? –

+0

'由於可能的配置錯誤,請求超過了10個內部重定向的限制。' – cYrus

回答

2

您正在進入重寫循環。改變這樣的:

RewriteEngine On 

RewriteCond %{REQUEST_URI} !^/index\.php [NC] 
RewriteRule ^([^/]+)$ /index.php?id=$1 [QSA,L] 

或類似這樣的(應該有同樣的效果後面):

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)$ /index.php?id=$1 [QSA,L] 
+0

恩,謝謝,似乎工作。你能提供一點解釋嗎? – cYrus

+0

當然。例如,在Apache重寫之後,'/ help'到'/index.php?id=help'就會進入下一次重寫迭代。在下一次迭代時,它會嘗試將'/ index.php'重寫爲'/index.php?id=index.php',並將再次進行下一次迭代。要停止它,你必須添加一些條件,以防止規則被使用。 – LazyOne

+0

哦,那麼'[L]'呢?它不會停止重寫過程嗎? – cYrus