强制HTTPS会破坏htaccess文件中的其他重定向

时间:2018-04-02 14:59:08

标签: .htaccess redirect

如何找出为什么在我的htaccess文件中强制https会破坏同一IP上其他域的同一htaccess文件中指定的其他重定向?

我用来强制https的代码(根据主机Nexcess的推荐):

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*)$ https://www.primarysite.org/$1 [R=301,L]

这可以很好地强制执行https,但是当我把它放到位时,所有其他重定向都会中断。这是重定向的一个例子:

RewriteCond %{HTTP_HOST} ^www\.secondarysite\.org$   [NC]
RewriteCond %{REQUEST_URI} /losangeles$   [NC]
RewriteRule ^ http://support.primarysite.org/site/TR?fr_id=1234&pg=entry [L,R]

当放入https规则时,那些其他重定向就转到primarysite.org/page(ex secondarysite.org/losangeles转到primarysite.org/losangeles,当它应该转到那个support.primarysite.org/ site / TR?etc page)。

背景故事: 我为我的org的主要域名(primarysite.org)继承了一个混乱的htaccess文件。在这个htaccess文件中有一堆重定向用于辅助站点(secondarysite.org/losangeles,secondarysite.org/newyork等),它们应该重定向到我们主站点子域的页面(support.primarysite.org) / eventinfo?page = newyork等)。

也可能与primarysite.org和secondarysite.org指向相同的IP有关。

整个事情对我来说似乎有点疯狂,但如果有人就如何在不破坏所有其他重定向的情况下强制https提出建议,我会非常感激。

1 个答案:

答案 0 :(得分:0)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*)$ https://www.primarysite.org/$1 [R=301,L]
</IfModule>