我真的遇到了这个重写规则的问题
RewriteRule ^index.php?a=profile&u=(.*)$ /profile/$1 [R=301]
我想让301重定向像
mysite.com/profile/USERNAME
答案 0 :(得分:0)
Querystring不是RewriteRule中匹配的一部分,您需要与%{THE_REQUEST}
中的RewriteCond
var匹配,然后使用%n
来获得该匹配:
这应该是你完整的htaccess:
RewriteEngine on
RewriteCond %{THE_REQUEST} /index\.php\?a=profile&u=([^\s]+) [NC]
RewriteRule ^ /profile/%1? [L,R]
RewriteRule ^profile/([^/]+)/?$ /index.php?a=profile&u=$1 [NC,L]
答案 1 :(得分:0)
尝试
RewriteCond %{QUERY_STRING} ^a=profile&u=(.*)$
RewriteRule ^index.php /profile/%1 [L,R]