0

我的 Apache2.2 似乎是这样工作的:当我www.site.com/name首先请求时,它正在寻找 folder /name/,如果没有找到,接下来它正在寻找 file name.php

但是当我打开RewriteEngine On.htaccess 并添加时,尽管有 RewriteRule RewriteRule ^name$ name2.php,Apache 仍然会查看是否有文件夹或文件name

如何给予 RewriteRule 优先级?

4

1 回答 1

0

我在这里找到了解决方案http://httpd.apache.org/docs/2.2/content-negotiation.html - “Apache 中的协商”部分,“Multiviews”副标题:

MultiViews 的效果如下:如果服务器收到对 /some/dir/foo 的请求,如果 /some/dir 启用了 MultiViews,并且 /some/dir/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/fooapache将不会搜索目录中命名foo的文件!从现在开始RewriteRule ^name$ another-name.php 就可以了。

于 2013-04-06T17:41:01.073 回答