2010-03-02 27 views
28

Nie mogłem znaleźć prostej odpowiedzi na moje pytanie i muszę znać ją od prawdziwych ekspertów.Przekierowanie błędu 404 z .htaccess przez 301 dla SEO itp.

Miałem stronę internetową, której adresy URL zostały wygenerowane przez Joomla. Wierzę, że mnóstwo adresów URL jest w wyszukiwarkach i naprawdę nie wiem, który z nich wszystkich. Przekierowanie 302 byłoby opcją, ale nie mogę powiedzieć, które adresy URL należy przekierować.

Jedyną rzeczą wiem, że wszystkie adresy URL zostały wygenerowane przez skrypt sef404, to skrypt SEO dla Joomla.

Moje pytanie, w jaki sposób można upewnić się, że wszystkie adresy URL sieroce w Google i innych wyszukiwarkach są dostarczane poprawnie z pliku .htaccess?

Jak mam 301 przekierowanie wszystkich 404 stron na stronie głównej (root) dokumentu

Obecnie używam niestandardowego pliku błędów 404.html, ale nie ma zbyt wiele plików i dadzą z rollercoaster Własne strony błędów 404

Odpowiedz

35

będzie trzeba wiedzieć coś o adresach URL, jak nie mają konkretnego katalogu lub jakieś zapytania ciąg elementów ponieważ trzeba dopasować do czegoś. W przeciwnym razie trzeba będzie przekierować na 404. Jeśli to, co jest wymagane wtedy zrobić coś takiego w .htaccess:

ErrorDocument 404 /index.php 

błąd przekierowanie strona musi być w stosunku do korzenia, więc nie można użyć www.mydomain. com.

Jeśli masz wzór do dopasowania, użyj 301 zamiast 302, ponieważ 301 jest stały, a 302 jest tymczasowy. A 301 usunie stare adresy URL z wyszukiwarek, a 302 nie.

Mod Rewrite referencyjny: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

+5

Minus jak to nie jest przekierowanie – TheBlackBenzKid

38

wymyśliłem rozwiązanie i zamieścił go na moim blogu

http://web.archive.org/web/2013031/http://onlinemarketingexperts.com.au/2013/01/how-to-permanently-redirect-301-all-404-missing-pages-in-htaccess/

oto kod .htaccess również

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ./[L,R=301] 

ale pisał inne rozwiązania na moim blogu też, to zależy, co naprawdę potrzebujesz

+1

to 301 przekieruje WSZYSTKIE 404 strony do dowolnego miejsca, w poprzednim rozwiązaniu jest 302 – andrew

+2

To powinno być odpowiedzią, ponieważ druga odpowiedź to po prostu przepisanie i nie przekierowanie +1 – TheBlackBenzKid

+1

Dla każdego, kto chce wiedzieć, dlaczego to działa tak jak ja (https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html): pierwsza linia włącza RewriteEngine, druga linia ustawia warunek dla trzeciej linii, upewniając się, że jest to nieistniejący plik i przekazuje żądaną nazwę pliku (przy użyciu zmiennej serwera (% {})), trzecia linia dopasowuje wszystko, zamienia ją na folder główny i ustawia dwie flagi, pierwsza (L), aby zatrzymać więcej od przepisywania reguł od zastosowania, a drugie (R = 301) wymuszenie zewnętrznego przekierowania za pomocą kodu błędu 301. – Andrew

Powiązane problemy