1
該行肯定會引起一個小的碰撞,因爲它會嘗試重寫目標本身:htaccess的:重寫碰撞 - 簡單的問題
RewriteRule ^/(.*)$ page.php?q=$1 [L,NC]
現在,我該如何避免這種情況?
該行肯定會引起一個小的碰撞,因爲它會嘗試重寫目標本身:htaccess的:重寫碰撞 - 簡單的問題
RewriteRule ^/(.*)$ page.php?q=$1 [L,NC]
現在,我該如何避免這種情況?
只需添加一個條件匹配的字符串是不一樣的目標:
RewriteCond $1 !=page.php
RewriteRule ^/(.*)$ page.php?q=$1 [L]
在這裏,在RewriteCond
的!=
表示否定的字典比較,而不是隱含的正則表達式比較。
使用條件改寫:
RewriteCond %{REQUEST_URI} !^page.php?
RewriteRule ^/(.*)$ page.php?q=$1 [L,NC]
嗯,它似乎沒有工作 - 我得到了一個404。條件放置在什麼地方?我的意思是,它應該放在規則之上的行上,還是放在文件中的所有規則之前,或者......? 我也嘗試過Lekensteyn的解決方案,但沒有成功。 – Ivar 2010-09-01 18:19:37
@Ivarska:一個'RewriteCond'只屬於下面的第一個'RewriteRule'。 – Gumbo 2010-09-01 18:21:28
每天學習新東西。 :-)我就是先放置它的地方。那麼可能是什麼問題? – Ivar 2010-09-01 18:24:35