2013-01-31 15 views
8

Mam stronę, która była hostowana przez kogoś innego, wszystkie strony były plikami .html. Obecnie hostuję witrynę i zmieniłem ją na stronę z wordpress. Domena nie uległa zmianie, ale oczywiście wszystkie strony mają. Jaki jest najlepszy sposób przekierowania wszystkich stron .html do głównego adresu URL?301 Redirect vs Rewrite

Odpowiedz

7

301 Redirect w .htaccess nie wymaga biblioteki mod_rewrite. Jest to znacznie prostszy sposób przekierowania, ale nie ma on elastyczności i mocy, jaką można uzyskać za pomocą reguł Przepisywania. Jeśli masz 1-1 mapowanie z jawnych adresów URL można użyć przekierowania:

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

Jeśli próbujesz zrobić dziką dopasowanie karty z wielu podobnych wzorów przy użyciu wyrażeń regularnych trzeba użyć Rewrite .

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

Oto bardzo dobry przegląd metod 2: http://www.ksl-consulting.co.uk/301-redirect-examples.html

+1

Co jeśli chcę przekierować wersję WWW i nie-WWW? Czy mogę to zrobić bez biblioteki RewriteRule lub mod_rewrite? –

+0

@Boris_yo nie, potrzebujesz przepisać warunki, jeśli próbujesz przechwycić protokół http vs. https – Ray

+0

Nie tak naprawdę protokół ale WWW i nie-WWW –

0

Istnieje również RedirectMatch który również robi dziką kartą dopasowanie podobnych wzorów przy użyciu wyrażeń regularnych. Wybór zależy od tego, co musisz zrobić.

Przepraszam jest złożony - krzywa uczenia się - ale można podawać alternatywne adresy URL bez podawania kodu HTML i rzeczy, które wydają się niemożliwe. Ale z wielką siłą jest złożoność i mnóstwo błędów.

Jeśli wykonujesz tylko proste przekierowanie - prawdopodobnie pasujące do niektórych adresów URL - przekierowanie jest drogą do zrobienia.

Kiedy nie możesz tego zrobić za pomocą Przekierowania, prawdopodobnie będziesz chciał zacząć uczyć się Mod_Rewrite.

+0

Może pokazujesz przykładowy kod w swojej odpowiedzi? –

Powiązane problemy