1

我有一个 ExpressionEngine 站点,我需要强制 SSL删除 www。从网址。我正在使用这段代码:

RewriteEngine On
RewriteBase /

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

# Remove index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^(.*)$ index.php/$1 [L]

但我刚刚意识到,如果有人访问https://www.URLHERE.com,他们不会删除 www。有没有办法在一个规则中同时强制 SSL 和删除 WWW(即我可以做一个“或”或其他什么?)还是我必须制定 2 个规则,一个删除 WWW,一个强制 SSL?

4

1 回答 1

2

在您的规则中有OR两个条件的条件:

RewriteEngine On
RewriteBase /

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

// rest of your rules here...
于 2013-10-14T13:09:40.407 回答