2015-04-01 105 views
0

我知道这个问题以前一定是有问题的,但我无法找到针对我的问题的特定答案。我有多个指针域设置指向一个品牌领域。我用(以下domain.com注象征着品牌的域)重定向HTTP:.htaccess将旧域重定向到新域,同时尊重HTTPS

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 

如果有人可以提供一点点洞察,我会非常感激。

+0

据称以前回答的问题与我所要求的不同。 – user3128461 2015-04-01 22:01:45

回答

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] 
+0

谢谢我会测试这个,让你知道它是如何去。 – user3128461 2015-04-01 22:03:08

+0

这会将所有http请求从该点重定向到主域。但是,如果URL使用https协议,则不会重定向。而是维护以前的指针域URL。是否有机会阻止https的重定向? – user3128461 2015-04-02 11:25:59