Перенаправить все домены .org .ca .net в основной домен - PullRequest
0 голосов
/ 01 ноября 2019

Наш сервер настроен как apache2 в Ubuntu.

Мы приобрели example.com, example.ca, example.org и example.net. Я пытаюсь перенаправить все версии этих примеров на наш https://www.example.com, пытаясь быть СУХОЙ, насколько это возможно. Я нашел много примеров перенаправления http на https или www. для не www. однако я не могу найти много общих правил для отправки всех:

http://www.example.ca
http://example.ca
https://example.ca
https://www.example.ca

(То же, что и выше с .org, .net и .com)

Все на https://www.example.com

Я добавил приведенные ниже правила в наш файл 000-default.conf. Мне интересно, есть ли более чистый способ написания этих правил для лучшего перенаправления на https://www.example.com, и я также ищу помощь с перенаправлением всех запросов https для всех примеров на https://www.example.com. Пожалуйста, дайте мне знать, еслиЯ обедаю или нет.

Спасибо за помощь заранее.

000-default.conf

# Redirect .net to .com
<VirtualHost *:80>
    ServerName www.example.net
  ServerAlias example.net
  RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www\.)?example\.(net)$ [NC]
    RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=301]
</VirtualHost>

# Redirect .org to .com
<VirtualHost *:80>
    ServerName www.example.org
  ServerAlias example.org
  RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www\.)?example\.(org)$ [NC]
    RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=301]
</VirtualHost>

# Redirect .ca to .com
<VirtualHost *:80>
    ServerName www.example.ca
  ServerAlias example.ca
  RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www\.)?example\.(ca)$ [NC]
    RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=301]
</VirtualHost>

# Redirect back to example.com
<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    RewriteEngine on
  RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>

# Enable ssl certifications
<VirtualHost *:443>
    DocumentRoot /var/www/html
    ServerName www.example.com
    ServerAlias example.com
    SSLEngine on
    SSLCertificateFile path to chain
    SSLCertificateKeyFile path to key
</VirtualHost>

1 Ответ

1 голос
/ 03 ноября 2019
# Redirect anything http:// to https://www.example.com
<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com example.net www.example.net example.org www.example.org example.ca www.example.ca
    RewriteEngine on
    RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,R=302]
</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.com
    ServerAlias example.com example.net www.example.net example.org www.example.org example.ca www.example.ca
    SSLEngine on
    SSLCertificateFile path to chain
    SSLCertificateKeyFile path to key
    RewriteEngine on
    # Redirect anything not www.example.com to https://www.example.com
    RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
    RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,R=302]
</VirtualHost>

После подтверждения правильности работы замените 302 на 301.

...