通过.htaccess文件将所有子域重定向到https

时间:2018-06-27 18:20:39

标签: .htaccess ssl redirect https http-redirect

由于预计Google Chrome浏览器将于7月1日生效,因此我想确保我管理的网站上的所有文件都重定向到https。这是一台Apache服务器,文件中已经包含以下文件(出于演示目的,使用了虚假域名):

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^example.org$ [OR]
RewriteCond %{HTTP_HOST} ^www.example.org$
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "https\:\/\/www\.example\.com\/" [R=301,L]

如您在上面看到的,存在一个从我正在停车的域(example.org)到我正在管理的主域(example.com)的重定向。除此之外,我想做的就是该网站的所有页面,包括所有重定向到每个页面的https版本的子域。例如,当某人去http://webmail.example.com时我希望他们去https://webmail.example.com或当管理员去http://cpanel.example.com时,他们应该被重定向到https://cpanel.example.com

我喜欢将URL中的www保留在该站点的子域之外。例如,如果有人去http://example.com/folder/file,我希望他们去https://www.example.com/folder/file

上面的代码位于根文件夹的.htaccess文件中。为了使此子域名正常工作,我是否需要在每个子域的文件夹中都有一个.htaccess文件?还是我只是在现有的.htaccess文件中做错了什么?

0 个答案:

没有答案