我在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]
任何人都有线索?
答案 0 :(得分:4)
这听起来像是Multiviews在不想要的时候抬起它的丑陋脑袋。默认情况下,您的主机可能会自动打开Multiviews
选项,然后mod_negotiation会尝试“猜测”请求的内容,以及它是否足够接近(例如/news/
和{{1它会自动提供它,并忽略你可能拥有的任何mod_rewrite规则。
尝试关闭多视图。您可以使用Options
指令在htaccess文件中执行此操作(假设您的主机已允许选项):
/news.php