这个RewriteRule有什么问题?

时间:2016-05-11 20:08:46

标签: .htaccess mod-rewrite url-rewriting

这是我在htaccess中的代码:

RewriteCond %{THE_REQUEST} \s/user/\?user=(.*)\s [NC]
RewriteRule ^ /user/%1? [R=301,L]
RewriteRule ^user/(.*)$ /user/?user=$1 [L]

我想要它做的是获取网址/user/?user=username并将其重写为/user/username 我已成功将其重写为/user/username但是它给了我500错误。如果有人能告诉我为什么我会非常感激。

谢谢!

编辑: 500错误似乎是因为它正在使用此规则创建重定向循环。我不确定如何只取最后一部分并将其作为查询字符串附加到URL。

1 个答案:

答案 0 :(得分:1)

请更改此行:

cat.text"  <--
cat.doc"
dog.txt"
dog.text"   <--
frog.txt"
dog.text"   <--
dog.  text"  <--
cat. text"    <--
cat. text "   <--

用这个:

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

您应该只匹配字母,否则上述条件RewriteRule ^user/[a-zA-Z]+$ /user/?user=$1 [L] RewriteCond %{THE_REQUEST} \s/user/\?user=(.*)\s [NC]

没有任何意义