我有一个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?
答案 0 :(得分: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...