mod_rewrite似乎忽略了带问号的规则?

时间:2016-03-20 10:59:19

标签: .htaccess mod-rewrite

我正在尝试重定向

domain.com/page?user=something

domain.com/page/something

RewriteRule ^page?user=(\d[^/]+) /page/$1/ [R=301,L]

由于某种原因,但是没有工作。它似乎只是无视它。当我去domain.com/page?user=something时没有任何反应。 mod_rewrite已启用,所有其他规则正在执行。我认为这可能是由于URL中的?,但我可能错了?

1 个答案:

答案 0 :(得分:1)

您可以在根.htaccess中使用这两个规则:

RewriteEngine On

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} /page(?:\.php)\?user=([^\s&]+) [NC]
RewriteRule ^ /page/%1? [R=302,L,NE]

# internal forward from pretty URL to actual one
RewriteRule ^page/([^/.]+)/?$ page?user=$1 [L,QSA,NC]