2010-03-02 4 views
28

Je ne pouvais pas trouver une réponse directe à ma question et besoin de le savoir par les vrais experts.Rediriger 404 erreur avec. Htaccess via 301 pour le référencement etc

J'avais un site Web dont les URL étaient générées par Joomla. Je crois que des tonnes d'URL sont dans les moteurs de recherche et je ne sais vraiment pas lequel. Une redirection 302 serait une option, mais je ne peux pas dire quelles URL doivent être redirigées. La seule chose que je sais que toutes les URLs ont été générées par un script sef404, c'est un script SEO pour Joomla.

Ma question, comment puis-je m'assurer que toutes les urls orphelines sur google et autres moteurs de recherche sont livrés correctement avec un fichier .htaccess?

Comment puis-je redirection 301 toutes les 404 pages à la page d'accueil (document racine)

Au moment où j'utilise un fichier d'erreur de 404.html personnalisé, mais il y a trop de fichiers et donneront des montagnes russes de pages d'erreur 404 personnalisées

Répondre

35

Vous devez savoir quelque chose sur les URL, comme ils ont un répertoire spécifique ou un élément de chaîne de requête, car vous devez faire correspondre quelque chose. Sinon, vous devrez rediriger sur le 404. Si c'est ce qui est nécessaire alors faire quelque chose comme ceci dans votre .htaccess:

ErrorDocument 404 /index.php 

Une page d'erreur de redirection doit être relatif à la racine de sorte que vous ne pouvez pas utiliser www.mydomain. com.

Si vous avez un motif à faire correspondre, utilisez 301 au lieu de 302 car 301 est permanent et 302 est temporaire. Un 301 obtiendra les anciennes URL supprimées des moteurs de recherche et le 302 ne sera pas.

Mod Rewrite Référence: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

+5

Moins comme ce n'est pas une redirection – TheBlackBenzKid

38

je suis venu avec la solution et posté sur mon blog

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

voici le code htaccess également

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

mais j'ai posté D'autres solutions sur mon blog aussi, cela dépend vraiment de ce dont vous avez besoin

+1

ce sera 301 rediriger toutes les pages 404 à l'endroit où vous voulez, dans la solution précédente, il est un 302 – andrew

+2

Cela devrait être la réponse que l'autre réponse est juste une réécriture et non rediriger +1 – TheBlackBenzKid

+1

Pour tous ceux qui veulent savoir pourquoi cela fonctionne comme je l'ai fait (https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html): la première ligne active RewriteEngine, la deuxième ligne définit une condition pour la troisième ligne, en vérifiant qu'il s'agit d'un fichier inexistant et en passant le nom de fichier demandé (en utilisant une variable serveur (% {})), la troisième ligne correspond à tout, le remplace par le dossier racine et définit deux indicateurs, le premier (L) plus de règles de réécriture sont appliquées, et la seconde (R = 301) permet de forcer une redirection externe en utilisant le code d'erreur 301. – Andrew