htaccess 301将包含变量的子域URL重定向到新域

时间:2014-10-09 21:44:05

标签: .htaccess redirect

我搜索了一个解决方案,将包含子域和变量的网址重定向到新域上的特定网页。

这是我要重定向的网址: http://en.domain.com/?page=ceramic-vase

这是我要重定向到的网址: http://www.newdomain.com/en/ceramic-vase.php

我试过基本的,只是重定向整个子域,这很好用:

RewriteCond %{HTTP_HOST} ^en.domain.com$
RewriteRule ^(.*)$ http://www.newdomain.com/en/ [R=301,L]

我已经看到在htaccess和mod_rewrite中使用了状态[OR] - 所以我认为[AND]可能也有用,但不幸的是没有:

RewriteCond %{HTTP_HOST} ^en.domain.com  [AND]
RewriteCond %{QUERY_STRING} ^page=ceramic-vase$
RewriteRule ^(.*)$ http://www.newdomain.com/en/ceramic-vase/ [R=301,L]

我希望有人可以提供帮助吗?

2 个答案:

答案 0 :(得分:1)

您可以使用此规则:

RewriteCond %{HTTP_HOST} =en.domain.com 
RewriteCond %{QUERY_STRING} ^page=([^&]+)
RewriteRule ^/?$ http://www.newdomain.com/en/%1/? [R=301,L]
  • %1是查询参数page
  • 的后向引用 最后
  • ?会剥离以前的查询字符串。

答案 1 :(得分:0)

默认为AND,因此删除[AND]就足够了:

RewriteCond %{HTTP_HOST} ^en.domain.com
RewriteCond %{QUERY_STRING} ^page=ceramic-vase$
RewriteRule ^(.*)$ http://www.newdomain.com/en/ceramic-vase/ [R=301,L]