it-swarm.com.de

Regulärer Ausdruck für die Apache-Umleitung

In der .htaccess-Datei möchte ich (301) umleiten:

Von: http://www.example.com/photo<anything>
An: http://www.example.com/blog/

Grundsätzlich sollte jede URL, die mit /photo beginnt, auf die einzelne URL /blog/ umgeleitet werden. Was ist der reguläre Ausdruck dafür?

1
Sam

Ich fand heraus:

RedirectMatch 301 ^/photo/ http://www.example.com/blog/

1
Sam

Dies funktioniert, wenn Ihr Server Apache mit aktiviertem mod_rewrite ist:

RewriteEngine On
RewriteRule ^photo(.*)$ http://www.example.com/blog/ [R=301,L]

und wenn Groß- oder Kleinbuchstaben zulässig sind, verwenden Sie Folgendes:

RewriteEngine On
RewriteRule ^photo(.*)$ http://www.example.com/blog/ [R=301,L,NC]

Aufgrund der Umleitung würde ich empfehlen, die vollständige absolute URL anstelle einer relativen URL zu verwenden, da in einem RFC-Dokument (ich habe die RFC-Nummer vergessen) einmal angegeben wurde, dass der Standort-Header auf einer Umleitungsseite eine vollständige absolute URL sein muss In einem anderen RFC-Dokument wurde später angegeben, dass die URL relativ sein kann. Wenn Sie jedoch die Kompatibilität für jeden Webbrowser erhöhen möchten, empfehlen wir die Verwendung absoluter URLs für alle Weiterleitungen.

1
Mike

Sie brauchen nicht einmal einen regulären Ausdruck. Die Direktive Redirect behandelt diesen Fall einfach:

redirect permanent /photo/ http://www.example.net/blog/
redirect permanent /photo http://www.example.net/blog

in der . htaccess Datei für den example.com Server. Standardmäßig speichert die Umleitungsanweisung alle zusätzlichen Informationen im Pfad (/photos/hello) und hängt sie an das Ziel (/blog/hello) an.

0