重定向端口/端口10000到https apache

重定向端口/端口10000到https apache

我一直在阅读并尝试不同的配置,以将请求发送到端口 10000 上的服务器,以将 http 请求重定向到 https 请求。

出于某种原因,我无法弄清楚当我使用端口 10000 时如何实现这一点,尽管我可以为端口 80(隐式)设置重写规则来执行此操作:

我想要的只是如下请求:

http://example.com:10000

将我重定向至

https://example.com:10000

我当前的 vhost,许多不同尝试中的最后一次当前设置如下,但它似乎根本不起作用:

<VirtualHost *:10000>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_POST}%{REQUEST_URI}

ErrorLog "/var/log/httpd/webmin-redirect_error_log.log"
CustomLog "/var/log/httpd/webmin-redirect_access_log.log" common
</VirtualHost>

我还尝试了其他一些方法,但似乎没有任何作用,如能得到任何帮助我将不胜感激。

编辑:我已经在 httpd.conf 中重写了将端口 80 重定向到 https 的内容。如果我从外部访问端口 10000,它将被重定向到 https,但从局域网访问时,http://192.168.0.2:10000“事实并非如此。

答案1

您必须确定端口 10000 是 HTTP 还是 HTTPS。对于 HTTPS,您必须使用 SSL* 配置行创建自己的虚拟主机。您不能在同一个 IP 的同一个端口上同时拥有两者。

答案2

您可以轻松地完成此操作:

  • Webmin > 配置 Webmin > SSl 配置

  • 在>将非 SSL 请求重定向到 SSL 模式?中选中“是”。

  • 重新加载浏览器并清除缓存(Ctrl + Shift +R)

答案3

可以通过重定向到自定义“400 - 错误请求”页面并使用重写规则修改重定向来实现此目的。在以下示例中,我请求

http://test.mydomain.com:27000

并重定向至

https://test.mydomain.com:27000

有一个虚拟主机。

代码:

ErrorDocument 400 /

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*) https://%{SERVER_NAME}:27000/$1 [R,L]

或者您直接重定向到该页面的 HTTPS 版本。

代码:

 ErrorDocument 400 https://test.mydomain.com:27000

但您将失去在真正的“错误请求”页面上重定向的能力。

相关内容