我正在尝试解决如何将所有http实例重定向到https://但排除子域名。
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(www\.)?example.co [NC]
RewriteRule (.*) https://example.co/$1 [L,R=301,QSA]
例如, domain.example.co 应保持原样,不会重定向到https://
。
example.co 或 example.co/sub/sub 重定向到https://
我尝试过更改RewriteRule:
RewriteRule ^$ https://example.co/$1 [R,L]
这会保留子域名,但对example.co下的子目录没有影响 - 例如example.co/sub/sub。
如何从http重定向到https但排除所有子域?
注意
我还有一个重写规则,它将子域指向其目录而不更改URL:
RewriteCond %{HTTP_HOST} ^(.*)\.example\.co [NC]
RewriteRule ^(.*)/?$ http://example.co/%1/$1 [P]
sub.example.co
会显示example.co/sub
,但网址不会更改
答案 0 :(得分:0)
你可以试试这个:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(.+\.)?domain\.com$
RewriteRule ^(.*)$ https://%1domain.com/$1 [R,L]
或者这个:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(www\.)?sub\.domain\.com$
RewriteRule ^(.*)$ https://sub.domain.com/$1 [R,L]
注意:使用域名
替换sub子域和域享受它; - )
答案 1 :(得分:0)
尝试以下我假设你没有使用www附加到主机。
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^example.co [NC]
RewriteRule ^(.*)$ https://example.co/$1 [L,R=301,QSA]
RewriteCond %{HTTP_HOST} ^(.*)\.example\.co [NC]
RewriteRule ^(.*)/?$ http://example.co/%1/$1 [P]
ProxyPassReverse / http://example.co/