2014-02-17 36 views
1

鑑於以下文件夾中「德」:如何在文件夾名稱等於現有文件名時執行RewriteRule?

. 
.. 
index.php 
faq.php 

如果我試圖從火我的.htaccess重寫規則一(父目錄)是這樣的:

Options +FollowSymlinks 
RewriteEngine on 

RewriteBase/
RewriteRule ^de/test/ de/faq.php [NC,L] 

...它的工作原理完全好,但如果我嘗試這樣:

Options +FollowSymlinks 
RewriteEngine on 

RewriteBase/
RewriteRule ^de/faq/ de/faq.php [NC,L] 

然後Apache返回一個「404未找到」而不是觸發RewriteRule。

爲什麼會發生這種情況?

回答

1
Options +FollowSymLinks -MultiViews 

如果多視圖被激活,它會嘗試搜索類似的文件和文件夾,因此爲什麼規則不起作用,當你禁用它,它停止這樣做,這就是爲什麼它的工作原理。

爲了更深入的調查,可以將您的Web服務器中啓用RewriteLog

RewriteLog "/some/path/to/file/rewrite.log" 
RewriteLogLevel 3 

這樣,您就可以看到它的行爲和它的外觀時,多視圖啓用和禁用的。