.htaccess在尊重HTTPS的同时将旧域重定向到新域

时间:2015-04-01 17:25:32

标签: .htaccess

我知道此问题之前一定是问过,但我无法找到问题的具体答案。我有多个指针域设置指向品牌域。我通过使用重定向http(注意下面的domain.com表示品牌域名):

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com 
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]

但是,这不会重定向https。我试过了:

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteCond %{HTTPS_HOST} !^www\.domain\.com 
RewriteRule (.*) https://www.domain.com/$1 [R=301,L]

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

但是这会导致重定向循环。本质上我想要做的是维护协议(http或https)并从旧域重定向到新域,同时保留请求的其余部分。

所以如果有人试图查找:

http://www.pointerdomain.com/dingos.html

结果将是:

http://www.domain.com/dingos.html

并要求:

https://www.pointerdomain.com/flapjacks.html

转发:

https://www.domain.com/flapjacks.html

如果有人能对此提供一点见解,我会非常感激。

1 个答案:

答案 0 :(得分:1)

这里试一试。这适用于httphttps

的两种情况
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] 
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.domain.com%{REQUEST_URI} [L,R=301]