
Ich möchte einfach alle Subdomains, die nicht bereits in einem virtuellen Host erwähnt sind, ServerName
auf die leere Subdomain umleiten. Ich habe versucht, dies nach allen anderen virtuellen Hosts dieser Domain zu meiner httpd.conf hinzuzufügen.
<VirtualHost *:80>
ServerName *.example.com
RedirectPermanent / http://example.com/
</VirtualHost>
Der Abschnitt für die leere Subdomäne (vorher geladen) lautet wie folgt.
<VirtualHost *:80>
DocumentRoot /var/www/example/htdocs
ServerName example.com
<Directory /var/www/example/htdocs>
Options FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
Nach dem Neustart des httpd-Dienstes wird mir 403 Forbidden angezeigt, wenn ich meinen Browser auf zeige abc.example.com
. Was mache ich falsch? Ich hoffe, dass kein regex-basiertes Matching wie beschrieben erforderlich ist.in anderen Antwortenfür diese einfache Aufgabe.
Antwort1
Fügen Sie einfach einen Block unter dem Hauptblock in IhremvhostKonfigurationsdatei. Geben Sie einfach ServerAlias
den Platzhalter *
für die Subdomains an. Geben Sie abschließend die Umleitungsadresse mit an RedirectPermanent
.
Listen 80
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName example.com
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerAlias *.example.com
RedirectPermanent / http://example.com/
</VirtualHost>
Antwort2
<VirtualHost *:80>
DocumentRoot "/var/www/example"
ServerName *.example.org
RedirectPermanent / http://example.com/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/example/htdocs"
ServerName example.org
<Directory /var/www/example/htdocs>
Options FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
Bei dem Fehler 403 haben Sie möglicherweise kein Standarddokument festgelegt. Daher wird versucht, auf den Ordnerinhalt zuzugreifen. Als Standarddokument können Sie beispielsweise verwenden
DirectoryIndex index.html Index.htm index.php