gpt4 book ai didi

apache - 使用 Apache 将 HTTP 重定向到 HTTPS

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:47 25 4
gpt4 key购买 nike

我在 Ubuntu Server 12.04 上使用 Apache 2.2.22 使用 mod_rewrite 强制将 HTTP 请求重定向到 HTTPS 时遇到问题。

我的/etc/apache2/sites-available/default 文件如下:

    <VirtualHost *:80>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>

HTTPS 主机定义在同一目录的 default-ssl 中。

访问服务器的本地 IP 地址,重定向似乎工作正常。但是,通过 FQDN 访问它时,它不会。使用 FQDN,该站点可在端口 5443 上使用,该端口在防火墙中映射到服务器上的 443,所以这可能与问题有关。我不能直接使用端口 443,因为其他服务器正在使用此 IP 地址。

为了进一步说明,以下是有效链接:

    https://website:5443
https://192.168.200.80:443

重定向在这里起作用:

    http://192.168.200.80

但是下面给出了一个 400 Bad Request,这就是需要重定向的地方:

    http://website:5443/

“您的浏览器发送了该服务器无法理解的请求。原因:您正在向启用 SSL 的服务器端口发送纯 HTTP。请改为使用 HTTPS 方案访问此 URL。”

最佳答案

这是完全可能的。以下将所有 http 重定向到 https url。

<VirtualHost *:80>
ServerName mydomainname.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

确保加载重写模块 mod_rewrite 并启用它。

关于apache - 使用 Apache 将 HTTP 重定向到 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17853828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com