我的Apache2.2似乎是這樣工作的:當我首先要求www.site.com/name
它正在尋找文件夾/name/
,如果沒有找到,那麼它正在搜索文件name.php
。URL重寫 - 一些規則有效,其他一些不
但是,當我在.htaccess打開RewriteEngine On
並添加RewriteRule ^name$ name2.php
,然後阿帕奇仍然將尋找是否有文件夾或儘管重寫規則的文件name
。
我該如何給RewriteRule優先?
我的Apache2.2似乎是這樣工作的:當我首先要求www.site.com/name
它正在尋找文件夾/name/
,如果沒有找到,那麼它正在搜索文件name.php
。URL重寫 - 一些規則有效,其他一些不
但是,當我在.htaccess打開RewriteEngine On
並添加RewriteRule ^name$ name2.php
,然後阿帕奇仍然將尋找是否有文件夾或儘管重寫規則的文件name
。
我該如何給RewriteRule優先?
我發現溶液這裏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
將工作。