У меня есть сайт, работающий на сервере 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>
Примечания:
- обновленный файл конфигурации заменяет неправильное
www.government-jobs.azaanjobs.com.com
значение наServerAlias
правильную.com
ссылку *.azaanjobs.com
к основному домену был добавлен псевдоним, чтобы гарантировать, что любой «неожиданный» трафик будет перехвачен и направлен в вероятное местоположение- похоже, на основном сайте нет никакой конфигурации для
*:80
, что может быть проблемой, если что-то перед сервером не преобразует не-SSL-трафик в использование SSL - поддомен все еще прослушивает порт
8080
, поэтому его необходимо обновить,*:80
прежде чем посетители смогут видеть сайт без указания порта в своем браузере.
Не забудьте перезапустить Apache после изменения файла конфигурации:
sudo service apache2 restart
Это должно дать вам то, что вам нужно.