Redirección del index de una página web

Franciso me ha enviado la siguiente consulta:

Pregunta

Hola.
Tengo 2 paginas que dan una respuesta 200 OK y necesito dejarla en una sola:
midominio.es   200 OK
midominio.es/index.html 200 OK

Estoy trabajando el htaccess pero no doy con el tema(tampoco se mucho), ¿me puedes ayudar?.
Gracias.

Respuesta

Por lo que veo no quieres duplicidad de páginas para el Posicionamiento en Buscadores, normalmente no debes de preocuparte por este tema, pero si prestar especial atención a que ningúna de tus páginas enlace al index.html, así la fuerza que se reparta irá siempre a la misma página.

La solución que te propongo es hacer una Redirección 301 de cualquier index.html a la url sin index.html, de esta forma la URL con index.html devolverá una 301 (Redirección Permanente) y llevará al usuario/buscador a la URL sin index.html. Editamos nuestro fichero .htaccess, sino lo creamos y añadimos lo siguiente:

RewriteEngine On
RewriteCond %{REQUEST_URI} (.*)\/index\.html
RewriteRule .* %1/ [R=301,L]

Te explico un poco el código:

RewriteEngine On -> Activamos el mod_rewrite del Apache.
RewriteCond %{REQUEST_URI} (.*)\/index\.html -> Para cualquier URI acabada en index.html.
RewriteRule .* %1/ [R=301,L] -> Hacemos una Redirección 301 manteniendo el directorio y variables pasadas.

Si queréis Redireccionar otro tipo de fichero INDEX, ya sea index.htm, index.php, default.htm... debéis de copiar el código reemplazando index\.html por el que corresponda.

Espero haberte podido ayudar.

¿Fué interesante? Por qué no dejas un comentario abajo y continúas la conversación.

Comentarios

Gracias por tu interés, Enrique!

Pero no me funciona, y no se porqué. Ya te comenté que no se muy bien cómo funciona .htaccess.

Pongo aquí un fragmento:

—————————————-

deny from all

Options -Indexes
RewriteEngine on
#RewriteCond %{REQUEST_URI} (.*)\/index\.html
#RewriteRule .* %1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(midominio\.es)(:80)? [NC]
RewriteRule ^(.*) http://www.midominio.es/1 [R=301,L]
————————————-

Como ves, las líneas están desactivadas por que de lo contrario no permite acceder a la página.

Lo que pretendo, efectivamente, es mejorar posicionamiento y eliminar dobles respuestas: con y sin www, son y sin index.*

El módulo anterio es gzip_on y en el posterior fijo la expiración de la caché, no los pongo porque no creo que sea de utilidad.

Un saludo.

Mmmmmm…

Comprueba si tienes activo el mod_rewrite, con un phpinfo(), supongo que si lo estará, sino no te iria la redirección de la canónica.

Si lo tienes activo y no te funciona… lo único que se me ocurre es que hagas la comprobación dentro de PHP, básicamente es igual, coges la variable REQUEST_URI y compruebas si lleva el index.html, si es así lo quitas y redireccionas sin el index.html.

Deja un Comentario

(requerido)

(requerido)