将所有子域名从 http 重定向到 https

将所有子域名从 http 重定向到 https

我使用以下代码将我的子域的所有 http 请求重定向到 https。

<VirtualHost *:80>
  ServerName subdomain.example.com
  Redirect 302 / https://subdomain.example.com
</VirtualHost>

现在我的问题是如何对所有子域执行此操作。

例如 http:subdomain1.example.com 应该转到 https:subdomain1.example.com 而 http:subdomain2.example.com 应该转到 https:subdomain2.example.com

如何为所有子域名执行此操作,而不必为所有子域名创建一个虚拟主机

答案1

我想到的是使用mod_rewrite

像这样:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)\.example.com$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]

但是,请注意,Apache 建议使用Redirect虚拟主机配置中的指令来实现这一点。

来自文档何时不使用 mod_rewrite

对于 http 到 https 重定向的情况,如果您无权访问主服务器配置文件,而必须在 .htaccess 文件中执行此任务,则使用 RewriteRule 会比较合适。

相关内容