.htaccess非www到www和http到https

时间:2015-01-23 22:20:42

标签: .htaccess mod-rewrite

我知道这个问题已经被多次询问和回答,但我花了最后3个小时来回答人们的答案,似乎没有一个对我有用。

我需要一些.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

2 个答案:

答案 0 :(得分:1)

尝试一下,看看这是否适合你。

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

答案 1 :(得分:1)

将此添加到您的.htaccess

RewriteEngine On

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

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