通过htaccess强制非www和https

bea*_*ear 18 .htaccess mod-rewrite https no-www

我正试图强迫用户被重定向到非www网站,并强制https.

我输入了哪种功能,但在输入http时不强制使用https.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://site.com\.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么的任何想法?

Gum*_*mbo 37

试试这条规则:

RewriteCond %{HTTP_HOST} ^(www\.)(.+) [OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)


Wil*_*ith 5

根据Gumbo的评论:“在将TLS / SSL连接传递给HTTP并进行HTTP重定向之前,已建立TLS / SSL连接并验证了证书”,我尝试了一下(看来可行):

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.blahblah.com/$1 [R,L]

RewriteCond %{HTTP_HOST} ^www\.blahblah\.com [NC]
RewriteRule ^(.*)$ https://blahblah.com/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

请告诉我这种方法是否有问题。