gpt4 book ai didi

apache - 从 HTTP 重定向到 HTTPS 但不用于子域

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

我有一个包含子域的站点,我已经安装了 SSL 证书,我希望将 HTTP 请求重定向到 HTTPS,但是我不希望将子域重定向到 HTTPS,除了几个:app. example.comapi.example.com 必须是 HTTPS。

我已经设置了下面的代码,但是它不处理子域,我的子域当前正在重定向到根域的 HTTPS 版本。

NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.io
ServerAlias *.example.io
Redirect permanent / https://example.io/
</VirtualHost>

<VirtualHost _default_:443>
...

我该怎么做?

编辑:更具体一些。我怎么能...?

谢谢。

最佳答案

这可以很容易地用 mod_rewrite 完成.

RewriteCond %{HTTPS} =off
RewriteCond %{HTTP_HOST} "^(((app|api)\.)?example\.com)$"
RewriteRule ^/(.*)$ https://%1/$1 [R,L]

第一个条件确保规则仅针对非 HTTPS 请求触发。如果您将规则放在端口 80 虚拟主机中并且只接受该端口上的非 HTTPS 请求,则可以省略此选项。

第二个条件检查 HOST header 以确保它是 example.com、app.example.com 或 api.example.com。

规则本身发出一个重定向到 HTTPS 副本。 %1 是对完整 HOST header 内容的反向引用(%0 也可以在这里工作并允许您省略一些括号)并且 $1 是对路径的反向引用(减去前导正斜杠)。

注意:您或许可以使用 if directive以及根据需要限制重定向。

关于apache - 从 HTTP 重定向到 HTTPS 但不用于子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40074523/

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