我需要使用apache服务器重定向从http到https的所有流量。我想保留我的实际重定向(没有www - >带www)
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule (.*) https://www.domain.com/$1 [R=301,L]
有了这个htaccess,我有http-> https重定向,没有www->有www重定向,但不要同时进行。
我需要这个重定向:
http://domain.com
- > https://www.domain.com
http://domain.com/foo/bar
- > https://www.domain.com/foo/bar
由于
答案 0 :(得分:1)
您可以使用[OR]
子句将单个重定向规则中的两个条件组合在一起:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^ https://www.domain.com%{REQUEST_URI} [R=301,L,NE]
现在,如果您想避免在此规则中使用硬编码域名,请使用:
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
在测试此更改之前清除浏览器缓存。