Rookee
Россия+7 (495) 960-65-87

Сложности .htaccess: что это и как настроить?

Россия+7 (495) 960-65-87
Шрифт:
6 19183

Работая над сайтом, всегда возникает необходимость обратиться к файлу .htaccess. Но разобраться в нем достаточно сложно, особенно если нет глубоких знаний в программировании и seo. Поэтому Labrika подготовила статью об этом загадочном файле, в которой расскажет о настройках .htaccess.

Что такое .htaccess?

.htaccess – это специальный файл, позволяющий изменять конфигурации и настройки веб-сервера Apache и подобных серверов. При этом Вы не влияете на работу всего сервера, а только настраиваете дополнительные параметры у отдельных пользователей.

Этот файл помогает любому пользователю менять конфигурации веб-сервера только для своего сайта. Обычно его используют для редиректа, переназначения типов файлов или управления доступом к каталогам. Но это не все возможности .htaccess.

Все управление конфигурациями сервера происходит с помощью директив. Директивы – это небольшие команды, имеющие вид «ключ-> значение».

Основные директивы для управления сервером прописаны в главном файле конфигурации – httpd.conf. Но доступ к нему для обычных пользователей закрыт, а .htaccess дает возможность изменять некоторые директивы из httpd.conf. Действие директив .htaccess распространяется на весь каталог, в котором он находится. Поэтому если разместить его в корневом каталоге, он будет распространяться на весь сайт.

.htaccess предоставляет пользователю следующие возможности:

  • Директивы простого перенаправления (редирект);
  • Директивы сложного перенаправления (mod_rewrite);
  • Индексные страницы;
  • Обработка ошибок;
  • Определение кодировки;
  • Управление доступом к директориям и файлам;
  • Паролирование директорий.

Разберем каждый описанный параметр поподробнее.

Директивы простого перенаправления (редирект)

Это наиболее часто используемые директивы файла .htaccess. Если мы хотим перенаправить пользователя со старой страницы на новый URL, нам понадобится 301-редирект. Для этого в код файла .htaccess необходимо добавить:

Redirect 301 /stariy_URL.html http://www.mysite.ru/noviy_URL.html

В общем виде данная директива выглядит так:

Redirect [status] URL_LOCAL URL_REDIRECT

[status] – это необязательное поле, может принимать значения:

  • 301 – страница перемещена навсегда;
  • 302 – страница перемещена временно;
  • 303 – смотрите другой документ;
  • 410 – страница убрана (удалена).

URL_LOCAL – локальная часть URL, с которой выполняется редирект;

URL_REDIRECT – адрес, на который переносится документ.

Директивы сложного перенаправления (mod_rewrite)

mod_rewrite – это модуль, входящий в состав Apache. Он включает в себя множество директив, позволяющих максимально полно управлять URL.

Рассмотрим наиболее популярные варианты применения директив сложного перенаправления:

1. Указание главного зеркала

Проще говоря, перенаправление с www на домен без www. Для этого в код добавляем:

RewriteEngine On #включает работу

RewriteCond %{HTTP_HOST} ^www.mysite\.ru$ [NC] #условие для начала преобразования

RewriteRule ^(.*)$ http://mysite/$1 [R=301,L] #правило преобразования

2. Перенаправление на HTTPS

Сейчас Google настаивает на переходе на безопасное соединение. Чтобы перенаправлять всех пользователей с http на https, необходимо вписать в код:

RewriteEngine On

RewriteCond %{HTTPS} !on

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

3. Подстановка слеша в конце URL

Чтобы адрес не заканчивался просто именем каталога http://mysite.ru/news, необходимо добавить следующий код в файл .htaccess:

RewriteCond %{REQUEST_URI} /+[^\.]+$

RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

Тогда в конце URL будет автоматически добавляться слеш: http://mysite.ru/news/

4. Перенос домена

Если наш сайт перенесен с домена http://mysite.ru на http://my-site.ru , нужно указать это в .htaccess:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.mysite\.ru$ [NC]

RewriteRule ^(.*)$ http://www.my-site.ru/$1 [R=301,L]

Если Вы продвигаетесь и в Google, и в Яндекс, при смене домена могут возникнуть проблемы, так как указания, прописанные в robots.txt для Яндекса, перекрываются 301-редиректом. Чтобы этого избежать, необходимо дополнить код в .htaccess:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]

RewriteRule ^([^/]+) $1 [L]

RewriteCond %{HTTP_HOST} ^mysite\.ru

RewriteRule ^(.*)$ http://www.my-site.ru/$1 [R=301,L]

5. Запрет для робота

Если Вы не хотите, чтобы робот Google заходил на сайт, можно прописать жесткий запрет на посещение:

RewriteEngine on

RewriteCond %{USER_AGENT} Googlebot

RewriteRule .* - [F] # F – отправляет значение ошибки 403 – запрещено

Индексные страницы

При попадании пользователя на сайт, автоматически открывается индексный файл. Обычно он называется index.htm. Но .htaccess предоставляет возможность поменять индексную страницу:

DirectoryIndex name.html

Или указать несколько индексных страниц, при этом поиск будет осуществляться последовательно:

DirectoryIndex index.html index.pl index.php

Обработка ошибок

Мы уже все привыкли к значению кода ошибки 404 – страница не найдена. Но иногда совершенно непонятно, что за ошибка отображается. В .htaccess есть возможность выбрать файл, который будет отображаться при ошибке. Но прежде Вам нужно будет создать такой файл с расширением html и описать там суть ошибки. В код .htaccess необходимо добавить:

ErrorDocument 404 /siteerror404.html

ErrorDocument 403 / siteerror 403.html

ErrorDocument 500 / siteerror 505.html

Чтобы все правильно оформить, прочитайте значения всех ошибок:

001.jpg

Определение кодировки

Эта функция необходима для корректного отображения текста пользователю. Иначе у него могут появиться непонятные символы вместо страницы сайта.

Чаще всего используются кодировки Windows-1251 – Кириллица и UTF-8 - двух байтовая кодировка. Для указания кодировки в файле .htaccess используется директива AddDefaultCharset:

AddDefaultCharset WINDOWS-1251

Чтобы не возникало противоречий при загрузке файлов на сервер, необходимо прописать, что все получаемые файлы будут в той же кодировке:

CharsetSourceEnc WINDOWS-1251

Управление доступом к директориям и файлам

.htaccess позволяет ограничить или запретить доступ к каким-либо файлам. Например, если Вы не хотите, чтобы кто-то попал в системный каталог. Тогда в .htaccess этого каталога указывается строчка:

Deny from all

Также можно разрешить доступ с какого-либо IP, запретив просмотр всем остальным. Например, разрешаем просмотр файла data.html только с IP 31.222.143.00:

<Files "passwd.html">

Order Deny,Allow

Deny from all

Allow from 31.222.143.00

</Files>

Паролирование директорий

Вы можете не только закрыть доступ к определенным файлам, но и поставить на них пароль. Для этого в закрываемом каталоге необходимо прописать:

AuthName "Need password" #сообщение, показываемое при запросе пароля

AuthType Basic #тип аутентификации

AuthUserFile /passwords/.psd #имя файла с паролями для входа

Require valid-user #пользователи, которые могут получить доступ

Правила использования .htaccess

1. Не начинайте работу с файлом .htaccess, пока не создадите резервную копию. Это позволит, при необходимости, вернуть изначальные настройки.

2. Путь к файлам указывается от корня: AuthUserFile /passwords/.psd

3. Домены прописываются с указанием протокола: Redirect 301 http://mysite.ru

4. Не забывайте про точку перед названием файла .htaccess

5. Комментарии прописываются с помощью символа #

Удачи с настройкой загадочного и многофункционального файла .htaccess!

(Нет голосов)
Читайте нас в Telegram - digital_bar

Есть о чем рассказать? Тогда присылайте свои материалы Даше Калинской


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
  • Михаил Медведев
    1
    комментарий
    LANG_NO
    читателей
    Михаил Медведев
    больше года назад
    Скажите пожалуйста почему файл с паролям в расширении psd?
    AuthUserFile /passwords/.psd #имя файла с паролями для входа
    -
    0
    +
    Ответить
  • Александр
    больше года назад
    Спасибо, полезная информация.
    -
    0
    +
    Ответить
  • Гость
    больше года назад
    Ходят слухи, что в 2016 году, сайты которые используют кодировки отличные от UTF-8 Роскомнадзор будет банить с особой настойчивостью.
    -
    1
    +
    Ответить
  • Гость
    больше года назад
    А скажите, на ваших курсах есть краткий подкурс по орфографии в русском языке? Интересно послушать про написание тся\ться.
    -
    0
    +
    Ответить
  • Гость
    больше года назад
    скажите, кому заплатить чтобы попасть на ваши замечательные курсы?
    -
    -2
    +
    Ответить
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Рейтинг Известности 2018: старт народного голосования
Михаил Р
1
комментарий
LANG_NO
читателей
Полный профиль
Михаил Р - 1. Demis 2. кокс 3. Ашманов 4. Скобеев 5. Digital Strategy
Рейтинг Известности 2018: второй этап народного голосования
Константин Сокол
3
комментария
LANG_NO
читателей
Полный профиль
Константин Сокол - Кто был ответственный за дизайн таблицы голосования? Копирайтер?
Сколько ссылок помогут продвинуть молодой сайт
Павел Андрейчук
32
комментария
LANG_NO
читателей
Полный профиль
Павел Андрейчук - Дело в том, что вряд ли в ваших платных "качественных" кейсах найдётся хоть пару % действительно новой и полезной информации которой бы не было на общедоступных источниках.
Сайт на WordPress: за и против
Мира Смурков
1
комментарий
LANG_NO
читателей
Полный профиль
Мира Смурков - Людмила, я согласен с большинством комментаторов. Вы хоть один полноценный магазин сделали на этих движках? Woocommerce это система с супер возможностями. И к ней есть дополнительные модули, с функционалом, который вряд ли появиться на Битрикс. А самому это программировать - сотни тысяч рублей на разработку. А приведя в пример сложности с robots.txt и Sitemap вы ставите под вопрос вашу компетенцию в понимании Интернет-бизнеса и веб-разработки в целом. Во-первых это такие мелочи, а во-вторых это все делается на вордпресса за 2 минуты, и опять же с возможностями многократно превышающими Битрикс.
Кейс: вывод лендинга по изготовлению флагов на заказ в ТОП 1 по Санкт-Петербургу
utka21
5
комментариев
LANG_NO
читателей
Полный профиль
utka21 - Кейс как кейс. Для некоторых станет вполне возможно полезным. ( Для конкурентов точно) . А вот с комментариями , что то пошло не так )
Обзор популярных CMS: плюсы и минусы
Гость
1
комментарий
LANG_NO
читателей
Полный профиль
Гость - У Битрикса техническое seo сильно страдает, чтоб оно там было нормальным придется все переделать. Безопасность у Битрикса тоже низкая, особено если надо дорабатывать функционал, как только правиться функционал у Битрикс , то уровень ее безопасности определяет тот разработчик , который этим занимается. Самые безопасные движки те, что нет в общем доступе и где нельзя ничего редактировать в коде. =)
Google обошел Яндекс по популярности в России в 2018 году: исследование SEO Auditor
Рамблер
1
комментарий
LANG_NO
читателей
Полный профиль
Рамблер - Вот вроде отечественный - это сказано верно.. «Я́ндекс» — российская транснациональная компания, зарегистрированная в Нидерландах. Так говорится в Википедии. И с хрена ли ОТЕЧЕСТВЕННЫЙ поисковик зарегистрирован в Европе? И где платится основная часть налогов? Ну-ууу, точно не в России. И если запахнет жаренным, то был Яндекс и нет Яндекса!
8 методик в SEO, от которых давно пора отказаться
Евгений Сметанин
11
комментариев
LANG_NO
читателей
Полный профиль
Евгений Сметанин - Факторов вообще очень много, согласитесь, вы будете использовать максимальное их количество, особенно, если в ТОПе засели агрегаторы с сумасшедшими ПФ. В таких случаях, вхождение ключа в домен для маленького профильного сайта, сыграет свою положительную роль. Конечно же, если контент на страницах хорошего качества. У меня есть несколько успешных кейсов на эту тему. На сайте продают несколько видов товаров, а выстреливает в ТОП тот, название которого присутствует в доменном имени. Как корабль назовешь, так он и поплывет, верно?))
Инструкция: настраиваем цели Яндекс.Метрики через Google Tag Manager
Roman Gorkunenko
1
комментарий
LANG_NO
читателей
Полный профиль
Roman Gorkunenko - Здравствуйте. Подскажите, пожалуйста, можно с айпи метрики вытащить среднюю стоимость клика по утм меткам? В метрике есть такой шаблон tags_u_t_m, но он не совместим с меткой директа, у них разные префиксы.
Аудит структуры интернет-магазина мебели от «Ашманов и партнеры»
Дмитрий
10
комментариев
LANG_NO
читателей
Полный профиль
Дмитрий - Сергей, а вы допускаете, что вся ваша жизнь - seo-миф?
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
373
Комментариев
344
Комментариев
262
Комментариев
246
Комментариев
171
Комментариев
156
Комментариев
137
Комментариев
121
Комментариев
100
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
73
Комментариев
67
Комментариев
60
Комментариев
59
Комментариев
57
Комментариев
56
Комментариев
55

Отправьте отзыв!
Отправьте отзыв!