2013-04-03 33 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将工作