Php mod重写问题?

Php mod重写问题?,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我正在尝试重写此url: http://www.example.com/user.php?user=username 进入 我正在.htaccess中使用此代码: RewriteEngine On RewriteRule ^([^/]*)$ /user.php?user=$1 [L] 但这给了我一个内部错误。有什么问题吗?要匹配URL的查询字符串部分,必须使用RewriteCond,如下所示: RewriteEngine On RewriteCond %{QUERY_STRING} user

我正在尝试重写此url:

http://www.example.com/user.php?user=username
进入

我正在.htaccess中使用此代码:

RewriteEngine On
RewriteRule ^([^/]*)$ /user.php?user=$1 [L]

但这给了我一个内部错误。有什么问题吗?

要匹配URL的查询字符串部分,必须使用RewriteCond,如下所示:

RewriteEngine On
RewriteCond %{QUERY_STRING} user=(.*)
RewriteRule ^user.php$ %1 [L]
因此,RewriteCond规则匹配?user=name中的用户名,然后%1在我示例最后一行的结果重写中使用该值


在斜杠问题上,如果web服务器发现/name是目录,则像/name这样的URL会自动重定向到像/name/这样的URL。因此,如果您打算将user.php/user=name映射到类似于/name/index.html的内容,那么将插入该斜杠。但是,如果您打算将其映射到/name处的文件(或CGI脚本),那么它将按预期工作。

错误日志会说什么!!谢谢如果他们在exaxmple.com/username/中键入一个尾随斜杠,您希望它失败吗?这可能会给用户带来问题。或者尾部斜杠是可选的?另外:你的用户名应该有一定的长度吗?什么字符将被允许?是的,我希望它失败,他们被允许任何字符!!像slashy/slashy/slashslash这样的用户名会稍微影响工作,不是吗?嗯。重读这个问题后,你确定要将user.php?user=username映射到/username中吗?您的文本是这样说的,但是您的.htaccess却走了另一个方向,就像您试图获取URL/username并将其映射到user.php?user=username。如果我回答了一个你没有问的问题,那么很抱歉:-)
RewriteEngine On
RewriteCond %{QUERY_STRING} user=(.*)
RewriteRule ^user.php$ %1 [L]