将多个域重定向到仅https

时间:2018-08-28 06:21:20

标签: .htaccess redirect dns

我有三个域:

  1. example.com
  2. example.net
  3. domain2.example

我希望所有域(www / non-www / HTTPS / non-HTTPS流量)重定向到https://www.example.com

我知道我需要先将example.netdomain2.example(www / non-www和HTTPS)重定向到example.com,然后再重定向到https://www.example.com(SSL证书仅用于{ {1}}和example.com)。

www.example.com(整个文件):

.htaccess

似乎只有RewriteEngine on RewriteBase / RewriteCond !{HTTPS} off RewriteCond %{HTTP_HOST} ^(www\.)?example.com [NC] RewriteRule ^/?$ "https\:\/\/www\.example\.com" [R=301,L] RewriteCond !{HTTPS} off RewriteCond %{HTTP_HOST} ^(www\.)?example.net [NC,OR] RewriteCond %{HTTP_HOST} ^(www\.)?domain2.example [NC] RewriteRule ^/?$ "http\:\/\/www\.domain1\.com" [R=301,L] RewriteCond !{HTTPS} on RewriteCond %{HTTP_HOST} ^(www\.)?example.com [NC] RewriteRule ^/?$ "https\:\/\/www\.example\.com" [R=301,L] RewriteCond !{HTTPS} on RewriteCond %{HTTP_HOST} ^(www\.)?example.net [NC,OR] RewriteCond %{HTTP_HOST} ^(www\.)?domain2.example [NC] RewriteRule ^/?$ "http\:\/\/www\.example\.com" [R=301,L] # disable directory listing Options -Indexes # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress 重定向规则有效,但是example.comexample.net重定向无效。这可以上班吗?

1 个答案:

答案 0 :(得分:0)

这应该足够了:

RewriteCond !{HTTPS} on [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ 
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]

请记住,为了响应https://对其他域的请求,您需要具有该域名的证书(即使您仅想执行重定向,也需要它!)。