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

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

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

Работая над сайтом, всегда возникает необходимость обратиться к файлу .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!

internet-dlya-biznesa
Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Поделиться 
Поделиться дискуссией:
Отправить отзыв
  • Михаил Медведев
    1
    комментарий
    0
    читателей
    Михаил Медведев
    неделю назад
    Скажите пожалуйста почему файл с паролям в расширении psd?
    AuthUserFile /passwords/.psd #имя файла с паролями для входа
    -
    0
    +
    Ответить
    Поделиться
  • Александр
    4 месяца назад
    Спасибо, полезная информация.
    -
    0
    +
    Ответить
    Поделиться
  • Гость
    4 месяца назад
    Ходят слухи, что в 2016 году, сайты которые используют кодировки отличные от UTF-8 Роскомнадзор будет банить с особой настойчивостью.
    -
    0
    +
    Ответить
    Поделиться
  • Гость
    4 месяца назад
    А скажите, на ваших курсах есть краткий подкурс по орфографии в русском языке? Интересно послушать про написание тся\ться.
    -
    1
    +
    Ответить
    Поделиться
  • Гость
    4 месяца назад
    скажите, кому заплатить чтобы попасть на ваши замечательные курсы?
    -
    -1
    +
    Ответить
    Поделиться
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Тест: проверь свои знания по SEO
Гость - Ну вот и плохо что в каноникалах ты не сечешь, тестировщик. Ни пользоваться ими не умеешь ни назначения не знаешь. За то кого-то там "тестируешь".
Пишем биддер для Google AdWords из 10 строчек
Anton Stremovskyy
2
комментария
0
читателей
Полный профиль
Anton Stremovskyy - // Позиция рекламного объявления которую пытаемся занять. var TARGET_AVERAGE_POSITION = 3; // Когда позиция обьявления будет между TOLERANCE и TARGET_AVERAGE_POSITION, // Ее ставка не будет изменена. var TOLERANCE = 0.1; // Значение для корректировки ставки (1.05 = 5%). var BID_ADJUSTMENT_COEFFICIENT = 1.05; function main() { raiseKeywordBids(); lowerKeywordBids(); } function raiseKeywordBids() { // Условие для увеличения ставки: Средняя позиция больше (хуже) чем // TARGET_AVERAGE_POSITION + TOLERANCE var keywordsToRaise = AdWordsApp.keywords() .withCondition("Status = ENABLED") .withCondition("AveragePosition > " + (TARGET_AVERAGE_POSITION + TOLERANCE)) .orderBy("AveragePosition ASC") .forDateRange("LAST_7_DAYS") .get(); while (keywordsToRaise.hasNext()) { var keyword = keywordsToRaise.next(); keyword.setMaxCpc(keyword.getMaxCpc() * BID_ADJUSTMENT_COEFFICIENT); } } function lowerKeywordBids() { // Условия для снижения ставки: Ctr больше чем 1% и // средняя позици лучше (меньше) чем TARGET_AVERAGE_POSITION - TOLERANCE var keywordsToLower = AdWordsApp.keywords() .withCondition("Ctr > 0.01") .withCondition("AveragePosition < " + (TARGET_AVERAGE_POSITION - TOLERANCE)) .withCondition("Status = ENABLED") .orderBy("AveragePosition DESC") .forDateRange("LAST_7_DAYS") .get(); while (keywordsToLower.hasNext()) { var keyword = keywordsToLower.next(); keyword.setMaxCpc(keyword.getMaxCpc() / BID_ADJUSTMENT_COEFFICIENT); } }
Золотое правило SEO: хватит технарствовать – пора фигачить!
Рустем Фахрутдинов
14
комментариев
0
читателей
Полный профиль
Рустем Фахрутдинов - На самом деле, мы сделали почти всё :) А в статье - пример того, как это удалось чуть позже автоматизировать.
Ссылки все еще работают?
Roman Popov
41
комментарий
0
читателей
Полный профиль
Roman Popov - Но это ведь совсем другая история! =)) По коммерческим запросам такими вещами заниматься не следует. По информационным - можно, вероятность схватить по голове тут довольно маленькая даже при злоупотреблениях.
100 полезных ресурсов, без которых не обойтись начинающему SEO-специалисту
Игорь Ходырев
1
комментарий
0
читателей
Полный профиль
Игорь Ходырев - От души. Действительно самые полезные ресурсы. Использую 90% из перечисленного. Кокшаров и Шахов - лучшие!
Мастер-класс: как составить файл sitemap.xml
Айрат Рахимзянов
0
комментариев
0
читателей
Полный профиль
Айрат Рахимзянов - Здравствуйте Максим. Возможно, вам будет интересна новая статья: www.seonews.ru/analytics/metody-bystroy-indeksatsii-sayta/
Энциклопедия интернет-маркетинга: составляем корректный robots.txt своими руками
Kirill Terentiev
10
комментариев
0
читателей
Полный профиль
Kirill Terentiev - "Недокументированные" возможности robots.txt Можно разместить вакансию, например. # Приглашаем на работу SEO-специалистов: оптимизаторов, аккаунт-менеджеров hh.ru/employer/18738 User-agent: * Disallow:
Кейс: +1500000 трафика для игрового портала
Гость - Вопрос - какова ориентировочная стоимость заказа на проведение работ по оптимизации игрового сайта в объеме всего вышеприведенного?
Верните мой 2007, или Как SEO-специалисты возрождают традиции продвижения из нулевых
Гостьc - Нужно анализировать акцептора, если он имеет позиции в поисковой системе, значит метод работает
Секреты быстрой индексации в Яндекс и Google
Гость - Игорь, давно не слышал от вас ничего дельного по seo, только и умеете, что других высмеивать - то на конференции, то в комментариях. Если вы такой умный, что же не публикуете тут свои статьи? Боитесь, что также высмеют?
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
373
Комментариев
285
Комментариев
262
Комментариев
172
Комментариев
171
Комментариев
137
Комментариев
132
Комментариев
123
Комментариев
97
Комментариев
97
Комментариев
92
Комментариев
80
Комментариев
68
Комментариев
67
Комментариев
60
Комментариев
55
Комментариев
52
Комментариев
45
Комментариев
44
Комментариев
44

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