我有以下重写规则:
ErrorDocument 404 /404.html
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^index\.php/(.*)$ /$1 [L,R=301]
我想重定向所有类型的网址:
http://www.domain.com/index.php/any-character-here
到
http://www.domain.com/any-character-here
我的问题是它还匹配以下网址:
http://www.domain.com/index/any-character-here
我已经评论了所有其他规则,以确保这是一个匹配,它确实。 知道为什么匹配第二种类型的URL吗?
由于
答案 0 :(得分:1)
我怀疑您已启用MultiViews
选项(内容协商)。在顶部使用此行禁用它:
Options -MultiViews
MultiViews
使用选项Apache's content negotiation module
,它在mod_rewrite
之前运行,并使Apache服务器匹配文件扩展名。因此/file
可以在网址中,但它会投放/file.php
。