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

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

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

Работая над сайтом, всегда возникает необходимость обратиться к файлу .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
    читателей
    Михаил Медведев
    3 месяца назад
    Скажите пожалуйста почему файл с паролям в расширении psd?
    AuthUserFile /passwords/.psd #имя файла с паролями для входа
    -
    0
    +
    Ответить
    Поделиться
  • Александр
    6 месяцев назад
    Спасибо, полезная информация.
    -
    0
    +
    Ответить
    Поделиться
  • Гость
    6 месяцев назад
    Ходят слухи, что в 2016 году, сайты которые используют кодировки отличные от UTF-8 Роскомнадзор будет банить с особой настойчивостью.
    -
    0
    +
    Ответить
    Поделиться
  • Гость
    6 месяцев назад
    А скажите, на ваших курсах есть краткий подкурс по орфографии в русском языке? Интересно послушать про написание тся\ться.
    -
    1
    +
    Ответить
    Поделиться
  • Гость
    6 месяцев назад
    скажите, кому заплатить чтобы попасть на ваши замечательные курсы?
    -
    -2
    +
    Ответить
    Поделиться
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Тест: проверь свои знания по SEO
Гость - Ну вот и плохо что в каноникалах ты не сечешь, тестировщик. Ни пользоваться ими не умеешь ни назначения не знаешь. За то кого-то там "тестируешь".
Конкурс: угадайте пятерку лидеров рейтинга «SEO глазами клиентов 2016»
Марина
1
комментарий
0
читателей
Полный профиль
Марина - Ingate i-Media SEO.RU Netpeak 1PS.RU
Анализ ссылок: сравнение многофункциональных платформ по размеру их баз
Calculon
1
комментарий
0
читателей
Полный профиль
Calculon - В серпстате)
Вопрос недели: почему сайт хорошо ранжируется в Google и не интересует Яндекс?
Nina S.Dzh. - У вас достаточно конкурентная тематика для рунета и по главной странице домена расположена англоязычная версия. Полагаю, в этих двух фактах вся проблема. Поскольку Яндекс в данном случае считает английскую версию сайта приоритетной, а среди ваших конкурентов в выдаче достаточно много хороших русскоязычных сайтов, то он и не ранжирует ваш сайт высоко. Грубо говоря, ему есть что предложить пользователю и без вашего сайта. На мой взгляд, в данном случае версии нужно разводить по разным доменам, русскую вешать на RU и продвигать там.
Кому бесплатный билет на базовый курс Excel от Макса Уварова?
Maxim Uvarov
10
комментариев
0
читателей
Полный профиль
Maxim Uvarov - Дайте какой-нибудь контакт в социальных сетях, где видно ваше имя?
Как создать интернет-магазин: сколько стоит открытие?
Дмитрий - Интересно посмотреть на Ваш интернет-магазин. Дайте, пожалуйста, ссылку !
23 действительно эффективных совета по продвижению интернет-магазина
Марат - Полезные вещи, правда! Сам только отыскал адекватные шаблоны:umi.ru/create, всюду какие-то криворукие находились. А, коль уж и хостинг бесплатный - я за) Вообще. сперва, правда, сложно самому разобраться. Я гуманитарий, впервые решил в технических моментах разобраться. Идет с трудом, но, как говорится, лёд тронулся))
Тест: Продвинь сайт в Google с одной попытки
Гость15 - Спасибо)
Экспериментальное SEO: «Дырявые носочки панды»
Adrian - Испания и Португалия находятся в Европе и участвовали в чемпионате Европы. Одна из этих стран даже стала победителем. А Южная и Центральная Америка здесь при том, что там разговаривают на испанском и португальском языках. Сына, учите географию.
Методы быстрой индексации сайта
Илья Долгополов
13
комментариев
0
читателей
Полный профиль
Илья Долгополов - Здравсвуйте, Матросов. Предоставьте их, пожалуйста, мне на почту ilya@reaspekt.ru Я с удовольствием разберусь в вашей ситуации.
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
373
Комментариев
285
Комментариев
262
Комментариев
181
Комментариев
171
Комментариев
140
Комментариев
137
Комментариев
123
Комментариев
97
Комментариев
97
Комментариев
92
Комментариев
80
Комментариев
70
Комментариев
67
Комментариев
60
Комментариев
55
Комментариев
52
Комментариев
46
Комментариев
45
Комментариев
44

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