mod_rewrite http到https结束循环

时间:2015-01-14 13:09:41

标签: .htaccess mod-rewrite redirect ssl redirect-loop


我遇到了一个问题,我想使用共享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网址。但是如果我使用另一个域(甚至是子域),它就可以工作。那么为什么不能重定向到同一个域?

1 个答案:

答案 0 :(得分:0)

尝试将您的条件更改为:

RewriteCond %{SERVER_PORT} 12345