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

时间:2012-08-14 20:19:51

标签: php .htaccess

例如:

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

为:

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

我只需要获取新域名上的参数而不是“news.php”页面

1 个答案:

答案 0 :(得分:2)

默认情况下,当您使用重定向或重写时会发生这种情况。例如,在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]

编辑:有价值的信息:

  

在我的情况下,除了news.php之外,它可能会出现任何页面,所以它不是基于news.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]

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