Ira*_*ney 4 apache .htaccess ssl redirect
我正在尝试将任何 https 流量捕获到我网站的前面,因此:
https://www.domain.com
被重定向到:
http://www.domain.com
但是,其他子域需要重定向到其他地方。在大多数情况下,除了 https -> http 重定向之外,这一切都有效。这是我目前的 .htaccess 文件:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond "%{HTTP_HOST}" !^www.* [NC]
RewriteCond "%{HTTP_HOST}" ^([^\.]+).*$
RewriteRule ^(.*)$ https://secure.domain.com/a/login/%1 [L,R=301]
似乎这一点:
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
不像我想象的那样工作。事实上,它似乎根本没有重定向。
在另一个子目录中,我的效果正好相反:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
所以我的想法是相反应该做的工作,但似乎没有。
有人有什么想法吗?
编辑
我认为这可能与以下事实有关:在服务器上有一个 ssl 证书,ISP 使用该证书为您的站点提供通用 https 地址。例如,如果您的网站位于:
您可以使用以下方法通过 https 访问相同的内容/托管帐户:
https://server100.securedomain.com/yourdomain.com
可能是因为当我在浏览器中输入 https 时,我正在获得通用证书,并且因为它与我输入的域名不匹配,所以我收到了一个关于不受信任的证书的安全警告,该证书正在停止重定向?
编辑 2
查看服务器标头,我认为我的上述假设是正确的。服务器返回:
The host name in the certificate is invalid or does not match
这会停止重定向吗?
刚刚意识到我从来没有关闭它,所以为了其他试图解决这个问题的人的利益,我现在会。
简而言之,我试图实现的所有 https -> http 重定向将不起作用,因为服务器首先提供证书,然后生成安全警告。出于明显的安全原因,这发生在重定向之前,因此重定向无法正常工作。
希望能帮助别人。
| 归档时间: | 
 | 
| 查看次数: | 12604 次 | 
| 最近记录: |