我想:
http://example.com
重定向到:http://www.example.com
https://example.com
重定向到:https://www.example.com
任何http://whatever.example.com
的内容都不会像http://www.whatever.example.com
那样添加www。
答案 0 :(得分:35)
尝试此规则:
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
以下是解释:
on
和off
)和s
的值的连锁值(所以{{} 1}}或ons
)等于offs
并捕获ons
。这意味着如果s
评估为%{HTTPS}s
,则第一个匹配组为ons
,否则为空。s
),如果两个条件都为真,则将它们重定向到评估值^
。其中http%1://www.%{HTTP_HOST}%{REQUEST_URI}
是上一个条件的第一个匹配组(%1
如果是HTTPS,否则为空),s
是请求的HTTP 主机并且{{ 1}}是请求的绝对URL路径。答案 1 :(得分:2)
尝试将此RewriteCond
添加到.htaccess文件中以仅捕获SSL - 然后对标准http执行相同的操作。
RewriteCond %{HTTPS} on