Intereting Posts
Зацикливание через объект SimpleXML или превращение всего объекта в массив Laravel 5: перенаправление на внешнюю ссылку outisde localhost / server как установить обратный URL facebook wp-admin показывает пустую страницу, как ее исправить? Получите подмножество случайных значений из массива php Почему мой сценарий резервного копирования базы данных не работает в php? Получение данных из раскрывающегося списка с множественным выбором с PHP для вставки в MySQL Почему PDO_MySQL не возвращает целое число? Производительность SimpleXML и DOMDocument какие символы ASCII? как установить задание cron из php-скрипта? API-драйв google разрешает Случайные URL-адреса PHP (короткий URL) Joomla 1.0, ссылка администратора перенаправляется на «installation / index.php», как предотвратить это перенаправление? wordpress: идентификатор категории и идентификатор сообщения не получаются, когда я изменяю постоянную ссылку

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

<IfModule mod_rewrite.c> 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] </IfModule> <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /blog/ # Force Trailing Slash for wordpress RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)[^/]{1}$ %{REQUEST_URI}/ [L,R=301] </IfModule> 

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

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

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

 #removing trailing slash Rule usage 

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

Сделайте это так для корневого сайта .htaccess:

 <IfModule mod_rewrite.c> 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] </IfModule> 

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

 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 / перенаправление 301 из непереходной косой черты

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