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
.
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
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