Содержание
Настройка файла .htaccess
Если Вы не видите файл .htaccess, это может быть вызвано тремя причинами:
- Файл .htaccess еще не создан или не загружен в каталог html. Пожалуйста, создайте1) и загрузите его на хостинг.
- Файл .htaccess был удален. Пожалуйста, создайте2) и загрузите его на хостинг.
- В настройках используемого FTP клиента не установлено отображение скрытых файлов.
Некоторые FTP-клиенты по умолчанию не отображают скрытые файлы. Подключившись одним из таких клиентов к FTP-серверу, вы можете не увидеть файл .htaccess или другой файл с точкой в начале имени, например: .profile или .htpasswd. Если вы пользуетесь программой FileZilla, необходимо включить в главном меню параметр «Сервер → Принудительно отображать скрытые файлы».
Чтобы настроить отображение скрытых файлов в других FTP-клиентах, обращайтесь к справочным руководствам этих программ.
В этой статье Вы узнаете как произвести настройку файла .htaccess для оптимизации работы вашего сайта.
Хостинг провайдер Ipipe.ru поддерживает файлы .htaccess, однако, как клиент, Вы несете ответственность за то, что в этом файле находится и как он влияет ваш сайт.
Apache позволяет настроить сервер на уровне каталога, используя .htaccess файлы. В Apache, Вы можете настроить каждый каталог на сервере индивидуально, давая им различные свойства или требования для доступа.
- Создание файла .htaccess
- Альтернативный индекс Файл
- Пользовательские страницы ошибок
- Запрет показа содержимого каталога, если отсутствует индекс страница
- Запретить / Разрешить доступ по IP-адресам
- Перенаправление
- Защита Паролем
Создание файла .htaccess
Вы можете создать файл .htaccess на вашем локальном компьютере или на сервере.
На компьютере (локально)
Операционная система Windows: С помощью программы Блокнот, сохраните текстовый файл с именем .htaccess (без использования какого либо расширения).
Операционная система Mac OS X: С помощью программы TextEdit, сохраните текстовый файл с именем .htaccess (без использования какого либо расширения).
Используя любой FTP клиент - загрузите созданный файл на сервер. Файл .htaccess необходимо будет разместить в каталоге, где находится ваш сайт, по умолчанию это каталог html.
На сервере
Заходим в панель управления Сайты — в секцию ХОСТИНГ → Сайты. В списке сайтов, Вы увидите ваш. Справа, с краю, напротив вашего сайта кликните на значок плюс . Далее, в выпавшем списке нажмите на пункт – Web FTP.
Далее, если вход не будет выполнен по прошествии 5 секунд, нажмите, пожалуйста, на кнопку
Вы попадете на страницу работы с FTP сервером, посредством WEB. В верхнем меню нажмите кнопку . Вы перейдете в текстовый редактор, в поле Новое имя файла – введите .htaccess и нажмите иконку сохранить . После, для выхода нажмите .
Таким образом Вы получили в вашей корневом каталоге файл .htaccess, там же в WEB редакторе, Вы можете его редактировать.
Альтернативный индекс Файл
Вы можете использовать не только index.htm или index.html в качестве индексного файла для каталога (сайта). Например, если Вы используете PHP файлы на вашем сайте, Вы можете использовать index.php как файл индекса для каталога.
Альтернативные индексные файлы заносятся в список. Сервер будет работать слева направо, проверяя, каждый файл на существование, если ни один из них не существует, он будет отображать список каталогов (если, конечно, Вы не запретили это).
DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm
Пользовательские страницы ошибок
Вы можете настроить свои собственные, личные страницы ошибок (например, когда файл не найден), вместо использования страниц ошибок от Ipipe или не имеющие страницу ошибки. После этого, ваш сайт будет выглядеть гораздо более профессионально.
Вы можете использовать пользовательские страницы ошибок для любой ошибки (например, 404 - Страница не найдена), добавив следующие строки в ваш файл .htaccess:
ErrorDocument errornumber / error.html
или
ErrorDocument 404 /error/404.htm ErrorDocument 403 /error/403.htm ErrorDocument 400 /error/400.htm ErrorDocument 500 /error/500.htm
Более подробно об обработке ошибок можно прочитать в документации по Apache на странице http://httpd.apache.org/docs/custom-error.html.
Запрет показа содержимого каталога, если отсутствует индекс страница
Иногда, по тем или иным причинам, в каталоге может отсутствовать индексный файл. Тогда по умолчанию сервером будет отображено содержимое этого каталога. Это может представлять угрозу безопасности для вашего сайта.
Чтобы предотвратить показ содержимого, Вы можете (без создания индекс файла) ввести команду в файл .htaccess:
Запрет показа содержимого каталога
Options ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch –Indexes
Разрешение показа содержимого каталога
Options All +Indexes
Запретить / Разрешить доступ по IP-адресам
Чтобы «разрешить» людям с конкретными IP-адресами доступ к сайту (например, позволяя лишь тем, которые используют особую сеть, чтобы попасть в определенную директорию), или Вы можете запретить определенные IP-адреса (например, блокируя определенных спамеров). Конечно, для этого необходимо знать IP-адреса, которые Вы хотели бы запретить.
Пожалуйста, имейте в виду, что большинство пользователей использует динамические IP-адреса поставщика услуг Интернета, так что это не всегда лучший способ предоставить/ограничить доступ.
Для блокировки IP-адресов, добавьте следующие строки в ваш файл .htaccess:
order allow,deny deny from 123.123.123.123 # конкретный IP-адрес deny from 123.123.123.123/30 # указанный диапазон подсети deny from 123.123.* # ограничение маски подсети по B классу allow from all
Для открытия доступа определенным IP-адресам:
order allow,deny allow from 123.123.123.123 #конкретный IP-адрес allow from 123.123.123.123/30 #указанный диапазон подсети allow from 123.123.* #ограничение маски подсети по B классу deny from all
Примечание: Данный способ не влияет на возможность использования скриптов
Redirect (перенаправление)
Наиболее часто используемые, и наиболее сложные директивы .htaccess. Предположим мы хотим при запросе нашего сайта переадресовать пользователя на другой сайт, для этого нам необходимо в корневую директорию сайта добавить файл .htaccess со следующим содержимым:
Redirect / http://www.example.com
где http://www.example.com - сайт на который мы перенаправляем пользователя
Если мы хотим определенные страницы нашего сайта переадресовывать на другие сайты:
Redirect /linux http://www.linux.org Redirect /linux/download.html http://www.linux.org/dist/download_info.html Redirect 301 /kernel http://www.linux.org
теперь при наборе http://mysite.ru/linux будут открываться http://www.linux.org. В последнем примере WEB сервер будет передавать код 301, что означает документ перемещен постоянно.
Ниже представлен пример со строками для файла .htaccess, позволяющий корректно перенести сайт на новый домен, с учетом специфики поисковых систем:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC] RewriteRule ^([^/]+) $1 [L] RewriteCond %{HTTP_HOST} ^site-old\.com RewriteRule ^(.*)$ http://site-new.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.site-old\.com RewriteRule ^(.*)$ http://site-new.com/$1 [R=301,L]
Содержание robots.txt:
User-agent: Yandex Host: site-new.com User-agent: * Disallow: Sitemap: http://site-new.com/sitemap.xml
Теперь все пользователи и поисковые системы будут перенаправляться с site-old.com и www.site-old.com на site-new.com, и приблизительно через 2 месяца показатели PR и тИЦ перейдут на site-new.com.
Синтаксис команды Redirect выглядит следующим образом:
Redirect [status] URL_LOCAL URL_REDIRECT
status : необязательное поле, определяет код возврата, допустимые значения: * permanent (301 — документ перемещен постоянно) * temp (302 — документ перемещен временно) * seeother (303 — смотрите другой) * gone (410 — убран) URL_LOCAL : локальная часть URL запрашиваемого документа. URL_REDIRECT : URL куда должен быть выполнен редирект.
Защита Паролем
Одной из многих способностей файла .htaccess является возможность надежно защитить паролем папки на веб-сайтах.
Добавление парольной защиты в каталог с помощью .htaccess происходит в два этапа.
Первая часть, необходимо добавить соответствующие строки в файл .htaccess директории, которую необходимо защитить. Все, что находится внутри этого каталога будет также защищено паролем:
AuthType Basic AuthName "My Protected Area" AuthUserFile /home/clients/FTP_LOGIN/domains/USER_SITE/html/.htpasswd Require valid-user
- FTP_LOGIN - логин FTP аккаунта
- USER_SITE - сайт для которого создается защита.
Давайте разберем этот код. Все строки являются постоянными, кроме третьей. Где необходимо указать абсолютный путь к файлу .htpasswd. В данном случае, мы разместим файл .htpasswd там же в корневой папке html, где и файл .htaccess.
Вторая часть, необходимо создать файл .htpasswd. Создавать его будем также как и описанные выше способы создания файла .htaccess. Далее, нам необходимо добавить в этот файл строки содержащие данные входа. Для этого, воспользуемся одним из многих сервисов генерации файлов .htpasswd.
Открываем этот сервис в браузере и вводим желаемые Логин и Пароль. В результате получаем строку, которую нам необходимо вставить в файл .htpasswd.
При попытке доступа к сайту, который был защищен с помощью .htaccess, в вашем браузере появится стандартное диалоговое окно имени пользователя / пароля.