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

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

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

Работая над сайтом, всегда возникает необходимость обратиться к файлу .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
    читателей
    Михаил Медведев
    2 месяца назад
    Скажите пожалуйста почему файл с паролям в расширении 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
Золотое правило SEO: хватит технарствовать – пора фигачить!
Рустем Фахрутдинов
14
комментариев
0
читателей
Полный профиль
Рустем Фахрутдинов - На самом деле, мы сделали почти всё :) А в статье - пример того, как это удалось чуть позже автоматизировать.
Подборка инструментов и сервисов для каждого этапа SEO-работ
Seo Boy
4
комментария
0
читателей
Полный профиль
Seo Boy - Посмотрите СерпПарсер
Вопрос недели: почему сайт хорошо ранжируется в Google и не интересует Яндекс?
Nina S.Dzh. - У вас достаточно конкурентная тематика для рунета и по главной странице домена расположена англоязычная версия. Полагаю, в этих двух фактах вся проблема. Поскольку Яндекс в данном случае считает английскую версию сайта приоритетной, а среди ваших конкурентов в выдаче достаточно много хороших русскоязычных сайтов, то он и не ранжирует ваш сайт высоко. Грубо говоря, ему есть что предложить пользователю и без вашего сайта. На мой взгляд, в данном случае версии нужно разводить по разным доменам, русскую вешать на RU и продвигать там.
Кому бесплатный билет на базовый курс Excel от Макса Уварова?
Maxim Uvarov
10
комментариев
0
читателей
Полный профиль
Maxim Uvarov - Дайте какой-нибудь контакт в социальных сетях, где видно ваше имя?
Тест: Продвинь сайт в Google с одной попытки
Гость15 - Спасибо)
Как не попасться на крючок, или Конкуренты на разведке
Гость - >закупают новые ссылки, которые максимально напоминают естественные >Ну а о том, что это может помочь, говорили Садовский и Гладких Как на счет пруфлинка на материал, где Гладких говорила что-то подобное?
Экспериментальное SEO: «Дырявые носочки панды»
Adrian - Испания и Португалия находятся в Европе и участвовали в чемпионате Европы. Одна из этих стран даже стала победителем. А Южная и Центральная Америка здесь при том, что там разговаривают на испанском и португальском языках. Сына, учите географию.
Выиграй бесплатный билет на конференцию СПИК 2016
Fuck You Buddy :D
33
комментария
0
читателей
Полный профиль
Fuck You Buddy :D - где фотка стула?
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
373
Комментариев
285
Комментариев
262
Комментариев
180
Комментариев
171
Комментариев
138
Комментариев
137
Комментариев
123
Комментариев
97
Комментариев
97
Комментариев
92
Комментариев
80
Комментариев
70
Комментариев
67
Комментариев
60
Комментариев
55
Комментариев
52
Комментариев
45
Комментариев
44
Комментариев
44

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