.htaccess 非 www 到 www 和 http 到 https

.htaccess non-www to www and http to https

我知道这个问题已经被问过和回答过很多次了,但我花了最后 3 个小时浏览了人们的答案,none 似乎对我来说很合适。

我需要一些 .htaccess 代码来执行此操作:

如果域是example.co.uk/$urlData(只适用于主域,没有子域)也重写www.example.co.uk/$urlData

如果 HTTPS 不是 "on" 并且域是主域(即没有子域),则重定向到 https://www.example.co.uk/$urlData

我必须使用 RewriteCond %{HTTP:X-Forwarded-Proto} !https 来测试 HTTPS 是否关闭,因为我的服务器上没有配置 RewriteCond %{HTTPS} off

试一试,看看是否适合您。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*) https://www.example.com/ [R=301,L]

将此添加到您的 .htaccess:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.co\.uk$ [NC]
RewriteRule (.*) https://www.example.co.uk/ [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.example\.co\uk$ [NC]
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule (.*) https://www.example.co.uk/ [R=301,L]