【发布时间】:2015-03-12 16:25:23
【问题描述】:
我有一个问题,我想使用共享 SSL 证书将我的 HTTP 请求重定向到 HTTPS。由于我的主机的一些愚蠢的原因,我必须在请求 url 上附加 SSL 端口。
基本上我想重定向这个:
http://sub.domain.com
到
https://sub.domain.com:12345
我的 .htaccess 看起来像这样:
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://%{HTTP_HOST}:12345%{REQUEST_URI} [L,R]
这会导致重定向循环。我不知道为什么。这可能是因为我使用了不是为域制作的共享 SSL 证书,因此 RewriteCond 始终处于关闭状态?
提前致谢!
编辑:
我检查了响应头,发现位置字段仍然指向非 https url。但是,如果我使用另一个域(甚至是子域),它就可以工作。那么为什么不重定向到同一个域呢?
【问题讨论】:
-
不应该只是
RewriteCond %{HTTPS} off吗?这对我来说很好。如果这仍然起作用,则说明您的 htaccess 没有问题。你的浏览器控制台说什么? (如果有的话) -
没有改变任何东西。控制台:无法加载资源:net::ERR_TOO_MANY_REDIRECTS 如果我查看响应头,“位置:”仍然是“sub.domain.com”,最后没有 https,也没有端口。很奇怪……
标签: .htaccess mod-rewrite redirect ssl redirect-loop