Какие права на файл htaccess
В этой статье мы рассмотрим тему .htaccess: как создать этот конфигурационный файл, для чего он нужен и как с его помощью управлять редиректами, правами доступа и другими настройками.
Примеры настроек
Как запретить доступ к файлам определенного типа
Если вам требуется запретить доступ к нескольким файлам одного формата, можно добавить директиву для каждого. При этом стоит учитывать, что серверу будет сложнее обрабатывать большое количество параметров в файле .htaccess. Чтобы экономить ресурсы сервера, можно закрыть доступ не к каждому файлу, а ко всем файлам схожего расширения.
Для этого добавьте следующие строки:
Где вместо txt, pdf, jpg — нужные вам расширения.
ISPmanager
Нажмите Выберите файл, найдите на локальном диске созданный файл .htaccess и кликните Ok:
Готово, файл добавлен в «корень» сайта.
Зачем нужен .htaccess
В файле .htaccess можно задать некоторые серверные настройки Apache для конкретного сайта или отдельной папки. Например:
Настроить редирект. Редирект — это переадресация с одного адреса на другой. Подробнее о назначении редиректов, их типах и настройках мы рассказали в статье. Файл .htaccess позволяет задавать гибкие перенаправления: например, для отдельного IP, со страниц без префикса www на страницы с ним, редиректы для всех страниц, кроме главной и другие.
Назначить страницы ошибок. На сайтах встречаются различные ошибки (404 — страница не найдена, 403 — в доступе отказано и т. д.). Тогда пользователь видит страницу с описанием возникшей ошибки. По умолчанию такие страницы практически не оформлены и могут сильно отличаться от дизайна остального сайта. Выход — создать свою красочную страницу ошибки и задать ее появление в .htaccess.
Изменить главную страницу. В архитектуре сайта по умолчанию выбрана главная страница (индексный файл), которая отображается первой при открытии сайта. Если вы хотите сделать первой какую-то другую страницу, используйте .htaccess.
Включить кэширование файлов. Кэширование позволяет поместить часть статичной информации сайта в кэш. Благодаря этому страницы сайта будут быстрее загружаться в браузерах пользователей. Если настроить кэширование в .htaccess, ускорится работа сайта.
Создать ЧПУ. ЧПУ расшифровывается как «человекопонятный URL». Иногда URL-адреса могут быть слишком длинными или содержать численное обозначение страниц. Это негативно влияет на пользовательский фактор, а значит и на SEO-показатели. В .htaccess с помощью одной команды можно назначить для URL латинские символы (или задать другой подходящий способ).
Защитить папку паролем. Если сайт содержит папку с конфиденциальной информацией, ей требуется дополнительная защита. Через .htaccess можно настроить базовую аутентификацию по логину и паролю. Это позволит снизить риск взлома и кражи данных.
Настроить параметры php. PHP — язык программирования, который используется в разработке большинства сайтов с динамическим контентом. Настраивать PHP можно в файле php.ini, а можно работать с ним как с модулем .htaccess и управлять настройками в одном конфигурационном файле.
Ограничить доступ к сайту. В .htaccess можно ограничить доступ к сайту для нежелательных IP, что позволит контролировать доступ, а также отражать хакерские атаки. Например, DDoS-атаку, в момент которой процессор пытаются нагрузить таким количеством запросов, которые он не способен обработать. Как правило, запросы поступают с одного/нескольких IP-адресов. Подробнее: Что такое DDoS-атака.
Закрыть доступ к сайту от поисковых ботов. Чтобы сайт отображался в поисковой выдаче, его должны обойти поисковые роботы, которые собирают информацию, необходимую для индексации. Однако некоторые поисковые боты могут быть нежелательны (SolomonoBot и др.). В .htaccess можно ограничить доступ к сайту для нежелательных ботов по User-Agent.
Таким образом, .htaccess позволяет гибко настраивать отдельные сайты без изменения общих параметров сервера. Также этот конфигурационный файл можно передавать внештатным SEO-специалистам: они получат доступ к настройками именно SEO-оптимизации без возможности менять настройки на сайте или хостинге.
Ниже рассмотрим, как создать файл .htaccess на своем компьютере и загрузить его на хостинг.
Plesk
В блоке нужного домена выберите Менеджер файлов:
Готово, файл будет загружен.
Что такое файл .htaccess
.htaccess — это дополнительный конфигурационный (служебный) файл, с помощью которого можно управлять настройками сервера. Он применяется в том случае, если хостинг-провайдер использует программное обеспечение Apache.
Файл .htaccess будет полезен, если ваш сайт размещен на виртуальном хостинге. На нём несколько пользователей делят ресурсы одного сервера. Общие настройки для управления этим сервером закрыты от клиентов, чтобы у них не было возможности влиять на другие сайты. При этом пользователи могут управлять настройками сервера только в рамках своего сайта через создание .htaccess.
Управление доступом к сайту
Разрешить или ограничить доступ к сайту для определенных IPv4-адресов можно с помощью директив Order Allow,Deny или Require . В новых версиях Apache, начиная с 2.4, которая используется на наших хостинговых серверах, рекомендуется использовать именно Require.
Обратите внимание, что в рамках нашей архитектуры директивы запрета доступа не будут работать для IPv6. Для запрета доступа с IPv6-адресов необходимо удалить АААА-запись домена.
Разрешить доступ конкретным IP (для остальных доступ запрещен):
Несколько IP-адресов могут указываться через пробел или отдельными директивами, каждая в новой строке.
Запретить доступ конкретным IP (для остальных доступ разрешен). Для работы запрещающих директивы, их необходимо заключать в блоки :
При использовании Allow,Deny:
Разрешить доступ всем, кроме конкретного IP:
Запретить доступ всем, кроме конкретного IP:
Запретить доступ для всех:
Аналогичным образом можно настроить доступ к конкретным файлам, включив эти директивы в блоки , например:
Как запретить доступ к файлу, папке или всему сайту
Когда на сайте идут «ремонтные работы», он функционирует нестабильно. Чтобы в это время на него не заходил никто, кроме разработчиков, можно ограничить доступ к сайту или отдельным файлам.
- Чтобы закрыть доступ ко всему сайту, добавьте в файл строки:
Чтобы закрыть доступ к конкретной папке, создайте новый файл .htaccess в этой папке и добавьте в него код выше.
Чтобы закрыть доступ от всех посетителей, кроме конкретного IP (через запятую можно указать несколько IP-адресов) введите:
Где 123.123.123.123 — IP-адрес, для которого доступ разрешен.
- Чтобы закрыть доступ к конкретному файлу, создайте новый файл .htaccess в той папке, где находятся нужный файл, и добавьте следующие строки:
Где example.exe — название файла, к которому нужно закрыть доступ.
Блокировка запросов по User-Agent
Можно ограничить доступ к сайту для определенных User-Agent. Например, при нежелательной активности ботов MJ12bot и SolomonoBot, используйте:
Создание и редактирование .htaccess
Создать файл настроек .htaccess вы можете при помощи файлового менеджера панели управления аккаунтом.
1. Перейдите в раздел «Файловый менеджер» панели управления.
2. Выберите пункт меню «Файл» — «Новый файл».
3. Выберите из списка расширений .htaccess.
Возникновение ошибки «Имя уже используется» означает, что данный файл уже создан в текущей директории.
Для редактирования файла в файловом менеджере перейдите в директорию с данным файлом, выделите его кликом левой кнопки мыши и выберите пункт меню «Файл» — «Редактировать».
Вы также можете редактировать .htaccess во внешних редакторах, но обратите внимание, что текстовые редакторы Windows (например, «Блокнот») при сохранении любых документов с кодировкой UTF-8 добавляют в них метки порядков байтов юникода — BOM-сигнатуры. Файлы с такой сигнатурой некорректно обрабатываются веб-сервером, поэтому мы рекомендуем редактировать .htaccess напрямую в «Файловом менеджере» или через специальный редактор «Notepad++».
Редиректы
Редирект на .html
Редирект на страницу без слеша в конце адреса
Редирект на страницу со слешем в конце адреса
Редирект на страницу без index.php в адресе
Редирект на страницу без index.php в конце адреса
Редирект с www на без www
Редирект без www на www
Склейка доменов
Пример, у вас несколько доменов, но посетитель должен переправляться на один.
Редирект со старых статических url на новые
Защита от хотлинка
Если вы хотите запретить вставку изображений с сайта по прямой ссылке.
Защита от брутофорса
Бытует легенда, что происхождения названия сервера Апач происходит не от названия индейского племени. Когда сервер был еще в самом начале пути, группа энтузиастов небольшие дополнения к коду, патчи (англ – patch), и «a patchy server» превратилось в Апач, а знаменитое перо на логотипе появилось позже.
В материале перечислены наиболее часто используемые примеры, а большинство возможностей даже не упомянуто, как модуль mod_rewrite, предоставляющий множество возможностей.
Статья писалась эпизодическими «набегами», так что если увидите ошибку, поправьте.
cPanel
В блоке «Файлы» нажмите Менеджер файлов:
Найдите в списке слева домен вашего сайта, кликните по нему и в строке сверху нажмите Загрузить:
Готово, файл будет загружен.
Как настроить 301 редиректа для сайта
Мы посвятили настройке редиректов в .htaccess отдельную статью, в которой рассмотрели 10 различных вариаций редиректов.
Рассмотрим самый часто используемый тип: редирект с одного домена на другой. Он используется, если сайт переехал на новый домен из-за ребрендинга, изменения официального названия компании или причин технического характера.
Чтобы сделать редирект, добавьте в .htaccess строки:
Права, chmod файла .htaccess
Права доступа для файла .htaccess могут различаться от хостинга к хостингу. Обычные права на этот файл при должной настройке безопасности сервера хостинга - chmod 644, более безопасный вариант - 444. У некоторых хостинг-провайдеров может работать вариант разрешений - chmod 600, 640, 660.
Больше информации о chmod файла .htaccess мы разместили в отдельной статье "О правах на .htaccess".
На этом все, надеемся, статья была полезна, и после ее прочтения у Вас пропали вопросы по назначению и применению данного файла.
.htaccess — это конфигурационный файл веб-сервера Apache, который позволяет задавать различные настройки для работы веб-сервера, применяемые для конкретных каталогов пользователя.
Параметры, указанные в .htaccess, не затрагивают настройки главного конфигурационного файла Apache и имеют силу только для каталога, в котором этот файл размещен, и его подкаталогов. Для подкаталогов также можно создавать дополнительные .htaccess-файлы; при этом необходимо учитывать, что настройки .htaccess, заданные в подкаталоге, переопределят настройки, назначенные для него в файле .htaccess, размещенном на уровне выше.
Настройки в .htaccess задаются различными директивами, которые далее обрабатываются и выполняются веб-сервером. С помощью .htaccess можно настраивать перенаправления, управлять опциями PHP, устанавливать разрешения и права доступа к файлам, задавать собственные страницы ошибок и выполнять множество других действий.
Ограничения по видам запросов
Для применения ограничений для определенных методов запросов можно использовать блоки :
Для новых версий Apache, начиная с 2.4, оптимально использовать директивы Require и заключать их в блоки :
Как запретить просмотр директорий в .htaccess
Обладая определенными знаниями, любой человек может посмотреть структуру вашего сайта (в первую очередь листинг — список всех каталогов сайта). Чтобы запретить просмотр листинга, можно ввести одну строку в .htaccess:
Чтобы открыть отображение листинга, введите:
Пример файла .htaccess
Для правильной работы сайта очень важно установить верные права (chmod) на файл .htaccess. Права доступа для файла .htaccess могут различаться от хостинга к хостингу.
Обычные права на этот файл, при должной настройке безопасности сервера хостинга, chmod - 644, более безопасный вариант - 444.
У некоторых хостинг-провайдеров может работать вариант разрешений - chmod 600, 640, 660. При размещении сайта на веб-хостинге Хост.SU, работать будут все варианты, при этом другие клиенты, размещенные на сервере, не смогут получить доступ к содержимому файла.
Стоит рассказать подробнее о правах:
- 6 - это разрешение на чтение и запись файла;
- 4 - разрешает только чтение файла.
Также стотит обратить внимание на то, что chmod состоит из трех цифр:
- Первая цифра - настройка разрешений для владельца файла;
- Вторая - настройка разрешений для пользователей, состоящих в группе владельца файла;
- Третья - настройка разрешений для любых пользователей.
Если у Вас есть сомнения в безопасности веб-сервера, то мы рекомендуем начинать выставлять chmod на файл .htaccess с разрешений только владельцу файла.
Перед выполнением нижеследующей инструкции обратите внимание на то, что в отсутствии файла .htaccess сайт (раздел) должен работать без ошибок!
Загружаем .htaccess и выставляем 600. Если при этом сайт выдал ошибку 403 (Forbidden), то ставим разрешение группе - 640, опять на экране ошибка 403 - ставим chmod 644. Если на одном из трех этапов работа сайта возобновится или сайт (раздел) выдаст ошибку 500 (Internal Server Error), то добавлять разрешения прекращаем, веб-сервер Apache успешно прочитал параметры из файла.
В целях безопасности мы рекомендуем после редактирования .htaccess снимать разрешения на запись с этого файла (менять в chmod все цифры 6 на 4).
На этом все, надеемся, статья была полезна, и после ее прочтения у Вас пропали вопросы по назначению и применению данного файла.
В этой статье поговорим о файле .htaccess: где он находится, для чего нужен, можно ли обойтись без него. Прежде всего, стоит поговорить о функциях данного файла. Основное предназначение файла .htaccess – это управление параметрами веб-сервера. Заблокировать IP, изменить параметры mod_php, изменить кодировку сайта, заблокировать доступ к директории или файлу – все это может сделать файл .htaccess.
Отображение листинга (содержимого директории)
Если индексный файл запрашиваемой клиентом директории недоступен, будет выведена ошибка «403 Forbidden». Если вместо этого необходимо отображение содержимого директории, потребуется добавить в .htaccess директиву:
Это не мануал, здесь собраны наиболее часто используемые настройки .htaccess, своего рода сборник подсказок.
Для чего нужен .htaccess
.htaccess позволяет создать собственную конфигурацию управлением сервера Апач в директориях или настройках хостинга.
Правила .htaccess распространяются на все директории, где расположен файл, кроме директорий, где расположен собственный .htaccess.
Файл .htaccess считывается сервером Апач при каждом обращении, поэтому все изменения входят в силу сразу, после изменения.
Глобальные настройки сервера Апач могут содержать запрет на исполнение некоторых команд, обычно это вызывает ошибку 500. Также подобную ошибку может вызывать неправильный синтаксис или ошибка, например пропуск пробела.
Запрет доступа для определенных IP-адресов или диапазонов IP-адресов
Запрет доступа с IP-адреса 123.123.123.123.
Если не указывать последние цифры адреса, то запрет будет распространяться на весь диапазон 123.123.123.0 - 123.123.123.255.
Разрешаем доступ только с определенных IP-адресов
Принудительное задание кодировки
Иногда требуется очистка кэша браузера.
Отмена перекодировки сервером
Перенаправления
Настройка редиректов описана в отдельной статье: Типовые перенаправления.
Работа с файлом .htaccess
Создать файл и загрузить его в корневую папку сайта — только первый шаг. Следующий и самый важный — начать работать с настройками, о которые мы описывали выше.
Все конфигурации в .htaccess задаются с помощью директив (или команд). Они включают в себя символы латинского алфавита, %, фигурные и квадратные скобки и другие. Каждая директива состоит из ключа (неизменяемая часть) и значения. Например, директива для изменения главной страницы сайта:
Где DirectoryIndex — ключ, а index.php — значение (страница, которую вы хотите использовать в качестве главной страницы сайта).
Чтобы внести какую-либо директиву в конфигурационный файл вашего сайта:
Откройте файл .htaccess в корневой папке. Или создайте новый, если директива должна применяться не ко всему сайту, а к конкретному файлу или папке.
Обратите внимание! Не вносите в .htaccess видоизмененные команды, если не уверены в их работе. Повреждение файла может повлечь за собой сбой работы сайта.
Ниже вы найдете директивы для нескольких наиболее распространенных операций в файле .htaccess.
Параметры PHP
Настройка опций PHP через .htaccess описана в отдельной статье: Настройка параметров PHP.
Как сделать .htaccess в Windows
Если ваш сайт создан с помощью CMS (WordPress, Joomla, 1С Битрикс и других), файл .htaccess будет сгенерирован автоматически. Вы сможете его найти в корневой папке сайта в панели управления хостингом. Как правило, по умолчанию в файле не будет никакой информации, кроме нескольких строк с комментариями.
Обратите внимание! На хостинге с панелью управления cPanel .htaccess и все другие файлы, которые начинаются с точки, по умолчанию скрыты. Чтобы он начал отображаться в корневой папке, следуйте инструкции.
Если же сайт был написан с нуля, а не на CMS, или если файл по какой-то причине был удален, вы можете создать его на компьютере. Чтобы создать файл .htaccess на компьютере с ОС Windows:
Нажмите Файл → Сохранить как (или используйте комбинацию горячих клавиш Ctrl + Shift + S):
В графе «Тип файла» выберите Все файлы. Затем в поле «Имя файла» введите «.htaccess» и нажмите Сохранить:
Готово, файл создан.
Если файл сохранился под названием .htaccess.txt, нужно убрать расширение текстовых файлов (.txt). Для этого откройте проводник, перейдите во вкладку Вид и уберите галочку напротив пункта «Расширения имен файлов»:
Интерфейс проводника в Windows 10
Когда файл будет готов, залейте его в корневую папку сайта. Для этого войдите в панель управления и следуйте подходящей инструкции:
Индексная страница по умолчанию
Директива DirectoryIndex позволит вам указать страницу, которая будет отдаваться по умолчанию при обращении к директории, например:
Вы также можете указать несколько страниц, в этом случае сервер «пройдет» по списку слева направо и отобразит первую доступную страницу:
Можно ли удалить файл .htaccess
Возникает вопрос: "А можно ли совсем удалить файл .htaccess с хостинга?" Ответ на него: «Да, конечно!» Более того, на большинстве хостингов этот файл создается клиентом самостоятельно, поэтому изначальной проблемы, что файл .htaccess «мозолит глаза», нет. Другая ситуация возникает в том случае, если файл .htaccess попадает на хостинг вместе с CMS. Обычно в этом файле прописаны строки, без которых система управления сайтом не будет работать, поэтому файл, который появился на хостинге вместе с CMS, лучше не трогать. Но есть одно «Но»… Некоторые CMS в этот файл прописывают строки для mod_php, вида: php_flag и php_value, которые в случае использования на хостинге PHP в режиме CGI вызывают на сайте ошибку 500.
Как же избавиться от ошибки 500, если в .htaccess прописаны такие строки. Мы бы рекомендовали сохранить эти строки на компьютере и удалить их из файла .htaccess. Вторым и более правильным выходом из данной ситуации будет комментирование этих строк, которое производится следующим образом.
Например, в файле у нас изначально прописано:
Тем самым у нас сохраняются параметры в самом файле .htaccess, но они не влияют на настройки хостинга. Сохранения параметров нам потребуется для их внесения в файл php.ini, о котором мы говорим в отдельной статье.
Обратите внимание, что таким образом можно "заставить" веб-сервер игнорировать любые строки в файле .htaccess, приводящие к ошибке 500 (Internal Server Error). Такими строками могут быть и записи для mod_rewrite, и настройки кэширования, и прочие записи.
Как включить обработку ошибок
Чтобы установить пользовательские страницы ошибок, нужно воспользоваться директивой ErrorDocument. Добавьте в .htaccess директиву с номером ошибки и адрес созданной страницы:
Собственные страницы ошибок
С помощью директивы ErrorDocument вы можете сообщить веб-серверу, какая страница должна отдаваться клиенту в случае возникновения определенной ошибки (403, 404, 500 и др.). Для этого необходимо указать номер ошибки и адрес нужной страницы:
Вы можете хранить файлы этих страниц как в корне сайта, так и в специально созданной папке, например, errors.
Где находится файл .htaccess
Теперь поговорим о местонахождении данного файла. Файл .htaccess можно создать в любой директории на хостинге, но стоит учесть такой момент, что чем выше находится файл, тем на большее число поддиректорий он влияет. Если создать файл слишком высоко, то он будет влиять на все сайты аккаунта, именно поэтому мы рекомендуем создавать данный файл не выше корневой директории конкретного сайта, а также не создавать директорию сайта в виде поддиректории другого сайта, т.к. в этом случае файл .htaccess «корневого сайта» будет влиять на сайт, размещенный в поддиректории этого главного сайта. Т.е. дерево директорий должно иметь примерно следующий вид:
Кодировка
При использовании PHP версии 5.6 и выше может потребоваться дополнительно указать:
Защита сайта или директории паролем. Базовая аутентификация
Если требуется защитить сайт или конкретную папку сайта паролем, можно воспользоваться базовой аутентификацией, которая работает на уровне веб-сервера Apache и настраивается также с помощью файла .htaccess.
В первую очередь задайте логин и пароль, которые будут использоваться для входа. Для этого подключитесь к аккаунту по SSH и выполните команду ниже, указав нужные вам значения:
После выполнения команды в корневом каталоге вашего аккаунта будет создан файл .htpasswd, содержащий логин и хэш-сумму пароля. Если в дальнейшем вам потребуется изменить указанный пароль, снова используйте команду выше.
Перейдите в директорию, которую необходимо защитить паролем (например, это может быть директория wp-admin), и создайте в ней файл .htaccess со следующим содержимым, указав вместо u и user первую букву вашего логина и сам логин:
Если речь идет о защите всего сайта в целом, эту конструкцию необходимо вставить в общий .htaccess-файл, размещенный в директории public_html вашего сайта.
Читайте также: