.htaccess 301 Weiterleitung mit regulären Ausdrücken

34815
macek

Wenn ich habe:

redirect 301 /users/foo http://www.example.com/profiles/foo redirect 301 /users/bar http://www.example.com/profiles/bar 

Kann ich sowas machen?

redirect 301 ^\/users/(.+)$ http://www.example.com/profiles/$1 

Bearbeiten

Eine Lösung gefunden:

RedirectMatch users/(.+) http://www.exapmles.com/profiles/$1 [R=301,L] 

Dies leitet tatsächlich um, anstatt umzuschreiben.


Bearbeiten 2

Siehe @Darths Android-Lösung, mit RewriteEngineder genauso gut funktioniert :)

7

1 Antwort auf die Frage

11
Darth Android

Versuchen Sie es mit Regeln zum Umschreiben, wenn Sie Apache haben:
RewriteEngine on
RewriteRule ^/users/(.*)$ http://www.example.com/profiles/$1 [R=301,L]

Beachten Sie, dass ModRewrite in Ihrer Apache-Konfiguration installiert und aktiviert sein muss. Von hier aus gezogen , wenn Sie eine Methode für IIS benötigen.

Ich wollte eigentlich umleiten, nicht nur umschreiben. Ich schätze die Hilfe aber :) macek vor 14 Jahren 0
@macek Ich habe es nicht persönlich getestet, aber ich habe den Eindruck, dass es mit einem 301-Code weitergeleitet wird. Ich werde ein bisschen herumspielen. Das [R = 301, L] bedeutet, die Verarbeitung der Umschreiberegeln zu stoppen und eine 301-Umleitung auszustellen. Darth Android vor 14 Jahren 0
Ich wusste nicht, dass Sie am Ende einer RewriteRule `[R = 301, L]` verwenden könnten. Danke dafür :) macek vor 14 Jahren 0
@macek habe ich auch nicht vor ungefähr 30 Sekunden. Deshalb komme ich zu dieser Website, um ganz ehrlich zu sein. Vielen Dank für mein Wissen! : P Darth Android vor 14 Jahren 0
Ich glaube, dass das erste `/` in der `RewriteRule` entfernt werden muss, damit dies wie gewünscht funktioniert. (Ich musste es entfernen, damit es auf meinem System funktioniert.) Nachdem das erste `/` entfernt wurde, bleibt Folgendes übrig: `RewriteRule ^ users / (.* )$ http://www.example.com/profiles / $ 1 [R = 301, L] ' rinogo vor 6 Jahren 0
Leute, wenn ich fragen könnte, während ich versuche, meine seltsame URL zu ändern. Ich versuche es einige Zeit, aber es funktioniert einfach nicht. Von Zeit zu Zeit ändert mein Magento die URL, die heute etwas ist_909.html. Nach einigen Tagen ist es nicht mehr etwas_909.html, sondern etwas_911.html. Wie kann ich das mit Regex tun? Rob D. A. vor 6 Jahren 0