Wie kann ich www AND non-www in einer Rewritecond anpassen?

8

Ich habe eine Rewrite-Map mit einer Liste von Domains, die umgeleitet werden sollen. Zurzeit muss ich www.foo.com und foo.com in der Neuschreibkarte auflisten. Ich habe mich gefragt, ob es eine Möglichkeit gäbe, die Wiederbeschreibungs-Prüfung für www und nicht-www in der gleichen Zeile durchzuführen.

%Vor%

Ich habe versucht, Dinge wie (www.)% {HTTP_HOST} oder ^ (www.)% {HTTP_HOST} zu tun, aber kein Glück.

    
Scott 30.12.2010, 22:27
quelle

4 Antworten

15

Das sollte es tun:

%Vor%

Das erste RewriteCond entfernt das optionale Präfix www. . Der Rest wird dann als Parameter für die Neuschreibmaske in der zweiten RewriteCond verwendet.

Eine Plain Text Rewrite Map gibt eine leere Zeichenfolge zurück, wenn keine Übereinstimmung gefunden wird:

  

Wenn der Schlüssel gefunden wird, wird das map-function-Konstrukt durch SubstValue ersetzt. Wenn der Schlüssel nicht gefunden wird, wird er durch DefaultValue oder durch die leere Zeichenfolge ersetzt, wenn kein DefaultValue angegeben wurde.

Wenn also die zweite Bedingung erfüllt ist (beachte ^(.+)$ ), wurde eine Übereinstimmung gefunden und %1 enthält den SubstValue (in diesem Fall file.php ).

    
Gumbo 30.12.2010, 22:55
quelle
5

Von einem Beitrag hier

Ссылка

%Vor%     
Nikki9696 30.12.2010 22:32
quelle
0

Sie können versuchen, das www zu machen. Teil optional mit folgenden:

%Vor%

Dies würde zuerst anything.anything auf www.anything.anything umleiten und dann Ihre Regel auf die nächste Anfrage anwenden. Nicht mit Karten zu rewrite, aber also keine Garantien.

    
Seldaek 30.12.2010 22:53
quelle
0
%Vor%     
ANIS.A 21.04.2016 16:55
quelle