子域名的重写规则

子域名的重写规则

我想确保我的子域名上的所有 URL 都使用 HTTPS。

对于我的主要域名,我使用这个并且运行良好:

<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName example.io
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

但是,如果我对我的子域名尝试如下操作:

<VirtualHost *:80>
ServerName demo.example.io
DocumentRoot /var/www/html/demo
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

我被重定向到我的主网站(即子域名被剥离),因此 demo.example.io 变成了 example.io。有人知道这里发生了什么吗?

更新:

我从 httpd.conf 中删除了重定向,并将规则放入了 .htaccess 文件中。

现在有这个:

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

此重定向http://example.comhttps://example.com但它会重定向http://demo.example.comhttps://demo.example.comdemo(子域名位于 URL 末尾)。

这有助于指出问题吗?

相关内容