如何使用 htaccess 将旧域的查询字符串传递到新域


How to pass query string of old domain to new domain using htaccess

例如:

http://www.old-domain.com/news.php?NewsID=30888&test=3

自:

http://www.new-domain.com/?NewsID=30888&test=3

我只需要获取新域上的参数,而不是页面"新闻.php

默认情况下,当您使用重定向或重写时,会发生这种情况。例如,在old-domain.com域的文档根目录的 htaccess 文件中:

Redirect 301 /news.php http://www.new-domain.com/

任何查询字符串(例如 ?NewsID=30888&test=3 ) 转到/news.php将自动附加到http://www.new-domain.com/

与mod_rewrite相同:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www'.)?old-domain.com$ [NC]
RewriteRule ^news.php$ http://www.new-domain.com/ [L,R=301]

编辑:有价值的信息:

就我而言,它可能出现在新闻.php以外的任何页面,因此它不是基于新闻.php。我只需要可能来自任何页面的新域上的参数。例如:old-domain.com/pagename.php?var1=data1&var2=data2new-domain.com/?var1=data1&var2=data2

那么那就是:

RedirectMatch 301 ^/(.*) http://www.new-domain.com/

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www'.)?old-domain.com$ [NC]
RewriteRule ^ http://www.new-domain.com/ [L,R=301]

就像我在回答中所说的那样,实际路径无关紧要。查询字符串会自动追加,您无需执行任何特殊操作