如果存在与参数同名的文件,则mod_rewrite不起作用

时间:2013-06-29 19:19:55

标签: apache .htaccess mod-rewrite

我在htaccess中遇到了mod_rewrite的一些问题。

比如说我请求example.com/foo/,如果我在根目录中没有以“foo。*”开头的文件,它就能很好地工作。

假设我在root中有news.php,sitemape.xml,style.css,我不能使用/ news /或/ sitemap /或/ style /,它会给出像/news.php /等404这样的内容

这是我的重写字符串。它可以在我的Apache 2.2.22本地工作,但不能在我的web主机上使用相同的Apache版本。

RewriteRule ^([A-Za-z0-9]+)/?$ index.php?category=$1 [NC,L]

任何人都有线索?

1 个答案:

答案 0 :(得分:4)

这听起来像是Multiviews在不想要的时候抬起它的丑陋脑袋。默认情况下,您的主机可能会自动打开Multiviews选项,然后mod_negotiation会尝试“猜测”请求的内容,以及它是否足够接近(例如/news/和{{1它会自动提供它,并忽略你可能拥有的任何mod_rewrite规则。

尝试关闭多视图。您可以使用Options指令在htaccess文件中执行此操作(假设您的主机已允许选项):

/news.php