我正在将我的网站迁移到新域名。需要重定向页面
从
old-site.com/oldpage.php?id=X
到
new-site.com/newpage-X
(X是数字)
为什么这条规则不起作用?
RewriteEngine on
RewriteRule ^oldpage.php?id=(.*)$ http://new-site.com/newpage-$1 [R=301,L]
答案 0 :(得分:0)
我怀疑你需要使用QUERY_STRING
RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^oldpage\.php$ http://new-site.com/newpage-%1 [R=301,L]
希望这有帮助
答案 1 :(得分:0)
RewriteRule
仅对URL path进行操作,而不对URL查询进行操作。您需要使用RewriteCond
指令来测试URL查询(%{QUERY_STRING}
)。所以试试这条规则:
RewriteCond %{QUERY_STRING} ^(([^&]*&)*)id=([^&]+)&?(.*)?$
RewriteRule ^oldpage\.php$ http://new.example.com/newpage-%3?%1%4 [L,R=301]
此规则还将保留查询中的其他参数。