保留域和子域上的 https://,但删除 www



我一直在尝试找到一种方法来保留我的域和子域上的https://,同时从URL中删除www.

例子:

URL 1: http://www.mywebsite.co.uk
Redirect 1: https://mywebsite.co.uk
URL 2: http://test.mywebsite.co.uk
Redirect 2: https://test.mywebsite.co.uk
URL 3: http://mywebsite.co.uk
Redirect 3: https://mywebsite.co.uk
URL 4: http://www.test.mywebsite.co.uk
Redirect 4: https://test.mywebsite.co.uk

我遇到过多次尝试在 Stack Overflow 上解决此问题的尝试,并收到麻烦的 Apache 和 PHP 将脚本写入我的网站进行修复,但它们似乎总是伴随着其他问题。

当前 .htaccess 文件:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{HTTP_HOST} ^(.+.)?mywebsite.co.uk$
RewriteRule ^(.*)$ https://%1mywebsite.co.uk/$1 [R,L]

虽然这有助于我在子域上保留 SSL,但我仍然可以通过在 URL 上预先添加www.来访问我的主域和子域。这不是我想要的预期效果。

您可以使用以下单个规则:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]

请记住在测试此更改之前清除浏览器缓存。

最新更新