wake-up-neo.com

.htaccess 301-Umleitung einer einzelnen Seite

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:

  • /team1/contact.php
  • /non-existant-folder/contact.php

Gibt es eine Möglichkeit anzugeben, dass ich nur die contact.php im root umleiten möchte?

55
Dan

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
83
Gumbo

Das sollte es tun

RedirectPermanent /contact.php /contact-us.php 
21
duckyflip
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

8
Jon

Sie können auch eine RewriteRule verwenden, wenn Sie die Möglichkeit haben möchten, URLs mit Vorlagen abzugleichen und umzuleiten.

0
Ryall

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.

0
JW.