apache - quitar - redireccionar una pagina web a otro dominio
Eliminar.html de las URL con una redirección (8)
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 de nuevo, desafortunadamente todas estas URL con el sufijo .html
tienen una buena clasificación en Google. Necesitamos redirigir a no .html
.
Por lo tanto, considere la siguiente situación, estamos reconstruyendo este sitio desde cero, por lo que tenemos las mismas URL en el nuevo sitio, pero sin el sufijo .html.
- Ahora es:
www.example.de/cool-shoes.html
- Será:
www.example.de/cool-shoes
Así que www.example.de/cool-shoes.html
ya no existirá, y he intentado redirigir el .htaccess sin suerte.
Lo he intentado 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 parece que no funciona ... ¿Alguna idea?
Siga los pasos y podrá eliminar .html de la url sin modificar el archivo .htaccess.
De acuerdo, después de algunas investigaciones, y al no lograr esto con una regla de reescritura, funcionó la siguiente línea de código:
redirectMatch 301 ^(.*)/.html $1
Esto es bastante útil para eliminar cualquier extensión de URL y evitar enlaces rotos, con suerte ayuda a alguien en el futuro ...
¡aclamaciones!
Intente introducir su archivo .htaccess Redirigir permanente www.mysite.de/cool-shoes.html www.misitio.es/cool-shoes Esto puede ser útil para usted
Esto reescribirá la url como si fuera http://example.com/page.html -> http://example.com/page
# Remove .html from url
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}/.html -f
RewriteRule ^(.*)$ $1.html
Intente agregar lo siguiente al archivo .htaccess en el directorio raíz de su sitio, redirija las URL con la extensión .html y elimínelo.
Options +FollowSymLinks -MultiViews
DirectorySlash Off
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME}/ -d
RewriteCond %{SCRIPT_FILENAME}.html !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)/.html$ /$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]
Aquí está la solución que funcionó para mí.
RewriteCond %{THE_REQUEST} /.html [NC]
RewriteRule ^(.*)/.html$ /$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/.html -f
RewriteRule ^(.*)$ $1.html [L]
Esto debería funcionar:
RewriteEngine On
RewriteRule ^(/w+)/.html$ /$1 [R=301,L]
Esto es para las URL que terminan en .html /product/raspberrypi.html ---> / product / raspberrypi / (/product/raspberrypi/index.php). Index.php está oculto. Me tomó un tiempo resolver esto. LOL ...
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} /.html$
RewriteRule ^(.*)/.html$ $1 [R=301,L]
RewriteRule ^index/.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Debe usar ''REQUEST_URI'' y agregarlo antes de las reglas de redireccionamiento del índice, ya que la aplicación podría anularlo. Es importante saber que su URI no es un nombre de archivo o directorio que estamos tratando de redirigir, ya que todos los nombres de los archivos tienen index.php en las carpetas raíz (Wordpress).