Поддомен перенаправляет меня на основной домен Apache2

Поддомен перенаправляет меня на основной домен Apache2

У меня есть сайт, работающий на сервере Apache. Когда я пытаюсь посетить поддомен, меня перенаправляют на основной домен.

Вот файл конфигурации Apache:

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName azaanjobs.com
        ServerAlias www.azaanjobs.com
        DocumentRoot /var/www/azaanjobs/public_html

        <Directory /var/www/azaanjobs/public_html/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Include /etc/letsencrypt/options-ssl-apache.conf

        SSLCertificateFile /etc/letsencrypt/live/azaanjobs.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/azaanjobs.com/privkey.pem
    </VirtualHost>
</IfModule>

<VirtualHost *:8080>
    ServerAdmin [email protected]
    ServerName government-jobs.azaanjobs.com
    ServerAlias www.government-jobs.azaanjobs.com.com
    DocumentRoot /var/www/government-jobs/public_html/
    
    <Directory /var/www/government-jobs/public_html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

Как я могу это исправить?

решение1

Apache попытается сопоставить веб-запрос с настроенными доменами в том порядке, в котором они указаны в файловой системе.ив файлах конфигурации. Как правило, лучше обрабатывать поддомены до основного сайта, который должен быть настроен так, чтобы действовать как «перехватчик» для любого необработанного трафика.

Учитывая это, ваш файл конфигурации можно обновить следующим образом:

<VirtualHost *:8080>
    ServerAdmin [email protected]
    ServerName government-jobs.azaanjobs.com
    ServerAlias www.government-jobs.azaanjobs.com
    DocumentRoot /var/www/government-jobs/public_html/
    
    <Directory /var/www/government-jobs/public_html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName azaanjobs.com
        ServerAlias www.azaanjobs.com *.azaanjobs.com
        DocumentRoot /var/www/azaanjobs/public_html

        <Directory /var/www/azaanjobs/public_html/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Include /etc/letsencrypt/options-ssl-apache.conf

        SSLCertificateFile /etc/letsencrypt/live/azaanjobs.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/azaanjobs.com/privkey.pem
    </VirtualHost>
</IfModule>

Примечания:

  1. обновленный файл конфигурации заменяет неправильное www.government-jobs.azaanjobs.com.comзначение на ServerAliasправильную .comссылку
  2. *.azaanjobs.comк основному домену был добавлен псевдоним, чтобы гарантировать, что любой «неожиданный» трафик будет перехвачен и направлен в вероятное местоположение
  3. похоже, на основном сайте нет никакой конфигурации для *:80, что может быть проблемой, если что-то перед сервером не преобразует не-SSL-трафик в использование SSL
  4. поддомен все еще прослушивает порт 8080, поэтому его необходимо обновить, *:80прежде чем посетители смогут видеть сайт без указания порта в своем браузере.

Не забудьте перезапустить Apache после изменения файла конфигурации:

sudo service apache2 restart

Это должно дать вам то, что вам нужно.

Связанный контент