我想使用动态查询字符串
将旧域网址重定向到新域我的htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^en.olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.en.olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^en.olddomain.com/$1$
RewriteRule (.*)$ http://www.newdomain.com/$1 [R=301,L]
</IfModule>
它正在将所有带有查询字符串的网址重定向到新网址
但我也想改变查询字符串的模式,如
我的旧网址如
我想将其中一些重定向到
或其中一些
我在htaccess中添加了这些行以使用动态查询字符串重定向
RewriteCond %{QUERY_STRING} ^g=(.*)
RewriteRule ^http://www.newdomain.com/en/product/$1 [R=301,L,NC]
但它不起作用
答案 0 :(得分:0)
当您使用http主机标头与url路径匹配时,您的上次重写条件始终返回false。要重定向旧域网址并操纵查询字符串,您可以使用以下规则
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$
RewriteCond %{QUERY_STRING} ^g=([^&]+)$
RewriteRule ^ http://newdomain.com/en/product/%1 [L,R]
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain.com$
RewriteRule (.*) http://newdomain.com/$1 [L,R]