Weiterleitung htaccess, verschiedene DomainNamen
Simone
- webserver
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
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.
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.
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.
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
Tach!
Also die Domains kommen
domain1
domain2
domain3
etcdann 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.
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
etcdann 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.
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.