Назад | Перейти на главную страницу

Два сайта на одном сервере с нежелательным перенаправлением

У меня два разных сайта
domain1.com
domain2.com

Проблема : Я могу получить доступ к domain2.com только с помощью www.domain2.com
Если я попробую domain2.com, он будет перенаправлен на domain1.com.

Файлы конфигурации:
domain1.com.conf

  <VirtualHost *:80>     
     ServerName domain1.com
     ServerAlias www.domain1.com
     DocumentRoot /var/www/html
   </VirtualHost>
   <IfModule mod_ssl.c>
     <VirtualHost *:443>
       DocumentRoot /var/www/html
       ServerName www.domain1.com
       Include /etc/letsencrypt/options-ssl-apache.conf
       SSLCertificateFile /etc/letsencrypt/live/domain1.com/fullchain.pem
       SSLCertificateKeyFile /etc/letsencrypt/live/domain1.com/privkey.pem
     </VirtualHost>
   </IfModule>

domain2.com.conf

   <VirtualHost *:80>
           ServerName domain2.com
           ServerAlias www.domain2.com
           DocumentRoot /var/www/public_html/domain2.com/wordpress
   </VirtualHost>
   <IfModule mod_ssl.c>
   <VirtualHost *:443>
           ServerAdmin gneri94@gmail.com
           DocumentRoot /var/www/public_html/domain2.com/wordpress
           ServerName www.domain2.com
           Include /etc/letsencrypt/options-ssl-apache.conf
           SSLCertificateFile /etc/letsencrypt/live/domain2.com/fullchain.pem
           SSLCertificateKeyFile /etc/letsencrypt/live/domain2.com/privkey.pem
   </VirtualHost>
   </IfModule>


.htaccess на обоих сайтах

# BEGIN WordPress                         
  RewriteEngine On 
  RewriteBase / 
  RewriteRule ^index\.php$ - [L] 
  RewriteCond %{REQUEST_FILENAME} !-f 
  RewriteCond %{REQUEST_FILENAME} !-d 
  RewriteRule . /index.php [L] 


команда certbot certificates возвращает:

Имя сертификата: domain1.com
Домены: domain1.com www.domain1.com
Путь к сертификату: /etc/letsencrypt/live/domain1.com/fullchain.pem
Путь к закрытому ключу: /etc/letsencrypt/live/domain1.com/privkey.pem

Имя сертификата: domain2.com
Домены: domain2.com www.domain2.com
Путь к сертификату: /etc/letsencrypt/live/domain2.com/fullchain.pem
Путь к закрытому ключу: /etc/letsencrypt/live/domain2.com/privkey.pem

Для порта 80 vHost у вас есть:

ServerName domain2.com
ServerAlias www.domain2.com

Но для порта 443 у вас есть только:

ServerName www.domain2.com

(Это относится как к домену 1, так и домену 2.)

Итак, если вы получите доступ https://domain2.com он будет перехвачен vHost по умолчанию (то есть первым, который определен: www.domain1.com)

Вам также следует подумать о перенаправлении на HTTPS (канонический) домен через порт 80 vHost.