2011-07-14 41 views
0

這是我遇到的最奇怪的問題。我在Apache/2.2.13(Linux/SUSE)的.htaccess中使用mod_rewrite,並且在URL中沒有結尾斜槓時似乎不會調用它。我通過將垃圾放入.htaccess文件進行測試,並且在添加尾部斜槓時僅收到500個錯誤,但省略時爲404。我真的不知道爲什麼。。當尾部斜線丟失時,不執行.htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

/name fails with 404 
/name/ is successful 
+0

請提供你的規則/ .htaccess;有問題的網址的例子。最有可能的是你的規則..或其他一些Apache設置。 – LazyOne

+0

是否有名爲/ name /的文件或目錄?此外,它似乎你想匹配任何URI - 如果是這樣,'''模式應該足夠。 –

+0

沒有目錄「/ name」。真正的問題是,當尾部/缺失時甚至不會執行整個重寫。 – user843739

回答

0

問題是/name是阿帕奇通常管理映射到目錄/name/,但有時此機制失敗的文件名。我遇到了一個類似的問題,並根據Apache文檔中的URL Rewriting GuideTrash Slash Problem部分解決了這個問題。

我會認爲你的情況,你可以嘗試添加以下行(我建議RewriteEngine On之後)到您的Apache配置文件,如果你有機會獲得它:

RewriteBase /
RewriteRule ^name$ name/ [R]