2010-03-02 12 views
28

No he podido encontrar una respuesta directa a mi pregunta y necesito saberlo de los verdaderos expertos.Redirigir el error 404 con .htaccess a través de 301 para SEO, etc.

Tenía un sitio web cuyas URL fueron generadas por Joomla. Creo que hay toneladas de URL en los motores de búsqueda y realmente no sé cuál de ellas. Una redirección 302 sería una opción, pero no puedo decir qué URL deben redirigirse.

Lo único que sé que todas las URL fueron generadas por un script sef404, es un script de SEO para Joomla.

Mi pregunta, ¿cómo puedo asegurarme de que todas las URL huérfanas en google y otros motores de búsqueda se entregan correctamente con un archivo .htaccess?

Cómo hacer yo 301 redirigir todas las 404 páginas a la página principal (documento raíz)

Por el momento utilizo un archivo de error 404.html costumbre, pero hay demasiados archivos y darán una montaña rusa de páginas de error 404 personalizadas

Respuesta

35

Tendrá que saber algo sobre las URL, como si tuvieran un directorio específico o algún elemento de cadena de consulta porque tiene que coincidir para algo. De lo contrario, tendrá que redirigir en el 404. Si esto es lo que se requiere a continuación, hacer algo como esto en su .htaccess: página

ErrorDocument 404 /index.php 

un error de redirección debe ser relativa a la raíz por lo que no puede utilizar www.mydomain. com.

Si tiene un patrón para que coincida también, utilice 301 en lugar de 302 porque 301 es permanente y 302 es temporal. A 301 se le quitarán las viejas URL de los motores de búsqueda y el 302 no lo hará.

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

+5

Menos como esto no es un redireccionamiento – TheBlackBenzKid

38

me ocurrió con la solución y publicado en mi blog

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

aquí está el código .htaccess también

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

pero publicada otras soluciones en mi blog también, depende de lo que realmente necesite

+1

esto 301 redirigirá TODAS las páginas 404 a donde lo desee, en la solución anterior es un 302 – andrew

+2

Esta debería ser la respuesta, ya que la otra respuesta es simplemente una reescritura y no redirigir +1 – TheBlackBenzKid

+1

Para cualquier persona que quiera saber por qué funciona como lo hice (https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html): la primera línea activa RewriteEngine, la segunda línea establece una condición para la tercera línea, asegurando que es un archivo inexistente y pasando el nombre de archivo solicitado (usando una variable de servidor (% {})), la tercera línea combina todo, lo reemplaza con la carpeta raíz y establece dos indicadores, el primero (L) para detener cualquier más reglas de reescritura se aplican, y el segundo (R = 301) para forzar un redireccionamiento externo utilizando el código de error 301. – Andrew

Cuestiones relacionadas