2012-06-03 63 views
0

我有以下的.htaccess不起作用:的.htaccess和單詞「發現」

RewriteEngine on 
RewriteBase/
RewriteRule ^find /findgames.php [L] 
RewriteRule ^find/ /findgames.php [L] 

如果我去掉字母「d」「發現」一切都很正常:

RewriteEngine on 
RewriteBase/
RewriteRule ^fin /findgames.php [L] 
RewriteRule ^fin/ /findgames.php [L] 

我錯過了什麼?是找到一個關鍵字?第二個我連續查找字母,我在我的網站上發現了一個'內部服務器錯誤'。

回答

1

這是絕對正確和預期的行爲('內部服務器錯誤'消息)在你的情況。儘管即使沒有寫信d,也應該看到相同的錯誤。

原因 - 錯誤的匹配模式 - 它是廣泛的方式。 ^find是什麼意思?這意味着 - 以find開頭的匹配URL(引導斜線由Apache剝離)。這將匹配/find,/find/, /findme等 - 以及您的目標 - /findgames.php

最有可能的(在這個特殊情況下)你有無限重寫循環哪個Apache在某些時候需要中斷,因此出現錯誤。你可以檢查Apache的錯誤日誌確切的錯誤信息 - 它會解釋得很好。

在任何情況下 - 這應該爲你工作 - 它會重定向/find以及/find/請求(精確匹配),以/findgames.php

RewriteEngine on 
RewriteBase/
RewriteRule ^find/?$ /findgames.php [L] 
+0

謝謝,這有助於噸!欣賞完整的解釋。 – user1150873

相關問題