6 .htaccess Rewrites: Удалить index.html, Удалить .html, Force non-www, Force Trailing Slash

я должен предоставить некоторую информацию о моем веб-сайте.

  1. У меня есть статическая веб-страница в корне.

  2. WordPress установлен в подзаносе www.domain.com/blog/

  3. У меня два .htaccess, один в корне и один в папке wordpress.

я хочу

  • www не на всех URL-адресах <ниже код DID это 🙂
  • Удалить index.html из url <ниже код DID это 🙂
  • Удалите все расширения .html / Re-direct 301 в url без расширения .html <ниже кода DID it 🙂
  • Добавить трейлинг-косую черту на статические веб-страницы / Переустановить 301 из незаметной косой черты << Мне НУЖНА ПОМОЩЬ С ЭТОЙ
  • Принудительное завершение косой черты на веб-страницах WordPress / перенаправлять 301 из непереходной косой черты <ниже кода DID это 🙂

Некоторые примеры

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 /

Мой код в ROOT htaccess

 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]  

Вышеприведенный код

  1. перенаправить www на не-www
  2. Удалить конечную косую черту в конце (если существует)
  3. Удалить index.html
  4. Удалить все .html
  5. Перенаправление 301 в имя файла без конечной косой черты в конце
  6. Force Trailing Slash для wordpress и перенаправления 301 из не завершающей косой черты в конце

РЕДАКТИРОВАТЬ

 #removing trailing slash Rule usage 

удаление конечной косой черты

Сделайте это так для корневого сайта .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]  

Перед тестированием обязательно очистите кеш браузера.

 RewriteEngine On RewriteBase / 

WWW для Non

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

Удалить index.html из url

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

Удалите все .html extension / Re-direct 301 в url без расширения .html.

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

Добавить трейлинг-косую черту на статические веб-страницы / Re-direct 301 из непереходной косой черты

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

Принудительное завершение косой черты на веб-страницах WordPress / redirect 301 из непереходной косой черты

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