将所有 HTTP 流量重定向到 HTTPS,包括子域

g3b*_*blv 5 apache-http-server https redirection htaccess cpanel

我正在尝试将所有HTTP流量重定向到HTTPS包括子域。我使用 cPanel 在他们的共享主机上使用 FastComet 设置了域。我喜欢重定向的一些例子。

http://www.example.com      ->     https://www.example.com
http://example.com          ->     https://example.com
http://www.example.com/mail ->     https://www.example.com/mail
http://example.com/mail     ->     https://example.com/mail
http://mail.example.com     ->     https://mail.example.com
Run Code Online (Sandbox Code Playgroud)

我试过在我的.htaccess文件中添加以下内容

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(.+\.)?mydomain\.com$
RewriteRule ^(.*)$ https://%1mydomain.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

而且更一般

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)

但他们没有重定向http://mail.example.comhttps://mail.example.com,同时重定向http://example.com/mailhttps://example.com/mail的作品。我缺少什么设置?

小智 0

如果这是一个相当新的 Apache。这种能力可以在 中实现extra/http-vhosts.conf。但完成以下任务的能力.htaccess完全取决于您的托管提供商是否愿意让您这样做。

如果您将以下内容放入.htaccess服务器根目录下的文件中。它应该实现你的目标:

ServerName MyServer.COM
Redirect permanent / https://myserver.com/
Run Code Online (Sandbox Code Playgroud)

这一切所做的就是发送一个301 permanent. 因此,您不会受到谷歌的惩罚(如果您关心的话),浏览器书签和其他客户端也会对这一变化有所了解。

这很容易理解。所以我不会进一步详细说明。

祝你好运!