我有我的主域名和子域名。子域位于主域根目录的子目录中,无法更改。主域有SSL,而子域没有。
现在,我正在尝试为主域强制https
和www
,并强制不为子域https
和www
。因此,最终主要域名无视其尝试访问方式,应在https://www.example.com
重定向,同时子域名应为http://sub.example.com
访问它们的所有其他可能组合应该重定向到上面的2.到目前为止,我成功地为最多的可能性做了这个,但是当我使用{{1}访问子域时,我没有这样做}。它不会重定向到http版本,而是会尝试通过https加载页面,浏览器会抛出有关SSL的安全警告,如果我继续,它会通过子域和不安全的警告加载主域网站的内容在浏览器上。
以下是我正在尝试的htaccess规则,在根目录的htaccess上,它影响主站点和子域。
如何改善它们并达到预期的效果?
https://sub.example.com
答案 0 :(得分:1)
To redirect only the main domain to https, you can use the following rule :
RewriteEngine on
#https to http (subdomain)
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^sub.example.com$
RewriteRule ^ http://sub.example.com%{REQUEST_URI} [NE,L,R]
#main domain
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(example\.com)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]