httpd 将一个端口号重定向到另一个端口号

httpd 将一个端口号重定向到另一个端口号

我们正在尝试将端口 8555 上的请求重定向到端口 8443。在我们的 httpd.conf 文件中,我们有以下内容:

<VirtualHost *:8555>
SSLEngine on
# SSL configuration that is irrelevant to this question

RewriteEngine on
RewriteRule ^(.*)$ https://%{HTTP_HOST}:8443%{REQUEST_URI}
</VirtualHost>

但是,当用户访问 时https://example.con:8555/foo,他们被重定向到https://example.com:8555:8443/foo而不是https://example.com:8443/foo。我该如何纠正这个问题?

答案1

HTTP_HOST包含“Host:”请求标头设置的值。您可以尝试使用SERVER_NAME包含指令值的替代方法ServerName(如果已在 VirtualHost 块中配置)。否则 httpd 会尝试通过反向 DNS 查找 ServerName。

RewriteRule ^(.*)$ https://%{SERVER_NAME}:8443%{REQUEST_URI}

另一种选择是,如果您只有一个服务器名称,您可以直接将其写入 RewriteRule 中,而不必为此使用变量。

RewriteRule ^(.*)$ https://example.com:8443%{REQUEST_URI}

相关内容