我的.htaccess文件有这一行:
RewriteRule ^profile/(.*)$ profile.php?username=$1 [L]
当我去http://localhost/blah/profile/name
(我正在使用XAMPP)时,在profile.php中我可以说:
$user_name = $_GET['username']
这很好用。但是,当我将其部署到我的1and1服务器并转到http://blah.com/profile/name
时,未设置$_GET['username']
。为什么表现不同?
答案 0 :(得分:0)
尝试关闭Multiviews
:
Options -Multiviews
启用多视图后,mod_negotiation将尝试将请求(及其PATH INFO)与现有文件进行匹配。因此,该模块会看到/profile/something
,然后看到有/profile.php
,只需将请求权限发送到/profile.php
,完全绕过mod_rewrite和您的规则。