Tenemos un sitio web, desafortunadamente todas las URL tienen el sufijo .html
, es una instalación de Magento, Magento le permite cambiar esto en el CMS, pero nuevamente, desafortunadamente todas estas URL con el sufijo .html
tener una buena clasificación en Google. Necesitamos redireccionar a no .html
.Eliminar .html de las URL con un redireccionamiento
Por lo tanto, tenga en cuenta la situación siguiente, estamos reconstruyendo este sitio desde cero, por lo que tenemos las mismas direcciones URL en el sitio nuevo, pero sin el sufijo .html.
- Ahora es:
www.example.de/cool-shoes.html
- será:
www.example.de/cool-shoes
Así www.example.de/cool-shoes.html
no existirá más, y he estado tratando una redirección con el .htaccess sin suerte.
que he probado hasta ahora:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule (.*)index\.html$ /$1 [R=301,L]
y:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
pero no parece funcionar ... alguna idea?
hola, solo para aclarar mi duda, ¿qué está haciendo esta regla? no se supone que el primer parámetro es la expresión que recibirá de la solicitud y el 2º que le enviará a apache. deberían cambiarse ->^(. *) $ 1.html – alexserver
Esa regla es eliminar el '.html'. La primera parte es lo que corresponde: cualquier url que tenga un '.html'. El '$ 1' es lo que está en el paréntesis de la coincidencia: todo excepto el' .html'. –
Agregaría un '$' para asegurar que '.html' llegue al final de la URL:' redirectMatch 301^(. *) \. Html $ $ 1' –