Запрет на изменение файла htaccess

Обновлено: 06.07.2024

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

На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.

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

Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.

Примеры использования файла .htaccess

1. Перенаправление доменов c синонима сайта на основной домен с кодом 301

Эти правила рекомендуется размещать в самом начале файла .htaccess.

2. Постоянное перенаправление с кодом 301

Если вы изменили адрес страницы сайта, добавьте в .htaccess следующие строки, чтобы запросы со старого адреса переадресовывались на новый

Подобное правило не сработает для перенаправления с адресов, содержащих Query String (символы после ?). Для запросов, содержащих QUERY_STRING, можно использовать сочетание RewriteCond и RewriteRule.

3. Переопределение страниц ошибок

При помощи файла .htaccess вы можете установить свои страницы ошибок:

Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге

Для того чтобы при случайном упоминании прямых ссылок на такие страницы они не проиндексировались в поисковых системах, рекомендуется:

User-agent: *
Disallow: /errors

/ваш_домен/docs/errors/.htaccess, в котором прописать

4. Постраничное перенаправление запросов на другой домен c кодом 301

5. Ограничение доступа к сайту по IP

Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3

Order Allow,Deny
Allow from all
Deny from 123.4.5.6 123.5.4.3

Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:

Order Deny,Allow
Deny from all
Allow from 123.4.5.6 123.5.4.3

Запретить доступ к сайту для всех:

6. Переопределение главной страницы сайта (индексного файла каталога)

Сделать главной страницей файл menu.html:

7. Включение обработки PHP в .html-файлах

8. Запрет выдачи листинга каталога

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

9. Включить выполнение CGI-скриптов в папке docs для файлов с расширениями .cgi, .pl. .py

В папке c CGI-скриптами необходимо разместить файл .htaccess с содержимым:

AddHandler cgi-script .cgi .pl .py
Options +ExecCGI

Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).

Атрибуты (права доступа) можно изменить с помощью файлового менеджера панели управления, при помощи вашего FTP-клиента или по SSH . Также в разделе Веб-сервер → Управление модулями должен быть включен модуль CGI.

10. Блокировка переходов со сторонних ресурсов

Если требуется запретить переходы с нескольких доменов, то используйте следующие директивы

В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.

В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.

Для работы перенаправления на сайте должен быть установлен действительный SSL-сертификат.

3. Диагностика ошибок

Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.

Здравствуйте программисты, сегодня новое руководство по работе с htaccess. Сегодня я научу вас как запрещать доступ к файлам, как запрещать доступ к директориям, как запрещать доступ к сайту по определенному ip. В общем я вас расскажу как закрывать свой сайт от посетителей.

Данный метод используется для ограничения определенных файлов или директорий сайта.

Как изменить доступ к файлам, с помощью .htaccess?

Для того чтобы это сделать, мы в корневой папке сайта создаем файл .htaccess. Данный файл необходимо открыть как обычный текстовик или с помощью программы для написания кода. Я открываю этот файл через программу Sublime Text.

prog-time.ru

Для файла .htaccess следует использовать права доступа 644 и загружать его в ASCII-режиме. Если ваш .htaccess файл не работает, то вам следует обратиться к системному администратору или в техподдержку вашего веб-хостинга и убедиться, что использование его разрешено для вашей учетной записи, так как некоторые хостинговые компании не позволяют его использование без предварительного разрешения, это в основном относится к бесплатным хостингам. Также, к сожалению, .htaccess не будет работать на Windows-серверах.

Первая директива, с которой мы познакомимся, это директива Order. Синтаксис директивы прост и она может быть использована в двух вариантах:

В зависимости от выбранного варианта [Deny,Allow] или [Allow,Deny] для директивы Order, мы изменяем логику работы сервера. Если используем первый вариант (Deny,Allow), то мы сообщаем серверу, что хотим запретить доступ для всех (deny), кроме тех, которым разрешим (Allow).

Когда мы используете второй вариант (Allow,Deny), то подразумевается, что мы разрешаем доступ всем, кроме определенных IP.

Здесь стоит отметить, что на самом деле использование директивы Order не является обязательным и возможно использование директив Deny и Allow без директивы Order. Также не будет ошибкой, если, к примеру, объявив в директиве Order вариант Deny,Allow, мы сначала используем директиву Allow, а затем Deny. Хотя все же лучше будет, если мы в этом вопросе не будем отходить от рекомендаций документации.

Как закрыть доступ для всех?!

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

Так мы закрыли доступ ко всему сайту для всех IP. Теперь сервер будет отдавать клиенту ответ 403, т.е. доступ запрещен.

Как закрыть доступ всем, кроме определенного ip?!

Если вы захотите открыть при этом доступ к сайту с конкретного IP, тогда его можно указать в директиве Allow. Например, откроем доступ для IP 127.0.0.1:

Также можно открывать доступ для нескольких IP. Для этого достаточно перечислить их через пробел:

Как закрыть доступ к определенной директории сайта?!

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

Как закрыть доступ к файлу на сайте?!

А что, если мы хотим запретить доступ не к папке, а к файлу. Для этого мы воспользуемся еще двумя директивами: Files и FilesMatch. Данные директивы похожи на HTML-теги, поскольку требуют закрывающей директивы и заключены в знаки меньше/больше:

На самом деле они представляют собой некую ограничивающую конструкцию, позволяющую обратиться только к конкретному файлу или файлам. Например, давайте закроем доступ к архиву rar.rar:

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

Если мы хотим ограничить доступ к группе файлов, то здесь можно использовать директиву FilesMatch вкупе с регулярными выражениями. Например, так можно ограничить доступ к графическим файлам и архивам:

В этом файле можно сделать дополнительные настройки для защиты от хакеров и спама, например, запретить доступ к определенному файлу или папке, установить пароль на папку, добавить редиректы каких-то запросов, заблокировать ip и так далее.

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

В этой статье вы узнаете, что можно добавить в файл .htaccess для увеличения безопасности сайта.

Что может делать .htaccess

FileZilla - Показывать скрытые файлы

Файл используется для настройки сервера, типичное применение файла:

  • Включает и отключает редиректы на другие страницы
  • Добавляет пароль на папки
  • Блокирует пользователей по IP
  • Отключает показ содержимого папок
  • Создает и использует собственные страницы для ошибок

Если вы уже знаете, для чего нужен этот файл, переходите к списку.

Сделайте бэкап

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

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

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

Если ваш сервер или компьютер не позволяет создать файл с таким именем, создайте файл htaccess.txt, перенесите его на сервер и на сервере переименуйте его в .htaccess.

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

Для одиночной установки:

Для мультисайт установки, версия Вордпресс 3.5 или выше, если сайты находятся в подпапках:

Для мультисайт установки, версия Вордпресс 3.5 или выше, если сайты находятся на субдоменах:

Куда добавлять изменения

Добавляйте свои комментарии к вашим правилам.

Когда вы добавляете свои правила, добавляйте их выше или ниже стандартных правил Вордпресс.

Если вы что-то исправили в этом коде, Вордпресс должен автоматически вернуть первоначальный вариант, но лучше ничего не менять. В крайнем случае у вас должна остаться копия файла, которую вы можете вернуть на сервер.

Добавляйте свои правила выше или ниже стандартных правил Вордпресс по-одному, пишите к ним комментарии, сохраняйте и проверяйте изменения на сайте.

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

Вы можете редактировать .htaccess из вашей хостинг-панели, или через ftp-клиент.

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

1. Защита важных файлов

Запретите доступ к файлам wp-config.php, htaccess, php.ini и логам ошибок. Добавьте это правило, чтобы запретить доступ к этим файлам:

У вас может не быть файла php.ini. Вместо него может быть файл php5.ini или php7.ini. Если у вас есть файл php5 или php7, замените php.ini на php5.ini или php7.ini . Если файла php.ini нет вообще, уберите php.ini| из правила.

Если вы хотите запретить доступ только к файлу wp-config.php, добавьте это правило:

Если вы хотите запретить доступ ко всем файлам .htaccess на сайте, добавьте этот код:

2. Закройте доступ к wp-login.php и wp-admin

Если вы используете статический IP, вы можете запретить доступ к странице входа или панели администратора:

Первые две строчки перенаправляют посетителя с неавторизованного IP на страницу с ошибкой 404. Это правило не будет вызывать цикличные редиректы, ваш сайт не будет выглядеть как зависший.

Замените /путь-к-вашему-сайту/ в двух первых строчках на свой адрес.
Замените IP Адрес 1 , IP Адрес 2 и IP Адрес 3 на те IP адреса, с которых вы хотите иметь доступ к страницам wp-login.php и wp-admin.

Если вам нужен только один IP адрес, удалите строки 9 и 10, если вам нужно больше адресов, добавьте нужное количество строк.

Если вы или другие пользователи имеют динамические IP (или Мультисайт), используйте следующее правило:

Хакеры используют ботов, чтобы пытаться попасть в админку Вордпресс. Это правило определяет, что только те пользователи, которые вручную набрали wp-login.php или wp-admin в браузере, получат доступ к этим страницам.

Этот способ не защитит от хакеров, которые вручную набирают адрес страницы входа на сайт, но значительно уменьшит количество автоматических брут-форс атак (перебор паролей).

Замените IP Адрес 1 и IP Адрес 2 на свои IP.

3. Запретите доступ к директориям сайта

Если эти папки будут доступны для просмотра, злоумышленник может заразить какие-то файлы на вашем сервере. Чтобы запретить доступ к папкам, добавьте это правило в .htaccess:

4. Доступ только к разрешенным типам файлов

В папке wp-content находятся темы, плагины и медиа контент. Кроме доступа к директориям сайта, можно разрешить доступ только к некоторым типам файлов, например, css, js, jpg, pdf, doc и так далее. Для этого создайте в папке wp-content новый файл .htaccess и добавьте это правило:

Не вставляйте этот код в файл .htaccess в корневой папке. Если вам нужно добавить в исключения другие типы файлов, добавьте их после |odf .

5. Запретите доступ с определенных IP

Вы можете полностью запретить доступ к сайту с подозрительных или вредоносных ip:

Замените IP Адрес 1 , IP Адрес 2 и IP Адрес 3 на ip-адреса, которым вы хотите запретить доступ к сайту.

6. Запретите доступ к PHP файлам

Добавьте этот код, чтобы заблокировать доступ неавторизованных пользователей к php файлам темы и плагинов:

7. Запретите исполнение PHP файлов

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

Чем больше препятствий взломщику вы установите, тем ниже вероятность что ваш сайт взломают.

Обычно хакеры загружают бэкдоры в папку /wp-content/uploads/ , поэтому заблокируйте исполнение всех PHP файлов в этой папке:

8. Защитите сайт от внедрения вредоносных скриптов

Многие хакеры пытаются изменить переменные Вордпресс GLOBALS и _REQUEST с целью внедрить вредоносный код. Добавьте этот код, чтобы хакеры не могли изменять существующие файлы:

9. Запретите доступ к папке wp-includes

В папке wp-includes хранятся файлы ядра Вордпресс, поэтому доступ к этой папке лучше полностью закрыть:

Добавьте это правило в .htaccess:

Если не получилось, попросите техподдержку вашего хостинга настроить сервер, чтобы он не показывал информацию о версии PHP.

11. Отключите XML-RPC

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

Чтобы отключить XML-RPC, добавьте это правило:

12. Отключите нумерацию пользователей

Посетитель может определить ID всех пользователей, у которых есть опубликованные материалы на сайте. Этот процесс называется нумерацией пользователей.

Если хакер узнает ID пользователя, который также является логином пользователя, то теперь злоумышленнику остается только узнать пароль пользователя.

Даже если пользователи используют сложные пароли, злоумышленнику лучше не знать ID пользователей:

13. Используйте SSL

Это правило требует использование SSL сертификата, выданного домену, который указан в 3-ей строчке.

14. Отключите хотлинк картинок

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

Чтобы отключить хотлинк картинок, используйте это код:

Заключение

Здесь находится он-лайн генератор правил для файла .htaccess.

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

Надеюсь, статья была полезна. Поделитесь в комментариях, что вы добавляете в .htaccess.

Файл .htaccess (Hypertext Access) это файл настройки Apache-сервера. В Сети довольно много статей по настройке .htaccess. Этому даже посвящены целые сайты. Однако, когда я приступал к изучению мануалов по настройке файла .htaccess, я мало что понял, уж очень запутано пишут. К тому же вопросам безопасности сайта уделяется мало внимания.

hypertext access

Создаем .htaccess

root

.htaccess — это обычный текстовый файл, правда с необычным расширением. На хостингах, с которыми я работал, есть возможность создавать и управлять файлом .htaccess прямо из панели управления сайтом. Если же на вашем хостинге такой поддержки нет, вам следует создать текстовый файл с расширением .htaccess у себя на компьютере (например в блокноте) и через FTP-соединение загрузить его в корневую директорию. Действие файла-конфигуратора распространяется на все вложенные директории. Чтобы изменить настройки для определенной директории (например, admin) следует разместить там другой файл .htaccess с новыми настройками.

Первое, что необходимо сделать, это включить перенаправления на основной домен сайта, то есть определиться с доступом к сайту с www или без, а также убрать все index.php. Это нужно для правильной индексации сайта, ведь без этого ваш сайт будет доступен по четырем адресам:

redirect301

Прячем расширения файлов

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

Но это не всегда удобно. Ведь если у мы передаем GET-параметры в URL, запрос будет выглядеть так:

Для этого необходимо изменить всю строку запроса, чтобы не выделять параметры так очевидно. Это называется Человеко-Понятный URL (ЧПУ).

Прячем GET-параметры в ЧПУ

В любой CMS вы можете это сделать в панели администрирования, но если вы не пользуетесь системами управления контентом и делаете все своими руками, как я, писать ЧПУ придется через .htaccess.

Допустим у нас есть catalog.php. В него мы передаем title и year. В нашем случае ссылка выглядит так:

А нам надо преобразовать URL к следующему виду:

Теперь, введите в адресную строку браузера catalog/2011/example.cgi и вы попадеете на catalog.php?year=2011&title=example (чтобы увидеть редирект поставьте [R]). После таких преобразований все ваши ссылки на сайте должны быть приведены к такому виду. Надеюсь пример понятен, а если нет, то пишите комментарии, разберемся.

Управляем выводом ошибок

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

Запрещаем доступ к определенным файлам

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

Запрет доступа к директории

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

Иногда нужно запретить доступ к директории всем кроме определенных ip-адресов. Это можно сделать для защиты административной части сайта.

Аутентификация пользователя

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

Файл .htpasswd содержит имена пользователей и хеш пароля. Он создается с помощью утилиты htpasswd.exe и располагается в корневой директории. Теперь, при доступе к защищенной директории пользователь увидит:

basic authentication


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

Защита файлов от скачивания (hotlink)

Читайте также: