Файл htaccess для чего нужен: Файл htaccess — где находится, как настроить перенаправление (редирект), запретить доступ к сайту по ip, убрать www

Файл .htaccess и его возможности — зачем нужен, где его найти или как создать

03.11.18 ИТ / Разное 2728

Для управления различными настройками сервера существуют специальные конфигурационные файлы. Самый популярный сервер в настоящее время – Apache и настройки для него хранятся также в специальных файлах. Такие файлы называются .htaccess – имеют именно такое название, с ведущей точкой.

Что такое .htaccess

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

Часто спрашивают, где найти файл . htaccess? Как было сказано выше, этот файл следует искать в корне своего сайта или внутри других папок. Если файл .htaccess не найден, тогда можно просто создать его самостоятельно. Однако, например, ОС Windows не позволяет создавать файлы с пустым именем и только с расширением, будет выведено сообщение – «Следует ввести имя файла». Как это обойти и все же как создать файл .htaccess? Проще всего скопировать подобный файл с другой директории или создать такой файл на хостинге и переименовать его уже там.

Кроме того, может быть интересным, как работает файл .htaccess? Структура сервера Apache устроена таким образом, что сначала используются настройки из основного конфигурационного файла, затем настройки, заданные в остальных файлах .htaccess. Можно переопределить практически любые настройки для любой директории сайта. Как работать с файлом .htaccess? Важно понимать, что этот файл, при неправильных записях в нем – может вызвать ошибки в работе сайта или сайт станет полностью недоступен – ошибки 500, 502 и т. п. Поэтому прежде всего необходимо хотя бы поверхностно ознакомится с синтаксисом файла .htaccess и узнать, как прописать то или иное правило.

От этого файла зависит и безопасность Вашего проекта, например, можно разместить файл .htaccess в папке с загружаемыми изображениями и прописать в нем команду отключения работы интерпретатора PHP – в результате код PHP не будет выполнятся, и злоумышленники не смогут запустить PHP код, внедренный в изображения.

Возможности .htaccess

Возможности файла .htaccess обширны, какие настройки можно прописать в нем? Кратко приведем примерный список настроек .htaccess:

  • перенаправление с http на https и обратно;
  • перенаправление с www на без www;
  • перенаправление всех запросов в один файл – единую точку входа в приложение;
  • постраничное перенаправление запросов на другой домен;
  • отключение и включение множества настроек PHP и его модулей;
  • ограничение доступа к сайту для определенных IP-адресов или их диапазонов;
  • запрет просмотра содержимого каталога;
  • запрет переходов с определенных ресурсов;
  • включение обработки PHP в html-файлах;
  • постоянное перенаправление и выдача нужного кода;
  • переопределение страниц ошибок;
  • включение и выключение PHP для директории и т. д.

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

Таким образом, рассмотрено, что такое файл .htaccess и зачем он нужен. Найти его можно в директории своего сайта или создать самому. Далее можно производить при помощи данного файла любые нужные настройки сайта.

Файл .htaccess — Раздел помощи

  • Для чего нужен файл .htaccess
  • Что можно сделать с помощью .htaccess
  • Как работает .htaccess
  • Как выглядит .htaccess
  • Как создать .htaccess
    • Этап 1. Создайте файл .htaccess: инструкция для Windows
    • Этап 2. Разместите файл на хостинге SpaceWeb
    • Этап 3. Сообщите Apache, что он должен использовать .htaccess
  • Настройка . htaccess
  • Редиректы
    • Переадресация на другой домен
    • Переадресация сайта с HTTP на HTTPS
    • Переадресация поддомена в подкаталог сайта
  • Ограничение или разрешение доступа к сайту с определенных IP-адресов
  • Ограничение доступа к определенным файлам
  • Назначение кодировки
  • Отображение возникающих ошибок PHP на странице
  • Настройка страниц ошибок

 Для чего нужен файл .htaccess

.htaccess (сокращение от «hypertext access») — это дополнительный конфигурационный файл для Apache. Веб-сервер должен учитывать параметры, указанные в файле, когда обрабатывает запрос.
Обратите внимание, что .htaccess работает только с Apache. У других веб-серверов, например Nginx, есть свои файлы.

Параметры, указанные в .htaccess, не затрагивают настройки главного конфигурационного файла Apache — httpd.conf. Они влияют только на каталоги (и их подкаталоги), в которых этот файл размещен.

Где находится файл .htaccess? Если вам нужно, чтобы настройки .htaccess работали для всего сайта, разместите его в корневом каталоге. Для подкаталогов тоже можно создавать .htaccess-файлы, но учтите, что они будут мешать настройкам файла .htaccess, размещенным на уровне выше. Если вы используете CMS, скорее всего, этот файл был создан программой автоматически и чаще всего его можно найти в папке «public_html» или «www».

Что можно сделать с помощью .htaccess

  1. Настроить переадресацию (редирект):
    • с одного домена на другой,
    • с протокола HTTP на HTTPS.
  2. Ограничить или разрешить доступ к сайту с определенных IP-адресов. Это позволит контролировать доступ, а также отражать хакерские атаки. Например, во время DDoS-атаки можно запретить обработку запросов с определенных IP, что не даст злоумышленнику нарушить работоспособность сервера.
  3. Запретить доступ к конкретным файлам. Если сайт содержит папку с конфиденциальной информацией, ей нужна дополнительная защита. Через .htaccess можно настроить доступ по логину и паролю.
  4. Назначить кодировку по умолчанию.
    Если на сайте вы увидели не текст, а набор непонятных символов — на сайте указана неправильная кодировка. Самая распространенная кодировка — UTF-8. Указать правильную настройку и починить сайт можно в .htaccess.
  5. Указать, какие страницы должны отображаться у пользователей, при ошибках системы. На сайтах могут быть 400, 403, 404, 502 и другие ошибки. Чтобы немного сгладить неприятное впечатление пользователя от проблемы, нужно создать красочную страницу ошибки и в .htaccess указать, при каких проблемах показывать ту или иную страницу.
  6. Запретить поисковым роботам индексировать страницу. Поисковые роботы изучают все веб-страницы в интернете, если по какой-либо причине вы хотите скрыть страницу от роботов, просто запретите индексацию в файле . htaccess.  
  7. Настроить параметры PHP.
    Настраивать PHP можно не только в php.ini, но и в .htaccess.

Весь список директив, которые возможно использовать в .htaccess, можно найти в официальной документации PHP и Apache:

  1. Список директив php.ini.
  2. Работа с веб-сервером Apache.

Как работает .htaccess

​​Когда веб-сервер получает запрос, например, данные определенной страницы сайта, сначала он проверяет, есть ли .htaccess в файлах сайта. Проверка начинается с корневого каталога и затем всё ниже и ниже по иерархии папок. Если файл найден, веб-сервер изучает команды, описанные в .htaccess, и применяет их при дальнейшей обработке запроса.

Как выглядит .htaccess

.htaccess  — простой текстовый файл, где в каждой строке указана команда (директива). Пустые строки игнорируются.

Символ «#» в начале строки — комментарий. Система не читает эти строки. Их используют для удобства, чтобы описать смысл конкретной команды или блока.

Как создать .htaccess

Многие CMS (WordPress, Joomla, 1С-Битрикс и другие) создают файл .htaccess автоматически. Найти его можно в корневой папке в панели управления хостингом. Обычно он пустой или с парой комментариев. То есть вы сразу можете начинать работу с нужными командами.

Если же сайт был написан с нуля или вы случайно удалили существующий файл, нужно:

  1. Создать файл .htaccess вручную на устройстве.
  2. Перенести созданный файл на виртуальный хостинг.

Этап 1. Создайте файл .htaccess: инструкция для Windows

Если вы работаете на Windows, создать .htaccess можно в Блокноте.

  1. Откройте Блокнот.
  2. Нажмите Файл → Сохранить как …
    :

  1. В строке «Тип файла» выберите Все файлы. В строке «Имя файла» введите .htaccess и нажмите Сохранить:

Файл создан. Если, несмотря на выбранные параметры, файл сохранился в формате . htaccess.txt, нужно убрать txt-расширение. Для этого откройте проводник, перейдите во вкладку Вид и уберите галочку напротив пункта Расширения имен файлов:

Этап 2. Разместите файл на хостинге SpaceWeb

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

  1. Перейдите в раздел Хостинг Файловый менеджер.
  2. Выберите папку, в которую хотите поместить файл .htaccess и нажмите на значок Загрузить файлы:

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

Этап 3. Сообщите Apache, что он должен использовать .htaccess

Чтобы Apache использовал в своей работе файл .htaccess, в httpd.conf нужно добавить строку:

AllowOverride All

Настройка .htaccess

А теперь покажем, какие директивы (команды) для настройки . htaccess могут вам понадобиться для сайта.

Редиректы

Если при настройке перенаправлений вы используете кириллические домены, в .htaccess их нужно указывать в формате Punycode. Перевести веб-адрес в нужный формат можно с помощью специального сервиса, например 2ip.

Все способы редиректа в .htaccess вы можете прочитать в нашей статье Как настроить редирект через .htaccess. Здесь расскажем о двух основных настройках.

Переадресация на другой домен

Укажите в файле .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} olddomain.ru
RewriteRule (.*) http://newdomain.ru/$1 [R=301,L]

Где:

  • olddomain.ru — домен, с которого вы настраиваете перенаправление;
  • newdomain.ru — домен, на который нужно перенаправить пользователей.

Переадресация сайта с HTTP на HTTPS

Обратите внимание, что перенаправление с HTTP на HTTPS нужно делать в файле .htaccess в корневой папке сайта. (.*)$ img/$1

Где:
img\.example\.com ― поддомен, с которого должна переадресовываться страница.
img ― подкаталог, в котором находятся файлы поддомена.
Экранирование точки обратной косой чертой (\) в строке 3 необязательно.

Ограничение или разрешение доступа к сайту с определенных IP-адресов

Чтобы ограничить доступ к сайту с определенных IP-адресов в файл .htaccess добавьте:

Order Allow,Deny
Allow from all
Deny from IP

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

Order Deny,Allow
Deny from all
Allow from IP

Вместо IP в третьей строке укажите IP-адрес (или список IP-адресов через пробел), которому хотите разрешить доступ к сайту.
Подробнее об этой директиве можно прочитать в статье Как запретить доступ к сайту через файл .htaccess.

Ограничение доступа к определенным файлам

Для этого добавьте в .htaccess строки:

<Files ПУТЬ_К_ФАЙЛУ>

Order Deny,Allow
Deny from all
Allow from IP
</Files>

Где:

  • ПУТЬ_К_ФАЙЛУ — путь к файлу, к которому нужно ограничить доступ;
  • IP — IP-адрес, для которого вам нужно разрешить доступ.

Назначение кодировки

Для этого добавьте строку:

AddDefaultCharset utf-8

Для корректной установки CMS Bitrix
Для корректной установки CMS Bitrix в файле .htaccess необходимо указать следующие строки:

php_value mbstring.internal_encoding UTF-8
php_value mbstring.func_overload 2
php_value max_input_vars 10000
php_value pcre.recursion_limit 1000

Отображение возникающих ошибок PHP на странице

Чтобы контролировать работу сайта, нужно настроить отображение ошибок PHP.

Один из способов это сделать ― добавить директиву в .htaccess:

php_flag display_errors on
php_value error_reporting -1

Настройка страниц ошибок

Чтобы настроить отображение страниц ошибок, используйте директиву ErrorDocument. Формула для составления команды:
ErrorDocument + номер ошибки + путь к странице с ошибкой или текстовое сообщение.
Примеры:

ErrorDocument 404 /errors/not_found.php
ErrorDocument 401 /info.html
ErrorDocument 403 «you shall not pass»
ErrorDocument 500 http://example.com/500.php

apache — Что такое файл .htaccess?

спросил

Изменено 1 год, 10 месяцев назад

Просмотрено 139 тысяч раз

Я новичок в среде Zend и хочу узнать больше о файле . htaccess и его использовании . Кто-нибудь может мне помочь?

Я нашел такой пример:

.htacess file

 AuthName "Имя пользовательской зоны"
AuthUserFile /путь/к/паролю/файлу/.htpasswd
Основной тип авторизации
требовать действительного пользователя
Документ об ошибке 401 /error_pages/401.html
Обработанный сервером AddHandler .html
 
  • апач
  • .htaccess
  • веб-сервер

2

Это не часть PHP; это часть Apache.

http://httpd.apache.org/docs/2.2/howto/htaccess.html

Файлы .htaccess позволяют вносить изменения в конфигурацию для каждого каталога.

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

1

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

Когда файл .htaccess помещается в каталог, который, в свою очередь, «загружается через веб-сервер Apache», файл .htaccess обнаруживается и выполняется программным обеспечением веб-сервера Apache.

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

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

Всякий раз, когда любой запрос отправляется на сервер, он всегда проходит через файл . htaccess. Есть некоторые правила, определенные для того, чтобы проинструктировать работу.

2

Ниже приведены примеры использования файлов htaccess на сервере:

1) АВТОРИЗАЦИЯ, АУТЕНТИФИКАЦИЯ: Файлы .htaccess часто используются для указания ограничений безопасности для конкретного каталога, отсюда и название файла «доступ». Файл .htaccess часто сопровождается файлом .htpasswd, в котором хранятся действительные имена пользователей и их пароли.

2) НАСТРАИВАЕМЫЕ ОТВЕТЫ НА ОШИБКИ: Изменение страницы, отображаемой при возникновении ошибки на стороне сервера, например HTTP 404 Not Found. Пример: ErrorDocument 404 /notfound.html

3) ПЕРЕЗАПИСЬ URL-адресов: Серверы часто используют .htaccess для перезаписи «уродливых» URL-адресов на более короткие и красивые.

4) КОНТРОЛЬ КЭША: Файлы .htaccess позволяют серверу контролировать кэширование пользовательского агента, используемое веб-браузерами, чтобы уменьшить использование полосы пропускания, нагрузку на сервер и воспринимаемое отставание.

Дополнительная информация: http://en.wikipedia.org/wiki/Htaccess

Вы можете использовать php_value для изменения настроек php в файле .htaccess. То же самое, что и php.ini.

Пример:

 php_value date.timezone Азия/Куала-Лумпур
 

Другие настройки php см. на http://www.php.net/manual/en/ini.list.php

Htaccess — это файл конфигурации Apache, который используется для внесения изменений в конфигурацию на основе каталога . Файл Htaccess используется для внесения изменений в функции и возможности сервера Apache. Htaccess используется для перезаписи URL. Используется для защиты адреса сайта. Также ограничить IP-адреса, чтобы сайт с определенного IP-адреса не открывался

Вы можете думать, что это похоже на подфайлы файлов php.ini. В файле php.ini хранится большая часть конфигурации php, например, curl enable disable. Где .htaccess делает этот параметр только для определенного каталога, а файл php.ini хранит настройки для всего каталога своего сервера. index.php [QSA,L]

What

  • Файл настроек для сервера
  • Конечный пользователь не может получить доступ
  • Нет необходимости перезагружать сервер, изменения работают сразу
  • Может служить мостом между вашим кодом и сервером

Мы можем сделать

  • Перезапись URL
  • Пользовательские страницы ошибок
  • Кэширование
  • Перенаправления
  • Блокировка ip

Как запретить доступ к файлу в .htaccess

спросил

Изменено 1 месяц назад

Просмотрено 263 тыс. раз

У меня есть следующий файл .htaccess:

 RewriteEngine On
Переписать Базу /
# Защитить файл htaccess
<Файлы .htaccess>
Заказать Разрешить, Запретить
Запретить от всех

# Защитить log. txt
<Файлы ./inscription/log.txt>
Заказать Разрешить, Запретить
Запретить от всех

# Отключить просмотр каталога
Опции Все -Индексы
 

Я пытаюсь запретить посетителям доступ к следующему файлу:

 domain.example/inscription/log.txt
 

, но то, что у меня выше, не работает: я все еще могу получить доступ к файлу из браузера удаленно.

  • .htaccess

0

Внутри файла htaccess область действия директивы применяется только к этому каталогу (я думаю, чтобы избежать путаницы, когда правила/директивы в htaccess подкаталогов применяются вместо родительских). 9/?надпись/журнал\.txt$ — [F,L]

4

Сильное сопоставление с образцом — это метод, который я использую здесь, в Perishable Press. Используя строгое сопоставление с образцом, этот метод предотвращает доступ извне к любому файлу, содержащему « . hta », « .HTA » или любую их комбинацию без учета регистра. Для иллюстрации этот код предотвратит доступ через любой из следующих запросов:

  • .htaccess 9.*\.([Чч][Тт][Аа])»> порядок разрешить, запретить отрицать от всех удовлетворить всех

    6

    Я не считаю принятый в настоящее время ответ правильным. Например, у меня есть следующий файл .htaccess в корне виртуального сервера (apache 2.4):

     
    требовать все отказано
    требуется локальный хост
    нужен ip 127.0.0.1
    требуется IP xxx.yyy.zzz.aaa
    
     

    Это предотвращает внешний доступ к напоминание.php , который находится в подкаталоге. У меня есть аналогичный файл .htaccess на моем сервере Apache 2.2 с тем же эффектом:

     
            Порядок Запретить, Разрешить
            Запретить от всех
            Разрешить с локального хоста
            Разрешить с 127. 0.0.1
         Разрешить с xxx.yyy.zzz.aaa
    
     

    Я точно не знаю, но подозреваю, что это попытка определить подкаталог конкретно в файле .htaccess , , а именно 9(тест\.php) — [F,L,NC]

    0

    В Apache 2.4, если вы хотите запретить доступ к определенному файлу (или URL-пути) в подкаталоге, вы можете использовать выражение Apache в контейнере . Например:

     
        Требовать все отказано
    
     

    Ссылка:

    • https://httpd.apache.org/docs/2.4/expr.html

    Ну, вы могли бы использовать <Каталог> тег например:

     <Каталог/надпись>
      <Файлы log.txt>
        Порядок разрешить, запретить
        Запретить от всех
      
    
     

    Не используйте ./ , потому что если вы просто используете / , он просматривает корневой каталог вашего сайта.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *