将规则 HTTPS 重写到不同的端口

将规则 HTTPS 重写到不同的端口

我有一个在端口上运行 SSL 的 Apache444。我需要将所有以https://servername( 即默认端口 443) 开头的 url/请求重写为https://servername:444

我对 .htaccess 有这样的规则:

RewriteCond %{SERVER_PORT} =443
RewriteRule ^(.*)$ https://%{SERVER_NAME}:444%{REQUEST_URI}

这不起作用。为了检查条件,我将条件端口更改为RewriteCond %{SERVER_PORT} =80,所有 HTTP 请求都强制为 HTTPS。

答案1

如果我理解正确的话,你的问题是%{SERVER_PORT}永远不会等于 443,因为你的服务器没有监听该端口。因此,你的RewriteCond %{SERVER_PORT}=443条件永远不会成立。

事实上,我认为不可能按照您的意图进行重写,除非您放置一个在端口 443 上监听的服务器来处理初始传入请求,然后立即将其重定向到端口 444。但如果您这样做,您最好根本不要重定向;只需处理 443 上的 HTTPS 请求即可。

相关内容