2017-03-16 2 views

Antwort

0

einfach die Platzhalter Referenz verwenden, wie in der Alias-Modul dokumentiert:

RedirectMatch 301 ^/?Search/([^/]+)/m(.*)$ /Search?city=$1 

Oder Sie können stattdessen eine einfache Umschreiben Regel verwenden, wie sie in der Überschreibungsmodul angeboten:

RewriteEngine on 
RewriteRule ^/?Search/([^/]+)/m(.*)$ /Search?city=$1 [R=301] 

Beiden Ansätze können sein Wird in der HTTP-Server-Host-Konfiguration oder, falls erforderlich, in dynamischen Konfigurationsdateien (.htaccess Style-Dateien) verwendet. Sie sollten jedoch definitiv die erste Option bevorzugen.


Sie sollten wirklich anfangen, die Dokumentation der Werkzeuge zu lesen, die Sie verwenden. Ihre Frage ist dort beantwortet:

+0

Danke für Ihre Antwort. Eine andere Frage. Ich sehe oft '$ 1' in' .htaccess' Code. Kann ich '$ 1' mehrfach benutzen? Oder sollte ich es nur einmal (für einen einzelnen Code) in einer '.htaccess' Datei verwenden? – David

+0

Das hängt davon ab, was Sie tun möchten, es gibt keine allgemeine Antwort. Wie gesagt: Warum liest du nicht einfach die Dokumentation? Dafür wurde geschrieben: um solche Fragen zu beantworten. Diese Dokumentation ist von ausgezeichneter Qualität und kommt mit großartigen Beispielen. – arkascha

0

RedirectMatch verwendet Regular Expressions

Diese Richtlinie entspricht, Umleiten aber nutzt reguläre Ausdrücke anstelle von einfachen Präfix-Übereinstimmungen.

Der angegebene reguläre Ausdruck wird mit dem URL-Pfad abgeglichen, und wenn er übereinstimmt, ersetzt der Server alle eingeklammerten Übereinstimmungen in der angegebenen Zeichenfolge und verwendet sie als Dateinamen.

Das heißt, ein Teil des Antrags zu erfassen, können Sie es in Klammern (...) muß anziehen und diese dann verwenden, wie $1, $2 usw. in der Ziel-URL.


Wie @arkascha bereits auf [my_value] gezeigt hat zu verwenden, erfassen Sie es mit (.+?) und es im Ziel als city=$1 hinzufügen. Der zweite Teil m(.*)$ könnte als $2 verwendet werden. Aber wenn Sie es nicht im Ziel brauchen, können Sie einfach die Klammer entfernen und sagen m.*$, z.

RedirectMatch ^/Search/(.+?)/m.*$ /Search?city=$1 

Wenn alles funktioniert, wie es sollte, können Sie den Statuscode zu 301 ändern. Nie Test mit 301.

Verwandte Themen