.htaccess 使用动态查询字符串从旧域重定向到新域

.htaccess 使用动态查询字符串从旧域重定向到新域,.htaccess,redirect,mod-rewrite,dns,.htaccess,Redirect,Mod Rewrite,Dns,我想用动态查询字符串将旧域url重定向到新域 RewriteCond %{QUERY_STRING} ^g=(.*) RewriteRule ^http://www.newdomain.com/en/product/$1 [R=301,L,NC] 我的htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^en.olddomain.com$ [OR] RewriteCond

我想用动态查询字符串将旧域url重定向到新域

 RewriteCond %{QUERY_STRING} ^g=(.*)
 RewriteRule ^http://www.newdomain.com/en/product/$1 [R=301,L,NC]
我的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>

但它不起作用

当您使用http主机头匹配url路径时,您的上一个重写条件总是返回false。要重定向旧域URL并操作查询字符串,可以使用以下规则

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]

在使用http主机头匹配url路径时,上一次重写条件始终返回false。要重定向旧域URL并操作查询字符串,可以使用以下规则

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]

两个域是否由同一Web服务器进程从同一台计算机上的同一文件夹提供服务?
mod_rewrite
是否启用?在此之前或之后,
.htaccess
文件中是否有其他规则?此文件夹上方的文件夹中是否有
.htaccess
?这是网站文件夹的根目录吗?@KraangPrime我没有太多关于服务器的信息,它是客户端的域,所以我再次将旧域添加到服务器并添加了htaccess。现在,您能告诉我如何传递查询字符串以重定向吗?en.olddomain.com/product?g=任意_值重定向到@krangprime我已经编辑了我的问题,你能帮我吗?这两个域是否由相同的Web服务器进程从同一台机器上的同一文件夹提供服务?
mod_rewrite
是否启用?在此之前或之后,
.htaccess
文件中是否有其他规则?此文件夹上方的文件夹中是否有
.htaccess
?这是网站文件夹的根目录吗?@KraangPrime我没有太多关于服务器的信息,它是客户端的域,所以我再次将旧域添加到服务器并添加了htaccess。现在,您能告诉我如何传递查询字符串以重定向吗?en.olddomain.com/product?g=任何_值重定向到@krangprime我已经编辑了我的问题,你能帮我吗?