Wildcard Subdomain ohne ServerAlias?
Voodoo
- webserver
Hallo!
Ich habe folgendes Problem:
Ich habe mir in Confixx eine Wildcard-Subdomain *.domain.com eingerichtet, die auf / zeigt.
Das funktioniert auch.
Jetzt wollte ich mit der RewriteEngine die Anfragen *.domain.com intern nach domain.com/* umleiten. Dazu hab ich folgenden Code in die htaccess in / gepackt:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com [NC]
RewriteRule (.*) %2/$1 [L]
Wenn ich jetzt zum Beispiel dev.domain.com aufrufe bekomme ich einen schönen Internal Server Error.
Ich habe mal ein bisschen rumgesucht und etwas von wegen ServerAlias in der httpd.conf gefunden. Jetzt meine Frage: Kann ich die WildCard-Subdomain irgendwie so einrichten, dass sie funktioniert, oder ist dazu der ServerAlias zwingend notwengig? Ich hab nämlich keinen Zugriff auf den Vhost-Abschnitt der httpd.conf bei meinem Hoster.
Grüße aus dem Wald
Voodoo
Ich habe mal ein bisschen rumgesucht und etwas von wegen ServerAlias in der httpd.conf gefunden. Jetzt meine Frage: Kann ich die WildCard-Subdomain irgendwie so einrichten, dass sie funktioniert, oder ist dazu der ServerAlias zwingend notwengig? Ich hab nämlich keinen Zugriff auf den Vhost-Abschnitt der httpd.conf bei meinem Hoster.
es müssen zumindest sämtliche anfragen die keinem vhost zugeordent sind irgendwo landen (entweder laufen die ins leere oder auf einen default-vhost, der dann alles weitere regelt) ohne zugriff auf die konfiguration des servers, wird das wohl nix werden
im übrigen meinst du wahrscheinlich example.com
Danke für die Antwort!
Nur damit ich das richtig verstehe:
Die Anfrage *.example.com landet zwar bei der richtigen htaccess, aber der Server kann das dann nicht intern weiterleiten, ohne dass *.example.com als ServerAlias eingetragen ist? Weshalb interessiert das überhaupt; Geschieht die interne Weiterleitung nicht sowieso relativ?
Gruß
Voodoo
Danke für die Antwort!
Nur damit ich das richtig verstehe:
Die Anfrage *.example.com landet zwar bei der richtigen htaccess, aber der Server kann das dann nicht intern weiterleiten, ohne dass *.example.com als ServerAlias eingetragen ist? Weshalb interessiert das überhaupt; Geschieht die interne Weiterleitung nicht sowieso relativ?
nein *.example.com ist gem. rfc 1034 kein gültiger domainname und kann somit auch nie bei einem server ankommen
du kannst mit blah.example.com oder mit weee.example.com daherumkommen, wenns keinen vhost gibt, der bei ServerName oder ServerAlias etwas in diese richtung eingetragen hat, entscheidet der webserver nach konfiguration, was passieren wird
bad request oder die default seite bzw den default-vhost aufrufen
dieser default-vhost kann dann wiederum den domainnamen analysieren und auf den richtigen vhost weiterleiten
echo $begrüßung;
du kannst mit blah.example.com oder mit weee.example.com daherumkommen, wenns keinen vhost gibt, der bei ServerName oder ServerAlias etwas in diese richtung eingetragen hat, entscheidet der webserver nach konfiguration, was passieren wird
Man kann sowohl bei VirtualHost als auch bei ServerAlias die Jokerzeichen * und ? verwenden. Wenn kein VHost mit passendem VirtualHost ServerName und (optional) ServerAlias gefunden wurde, wird der Request zur ersten VHost-Konfiguration geleitet. Apache-Doku: Unterstützung namensbasierter virtueller Hosts
bad request oder die default seite bzw den default-vhost aufrufen
Der Wortlaut eines 500er ist bewusst so allgemein nichtssagend gehalten, damit nicht unnötig Interna an Besucher rausgegeben werden. Am besten im Error-Log nachlesen, was genau die Fehlerursache ist. Alles andere ist nur Stochern im Nebel. Leider steht das manchmal nicht zur Verfügung, weil der Hoster einen da nicht ranlässt. In dem Fall kann es helfen, sich die selbe Apache-Version auf einer Testmaschine einzurichten und den Fehler nachzustellen versuchen.
dieser default-vhost kann dann wiederum den domainnamen analysieren und auf den richtigen vhost weiterleiten
Wie genau, stellst du dir vor, kann man das konfigurieren? Rewriting im Default-VHost?
echo "$verabschiedung $name";
Man kann sowohl bei VirtualHost als auch bei ServerAlias die Jokerzeichen * und ? verwenden. Wenn kein VHost mit passendem VirtualHost ServerName und (optional) ServerAlias gefunden wurde, wird der Request zur ersten VHost-Konfiguration geleitet. Apache-Doku: Unterstützung namensbasierter virtueller Hosts
thx for info - wieder was gelernt
Wie genau, stellst du dir vor, kann man das konfigurieren? Rewriting im Default-VHost?
"frameweiterleitungen" usw werden von den großen hostern doch auf diese weise gemacht - sämtliche domains verweisen auf einen "redirect server" (oder eben einen vhost) und werden entsprechend umgeleitet