Simone: Weiterleitung htaccess, verschiedene DomainNamen

Bei mir kommen viele Domains in einem Verzeichnis an, diese möchte ich unterschiedlich ausgeben, was ich über php bewerkstelligen will. Die Aufteilung würde ich gerne mittels htaccess bewerkstelligen:
RewriteEngine on

.
RewriteCond %{HTTP_HOST} ^(www.)?domain1.de [NC]
RewriteRule ^(.*)$ index.php?url=domain1 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?domain2.de [NC]
RewriteRule ^(.*)$ index.php?url=domain2 [L,QSA]
RewriteCond %{HTTP_HOST} ^(www.)?domain3.de [NC]
RewriteRule ^(.*)$ index.php?url=domain3 [L,QSA]
usw.
.

ich würde das ganze aber gerne ein wenig kürzen, so dass ich nur noch einen Zweizeiler habe, doch das bekomme ich nicht hin.
Ich dachte mir, das ich einfach den Bereich zwischen www.********.de Abfrage und dann weitergebe per Variable
Ich dachte mir so in etwa...

.
RewriteCond %{HTTP_HOST} ^(www.)?*.de [NC]
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
.

Kennt sich da jemand ein wenig besser aus?

Simone

  1. Tach!

    Bei mir kommen viele Domains in einem Verzeichnis an, diese möchte ich unterschiedlich ausgeben, was ich über php bewerkstelligen will.
    ich würde das ganze aber gerne ein wenig kürzen, so dass ich nur noch einen Zweizeiler habe, doch das bekomme ich nicht hin.

    Es geht mit einem Dreizeiler, wenn du in PHP die Inhalte von $_SERVER selbst auswertest.

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .* index.php [QSA]

    Die beiden RewriteConds sorgen dafür, dass real existierende Dateien und Verzeichnisse ausgenommen werden. Wenn du Symlinks hast, kommt noch eine Zeile hinzu. Die RewriteRule schreibt alles auf index.php um, wo du dann Servername, RequestUri und dergleichen auswerten kannst.

    dedlfix.

    1. O gott..

      Die Domains kommen ja alle im gleichen Verzeichniss an. muss ich dann überhaupt die Daten mit htacces behandeln wenn ich die URL mit $_SERVER['SERVER_NAME'] auslese und dann weiterbearbeite?

      Simone!

      PS: Bei $_SERVER['SERVER_NAME'] bekomme ich aber den ganzen Namen www.example.com, kann ich mir auch nur den NAMEN selber ausgeben lassen, in diesem Fall example.

      Tach!

      Bei mir kommen viele Domains in einem Verzeichnis an, diese möchte ich unterschiedlich ausgeben, was ich über php bewerkstelligen will.
      ich würde das ganze aber gerne ein wenig kürzen, so dass ich nur noch einen Zweizeiler habe, doch das bekomme ich nicht hin.

      Es geht mit einem Dreizeiler, wenn du in PHP die Inhalte von $_SERVER selbst auswertest.

      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule .* index.php [QSA]

      Die beiden RewriteConds sorgen dafür, dass real existierende Dateien und Verzeichnisse ausgenommen werden. Wenn du Symlinks hast, kommt noch eine Zeile hinzu. Die RewriteRule schreibt alles auf index.php um, wo du dann Servername, RequestUri und dergleichen auswerten kannst.

      dedlfix.

      1. Tach!

        O gott..

        Kannst ruhig dedlfix zu mir sagen ...

        Die Domains kommen ja alle im gleichen Verzeichniss an. muss ich dann überhaupt die Daten mit htacces behandeln wenn ich die URL mit $_SERVER['SERVER_NAME'] auslese und dann weiterbearbeite?

        Müssen nicht, wenn jede aufgerufene PHP-Datei die Auswertung nach Servername vornimmt (oder zumindest vornehmen lässt). Wenn du das allerdings auf eine index.php bündeln möchtest, dann lässt sich die Umschreibung in der .htaccess nicht vermeiden.

        dedlfix.

        1. Verstehe ich nicht ganz.

          Also die Domains kommen
          domain1
          domain2
          domain3
          etc

          dann wird standardmässig die Index aufgerufen, und dort wird am Anfang mittels $_SERVER['SERVER_NAME'] der aufgrufende Domainanme ermittelt, anschliessend wird der dazugehörige CONTENT geladen!

          und was muss ich dann in der .htaccess noch Umschreibung dedlfix (Verwandt mit Idefix oder mit dem Fix von Foxi ?)

          Simone

          1. Tach!

            Also die Domains kommen
            domain1
            domain2
            domain3
            etc

            dann wird standardmässig die Index aufgerufen, und dort wird am Anfang mittels $_SERVER['SERVER_NAME'] der aufgrufende Domainanme ermittelt, anschliessend wird der dazugehörige CONTENT geladen!

            Wenn das so konfiguriert ist, wird bei example.com/ mit nichts weiter hinten dran, die index.php aufgerufen. Ja.

            und was muss ich dann in der .htaccess noch Umschreibung

            Du wirst sicher nicht nur example.com/ aufrufen, sondern noch weitere URLS à la example.com/irgendwas haben. Wenn es dazu eine Datei gibt, dann ruft der Apache diese auf. Wenn aber alles auf der index.php landen soll, dann brauchst du eine Alles-auf-index.php-Umschreibung (die aus meiner ersten Antwort).

            dedlfix.

            1. Also solange ich nur

              domain1.de
              domain2.de
              domain3.de

              aufrufe und nirgens etwas dahinter steht geht es ohne htaccess,

              wenn aber

              domain1.de?a=1
              domain2.de?a=1
              domain3.de?a=1

              aufgerufen wird, würde es nicht mehr funktionieren, dann brauch ich

              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteCond %{REQUEST_FILENAME} !-d
              RewriteRule .* index.php [QSA]

              stimmt das jetzt so?

              Simone

              Tach!

              Also die Domains kommen
              domain1
              domain2
              domain3
              etc

              dann wird standardmässig die Index aufgerufen, und dort wird am Anfang mittels $_SERVER['SERVER_NAME'] der aufgrufende Domainanme ermittelt, anschliessend wird der dazugehörige CONTENT geladen!

              Wenn das so konfiguriert ist, wird bei example.com/ mit nichts weiter hinten dran, die index.php aufgerufen. Ja.

              und was muss ich dann in der .htaccess noch Umschreibung

              Du wirst sicher nicht nur example.com/ aufrufen, sondern noch weitere URLS à la example.com/irgendwas haben. Wenn es dazu eine Datei gibt, dann ruft der Apache diese auf. Wenn aber alles auf der index.php landen soll, dann brauchst du eine Alles-auf-index.php-Umschreibung (die aus meiner ersten Antwort).

              dedlfix.

              1. Tach!

                Also solange ich nur
                domain1.example
                aufrufe und nirgens etwas dahinter steht geht es ohne htaccess, wenn aber
                domain1.example?a=1
                aufgerufen wird, würde es nicht mehr funktionieren,

                (Bitte für Beispiele die extra dafür vorgesehenene Namen verwenden und nicht einfach irgendwelche, die real existieren (könnten).)

                Speziell in deinem Beispiel würde es weiterhin funktionieren, weil du nur einen Query-String angehängt hast, der üblicherweise nicht zu einem Dateinamen führt und somit vom Apachen nicht weiter ausgewertet wird. Die Umschreibung brauchst du für die Fälle, wenn ein Pfad zu einer Datei oder etwas, das wie ein Pfad aussieht, angehängt wird.

                domain.example/foo/bar.php
                  domain.example/foo/bar

                Noch eine zweite Bitte: Bitte wie üblich zitieren, nicht einfach alles. Danke.

                dedlfix.