Перенаправить несколько доменов только на https - PullRequest
0 голосов
/ 28 августа 2018

У меня есть три домена:

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

Я хочу, чтобы все домены (трафик www / non-www / HTTPS / non-HTTPS) перенаправляли на https://www.example.com.

Я знаю, что мне нужно перенаправить example.net и domain2.example (www / non-www и HTTPS) сначала на example.com, а затем на https://www.example.com (сертификат SSL предназначен только для 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.com работают нормально, но перенаправления example.net и domain2.example не работают. Можно ли получить работу?

1 Ответ

0 голосов
/ 28 августа 2018

Этого должно быть достаточно:

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

Имейте в виду, что для ответа на https:// запросы для других доменов вам необходимо иметь сертификат для этого доменного имени (он нужен вам, даже если вы хотите только перенаправить!).

...