在Apache

时间:2017-05-15 06:01:45

标签: apache .htaccess https

我有一个使用Apache服务器的webhost帐户。 webhost的文件结构使用主帐户域的辅助域的子文件夹。

如果有人在浏览器网址中键入https:mysubdomain,我需要添加到此.htaccess文件中以重定向。我想从https重定向到http,即。 HTTP:mysubdomain。

RewriteEngine on
# Use PHP5.4 as default
AddHandler application/x-httpd-php54 .php

RewriteCond %{HTTP_HOST} ^myseconddomain\.myprimarydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.myseconddomain\.myprimarydomain\.com$ 
RewriteRule ^/?$ "http\:\/\/mysedonddomain\.com" [R=301,L]

修改更新: 谢谢你的建议。即使在清除浏览器缓存之后,修改子文件夹中子域的.htaccess文件的方法也不起作用。如何修改maindomain的.htaccess。我试过这个,但它也没用。也许我的语法?

RewriteEngine on
RewriteCond %{HTTP_HOST} ^https:\/\/myseconddomain.com$
RewriteRule ^www.myseonddomain.com/ [R=301,L]

我已经和webhost,Hostmonster详细说过了,他们可以告诉我的是SSL证书“正确”工作 - 甚至认为它与不应该拥有任何证书的无关域名相关联。我猜这就是User82217所说的,除了购买通配符SSL之外别无他法了吗?

编辑更新:我尝试将其放在maindomain和seconddomain的.htaccess中,当用户在URL中的mysecondubdomain.com前面键入https://时,没有任何工作可以从https重定向到http

RewriteEngine on
RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} ^https
RewriteRule ^.*$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

有人有更多想法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

要强制HTTP到HTTP,您可以在.htaccess文件中使用以下内容:

#Force HTTP on everything
RewriteCond %{HTTPS} =on
RewriteRule ^.*$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

您没有指定是否要删除www,但假设您这样做,您也可以通过包含以下规则来删除它:

RewriteCond %{HTTP_HOST} ^www\. [OR]

因此,检查网址中是否有www,所以完全使用:

RewriteCond %{HTTP_HOST} ^www\. [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^.*$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

确保在测试之前清除缓存。