我一直试图找到一种方法在我的域名和子域名中保留https://
,同时从网址中删除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,但我仍然可以通过在网址上添加www.
来访问我的主域名和子域名。这不是我想要的效果。
答案 0 :(得分:1)
您可以使用此单一规则:
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]
请记住在测试此更改之前清除浏览器缓存。