.htaccess RewriteRule - localhost和1and1上的不同行为

时间:2013-12-19 04:08:54

标签: php apache .htaccess mod-rewrite

我的.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']。为什么表现不同?

1 个答案:

答案 0 :(得分:0)

尝试关闭Multiviews

Options -Multiviews

启用多视图后,mod_negotiation将尝试将请求(及其PATH INFO)与现有文件进行匹配。因此,该模块会看到/profile/something,然后看到有/profile.php,只需将请求权限发送到/profile.php,完全绕过mod_rewrite和您的规则。