我有一个在端口上运行 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 请求即可。