.htaccess 301重定向Apache

时间:2016-05-11 16:34:46

标签: php .htaccess url-rewriting

我真的遇到了这个重写规则的问题

RewriteRule ^index.php?a=profile&u=(.*)$ /profile/$1 [R=301]

我想让301重定向像 mysite.com/profile/USERNAME

2 个答案:

答案 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]