我有一个example.com/new/info.php?title=example
之类的PHP页面。 .htaccess
在文件夹/new/
中。我也在主目录中尝试过。我的.htaccess
看起来像这样:
ErrorDocument 404 /404.php
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ page.php?title=$1 [QSA,L,NC]
RewriteRule ^info/([a-zA-Z0-9_-]+)/$ info.php?title=$1 [QSA,L,NC]
第一个规则正在运行,但是第二个规则未向服务器发送GET['title']
。站点info.php
已加载,但没有该变量。我已经在本地主机上对其进行了测试,并且可以正常工作。我将其加载到我的网站空间上,第二条规则不起作用。
我也尝试了没有新目录example.com/info.php?title=example
的情况,但同样没有用。
我怎么了?
答案 0 :(得分:0)
听起来您已启用MultiViews
(可能在服务器配置中)。您需要禁用MultiViews
才能正常工作。在.htaccess
文件的顶部添加以下内容:
Options -MultiViews
启用MultiViews后,在对info.php
发出请求时,mod_negotiation将对/info/example/
发出内部子请求-在处理mod_rewrite规则之前,因此不会传递任何参数。