htaccess重写规则 - 域/子域https / www

时间:2017-08-19 12:22:49

标签: apache .htaccess mod-rewrite

我有我的主域名和子域名。子域位于主域根目录的子目录中,无法更改。主域有SSL,而子域没有。

现在,我正在尝试为主域强制httpswww,并强制不为子域httpswww。因此,最终主要域名无视其尝试访问方式,应在https://www.example.com重定向,同时子域名应为http://sub.example.com

访问它们的所有其他可能组合应该重定向到上面的2.到目前为止,我成功地为最多的可能性做了这个,但是当我使用{{1}访问子域时,我没有这样做}。它不会重定向到http版本,而是会尝试通过https加载页面,浏览器会抛出有关SSL的安全警告,如果我继续,它会通过子域和不安全的警告加载主域网站的内容在浏览器上。

以下是我正在尝试的htaccess规则,在根目录的htaccess上,它影响主站点和子域。

如何改善它们并达到预期的效果?

https://sub.example.com

1 个答案:

答案 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]