Ich habe eine Anwendung, die auf dem Port 8080 auf Tomcat läuft. Und sie funktioniert einwandfrei mit dieser VirtualHost-Konfiguration:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ServerName www.subdomain.domain.com
ServerAlias www.subdomain.domain.com *.subdomain.domain.com
ErrorLog /var/log/apache2/subdomain.d/subdomain_er.log
CustomLog /var/log/apache2/subdomain.d/subdomain_requests.log custom
Redirect / https://subdomain.domain.es
</VirtualHost>
Jetzt habe ich einen neuen Server und eine neue Anwendung, die die „Subdomäne“ filtert und je nach Subdomänennamen unterschiedliche HTMLs und unterschiedliche Stylesheets lädt (Subdomänen werden von verschiedenen Unternehmen erstellt, die ihre eigenen Stile angeben).
Ist es möglich, den Subdomänennamen abzurufen und über https auf dieselbe Subdomäne umzuleiten? So etwas wie Servername *.domain.com und Umleitung auf die Subdomäne (*.domain.com)? In einer Variable speichern?
Ich habe das Makro durchgesehen, aber das Makro benötigt die Parameter, die ihm übergeben werden müssen. Ich weiß nicht, welche Parameter in die Anfrage eingegeben werden, es könnte Unternehmen1 sein, es könnte Unternehmen2 sein …
Antwort1
Du kannst den ... benutzenUmschreibenModul von Apache.
Stellen Sie zunächst mit dem folgenden Befehl sicher, dass es in Ubuntu aktiviert ist:
sudo a2enmod rewrite
Wenn Sie Ihrem virtuellen Host die folgende Konfiguration hinzufügen, domain.com
wird jede Subdomäne von zu einer Subdomäne von umgeleitet domain.es
.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$
RewriteRule ^/(.*)$ https://%1.domain.es/$1 [R=301,L]
Erläuterung:
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$
Diese Bedingung prüft, ob der Host dem Muster *.domain.com entspricht und speichert, was übereinstimmt
(.+)
(also die Subdomäne). Beispielsweisedomain.com
stimmt das Muster nicht überein, während die folgenden Muster übereinstimmen:dan.domain.com
www.dan.domain.com
RewriteRule ^/(.*)$ https://%1.domain.es/$1 [R=301,L]
Diese Regel weist Apache an, zu einer Subdomäne von umzuleiten
domain.es
.%1
enthält den Wert, der mit der vorherigenRewriteCond
Anweisung übereinstimmt.$1
enthält den Wert, der mit dieser Anweisung übereinstimmt, sodass Sie den Pfad so belassen können, wie er ist, und nicht zur Stammdomäne umleiten müssen.
Beispiele:
dan.domain.com
wird weitergeleitet zuhttps://dan.domain.es
www.dan.domain.com
wird weitergeleitet zuhttps://www.dan.domain.es
dan.domain.com/example
wird weitergeleitet zuhttps://dan.domain.es/example
www.dan.domain.com/example
wird weitergeleitet zuhttps://www.dan.domain.es/example