.htaccess - mod_rewrite http 到 https 最终进入循环

标签 .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 始终处于关闭状态?

提前致谢!

编辑:

我检查了响应 header ,发现位置字段仍然指向非 https url。但是,如果我使用另一个域(甚至子域),它就可以工作。那么,为什么重定向到同一域不起作用?

最佳答案

尝试将您的条件更改为:

RewriteCond %{SERVER_PORT} 12345

关于.htaccess - mod_rewrite http 到 https 最终进入循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27943748/

相关文章:

php - 我如何使用 .htaccess 重定向像 (https ://example. com/digital-marketing.php/ercbierubcrei) 这样的非结构化链接?

php - 防止直接访问 mp3/wav 文件,同时允许 Flash 播放器使用 .htaccess(或 PHP)访问它们

apache - RewriteRule Last [L] 标志不起作用?

WordPress 搜索引擎优化问题

javascript - 为什么在重定向之前运行警报?

php - 从 htaccess 重写规则中排除文件

regex - mod_rewrite 不会重定向到我的内部 url

linux - 在使用 CURL 重定向到 GET 期间,附加到 POST 请求的数据消失了

javascript - json代码中的重定向

apache - .htaccess 隐藏扩展名,同时强制 www