我有以下重写代码:
RewriteEngine on
RewriteRule ^about$ /about.php [QSA,L,NC]
RewriteRule ^about/mission$ /about_mission.php [QSA,L,NC]
RewriteRule ^about/team$ /about_team.php [QSA,L,NC]
RewriteRule ^about/join-me$ /about_join_me.php [QSA,L,NC]
在我的本地计算机上,它运行良好,但在我的服务器上,只有页面" about"显示(即使我导航到约/任务...)。如果我执行以下操作:
RewriteEngine on
RewriteRule ^about$ /about.php [QSA,L,NC]
RewriteRule ^about-mission$ /about_mission.php [QSA,L,NC]
RewriteRule ^about-team$ /about_team.php [QSA,L,NC]
RewriteRule ^about-join-me$ /about_join_me.php [QSA,L,NC]
它有效(当我导航到"关于任务"任务页面出现时)。
任何知道可能出错的人?
答案 0 :(得分:1)
添加此项以禁用MultiViews:
Options -MultiViews
Apache docs on mod_negotiation描述了多视图选项启用时的功能:
如果 服务器接收/ some / dir / foo的请求和/ some / dir / foo没有 存在,然后服务器读取目录查找所有命名的文件 foo。*,并有效地伪造了一个类型地图,列出了所有这些 文件,为它们分配相同的媒体类型和内容编码 如果客户通过名字要求其中一个,那就会有。然后呢 选择与客户要求的最佳匹配,并返回 文档。