Apache mod-Rewrite-Redirect-Domain-Name Abfragezeichenfolgeflag mit
-
22-07-2019 - |
Frage
Wir haben einen Kunden, der viele Filialen in Großbritannien hat. Einige ihrer Filialen haben ihre eigenen Websites mit ihrem eigenen Domain-Namen. Der Kunde hat einen Teil gebaut System, in dem Besuch:
www.client.com/aboutus.php?id=branchId
zeigt die Über uns Seite für diesen bestimmten Zweig. Was ich brauche, ist eine Möglichkeit, bestimmte Domänen ihre branchId abzubilden (dies alles in einem DB in dem Moment gespeichert wird), so dass
www.client.com/aboutus.php?id=4
Karten
www.branchid4.com/aboutus.php
Lösung
Das funktioniert für mich. Nicht sicher, ob Ihre Domains mit einem einzigen allgemeinen ruleset arbeiten können (dh. Die ID greift und dann verwenden, in der RewriteRule), sonst müssen Sie die letzten drei Zeilen pro URL wiederholen
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?client.com$
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /aboutus\.php\?id=4\ HTTP/
RewriteRule ^.*$ http://www.branchid4.com/about.php? [R=301,L]
Andere Tipps
Sie können die entscheidende Rolle übernehmen aus dem Host-Namen und geben sie an das Skript:
RewriteEngine on
RewriteCond %{QUERY_STRING} !(^|&)branchName=
RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.com$
RewriteRule .* $0?branchName=%1 [L,QSA]