Hola chicos, tengo una duda con las redirecciones 301 para evitar duplicados.
Actualmente tengo mi .htaccess configurado para conseguir que me rediriga:
http://dominio.com --> http://www.dominio.com
http://www.dominio.com/index.php --> http://www.dominio.com
y
http://www.dominio.com/index.html --> http://www.dominio.com
Hasta aquí todo perfecto. El problema es que si yo introduzco a mano en el navegador otra página que cuelgue del index.php también me la muestra, por ejemplo:
http://www.dominio.com/index.php/contacto
y yo quiero que me haga el redirect automáticamente a
http://www.dominio.com/contacto
Y así evitar duplicados para Google
Lo puedo hacer con la siguiente sentencia:
RedirectMatch 301 /index.php/contacto(.*) http://www.dominio.com/contacto/$1
Pero tendría que ir añandiendo cada página de mi sitio web en el .htaccess y no se si se puede hacer algo para que lo haga automáticamente. Os dejo el código que tengo en mi .htaccess para ver que es lo que tengo mal. Muchas Gracias!!
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(index|home)\.html?\ HTTP/
RewriteRule ^(([^/]+/)*)(index|home)\.html?$ http://www.dominio.com/$1 [R=301,L]
#
RewriteCond %{THE_REQUEST} !^POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.php\ HTTP/
RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$
RewriteRule ^(([^/]+/)*)index\.php$ http%2://www.dominio.com/$1 [R=301,L]
#
RewriteCond %{HTTP_HOST} !^(www\.dominio\.com)?$
RewriteRule (.*) http://www.dominio.com/$1 [R=301,L]