使用.htaccess强制SSL和WWW

use*_*937 27 .htaccess ssl https web

我想知道.htaccess在URL中强制SSL和WWW的代码是否正确,因为使用其他代码我通常会获得重定向循环,例如RewriteCond %{HTTPS} !=on现在它就像魅力一样(可疑).还有,可以写得更好/更简单吗?

# Force to SSL
RewriteCond %{HTTP:HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

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

Ale*_*ley 45

这有点简单.

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


zx8*_*x81 36

用这个:

RewriteEngine on

# Force www: from http://stackoverflow.com/a/4958847/1078583
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Force SSL: From http://stackoverflow.com/q/24322035/
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
Run Code Online (Sandbox Code Playgroud)

  • @Jabari看起来我可能粘贴了这两段代码(请参阅URL).但一般情况下,测试时建议使用302,然后当您确定重定向有效时,请移至301. (2认同)

Jas*_*der 10

无需填写域。无论如何,这都在强制使用WWWHTTPS。这也是在处理子文件夹。

RewriteEngine On

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

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)

  • 我想我更喜欢这个。 (2认同)