我已设置我的.htaccess来重定向来自http://subdomain.domain.com.tld,http://www.subdomain.domain.com.tld和http://domain.com.tld/folder的请求(包含子域内容的文件夹)到https://subdomain.domain.com.tld,因此我始终使用subdomain.domain.com.tld的单域SSL证书设置。
我的问题是http://domain.com.tld也重定向到https://subdomain.domain.com.tld。我该如何阻止它?
RewriteOptions inherit
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^subdomain.domain\.com.tld
RewriteRule ^(.*)$ https://subdomain.domain.com.tld/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^folder$ "https\:\/\/subdomain\.domain\.com\.tld\/" [R=301,L]
谢谢。
答案 0 :(得分:1)
这些规则应该取代RewriteEngine on
之后的所有内容:
RewriteCond %{HTTP_HOST} ^(www\.)?subdomain\.domain\.com\.tld$ [NC]
RewriteRule ^(.*)$ https://subdomain.domain.com.tld$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^domain\.com\.tld$ [NC]
RewriteRule ^folder/?(.*)$ https://subdomain.domain.com.tld$1 [R=301,L]
第一组规则与http://subdomain.domain.com.tld和http://www.subdomain.domain.com.tld
相匹配第二组与http://domain.com.tld/folder匹配,但在没有“文件夹”部分的情况下与http://domain.com.tld不匹配。
编辑:更正了评论和RewriteConds中的转义点中记录的拼写错误。