Nach einer Neugestaltung der Website habe ich ein paar Seiten, die umgeleitet werden müssen. Alles bleibt auf derselben Domain, nur ein paar Dinge wurden neu organisiert und/oder umbenannt. Sie sind von der Form:
/contact.php
ist jetzt:
/contact-us.php
Unter Verwendung der .htaccess-Datei habe ich diese Zeile hinzugefügt, die ich am häufigsten empfehle:
RedirectMatch 301 /contact.php /contact-us.php
Dies ist meistens in Ordnung - es macht den Job - das Problem ist, es leitet auch weiter:
Gibt es eine Möglichkeit anzugeben, dass ich nur die contact.php im root umleiten möchte?
RedirectMatch
verwendet einen regulären Ausdruck, der mit dem URL-Pfad abgeglichen wird. Und Ihr regulärer Ausdruck /contact.php
Bedeutet einfach jeder URL-Pfad, der /contact.php
Enthält aber nicht nur jeder URL-Pfad, der genau /contact.php
. Verwenden Sie also die Anker für den Anfang und das Ende der Zeichenfolge (^
Und $)
):
RedirectMatch 301 ^/contact\.php$ /contact-us.php
Das sollte es tun
RedirectPermanent /contact.php /contact-us.php
redirect 301 /contact.php /contact-us.php
Es macht keinen Sinn, die Redirectmatch-Regel zu verwenden und dann Ihre Links so zu schreiben, dass sie genau übereinstimmen. Wenn Sie nicht einschließen, müssen Sie nicht ausschließen! Verwenden Sie einfach die Weiterleitung ohne Übereinstimmung und verwenden Sie dann die Links normal
Sie können auch eine RewriteRule verwenden, wenn Sie die Möglichkeit haben möchten, URLs mit Vorlagen abzugleichen und umzuleiten.
Wenn Sie es vorziehen, die einfachste mögliche Lösung für ein Problem zu verwenden, ist eine Alternative zu RedirectMatch die grundlegendere Redirect -Direktive.
Der Pattern Matching wird nicht verwendet und ist daher für andere expliziter und verständlicher.
d.h.
<IfModule mod_alias.c>
#Repoint old contact page to new contact page:
Redirect 301 /contact.php http://example.com/contact-us.php
</IfModule>
Abfragezeichenfolgen sollten übertragen werden, da in den Dokumenten Folgendes angegeben ist:
Zusätzliche Pfadinformationen über den übereinstimmenden URL-Pfad hinaus werden an die Ziel-URL angehängt.