2013-01-31 17 views
8

Ich habe eine Website, die von jemand anderem gehostet wurde alle Webseiten waren HTML-Dateien. Ich hosste jetzt die Seite und habe sie in eine Wordpress-Site umgewandelt. Die Domain hat sich nicht geändert, aber offensichtlich haben alle Seiten. Was ist der beste Weg, um alle HTML-Seiten auf die Haupt-URL umzuleiten?301 Redirect vs Rewrite

Antwort

7

301 Redirect in einem .htaccess erfordert die Bibliothek mod_rewrite nicht. Es ist eine viel einfachere Möglichkeit zum Umleiten, aber es hat nicht die Flexibilität und Leistung, die Sie mit den Regeln zum Umschreiben erhalten. Wenn Sie einen 1-1-Mapping mit expliziten Urls haben, können Sie die Redirect verwenden:

Redirect 301 /path/file.html http://new.site.com/newpath.php 

Wenn Sie versuchen, Wildcard-Matching von einer Reihe von ähnlichen Mustern mit regulären Ausdrücken zu tun, werden Sie brauchen Rewrite zu verwenden .

RewriteRule ^(.*).html$ http://new.site.com/$1.php [R=301,NC,L] 

Hier ist eine ziemlich gute Übersicht über die 2 Methoden: http://www.ksl-consulting.co.uk/301-redirect-examples.html

+1

Was ist, wenn ich WWW und nicht WWW-Version umleiten möchte? Kann ich das ohne RewriteRule oder mod_rewrite Bibliothek tun? –

+0

@Boris_yo Nein, Sie müssen die Bedingungen umschreiben, wenn Sie versuchen, das Protokoll HTTP im Vergleich zu https – Ray

+0

Nicht wirklich ein Protokoll, sondern WWW und nicht WWW –

0

Es gibt auch RedirectMatch ist, die auch Wildcard-Matching von ähnlichen Mustern mit regulären Ausdrücken tun. Die Wahl hängt davon ab, was Sie tun müssen.

Rewrite ist komplex - Lernkurve - aber Sie können alternative URLs bedienen, ohne einen HTML-Code zu geben und Dinge, die unmöglich erscheinen. Aber mit großer Kraft kommt Komplexität und viele Bugs.

Wenn Sie nur eine einfache Umleitung machen - möglicherweise einige URLs übereinstimmen - Redirect ist der Weg zu gehen.

Wenn Sie es nicht mit Redirect machen können, werden Sie wahrscheinlich Mod_Rewrite lernen wollen.

+0

Kann Sie zeigen einen Beispielcode in Ihrer Antwort? –