Nelio: mod_rewrite

Hallo Leute,

es geht um die .htaccess.
Ich komme trotz tutorials und http://www.modrewrite.de/mod_rewrite.syntax.phtml
nicht dahinter wie ich es umsetzen muss, dass http://variable.domain.tld/
und http://domain.tld/variable jeweils auf http://domain.tld/index.php?site=variable
umgeschrieben werden.Könnte mir evtl. jemand dabei helfen.

Hatte es so probiert für die zweite variante

RewriteEngine on
Options FollowSymLinks
RewriteBase /

RewriteRule index.html$ index.php

RewriteRule ^/(.*)$ index.php?site=$1 [L]

Mit freundlichen Grüßen
Nelio

  1. Hi,

    Ich komme trotz tutorials und http://www.modrewrite.de/mod_rewrite.syntax.phtml
    nicht dahinter wie ich es umsetzen muss, dass http://variable.domain.tld/
    und http://domain.tld/variable jeweils auf http://domain.tld/index.php?site=variable
    umgeschrieben werden.

    Für erstere Variante müsstest du erst mal sowas wie eine Wildcard-Subdomain einrichten - und dann beim Rewriten auf die Umgebungsvariable HTTP_HOST zugreifen.

    RewriteBase /

    RewriteRule index.html$ index.php

    RewriteRule ^/(.*)$ index.php?site=$1 [L]

    Der führende Slash dürfte schon mal fehl am Platze sein.
    Ausserdem trifft diese Regel auch auf deine index.php zu, so dass du in einer Endlosschleife landen würdest - weil der Apache nach dem Umschreiben so tut, als wäre der umgeschriebene Request gerade neu reingekommen, und auch darauf wieder alle Regeln anwendet. Und nein, das Flag [L] verhindert das nicht.

    Entweder schreibst du also die Regel so um, dass sie auf die index.php nicht matched - oder du schaust dir an, wie man mit RewriteCond physisch vorhandene Dateien/Ordner vom Rewriting ausschliessen kann.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Habe es mir jetzt so überlegt:
      RewriteCond %{HTTP_HOST} ^([^.]+).domain.tld$ [NC] [OR]
      RewriteCond %{HTTP_HOST} !^blog.domain.tld$ [NC] [OR]
      RewriteCond %{HTTP_HOST} !^media.domain.tld$ [NC]
      RewriteRule ^(.*)$ http://domain.tld/ [R=301,L]

      RewriteCond %{HTTP_HOST} ^([^.]+).domain.tld$ [NC]
      RewriteRule ^(.*)$ http://menschlich-hellwach.de/?site=$1 [L]

      Das Problem ist, wenn ich jetzt auf die subdomain zugreife bekomme ich die 500er Fehlermeldung.

      Was stimmt nicht?

      MfG
      Nel

      1. RewriteRule ^(.*)$ http://menschlich-hellwach.de/?site=$1 [L]

        es heisst natürlich vglw.:  RewriteRule ^(.*)$http://domain.tld/?site=$1 [L]

        Mit freundlichen Grüßen
        Nelio

        1. So auf ein neues:
          ich ahbe es jetzt hinbekommen.unzwar so:

          Code:

          RewriteEngine On
          RewriteBase /

          RewriteCond %{HTTP_HOST} ^([^.]+).menschlich-hellwach.de$ [NC] [OR]
          RewriteCond %{HTTP_HOST} !^(admin|art|blog|media).?menschlich-hellwach.de$ [NC]
          RewriteRule ^ http://menschlich-hellwach.de%{REQUEST_URI} [R=301,L]

          RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
          RewriteRule .* http://menschlich-hellwach.de/index.php?site=%1 [R=301,L]

          Nun zum wichtigne teil.was muss ich tun, damit die subdomain in der adressleiste stehenbleibt(also das es nur intern die index.php?site=%1 ist)?

          ich hab es einmal einfach ohne [R] und einmal so probiert:

          Code:

          RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
          RewriteRule .* index.php?site=%1 [L]

          aber das klappt nicht.
          Bitte helft mir Smile

          Dank und Grüße
          Nelio

          1. RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
            RewriteRule .* index.php?site=%1 [L]

            Möglicherweise möchtest du nur die Anfrage auf "/" erfassen, also

            RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
            RewriteRule ^$ index.php?site=%1 [L]

            1. Möglicherweise möchtest du nur die Anfrage auf "/" erfassen, also

              RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
              RewriteRule ^$ index.php?site=%1 [L]

              Hi, danke aber leider nicht.
              Das würde ja dazu führen das er versucht die index.php in der sub anzusprechen, aber ich möchte die index.php im root ansprechen und halt den entsprechenden parameter(die subdomain) übergeben, ohne dabei ein [R] zu nutzen.

              Also das in der Adressleiste steht: "http://blog.menschlich-hellwach.de" aber "http://menschlich-hellwach.de/index.php?site=blog" aufgerufen wird.

              Ich hoffe du kannst mir tortzdem helfen.

              Danke.

              Mit freundlichen Grüßen
              Nelio

              1. »» Möglicherweise möchtest du nur die Anfrage auf "/" erfassen, also
                »»
                »» RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
                »» RewriteRule ^$ index.php?site=%1 [L]
                »»

                Hi, danke aber leider nicht.
                Das würde ja dazu führen das er versucht die index.php in der sub anzusprechen, aber ich möchte die index.php im root ansprechen und halt den entsprechenden parameter(die subdomain) übergeben, ohne dabei ein [R] zu nutzen.

                Also das in der Adressleiste steht: "http://blog.menschlich-hellwach.de" aber "http://menschlich-hellwach.de/index.php?site=blog" aufgerufen wird.

                Ich hoffe du kannst mir tortzdem helfen.

                Danke.

                Mit freundlichen Grüßen
                Nelio

                edit:
                So ich hab es geschafft, indem ich bei meinem webhoster einfach für jede subdomain einen entsprechenden Alias eingetragen habe.Nicht das was ich wollte, aber es funzt.
                Nun gehts weiter: Wie schaffe ich es, das alles was hinter der domain steht(bei einer bestimmten subdomain) in parameter umgewandelt wird?
                Bsp.: blog.menschlich-hellwach.de/date/title == blog.menschlich-hellwach.de/ addparamstoexistingurl title=title&date=date

                bin mir nicht gnaz sicher, da ja theoretisch blog.menschlich-hellwach.de schon einen parameter uebergibt.

                Danke schonmal im vorraus.

                Mit freundlichen Grüßen
                Nelio