gpt4 book ai didi

apache - 将 http 和 https 请求重定向到新主机

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

在 Apache 2.4.6 中,我想将来自 http://A.org/foohttps://A.org/foo 的请求重定向到https://B.org/foo

我正在使用以下指令:

<VirtualHost 1.2.3.4:80>
ServerName B.org
ServerAlias A.org
RewriteEngine on
RewriteCond %{HTTP_HOST} !^B.org$
RewriteRule ^/(.*)$ https://B.org/$1 [R=permanent,L]
</VirtualHost>

<VirtualHost 1.2.3.4:443>
ServerName B.org
ServerAlias A.org
RewriteEngine on
RewriteCond %{SERVER_PORT} ^443(s)
RewriteCond %{HTTP_HOST} !^B.org$
RewriteRule ^/(.*)$ https://B.org/$1 [R=permanent,L]
</VirtualHost>

当我访问 http://A.org/foo 时,这会重定向到 https://B.org/foo(正确)。

当我访问 https://A.org/foo 时,这会加载 https://B.org/foo 但不会重写 URL。所以我从 Web 浏览器收到 SSL 证书域不匹配错误。

防止 URL 被重写的第二个 VirtualHost 指令有问题吗?

最佳答案

在发布重定向之前必须验证 SSL 证书,因此您需要在从 https://发布重定向的 VirtualHost 中使用对“A.org”有效的证书A.org/,并将其与服务 https://B.org/ 的 VirtualHost 分开。

线路检查服务器端口不是必需的,因为 VirtualHost 无论如何只为该端口提供服务。只需将其删除即可。

这里有一个大纲,其中的规则也略有调整,以适应您可能喜欢或不喜欢的美学!

<VirtualHost 1.2.3.4:80>
ServerName B.org
ServerAlias A.org
RewriteEngine on
RewriteCond %{HTTP_HOST} !=B.org
RewriteRule ^(.*)$ https://B.org$1 [R=permanent,L]
</VirtualHost>

<VirtualHost 1.2.3.4:443>
ServerName A.org
RewriteEngine on
RewriteRule ^(.*)$ https://B.org$1 [R=permanent,L]
</VirtualHost>

<VirtualHost 1.2.3.4:443>
ServerName B.org
</VirtualHost>

关于apache - 将 http 和 https 请求重定向到新主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41816301/

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