SebastianJu: Strato Subdomains mit Wildcard anlegen nicht möglich. Ausweg?

Hallo,

ich wollte bei einer bei Strato gehosteten Webseite eine Subdomainweiterleitung auf die Hauptdomain einrichten. Es besteht bereits eine Subdomain die bei Strato eingerichtet ist. Alle weiteren Aufrufe der Seite über eine Subdomain sollen nun halt nicht mehr in einer unerreichbaren Seite enden sondern auf die Hauptdomain umgeleitet werden. Dummerweise akzeptiert die Stratoseite offenbar kein Wildcard (*).

Kann ich trotzdem alle Subdomains auf die Hauptdomain umleiten? ZB per .htaccess oder so? Oder geht das wirklich nur von Hosterseite aus?

Grüße!
Sebastian

  1. Dummerweise akzeptiert die Stratoseite offenbar kein Wildcard (*).

    wildcard-domains müssen einerseits von der dns-software (bind kann das) und andererseits vom webserver (apache kann das) unterstützt werden - ob stato das kann/unterstütz, weiss ich nicht

    Kann ich trotzdem alle Subdomains auf die Hauptdomain umleiten? ZB per .htaccess oder so? Oder geht das wirklich nur von Hosterseite aus?

    domains können niemals per dns "weitergeleitet" werden, höchstens http-anfragen auf eine ressource die zufällig direkt unter einer domain liegt

    grundvoraussetzung dafür ist aber, dass die domains existieren - wenn die domain foo.example.com im dns und der serverkonfiguration (wichtig, in beidem - eins allein klappt nicht [1]) nicht existiert, kannst du sie 100x umleiten versuchen (per http) und es wird nicht klappen

    was möchtest du
    a)
    example.com und sub.example.com liefern den selben inhalt aus (das jeweils eingegebene bleibt in der adresszeile stehen)

    b)
    wenn ich auf sub.example.com gehe, werde ich umgeleitet und es steht example.com in der adresszeile

    [1] ausser der server hat ohnehin nur einen vhost und liefert alles aus

    1. Hallo suit,

      ich möchte a. Es soll der gleiche Inhalt sein und die gleiche url damit zB mitgegeben Parameter auf der Seite ausgewertet werden können...

      b wäre dann ok wenn alle Parameter nach index.php/ mitgegeben würden damit sie ausgewertet werden können...

      Die parameter sehen zB so aus: index.php/cde-fac-kp
      Also der letzte Teil nach dem Slash.

      Grüße!
      Sebastian

      1. Hallo,

        Die parameter sehen zB so aus: index.php/cde-fac-kp
        Also der letzte Teil nach dem Slash.

        Sorry, aber mein Astrologie-Studium ist noch nicht beendet, ich wusste vorher nicht, dass du mit mod_rewrite arbeitest

        mfg, Flo

        --
        Developers are dying. Computers are getting trash. CEO's become forgetten. The only remaining things are ideas, lies and crises. So if you want to be immortal, first think, than stop it and go to microsoft and become later a manager at Lehman Brothers...
        sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
        *Zu dem de:> Ich benutze wegen IE im moment noch tabellen, weil dieser display:table noch nicht versteht. Ich werde aber, wenn IE 6 & IE 7 < 10% mein neues CSS-Layout einspielen...
        1. Wie meinst du das Flo? Ich arbeite nicht mit mod_rewrite. Dasjenige nach dem Slash sind nur parameter die in der index.php dann verarbeitet werden...

          Grüße!
          Sebastian

          1. Hallo,

            Wie werden die ohne mod_rewrite verwendet? So sieht es aus, als ob index.php ein Ordner ist und die komische Zeichenkette eine Datei darin!

            mfg, Flo

            --
            Developers are dying. Computers are getting trash. CEO's become forgetten. The only remaining things are ideas, lies and crises. So if you want to be immortal, first think, than stop it and go to microsoft and become later a manager at Lehman Brothers...
            sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
            *Zu dem de:> Ich benutze wegen IE im moment noch tabellen, weil dieser display:table noch nicht versteht. Ich werde aber, wenn IE 6 & IE 7 < 10% mein neues CSS-Layout einspielen...
            1. Die werden über Servervariablen mit php ausgelesen. Was die index.php zB macht. Darin werden dann alle Zeichen nach dem letzten Slash ausgelesen und ausgewertet. Habe ich mir angewöhnt weil es mal als eine suchmaschinenfreundlichere Methode galt Parameter zu übergeben. Ob das so gilt weiß ich nicht. Funktionieren tut es jedenfalls problemlos.

              Grüße!
              Sebastian

              1. Habe ich mir angewöhnt weil es mal als eine suchmaschinenfreundlichere Methode galt Parameter zu übergeben. Ob das so gilt weiß ich nicht. Funktionieren tut es jedenfalls problemlos.

                ob deine ressource mit example.com/foo/bar/baz oder mit example.com/?id=foo&page=bar&offset=baz aufgerufen wird, ist ansich egal

                interessanter hingegen ist example.com/artikel/wie-sterbe-ich-schneller anstatt example.com?id=13

                aber zurück zum thema: was mein vorreder damit meint
                example.com/index.php/cde-fac-kp ruft ohne weiteres zutun die datei cde-fac-kp im verzeichnis index.php auf

                das intern in index.php?p=cde-fac-kp umzuwandeln bedarf üblicherweise einer logik, die zb mod_rewrite bereitstellt

                1. example.com/index.php/cde-fac-kp ruft ohne weiteres zutun die datei cde-fac-kp im verzeichnis index.php auf

                  Tut es aber nicht. Da es erstens keine solchen Dateien gibt und zweitens funktioniert es ja so dass die index.php aufgerufen wird. Da muss auch nichts umgewandelt werden. Ich kann dir den Codeschnipsel geben wenn du mir nicht glaubst. Das wird wirklich nur per php ausgewertet. Ob da eventuell eine gleichnamige Datei aufgerufen werden könnte ist mir noch nie untergekommen weil es nie eine solche Datei gab...

                  Grüße!
                  Sebastian

                  1. Tut es aber nicht. Da es erstens keine solchen Dateien gibt und zweitens funktioniert es ja so dass die index.php aufgerufen wird. Da muss auch nichts umgewandelt werden. Ich kann dir den Codeschnipsel geben wenn du mir nicht glaubst. Das wird wirklich nur per php ausgewertet. Ob da eventuell eine gleichnamige Datei aufgerufen werden könnte ist mir noch nie untergekommen weil es nie eine solche Datei gab...

                    wie angesprochene variante mit dem analysieren des pfades ist natürlich eine möglichkeit - mich interessiert nur prinzipiell, wie du das machst - weils imho eine äusserst unübliche variante ist

                    1. Hier ist die Variante mit der ich die Parameter abrufe. Ich hoffe das ist das Richtige... :) :

                      $aPath_info=explode(".php/",$_SERVER['PHP_SELF']);
                      if (ltrim($_SERVER['PATH_INFO'],"/") == "")
                       {
                       $path_info=ltrim($_SERVER['ORIG_PATH_INFO'],"/");
                       }
                      else
                       {
                       $path_info=ltrim($_SERVER['PATH_INFO'],"/");
                       }

                      Die unterschiedlichen Servervariablen sind nötig wegen unterschiedlicher Konfigurationen bei den Hostern... Bei einer Umstellung bei meinem Hoster klappte es zB mal nicht mehr bis ich das Abrufen umstellte...

                      Grüße!
                      Sebastian

                  2. Hallo,

                    ...und zweitens funktioniert es ja so dass die index.php aufgerufen wird.

                    Mein Apache streikt bei sowas immer :) Ich muss mir das sowieso nochmal angucken!

                    mfg, Flo

                    --
                    Developers are dying. Computers are getting trash. CEO's become forgetten. The only remaining things are ideas, lies and crises. So if you want to be immortal, first think, than stop it and go to microsoft and become later a manager at Lehman Brothers...
                    sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
                    *Zu dem de:> Ich benutze wegen IE im moment noch tabellen, weil dieser display:table noch nicht versteht. Ich werde aber, wenn IE 6 & IE 7 < 10% mein neues CSS-Layout einspielen...
              2. Hallo,

                Die werden über Servervariablen mit php ausgelesen. Was die index.php zB macht.

                Aber die wird doch gar nicht aufgerufen ohne mod_rewrite, weil danach noch weitere Angaben folgen. Erst ab dem ersten ? wird der Pfad ignoriert (oder irre ich mich?).

                mfg, Flo

                --
                Developers are dying. Computers are getting trash. CEO's become forgetten. The only remaining things are ideas, lies and crises. So if you want to be immortal, first think, than stop it and go to microsoft and become later a manager at Lehman Brothers...
                sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
                *Zu dem de:> Ich benutze wegen IE im moment noch tabellen, weil dieser display:table noch nicht versteht. Ich werde aber, wenn IE 6 & IE 7 < 10% mein neues CSS-Layout einspielen...
                1. Erst ab dem ersten ? wird der Pfad ignoriert (oder irre ich mich?).

                  wenn du mit "pfad ignoriert" meinst, dass ab dem fragezeichen die query-komponente beginnt, ja
                  RFC 3986 Abschnitt 3

                  The following are two example URIs and their component parts:

                  foo://example.com:8042/over/there?name=ferret#nose
                           \/   \_____________/\________/ \________/ \__/
                            |           |            |            |        |
                         scheme     authority       path        query   fragment
                            |   _____________________|__
                           / \ /                        \          urn:example:animal:ferret:nose

                2. Hi,

                  Die werden über Servervariablen mit php ausgelesen. Was die index.php zB macht.
                  Aber die wird doch gar nicht aufgerufen ohne mod_rewrite, weil danach noch weitere Angaben folgen.

                  Informiere dich ueber das Stichwort PATH_INFO.

                  MfG ChrisB

                  --
                  „This is the author's opinion, not necessarily that of Starbucks.“
                  1. Hallo,

                    Informiere dich ueber das Stichwort PATH_INFO.

                    Ich hatte gedacht, das gibts nur in Perl, nicht in PHP ;)

                    mfg, Flo

                    --
                    Developers are dying. Computers are getting trash. CEO's become forgetten. The only remaining things are ideas, lies and crises. So if you want to be immortal, first think, than stop it and go to microsoft and become later a manager at Lehman Brothers...
                    sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
                    *Zu dem de:> Ich benutze wegen IE im moment noch tabellen, weil dieser display:table noch nicht versteht. Ich werde aber, wenn IE 6 & IE 7 < 10% mein neues CSS-Layout einspielen...
                  2. Informiere dich ueber das Stichwort PATH_INFO.

                    ja schon, aber der webserver muss dann mit irgend einem automatismus unabhängig von der gewählten ressource IMMER ein file aufrufen

                    wird dafür die 404-seite missbraucht, die dann abhängig vom ergebnis der analyse des pfades eine seite ausspuckt oder eben wirklich die 404-seite?

                    1. Hi,

                      Informiere dich ueber das Stichwort PATH_INFO.
                      ja schon, aber der webserver muss dann mit irgend einem automatismus unabhängig von der gewählten ressource IMMER ein file aufrufen

                      Der Dateiname index.php stand doch in der genannten Beispieladresse mit drin.

                      wird dafür die 404-seite missbraucht, die dann abhängig vom ergebnis der analyse des pfades eine seite ausspuckt oder eben wirklich die 404-seite?

                      Nein, index.php wird aufgerufen, der "Rest" der Adresse als PATH_INFO uebergeben.

                      MfG ChrisB

                      --
                      „This is the author's opinion, not necessarily that of Starbucks.“
                      1. Hi,

                        Informiere dich ueber das Stichwort PATH_INFO.
                        ja schon, aber der webserver muss dann mit irgend einem automatismus unabhängig von der gewählten ressource IMMER ein file aufrufen

                        Der Dateiname index.php stand doch in der genannten Beispieladresse mit drin.

                        ich kapiers immer noch nicht

                        mein wiki (mediawiki) hatte mal solche pfade:
                        http://example/wiki/index.php/Hauptseite

                        index.php wurde aufgerufen, weil mod_rewrite dafür gesorgt hat, dass "wiki/index.php/Hauptseite" in "wiki/index.php?title=Hauptseite" umgeschrieben wurde

                        mittlerweile sieht der pfad so aus "http://example/wiki/Hauptseite" und wird in "http://example/wiki/index.php?title=Hauptseite" umgeschrieben - und genau dafür sorgt mod_rewrite bei mir

                        wenn ich auf einem anderen system (apache) eine index.php erstelle und dann index.php/foo aufrufe, bekomme ich eine 404-seite ausgeliefert

                        wenn ich ein verzeichnis index.php/ erstelle und dort eine datei "foo" erstelle, wird diese beim aufrufen ausgeliefert

                        wird dafür die 404-seite missbraucht, die dann abhängig vom ergebnis der analyse des pfades eine seite ausspuckt oder eben wirklich die 404-seite?

                        Nein, index.php wird aufgerufen, der "Rest" der Adresse als PATH_INFO uebergeben.

                        siehe oben, bei mir wird die datei "foo" im verzeichnis "index.php/" aufgerufen wenn existent, ansonsten gibts 404

                        gibts da irgendwo einen "haken" den man setzen muss in der apache config, für dieses path_info verhalten?

                        1. Hi,

                          wenn ich auf einem anderen system (apache) eine index.php erstelle und dann index.php/foo aufrufe, bekomme ich eine 404-seite ausgeliefert

                          Dann ist dein Apache nicht so eingestellt, dass er die existente Datei index.php aufruft und ihr den Rest als PATH_INFO zur Verfuegung stellt.
                          http://httpd.apache.org/docs/2.0/mod/core.html#acceptpathinfo@title-AcceptPathInfo

                          siehe oben, bei mir wird die datei "foo" im verzeichnis "index.php/" aufgerufen wenn existent, ansonsten gibts 404

                          index.php soll kein Verzeichnis sein, sondern eine Scriptdatei - die dann den Rest des Pfades auswerten kann.

                          MfG ChrisB

                          --
                          „This is the author's opinion, not necessarily that of Starbucks.“
                          1. Dann ist dein Apache nicht so eingestellt, dass er die existente Datei index.php aufruft und ihr den Rest als PATH_INFO zur Verfuegung stellt.
                            http://httpd.apache.org/docs/2.0/mod/core.html#acceptpathinfo@title-AcceptPathInfo

                            "Kompatibilität: Verfügbar ab Apache 2.0.30"

                            das erklärt dann einiges, die alte testkiste hat noch keinen apache 2.x ;)

                        2. Hallo,

                          gibts da irgendwo einen "haken" den man setzen muss in der apache config, für dieses path_info verhalten?

                          Ich würde da auch gerne mal Haken setzen, anstatt alles nur mit nem Editor einzugeben :)

                          mfg, Flo

                          --
                          Developers are dying. Computers are getting trash. CEO's become forgetten. The only remaining things are ideas, lies and crises. So if you want to be immortal, first think, than stop it and go to microsoft and become later a manager at Lehman Brothers...
                          sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
                          *Zu dem de:> Ich benutze wegen IE im moment noch tabellen, weil dieser display:table noch nicht versteht. Ich werde aber, wenn IE 6 & IE 7 < 10% mein neues CSS-Layout einspielen...
                3. Es geht auf jeden Fall. Mache ich schon Jahre so...

                  Grüße!
                  Sebastian

  2. Um noch mal zur Grundfrage zurückzukommen. Ohne das bei Strato direkt einstellen zu können habe ich keine Möglichkeit zur Weiterleitung aller Subdomains oder? Weil die Subdomains die Strato nicht weiterleitet ja gar nicht erst beim entsprechenden Server ankommen oder?

    Ich scheine bei Strato auch noch A-Einträge machen zu können aber wohl nur für bereits eingerichtet Subdomains. Was es natürlich auch unmöglich macht ein Wildcard zu benutzen...

    Grüße!
    Sebastian

    1. Um noch mal zur Grundfrage zurückzukommen. Ohne das bei Strato direkt einstellen zu können habe ich keine Möglichkeit zur Weiterleitung aller Subdomains oder? Weil die Subdomains die Strato nicht weiterleitet ja gar nicht erst beim entsprechenden Server ankommen oder?

      richtig, einerseits muss die domain im dns vorhanden sein - wenn kein zoneneintragt sagt, dass sub.example.com zu 208.77.188.166 kanns garnicht funktionieren

      in zweiter linie muss der server wissen, was er tun soll, wenn jemand mit sub.example.com daherkommt - wenn die domain nirgends am server eingetragen ist, wird er bestenfalls error 400 bad request ausspucken

      Ich scheine bei Strato auch noch A-Einträge machen zu können aber wohl nur für bereits eingerichtet Subdomains. Was es natürlich auch unmöglich macht ein Wildcard zu benutzen...

      bind unterstütz wildcardodmains in der form "*.example.com." - dies gilt dann für "foo.example.com", "www.example.com" "blah.foo.bar.baz.example.com" usw und scheinbar - versuch ggf einen a-record für *.example.com zu erstellen