2013-04-03 56 views
0

我的Apache2.2似乎是這樣工作的:當我首先要求www.site.com/name它正在尋找文件夾/name/,如果沒有找到,那麼它正在搜索文件name.phpURL重寫 - 一些規則有效,其他一些不

但是,當我在.htaccess打開RewriteEngine On並添加RewriteRule ^name$ name2.php,然後阿帕奇仍然將尋找是否有文件夾或儘管重寫規則的文件name

我該如何給RewriteRule優先?

回答

0

我發現溶液這裏http://httpd.apache.org/docs/2.2/content-negotiation.html - 「商談中的Apache」段「在Multiviews」字幕:

多視圖的效果如下:如果服務器接收用於/一些/目錄/ foo的一個請求,如果/一些/目錄已啓用了多視圖,和/一些/目錄/ foo的不存在,則服務器會尋找一個名爲foo的文件的目錄。*(......)

在我的情況

所以(我使用mod_userdir),我編輯/etc/apache2/mods-enabled/userdir.conf

<IfModule mod_userdir.c> 
    (...) 
    <Directory /home/*public_html> 
    (...) 
    #Options MultiViewes # I COMMENTED OUT THIS OPTION 
    </Directory> 
</IfModule> 

現在,如果我要求www.domain.com/foo apache 不會在目錄中搜索名爲foo的文件!從現在起RewriteRule ^name$ another-name.php將工作