Ich habe eine Website, die auf einem Apache-Server läuft. Wenn ich versuche, eine Subdomäne zu besuchen, werde ich zur Hauptdomäne umgeleitet.
Hier ist die Apache-Konfigurationsdatei:
<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>
Wie kann ich das beheben?
Antwort1
Apache versucht, eine Webanforderung mit den konfigurierten Domänen in der Reihenfolge abzugleichen, in der sie im Dateisystem erscheinenUndin den Konfigurationsdateien. Als allgemeine Faustregel gilt, dass es besser ist, Subdomains vor der Hauptseite zu behandeln, die so konfiguriert werden sollte, dass sie als „Auffangbecken“ für allen nicht behandelten Datenverkehr fungiert.
Vor diesem Hintergrund könnte Ihre Konfigurationsdatei so aktualisiert werden, dass sie wie folgt aussieht:
<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>
Anmerkungen:
- Die aktualisierte Konfigurationsdatei ersetzt den falschen
www.government-jobs.azaanjobs.com.com
WertServerAlias
durch eine korrekte.com
Referenz *.azaanjobs.com
Der Hauptdomäne wurde ein Alias hinzugefügt, um sicherzustellen, dass jeglicher „unerwarteter“ Datenverkehr erfasst und an einen wahrscheinlichen Ort weitergeleitet wird- es scheint keine Konfiguration auf der Hauptseite für zu geben
*:80
, was ein Problem sein könnte, wenn etwas vor dem Server den Nicht-SSL-Verkehr nicht in SSL umwandelt - die Subdomäne lauscht immer noch auf Port
8080
, daher muss dies aktualisiert werden,*:80
bevor Besucher die Site sehen können, ohne den Port in ihrem Browser anzugeben
Denken Sie daran, Apache nach dem Ändern der Konfigurationsdatei neu zu starten:
sudo service apache2 restart
Dies sollte Ihnen geben, was Sie brauchen