6 .htaccess Reescribe: Eliminar index.html, Eliminar .html, Force non-www, Force Trailing Slash

Tengo que dar algo de información sobre mi sitio web.

  1. Tengo una página web estática en la raíz.

  2. WordPress instalado en el sub-diccionario www.domain.com/blog/

  3. Tengo dos .htaccess, uno en la raíz y otro en la carpeta wordpress.

quiero

  • www a no en todas las URL <debajo del código LO HIZO 🙂
  • Eliminar index.html de la url <debajo del código LO HIZO 🙂
  • Elimine todas las extensiones .html / Re-direct 301 a url sin extensión .html <debajo del código LO HIZO 🙂
  • Agregue una barra inclinada a las páginas web estáticas / Redireccione 301 desde la barra diagonal no inicial << NECESITO AYUDA CON ESO
  • Forzar una barra diagonal hacia las páginas web de WordPress / Reorientar 301 desde una barra diagonal <debajo del código LO HIZO 🙂

Algunos ejemplos

domain.tld / index.html >> domain.tld /

domain.tld / file.html >> domain.tld / file /

domain.tld / file.html / >> domain.tld / file /

domain.tld / wordpress / post-name >> domain.tld / wordpress / post-name /

Mi código en ROOT htaccess es

 Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / #removing trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ $1 [R=301,L] #www to non RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?domain\.com)$ [NC] RewriteRule .? http://%1%{REQUEST_URI} [R=301,L] #html RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^\.]+)$ $1.html [NC,L] #index redirect RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://domain.com/ [R=301,L] RewriteCond %{THE_REQUEST} \.html RewriteRule ^(.*)\.html$ /$1 [R=301,L]   RewriteEngine on RewriteBase /blog/ # Force Trailing Slash for wordpress RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)[^/]{1}$ %{REQUEST_URI}/ [L,R=301]  

El código de arriba hace

  1. redirigir www a no www
  2. Eliminar barra al final (si existe)
  3. Eliminar index.html
  4. Eliminar todo .html
  5. Redirigir 301 a nombre de archivo sin barra al final
  6. Force Trailing Slash para wordpress y redirigir 301 desde slash no final al final

EDITAR

 #removing trailing slash Rule usage 

eliminar regla de barra al final

Tenerlo de esta manera para el sitio root .htaccess:

  Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / #www to non RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?domain\.com)$ [NC] RewriteRule ^(.+?)/?$ http://%1/$1/ [R=301,L] RewriteCond %{THE_REQUEST} \s/+(.+?)\.html/?[\s?] [NC] RewriteRule ^ /%1/ [R=301,NE,L] #index redirect RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://%{HTTP_HOST}/ [R=301,L] # add a trailing slash to non files RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=301,NE] # add html internally RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^.]+)/$ $1.html [L]  

Asegúrese de borrar la caché de su navegador antes de realizar la prueba.

 RewriteEngine On RewriteBase / 

WWW a Non

 RewriteCond %{HTTP_HOST} ^www.domain\.tld$ [NC] RewriteRule ^(.*)$ http://domain.tld/$1 [L,R=301] 

Eliminar index.html de la URL

 RewriteRule ^index.html$ / [L,R=301] 

Elimine toda la extensión .html / Re-dirija 301 a url sin extensión .html

 RewriteRule ^([a-zA-z0-9]+).html$ /$1 [L,R=301] 

Añadir una barra inclinada a las páginas web estáticas / Redestinar 301 desde la barra diagonal

 RewriteRule ^([a-zA-z0-9]+).html$ /$1/ [L,R=301] 

Fuerza la barra diagonal hacia las páginas web de WordPress / Re-direct 301 desde la barra diagonal

 RewriteRule /blog/([^/]+) /blog/$1/ [L,R=301]