在htaccess中使用www强制SSL

时间:2018-04-15 21:07:40

标签: regex apache .htaccess

我已在CPanel中设置重定向,以便将所有流量推送到htaccess中的https。 cPanel“添加重定向”选项为https?://(www.)?,但www部分未使用

重定向到https
RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{HTTP_HOST} ^example\.co.uk [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.co.uk/$1 [R=301,L]

我设法使用下面的代码使www部分工作,但不确定是否仍然需要RewriteEngine On以及是否还需要cPanel插入的第2行和第3行,因为我从未见过它们在许多htaccess文章。

你能帮我把这个压缩成一个块,它适用于域名和访问的任何页面吗?

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{HTTP_HOST} ^example\.co.uk [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.co.uk/$1 [R=301,L]

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

1 个答案:

答案 0 :(得分:1)

这是工作代码

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]