Правка .htaccess на удаление слеша в конце и ошибка при входе в админку

Всем известно, что для поисковой оптимизации контент страниц должен быть уникальным. Тем не менее даже если вы честно написали для каждой страницы свой текст, могут появиться дубли, которые возникают из-за генерации адресов со слешем и без слеша. Для пользователя это неважно, а вот поисковые машины воспримут такие страницы как разные, но с одинаковым контентом.


Чтобы проверить, есть ли такая проблема у вашего сайта, нужно просто забить его адрес со слешем и без слеша на конце («http://www.mysite.ru/page.html» и «http://www.mysite.ru/page.html/»). Если существуют обе страницы, это негативным образом сказывается на ранжировании.

Эту проблему можно решить правкой файла .htaccess (он лежит в корне сайта). Нужно открыть файл и добавить туда следующий код:

1
2
3
4
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

Теперь слеши на конце будут удаляться.

Как убрать переадресацию с админки (ошибка ERR_TOO_MANY_REDIRECTS)

После удаления слешей при входе в админку иногда возникает ошибка: «На этой странице обнаружена циклическая переадресация
ERR_TOO_MANY_REDIRECTS». Это из-за того, что ее адрес должен быть со слешем. Тогда нужно добавить еще строчку, исключающую удаление слеша из адреса админки:

1
RewriteCond %{REQUEST_URI} !^/admin(/(.*)|$)

(вместо admin прописывается адрес к админке, например, в WordPress это wp-admin, в modx — manager).

Целиком правила получаются вот такие:

1
2
3
4
5
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteCond %{REQUEST_URI} !^/manager(/(.*)|$)
RewriteRule ^(.*)(/)$ $1 [L,R=301]

3 thoughts on “Правка .htaccess на удаление слеша в конце и ошибка при входе в админку

  • 11.03.2016 в 18:44
    Permalink

    Скажите, а можно через .htaccess удалить расширения файлов, к примеру было mysite.php а стало просто mysite?

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *