2017-06-02 36 views
0

我使用的是后续的.htaccess代码做以下域名不带www的SSL:简化重定向

的.htaccess

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

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

RewriteRule ^([^.]+)/?$ index.php?get=$1 [L] 

这工作正常,但这个代码仍然可以简化?

回答

0

您可以结合http->https规则和www去除规则成一个单一的规则,有你的.htaccess就象这样:

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [R=302,L,NE] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .+ index.php?get=$0 [L,QSA] 
+0

有趣的,这增加了一个额外线。 – IMB

+0

是的,但少一条规则 – anubhava