SebastianJu: .htaccess um angezeigte Domain zu verändern

Hallo,

ich habe einen Reselleraccount der mit ispconfig läuft. Das Problem dabei ist dass Subdomains die ich da eingestellt habe nicht so angezeigt werden wie ich will.

Ich habe zB eine Domain: http://www.domain.tld/

Wenn die Domain aufgerufen wird dann ist es so definiert dass diese Subdomain in ein Unterverzeichnis weitergeleitet wird damit sie ihren eigenen Root hat. Nur zeigt ispconfig das Ganze so an:

http://www.andere-domain.tld/domain.tld/

Es zeigt also die andere Domain an und dazu das Unterverzeichnis.

Ich möchte aber gern dass dieses Format erscheint:

http://www.domain.tld/

Das ganze müsste mit einer RewriteRule gehen denke ich (oder kann man dabei keine Domainnamen umschreiben?)
Kann mir jemand sagen wie ich das schreiben muss damit das klappt? Natürlich müssten auch alle darunterliegenden Verzeichnisse unter domain.tld richtig aufgelöst werden.

Weiß das jemand?

Grüße!
Sebastian

  1. Hi,

    Ich habe zB eine Domain: http://www.domain.tld/

    falsch. Du hast z.B. eine Domain: http://www.example.org/. Denn diese Domain ist - neben anderen - für Beispiele definiert. *Alle* anderen gib niemals als Beispiel an.

    Das ganze müsste mit einer RewriteRule gehen denke ich (oder kann man dabei keine Domainnamen umschreiben?)

    Um die angezeigte URL zu verändern, muss ein harter Redirect an den Client gesendet werden, woraufhin dieser (im Idealfall) einen neuen Request absendet. Wie Du beschrieben hast, wird dieser in einen Redirect resultieren. Du erhältst also eine Endlosschleife.

    Kann mir jemand sagen wie ich das schreiben muss damit das klappt?

    Du musst zunächst einmal den bisherigen Redirect verhindern.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo Cheatah,

      Ich habe zB eine Domain: http://www.domain.tld/

      falsch. Du hast z.B. eine Domain: http://www.example.org/. Denn diese Domain ist - neben anderen - für Beispiele definiert. *Alle* anderen gib niemals als Beispiel an.

      domain.tld lese ich oft in englischen Foren. Heißt doch einfach nur domain und deren top-level-domain-kürzel. Verstehe nicht wieso das "falsch" sein sollte.

      Das ganze müsste mit einer RewriteRule gehen denke ich (oder kann man dabei keine Domainnamen umschreiben?)

      Um die angezeigte URL zu verändern, muss ein harter Redirect an den Client gesendet werden, woraufhin dieser (im Idealfall) einen neuen Request absendet. Wie Du beschrieben hast, wird dieser in einen Redirect resultieren. Du erhältst also eine Endlosschleife.

      Hm. Ich dachte dabei wird nur die angezeigte URL verändert. Das macht man doch auch bei Blogs so damit die URL suchmaschinenfreundlicher ist.

      Kann mir jemand sagen wie ich das schreiben muss damit das klappt?

      Du musst zunächst einmal den bisherigen Redirect verhindern.

      Du meinst ich kann das nicht selbst machen sondern mein Serveradmin muss das tun?

      Grüße!
      Sebastian

      1. Hi!

        domain.tld lese ich oft in englischen Foren. Heißt doch einfach nur domain und deren top-level-domain-kürzel. Verstehe nicht wieso das "falsch" sein sollte.

        Weil du nicht sicherstellen kannst, dass Du damit nicht auf eine (irgendwann) bestehendene Domain verweist. Mehr dazu sagt Dir RFC 2606.

        Du meinst ich kann das nicht selbst machen sondern mein Serveradmin muss das tun?

        Wenn Du die entsprechenden Rechte nicht hast: ja!

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
        1. Hallo Pan,

          domain.tld lese ich oft in englischen Foren. Heißt doch einfach nur domain und deren top-level-domain-kürzel. Verstehe nicht wieso das "falsch" sein sollte.

          Weil du nicht sicherstellen kannst, dass Du damit nicht auf eine (irgendwann) bestehendene Domain verweist. Mehr dazu sagt Dir RFC 2606.

          Ach so...

          Du meinst ich kann das nicht selbst machen sondern mein Serveradmin muss das tun?

          Wenn Du die entsprechenden Rechte nicht hast: ja!

          Doof dass ispconfig sich nicht so verhält wie man es von anderen Programmen dieser Art kennt...

          Ok...

          Danke!
          Sebastian

      2. Moin Moin!

        Hm. Ich dachte dabei wird nur die angezeigte URL verändert.

        Das wäre doch extrem blöd:

        http://evil.example.com/ schickt einen "ändere bitte die angzeigte URL"-Response an den Browser, der daraufhin alle Seiten von http://evil.example.com als http://www.sparkasse-musterstadt.de anzeigt und die Requests trotzdem an evil.example.com schickt.

        Das macht man doch auch bei Blogs so damit die URL suchmaschinenfreundlicher ist.

        Nicht suchmaschinenfreundlich. Suchmaschinen ist es egal, ob sie Content unter http://example.com/kjgdgwizwgefoiuwehfiuwfhjwhcbwcnwkjeifuwfiwue angeliefert bekommen oder unter http://example.com/blog/SEO-bedeutet-Scheisse-Endet-Oben. Das Umschreiben von URLs dient dort einzig und allein dazu, vermutete Suchbegriffe ("Keywords") auch noch in der URL unterzubringen.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
        1. Hallo Alexander,

          Hm. Ich dachte dabei wird nur die angezeigte URL verändert.

          Das wäre doch extrem blöd:

          http://evil.example.com/ schickt einen "ändere bitte die angzeigte URL"-Response an den Browser, der daraufhin alle Seiten von http://evil.example.com als http://www.sparkasse-musterstadt.de anzeigt und die Requests trotzdem an evil.example.com schickt.

          Warum sollte er das an den Browser schicken? Der Browser erwartet sowieso die Daten von Domain1. Der User gibt also Domain1 in seine URL-Leiste ein und bekommt von Ispconfig Domain2 mit dem Unterverzeichnis namens Domain1. Da bekommt der Browser doch sowieso schon eine andere Domain als er erwartet.

          Wenn jetzt in deinem Beispiel http://www.sparkasse-musterstadt.de aufgerufen wird dann würde, da http://www.sparkasse-musterstadt.de mit Root in einem Unterverzeichnis von Example.com liegt diese URL an den User geschickt: http://example.com/sparkasse-musterstadt.de/

          Da wird also ohnehin bereits umgeschrieben.

          Wenn jetzt der Server stattdessen wirklich http://www.sparkasse-musterstadt.de als URL zurückgeben würde sehe ich da kein Problem da der Browser sowieso diese URL erwartet. Wie der Server das intern handhabt davon braucht der Browser doch gar nichts mitbekommen. Schließlich liegt doch alles auf dem selben Webspace...

          Das macht man doch auch bei Blogs so damit die URL suchmaschinenfreundlicher ist.

          Nicht suchmaschinenfreundlich. Suchmaschinen ist es egal, ob sie Content unter http://example.com/kjgdgwizwgefoiuwehfiuwfhjwhcbwcnwkjeifuwfiwue angeliefert bekommen oder unter http://example.com/blog/SEO-bedeutet-Scheisse-Endet-Oben. Das Umschreiben von URLs dient dort einzig und allein dazu, vermutete Suchbegriffe ("Keywords") auch noch in der URL unterzubringen.

          Das meine ich. Keywords in der URL unterbringen = besser fürs Ranking. Sonst wärs ja sinnlos. Bis auf den Punkt dass die Seite eventuell leichter merkbar ist.

          Tatsache ist aber hier auch dass die Dateien, Verzeichnisse usw die dann in der URL auftauchen so gar nicht existieren. Weshalb ich mich frage wieso das bei einer Domain anders sein sollte. Denn sie existiert ja immerhin auf dem Webspace. Ist ja nicht so dass eine neue TLD erfunden wird.

          Grüße!
          Sebastian

          1. Hi,

            Warum sollte er das an den Browser schicken?

            "Phishing" ist Dir ein Begriff? Die Domains dazu sind heute wieder im Angelbot.

            Wenn jetzt in deinem Beispiel http://www.sparkasse-musterstadt.de aufgerufen wird dann würde, da http://www.sparkasse-musterstadt.de mit Root in einem Unterverzeichnis von Example.com liegt diese URL an den User geschickt: http://example.com/sparkasse-musterstadt.de/

            Der Host-Name www.sparkasse-musterstadt.de hat nichts, aber auch wirklich *gar* nichts mit dem zu tun, was example.com zu bieten hat. Und ob unter example.com ein ähnlich klingendes Verzeichnis liegen mag, interessiert jemanden, der Host-Namen verarbeitet, wirklich überhaupt kein Stück. Kurz gesagt:

            http://www.sparkasse-musterstadt.de hat *keine* Ähnlichkeit mit http://example.com/sparkasse-musterstadt.de/ - abgesehen vom Protokoll. Der Rest hat exakt 0% Übereinstimmung. Wieso sollte es also einem example.com ermöglicht werden, seinen Inhalt unter einer URL abzuliefern, die nichts, aber auch wirklich absolut gar nichts mit ihm zu tun hat?

            Wenn jetzt der Server stattdessen wirklich http://www.sparkasse-musterstadt.de als URL zurückgeben würde sehe ich da kein Problem da der Browser sowieso diese URL erwartet.

            Der Browser erwartet keine URL, die er nicht angefordert hat.

            Wie der Server das intern handhabt davon braucht der Browser doch gar nichts mitbekommen.

            Er *kann* es nicht mitbekommen. Und genau deswegen hat die eine URL mit der anderen auch nichts zu tun.

            Schließlich liegt doch alles auf dem selben Webspace...

            Das kann der Browser auch nicht mitbekommen.

            Tatsache ist aber hier auch dass die Dateien, Verzeichnisse usw die dann in der URL auftauchen so gar nicht existieren.

            In HTTP existieren *überhaupt* keine Dateien. Nur Ressourcen.

            Weshalb ich mich frage wieso das bei einer Domain anders sein sollte.

            Ist es doch nicht. Du hast unabhängig von allem anderen immer die Möglichkeit, einen Redirect durchführen (und somit den Client eine neue URL anfordern) zu lassen, oder aber serverintern auf andere Daten zuzugreifen, als sich aus der URL direkt ins Filesystem projezieren ließe. Im ersten Fall ändert sich die URL, im zweiten Fall nicht.

            Denn sie existiert ja immerhin auf dem Webspace.

            Das ist im ersten Fall egal und im zweiten Fall erforderlich.

            Ist ja nicht so dass eine neue TLD erfunden wird.

            Das ist im ersten Fall egal und im zweiten Fall unmöglich.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hallo Cheatah,

              das nervt mit ispconfig. Warum kann das nicht einfach nur die Domains und Subdomains so handhaben wie es alle anderen ähnlichen Softwarepakete scheinbar tun...

              Aber ich glaube auch irgendwie dass nicht klargeworden ist wie die ganze Sache sich verhält. Denn du meintest "»» Der Browser erwartet keine URL, die er nicht angefordert hat". Doch genau das hat er ja.

              Also noch mal.

              Ich habe einen Reselleraccount auf einem Server der mit ispconfig läuft. Auf diesem Reselleraccount habe ich ein Web erstellt. Auf dieses Web habe ich nun eine Domain geleitet die ich bei einem Domainrobot gekauft habe. Da es die Hauptdomain ist funktioniert auch alles wunderbar mit der Anzeige. URL stimmt.

              Auf dieses Web habe ich noch etwa 30 weitere Domains aufgeschaltet. Jede davon ist als Co-Domain eingestellt und verweist auf ein Unterverzeichnis dieses Webs. Da ja ansonsten der Inhalt der Hauptdomain angezeigt würde.
              Und jede dieser 30 Domains verweist per A-Record auf die selbe IP. Die des Webservers mit ispconfig.

              Bei allen anderen Hostingverwaltungsprogrammen die ich kenne ist es so dass eine Subdomain auch als Subdomain in der URL angezeigt wird. Auch wenn die Subdomain nur auf ein Unterverzeichnis verweist. Genauso einfach ist es mit einem VHost eine andere Domain in einem Unterverzeichnis der Hauptdomain zu verwalten. Die andere Domain wird dann ganz normal angezeigt. Aber auch hier, genauso wie bei der Subdomain, zeigt ispconfig nur die Hauptdomain an und das Unterverzeichnis.

              Wenn ich also die andere Domain aufrufen will gelange ich mit ispconfig nur auf ein Unterverzeichnis der Hauptdomain. Der Browser bekommt also eine andere URL geliefert als er eigentlich erwartet. Ich will nun nichts anderes als das wieder zurückzubiegen per htaccess.

              Es soll also mit der htaccess funktionieren dass ein eingegebener Pfad der zB lautet: example.org/keyword.html im Server aufgelöst wird auf example.org/index.php&id=14 oder ähnlich. Der Browser bekommt also den Inhalt einer URL im Gegenzug aber eine andere angezeigt.

              Und ich habe nun auf dem selben Webspace mehrere Domains. Der Browser verlangt example.org und bekommt nur example2.org/example.org/ anstatt example.org wie er erwarten würde.

              Naja, wenn ihr meint das geht nicht... Vielleicht ist die .htaccess nur nutzbar für alles was innerhalb der selben tld passiert...

              Grüße!
              Sebastian

              1. Hi,

                das nervt mit ispconfig.

                dann schmeiß den Schrott weg und nimm was anderes.

                Aber ich glaube auch irgendwie dass nicht klargeworden ist wie die ganze Sache sich verhält.

                Doch, und wir haben alles bereits geklärt.

                Wenn ich also die andere Domain aufrufen will gelange ich mit ispconfig nur auf ein Unterverzeichnis der Hauptdomain. Der Browser bekommt also eine andere URL geliefert als er eigentlich erwartet. Ich will nun nichts anderes als das wieder zurückzubiegen per htaccess.

                *Das* *geht* *nicht*. Dein merkwürdiges Domain-Verwaltungs-Tool erzeugt einen Redirect. Das Ergebnis ist zu exakt 100% identisch damit, als hätte der Client bereits von Anfang an die URL, welche Dir nicht passt, angefordert. Wenn Du jetzt hieraus einen Redirect machst - und *nur* dadurch kannst Du die angezeigte URL ändern - dann fordert der Client eine URL an, hinter der ein Redirect lauert, nach welchem Du einen Redirect aus dem Hut zauberst, der zu einem Redirect führt, der Dir inzwischen bekannt vorkommen kann. Du *musst* den ersten Redirect verhindern.

                Und das habe ich Dir von Anfang an gesagt.

                Und ich habe nun auf dem selben Webspace mehrere Domains.

                Das interessiert nicht. Der Client kriegt nichts von Webspaces mit.

                Der Browser verlangt example.org und bekommt nur example2.org/example.org/ anstatt example.org wie er erwarten würde.

                Er bekommt die Information, dass die angeforderten Daten unter example2.org/example.org/ liegen. *Dann* fordert er genau dies an und bekommt (hoffentlich) das, was er erwartet.

                Naja, wenn ihr meint das geht nicht... Vielleicht ist die .htaccess nur nutzbar für alles was innerhalb der selben tld passiert...

                .htaccess ist eine verzeichnislokale Konfigurationsdatei des Apache-Webservers. Sie hat nichts mit Hosts zu tun, schon gar nicht mit TLDs.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
              2. Mahlzeit,

                Auf dieses Web habe ich noch etwa 30 weitere Domains aufgeschaltet. Jede davon ist als Co-Domain eingestellt und verweist auf ein Unterverzeichnis dieses Webs.

                Wenn du das so machst, kannst du dir jede Suchmaschinenoptimierung sparen, da sowas von Google und anderen abgestraft wird, im Extremfall mit dem Rauswurf aus dem Index.

                Co-Domains in ispconfig sind das schlimmste, was du deinem PR antun kannst.

          2. Hallo,

            Wenn jetzt in deinem Beispiel http://www.sparkasse-musterstadt.de aufgerufen wird dann würde, da http://www.sparkasse-musterstadt.de mit Root in einem Unterverzeichnis von Example.com liegt diese URL an den User geschickt: http://example.com/sparkasse-musterstadt.de/

            du hast noch nicht die wesentliche Unterscheidung zwischen Hostname und Local-Part der URL verstanden. Wenn ein Client (Browser) eine Resource von einem Host namens www.sparkasse-musterstadt.de abruft, kann er nicht eine ähnliche Ressource von example.com empfangen. Er hat www.sparkasse-musterstadt.de angefragt, also erhält er auch von dort die Antwort.
            Ein Redirect bedeutet, dass der Server antwortet: "Du willst Melonen, hab ich aber nicht, aber frag mal bei example.com nach, die haben welche." Der Browser muss also von sich aus eine neue URL anfragen. Das wird dann auch in der Adresszeile sichtbar.
            Ein internes Rewriting bedeutet dagegen, dass der Server antwortet: "Da hast du deine Melonen", obwohl er sie erst selbst organisieren muss. Von diesem freundlichen Bemühen bekommt aber der Browser nichts mit.

            Tatsache ist aber hier auch dass die Dateien, Verzeichnisse usw die dann in der URL auftauchen so gar nicht existieren.

            Natürlich nicht. Im HTTP-Kontext gibt es sowas nicht.

            So long,
             Martin

            --
            Alkohl ist ungesund,
            Rauchen ist schädlich,
            Sex ist unanständig
            - und die Erde ist eine flache Scheibe.
            1. Hallo Martin,

              ach so. Ich hatte bisher angenommen dass die andere URL dadurch zustandekam dass der Server das so gesetzt hat. Aber dass das weitergeleitet wird bzw die neue Adresse erst an den Browser gesendet wird habe ich nicht so gesehen.

              Tja, das ist übel... Dann müsste die Serversoftware verändert werden damit die das anders regelt oder? Schließlich kann ich meinem Admin nicht zumuten dass er für hunderte Domains einzeln die Weiterleitung bzw die Anzeige ändert...

              Grüße!
              Sebastian

            2. Hi,

              "Du willst Melonen, hab ich aber nicht, aber frag mal bei example.com nach, die haben

              drei gelbe Bananen ;-)

              cu,
              Andreas

              --
              Warum nennt sich Andreas hier MudGuard?
              O o ostern ...
              Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
              1. Hallo,

                "Du willst Melonen, hab ich aber nicht, aber frag mal bei example.com nach, die haben
                drei gelbe Bananen ;-)

                "Ich habe Sie nicht verstanden."

                *scnr*
                 Martin

                --
                Wer schläft, sündigt nicht.
                Wer vorher sündigt, schläft besser.
                1. Hi,

                  "Du willst Melonen, hab ich aber nicht, aber frag mal bei example.com nach, die haben
                  drei gelbe Bananen ;-)
                  "Ich habe Sie nicht verstanden."

                  Menschenskind, sprich doch mal verständlich. Meintest Du:

                  400 Bad Request
                  404 Not Found
                  417 Expectation Failed
                  501 Not Implemented
                  503 Service Unavailable

                  oder einfach nur

                  500 Internal Server Error

                  ?

                  *scnr*

                  Genau. Und komm mir jetzt nicht mit Payment Required :-)

                  Cheatah

                  --
                  X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                  X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                  X-Will-Answer-Email: No
                  X-Please-Search-Archive-First: Absolutely Yes
                  1. Hallo,

                    drei gelbe Bananen ;-)
                    "Ich habe Sie nicht verstanden."
                    Genau. Und komm mir jetzt nicht mit Payment Required :-)

                    304 Not Modified
                     Martin   :-P

                    --
                    Die letzten Worte des stotternden Beifahrers:
                    Frei... frei... frei... freilich kommt da was!!
                    1. Hi,

                      drei gelbe Bananen ;-)
                      "Ich habe Sie nicht verstanden."
                      Genau. Und komm mir jetzt nicht mit Payment Required :-)
                      304 Not Modified

                      Klingt alles irgendwie nach 204 ;-)

                      cu,
                      Andreas

                      --
                      Warum nennt sich Andreas hier MudGuard?
                      O o ostern ...
                      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Hallo,

    mein Admin scheint eine Lösung gefunden zu haben.

    Er hat die Weiterleitung bei den Co-Domains rausgenommen und dann in die .htaccess vom Root nach "RewriteEngine on" folgendes geschrieben.

    RewriteCond %{HTTP_HOST} ^www.domain.tld [NC]
    RewriteRule ^(.*)$ /domain.tld/$1 [L]

    Das muss ich nur noch pro Domainname machen.

    Außerdem noch eine Umleitung falls jemand ohne www ankommt. So gibt es keinen Duplicate Content. Wird immer die www-Variante angezeigt.

    RewriteCond %{HTTP_HOST} !^www. [NC]
    RewriteCond %{HTTP_HOST} !^$ [NC]
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

    Damit ist es nun so wie ich wollte. Alle Domains verwaltet in einem Web und haben trotzdem alle ihre eigene Topleveldomain. Das sollte dann auch keine Suchmaschinenprobleme geben da die Suchmaschine ja auch nur einzelne Domains sieht...

    Ich habe mich gefragt ob es noch geht alle weiteren Subdomains die vorstellbar sind auf die www-Variante zu verweisen aber wie man das machen könnte da bin ich noch nicht draufgekommen...

    Grüße!
    Sebastian