如何找出为什么在我的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提出建议,我会非常感激。
答案 0 :(得分:0)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*)$ https://www.primarysite.org/$1 [R=301,L]
</IfModule>