Использование в файле htaccess инструкций, не разрешенных в конфигурации сервера, приводит к

Обновлено: 21.11.2024

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

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

Кроме того, важно расположение файла .htaccess. Конфигурации в этом файле повлияют на все в его каталоге и каталогах под ним.

Что нужно знать

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

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

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

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

Покончив с этим, давайте перейдем к информации .htaccess.

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

Если у вас есть доступ к настройкам сервера, вы можете изменить конфигурацию, чтобы позволить файлу .htaccess переопределять стандартные конфигурации веб-сайта. Откройте файл конфигурации хоста по умолчанию apache2. NB: для этого шага вам потребуются права sudo.

Оказавшись внутри этого файла, найдите следующий раздел и измените строку с надписью AllowOverride с None на All. Теперь раздел должен выглядеть так:

После сохранения и выхода из этого файла перезапустите apache.

Создание файла .htaccess:

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

Пять распространенных вариантов использования страницы .htaccess

<р>1. Mod_Rewrite: одним из наиболее полезных аспектов файла .htaccess является mod_rewrite. Вы можете использовать пространство в файле .htaccess, чтобы указать и изменить способ отображения URL-адресов и веб-страниц на ваших сайтах для ваших пользователей. Полное руководство о том, как это сделать, можно найти здесь.

<р>2. Аутентификация: хотя использование файла .htaccess не требует столько разрешений, сколько потребовалось бы для доступа к файлу apache2.conf, мы все равно можем вносить эффективные изменения на сайт. После такого изменения требуется пароль для доступа к определенным разделам веб-страницы.

Пароли .htaccess хранятся в файле .htpasswd. Создайте и сохраните этот файл, убедившись, что он хранится не в веб-каталоге, а из соображений безопасности.

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

Вы можете использовать этот полезный сайт для создания пары имени пользователя и зашифрованного пароля. Если имя пользователя вашего авторизованного пользователя — jsmith, а пароль — «awesome», пара будет выглядеть так: jsmith:VtweQU73iyETM. Вы можете вставить столько строк, сколько необходимо, в файл .htpasswd, но убедитесь, что каждый пользователь получает свою собственную строку.

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

  • 400 Неверный запрос
  • 401 Требуется авторизация
  • 403 Запрещенная страница
  • Файл ошибки 404 не найден
  • Внутренняя ошибка 500

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

В этом руководстве я собираюсь создать страницу 404. Однако вы можете заменить эту ошибку чем угодно:

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

Имейте в виду, что Apache ищет страницу 404, расположенную в корне сайта.Если вы разместили новую страницу с ошибкой в ​​более глубоком подкаталоге, вам нужно включить ее в строку, чтобы она выглядела примерно так:

<р>4. Типы MIME. Если на вашем сайте есть файлы приложений, для доставки которых ваш сервер не настроен, вы можете добавить типы MIME на сервер Apache в файле .htaccess с помощью следующего кода.

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

<р>5. SSI: включения на стороне сервера значительно экономят время на веб-сайте. Одним из наиболее распространенных способов использования SSI является обновление большого количества страниц некоторыми специфическими данными без необходимости обновления каждой страницы по отдельности (например, если вы хотите изменить цитату внизу страницы).

Чтобы включить SSI, введите следующий код в файл .htaccess.

Эти три строки сообщают .htaccess, что файлы .shtml допустимы, а вторая строка заставляет сервер анализировать все файлы, оканчивающиеся на .shtml, для любых команд SSI.

Однако, если у вас есть много страниц .html, которые вы не хотите переименовывать с расширениями .shtml, вы можете использовать другую тактику для их анализа на наличие команд SSI — XBitHack.

Добавление этой строки в файл .htaccess заставляет Apache проверять все файлы html с соответствующими разрешениями для включения на стороне сервера.

Чтобы сделать страницу подходящей для XBitHack, используйте эту команду:

Подробнее

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

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Найдите ответы, руководства и учебные пособия, чтобы повысить эффективность доставки контента.

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

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

Распространенные проблемы с .htaccess

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

.htaccess должен быть включен с помощью AllowOverride

Имя файла написано с ошибкой или не начинается с точки

Если вы создаете файл .htaccess с нуля (т. е. вы не используете CMS, которая поставляется с включенным файлом .htaccess), вы должны убедиться, что имя файла правильное и начинается с точки ( . ). Без точки в начале Apache проигнорирует файл — то же самое, если файл написан с ошибкой. Кроме того, дважды проверьте, чтобы имя файла было в нижнем регистре. Ваш файл .htaccess должен называться точно так же, как .htaccess .

Расположение ваших правил должно быть выше или ниже других

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

Конфликтующие файлы .htaccess

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

Используется неправильный синтаксис

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

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

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

Использование валидатора .htaccess

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

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

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

Проверка журнала ошибок Apache

Если после внесения изменений в файл .htaccess ваш веб-сайт не работает, вы также можете проверить журнал ошибок Apache для получения дополнительной информации об отладке. Файл журнала ошибок Apache обычно находится в каталоге /var/log/apache2/. Поэтому предположим, например, что у нас есть следующий контент в нашем файле .htaccess.

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

В этом случае Apache выдает следующую ошибку:

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

Отладка с помощью файла конфигурации Apache

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

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

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

Отладка mod_rewrite с журналами

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

В приведенном выше фрагменте будут зарегистрированы все ошибки mod_rewrite вплоть до уровня "alert" в вашем файле error.log. Ознакомьтесь с директивой уровня журнала Apache, чтобы узнать больше. Следует отметить, что чем выше уровень журнала трассировки, который вы задаете, тем медленнее будет работать ваш веб-сервер Apache.

Обзор

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

Кроме того, если вы хотите провести дополнительное тестирование, попробуйте инструмент для тестирования htaccess. Он позволяет вам указать определенный URL-адрес, а также правила, которые вы хотите включить, а затем показывает, какие правила были протестированы, какие из них соответствовали критериям, а какие были выполнены.

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

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

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

Перенаправления

Иногда нам нужно сообщить пользователям, что ресурс временно или постоянно перемещен.Именно для этого мы используем Redirect и RedirectMatch.

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

Возвращает постоянный статус перенаправления (301), указывающий, что ресурс перемещен навсегда.

Возвращает временный статус перенаправления (302). Это значение по умолчанию.

Возвращает статус "Просмотреть другое" (303), указывающий, что ресурс был заменен.

Возвращает статус "Исключен" (410), указывающий, что ресурс был окончательно удален. При использовании этого статуса аргумент URL следует опустить.

Независимые ресурсы

Общий доступ к CORS

Эта директива добавит заголовок CORS для всех ресурсов в каталоге с любого веб-сайта.

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

Изображения из разных источников

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

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

В руководстве по устранению неполадок Google Fonts в Google Chrome говорится, что, хотя Google Fonts может отправлять заголовок CORS с каждым ответом, некоторые прокси-серверы могут удалить его, прежде чем браузер сможет использовать его для отображения шрифта.

Время ресурсов из разных источников

Спецификация Resource Timing Level 1 определяет интерфейс для веб-приложений для доступа к полной информации о времени для ресурсов в документе.

Заголовок ответа Timing-Allow-Origin указывает источники, которым разрешено просматривать значения атрибутов, полученные с помощью функций Resource Timing API, которые в противном случае были бы сообщены как нулевые из-за ограничений между источниками.

Если ресурс не обслуживается с Timing-Allow-Origin или если заголовок не включает источник, делающий запрос, некоторые из атрибутов объекта PerformanceResourceTiming будут установлены в ноль.

Пользовательские страницы/сообщения об ошибках

Apache позволяет предоставлять пользователям настраиваемые страницы ошибок в зависимости от типа получаемой ими ошибки.

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

Предотвращение ошибок

Этот параметр влияет на работу MultiViews для каталога, к которому применяется конфигурация.

Эффект MultiViews следующий: если сервер получает запрос на /some/dir/foo, если для /some/dir включено MultiViews, а /some/dir/foo не существует, то сервер считывает каталог ищет файлы с именем foo.* и эффективно подделывает карту типов, которая называет все эти файлы, назначая им те же типы мультимедиа и кодировки содержимого, которые были бы, если бы клиент запросил один из них по имени. Затем он выбирает наилучшее соответствие требованиям клиента.

Этот параметр отключает MultiViews для каталога, к которому применяется эта конфигурация, и не позволяет Apache возвращать ошибку 404 в результате перезаписи, когда каталог с таким именем не существует

Типы мультимедиа и кодировки символов

Изменение метаданных файла не меняет значение заголовка Last-Modified. Таким образом, ранее кэшированные копии могут по-прежнему использоваться клиентом или прокси с предыдущими заголовками. Если вы измените метаданные (язык, тип контента, набор символов или кодировку), вам может потребоваться «прикоснуться» к затронутым файлам (обновив дату их последнего изменения), чтобы гарантировать, что все посетители получат исправленные заголовки контента.

Обслуживать ресурсы с правильными типами мультимедиа (например, типами MIME)

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

Серверы должны использовать текст/javascript для ресурсов JavaScript, как указано в спецификации HTML

Установите атрибут Charset по умолчанию

Каждый фрагмент контента в Интернете имеет набор символов. Большинство, если не все, содержимое представлено в формате Unicode UTF-8.

Используйте AddDefaultCharset для обслуживания всех ресурсов, помеченных как text/html или text/plain с кодировкой UTF-8.

Установите кодировку для определенных типов мультимедиа

Обслуживайте следующие типы файлов с параметром charset, установленным на `UTF-8`, используя директиву AddCharset, доступную в mod_mime.

Mod_rewrite и директивы RewriteEngine

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

Включить mod_rewrite

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

Вы не должны дублировать контент в нескольких источниках (с www и без него); это может вызвать проблемы SEO (дублированный контент), поэтому вам следует выбрать один из вариантов и перенаправить другой. Вы также должны использовать канонические URL-адреса, чтобы указать, какие URL-адреса должны сканировать поисковые системы (если они поддерживают эту функцию).

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

Следующее может быть не очень хорошей идеей, если вы используете «настоящие» субдомены для определенных частей вашего веб-сайта.

Параметры фрейма

В приведенном ниже примере отправляется заголовок ответа X-Frame-Options со значением DENY, уведомляющим браузеры не отображать содержимое веб-страницы ни в одном фрейме, чтобы защитить веб-сайт от кликджекинга.

Возможно, это не лучшая настройка для всех. Вы должны прочитать о двух других возможных значениях для заголовка X-Frame-Options: SAMEORIGIN и ALLOW-FROM .

Хотя вы можете отправить заголовок X-Frame-Options для всех страниц вашего веб-сайта, у этого есть потенциальный недостаток, заключающийся в том, что он запрещает даже любое кадрирование вашего контента (например, когда пользователи посещают ваш веб-сайт, используя страницу результатов поиска картинок Google). ).

Тем не менее, вы должны убедиться, что вы отправляете заголовок X-Frame-Options для всех страниц, которые позволяют пользователю выполнять операцию изменения состояния (например, страницы, содержащие ссылки для покупки в один клик, оформления заказа или банковского перевода). страницы подтверждения, страницы, которые вносят постоянные изменения в конфигурацию и т. д.).

Политика безопасности контента (CSP)

CSP (политика безопасности контента) снижает риск межсайтового скриптинга и других атак с внедрением контента, устанавливая `Политику безопасности контента`, которая разрешает доверенные источники контента для вашего веб-сайта.

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

Пример политики ниже:

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

Доступ к каталогу

Эта директива предотвратит доступ к каталогам, в которых нет файла индекса в любом формате, который настроен на сервере, например index.html или index.php .

Заблокировать доступ к скрытым файлам и каталогам

В системах Macintosh и Linux файлы, начинающиеся с точки, скрыты от просмотра, но не от доступа, если известно их имя и расположение. Эти типы файлов обычно содержат пользовательские настройки или сохраненное состояние утилиты и могут включать в себя довольно личные места, такие как, например, каталоги .git или .svn.

Каталог .well-known/ представляет собой стандартный (RFC 5785) префикс пути для «известных местоположений» (например: /.well-known/manifest.json , /.well-known/keybase.txt ). и поэтому доступ к его видимому контенту не должен быть заблокирован.

Заблокировать доступ к файлам с конфиденциальной информацией

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

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

Запретить некоторым браузерам прослушивание ответа MIME

  1. Ограничивает все выборки по умолчанию источником текущего веб-сайта, устанавливая для директивы default-src значение 'self', что действует как резерв для всех директив Fetch.
    • Это удобно, так как вам не нужно указывать все директивы Fetch, применимые к вашему сайту, например: connect-src 'self'; шрифт-источник 'я'; сценарий-источник 'я'; style-src 'self' и т. д.
    • Это ограничение также означает, что вы должны явно указать, с каких сайтов ваш веб-сайт может загружать ресурсы, иначе он будет ограничен тем же источником, что и страница, отправляющая запрос.
  2. Запрещает элемент на веб-сайте. Это делается для того, чтобы злоумышленники не могли изменить расположение ресурсов, загружаемых с относительных URL-адресов
      .
    • Если вы хотите использовать этот элемент, используйте вместо него base-uri 'self'
  3. Разрешить отправку форм только из текущего источника с помощью: form-action 'self'
  4. Запрещает всем веб-сайтам (включая ваш собственный) встраивать ваши веб-страницы, например, в элемент или, установив: frame-ancestors 'none' .
    • Директива frame-ancestors помогает избежать атак с использованием кликджекинга и аналогична заголовку X-Frame-Options.
    • Браузеры, поддерживающие заголовок CSP, будут игнорировать X-Frame-Options, если также указаны предки кадров
  5. Заставляет браузер обрабатывать все ресурсы, которые обслуживаются через HTTP, как если бы они были безопасно загружены через HTTPS, устанавливая директиву upgrade-insecure-requests
    • upgrade-insecure-requests не гарантирует HTTPS для навигации верхнего уровня. Если вы хотите, чтобы сам веб-сайт загружался через HTTPS, вы должны включить заголовок Strict-Transport-Security
  6. Включает заголовок Content-Security-Policy во все ответы, способные выполнять сценарии. Сюда входят часто используемые типы файлов: документы HTML, XML и PDF. Хотя файлы Javascript не могут выполнять сценарии в «контексте просмотра», они включены для целевых веб-воркеров.

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

Политика реферала

Мы включаем заголовок Referrer-Policy в ответы для ресурсов, которые могут запрашивать (или переходить) к другим ресурсам.

Сюда входят часто используемые типы ресурсов: HTML, CSS, XML/SVG, PDF-документы, сценарии и рабочие процессы.

Чтобы полностью предотвратить утечку реферера, вместо этого укажите значение no-referrer. Обратите внимание, что это может отрицательно сказаться на инструментах аналитики.

Используйте службы, подобные приведенным ниже, чтобы проверить свою политику реферера:

Метод TRACE, хотя и кажется безвредным, в некоторых сценариях может быть успешно использован для кражи учетных данных законных пользователей. См. Атака с межсайтовым отслеживанием (XST) и Руководство по тестированию веб-безопасности OWASP

Современные браузеры теперь предотвращают запросы TRACE, сделанные через JavaScript, однако были обнаружены другие способы отправки запросов TRACE с помощью браузеров, например с использованием Java.

Если у вас есть доступ к основному файлу конфигурации сервера, используйте вместо него директиву TraceEnable.

Удалить заголовок ответа X-Powered-By

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

По возможности отключите заголовок X-Powered-By на уровне языка/фреймворка (например, для PHP это можно сделать, установив в php.ini следующее.

Удалить нижний колонтитул с информацией о сервере, созданный Apache

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

Исправить неработающие заголовки AcceptEncoding

Сжатие типов мультимедиа

Сжимайте все выходные данные, помеченные одним из следующих типов мультимедиа, с помощью директивы AddOutputFilterByType.

Сопоставление расширений с типами мультимедиа

Сопоставьте следующие расширения имен файлов с указанным типом кодировки с помощью AddEncoding, чтобы Apache мог обслуживать типы файлов с соответствующим заголовком ответа Content-Encoding (это НЕ заставит Apache их сжимать!). Если эти типы файлов будут обслуживаться без соответствующего заголовка ответа Content-Encoding, клиентские приложения (например, браузеры) не будут знать, что им сначала нужно распаковать ответ, и, следовательно, не смогут понять содержимое.< /p>

Срок действия кэша

Обслуживайте ресурсы с отдаленной датой истечения срока действия, используя модуль mod_expires и заголовки Cache-Control и Expires.

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

Во многих случаях вы можете решить многие операционные проблемы и проблемы на уровне сервера, просто обновив/изменив правила в файле WordPress .htaccess. Однако многие владельцы веб-сайтов не знают о полном потенциале .htaccess для WordPress и, таким образом, упускают возможность оптимизировать свой сервер (и веб-сайт) в полной мере.

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

Примечание. Упомянутые ниже правила и конфигурации работают с Apache 2.4

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

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

Управляемый хостинг WordPress от 10 долларов в месяц

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

Меры предосторожности

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

Файл WordPress .htaccess по умолчанию

Файл .htaccess поставляется с каждой установкой WordPress и обычно находится в корневом каталоге. Учитывая важность файла, он обычно скрыт (у него нет расширения файла) и не отображается в списках файлов и папок, в основном потому, что файловый менеджер скрывает его из соображений безопасности.

В редких случаях возможно отсутствие файла .htaccess в корневой папке. Если это ваш случай, вы можете создать файл .htaccess в WordPress с помощью Блокнота (или любого текстового редактора по вашему выбору) и сохранить его под именем «.htaccess». Установите для параметра «Тип файла» значение «Все файлы» и загрузите его в корневой каталог вашей установки WordPress.

ВАЖНО: Убедитесь, что имя файла НЕ «htaccess» — это htaccess с точкой (.) в начале.

Вот как выглядит файл .htaccess по умолчанию для WordPress:

Файл WordPress .htaccess по умолчанию

Еще один способ создать файл .htaccess для WordPress – перейти на панель инструментов WordPress > Настройки > Постоянные ссылки и нажать "Сохранить изменения".

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

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

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

Чтобы отредактировать файл .htaccess в WordPress, перейдите в корневой каталог. Это можно сделать с помощью файлового менеджера, предоставленного вашим хостинг-провайдером WordPress, или с помощью FTP-клиента, такого как FileZilla.

Войдите в свою учетную запись веб-хостинга, перейдите в папку «public_html» и найдите файл .htaccess в программе установки WordPress.

Щелкните правой кнопкой мыши и выберите параметр «Просмотр/редактирование», чтобы открыть его в предпочитаемом вами текстовом редакторе.

Внесите необходимые изменения и сохраните файл.

Еще один способ редактирования файла WordPress .htaccess — создать его копию в локальной системе. Когда вы закончите, замените действующую версию с помощью FTP или файлового менеджера.

Переадресация htaccess в WordPress

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

301 (постоянная) переадресация

Перенаправление 301 сообщает поисковым системам, что URL был окончательно перемещен в другое место. Это не ограничивается только URL-адресами, и вы можете перенаправить папку, страницу или даже весь веб-сайт. Следующий фрагмент перенаправит oldpage.html на newpage.html:

302 (временная) переадресация

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

Принудительно указать URL-адрес www

Принудительно указывать URL без www

Перенаправить домен в подкаталог

Следующее правило перенаправит корневой URL домена в подкаталог по вашему выбору.

Перенаправить URL

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

Советы по безопасности WordPress htaccess

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

Защитить .htaccess

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

Просто скопируйте и вставьте фрагмент в файл .htaccess.

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

Представьте себе (ужасный) сценарий, когда кто-то получает доступ к вашей панели администратора WordPress? Такая атака может повредить ваш сайт.

Чтобы предотвратить это, вы должны ограничить доступ к панели администратора WordPress только для определенных IP-адресов.

Теперь, если кто-то не входит в список утвержденных IP-адресов, он не сможет войти на ваш сайт. Вместо этого будет отображаться следующая ошибка:

Примечание. Не забудьте заменить «xx.xx.xx.xx» вашим разрешенным IP-адресом.

Вы можете легко узнать свой IP-адрес, посетив раздел «Какой у меня IP-адрес». Если у вас более одного модератора, вы также можете добавить несколько IP-адресов, используя следующий вариант:

Защитите важные файлы

Вы можете использовать .htaccess в WordPress для защиты важных файлов, таких как журналы ошибок, wp-config.php и php.ini. Для этого используйте следующий фрагмент:

Защитить файл wp-config.php

В WordPress файл wp-config.php — это файл, в котором сохраняются хостинг, база данных и другие важные учетные данные. Само собой разумеется, что этот файл должен быть защищен от несанкционированного доступа.

Для этого просто скопируйте и вставьте следующие строки в файл .htaccess.

Защитить /wp-content/

wp-content — это папка, содержащая все важные файлы ваших тем, плагинов, мультимедиа и кешированные файлы. Вот почему этот каталог является основной целью для хакеров и спамеров. Чтобы защитить эту папку от несанкционированного доступа, создайте отдельный файл .htaccess в папке wp-content. Затем скопируйте и вставьте следующий фрагмент в файл:

Согласно приведенному выше правилу, пользователи смогут загружать файлы только с разрешенными расширениями (XML, CSS, JPG, JPEG, PNG, GIF и JavaScript). Все другие типы файлов будут отклонены.

Защитить файлы только для включения

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

Отключить выполнение PHP

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

Некоторые папки WordPress, такие как /wp-includes/ и /wp-content/uploads/, по умолчанию доступны для записи. Этот тип разрешения позволяет пользователям загружать мультимедиа или файлы разных типов. Всегда рекомендуется отключать выполнение PHP в этих каталогах.

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

Ограничение доступа к wp-admin является важным требованием, особенно когда несколько членов команды участвуют в управлении и обновлении веб-сайта.

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

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

Защита от внедрения скриптов

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

Заблокировать IP-адрес

Если кто-то злоупотребляет вашим веб-сайтом, постоянно рассылает спам или предпринимает попытки взлома, его IP-адрес виден в панели администратора WordPress. Чтобы заблокировать IP, просто используйте файл .htaccess для управления доступом к вашему сайту. Просто скопируйте и вставьте следующий фрагмент в файл .htaccess вашего WordPress, и эта конкретная проблема исчезнет. Не забудьте заменить образец IP на IP-адрес спамера.

После размещения фрагмента спамер увидит на вашем сайте следующее сообщение об ошибке:

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

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

Отключить просмотр каталогов

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

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

Правила htaccess WordPress для производительности

Файл .htaccess в WordPress также можно использовать для повышения производительности вашего веб-сайта. Просто скопируйте и вставьте соответствующие фрагменты в файл .htaccess.

Включить кеш браузера

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

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

Включить сжатие Gzip

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

Сжатие Gzip часто используется на уровне сервера, и многие хостинг-провайдеры, такие как Cloudways, включают его по умолчанию. Однако, если по какой-либо причине htaccess не работает, попробуйте добавить следующий фрагмент в файл WordPress .htaccess или обратитесь к поставщику веб-хостинга.

Контролировать/ограничивать горячие ссылки на изображения

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

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

htaccess для мультисайта WordPress (WPMU)

Файл .htaccess по умолчанию для WordPress Multisite немного отличается от стандартного файла WordPress .htaccess.

Htaccess по умолчанию для подпапок WPMU

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

Htaccess по умолчанию для субдоменов WPMU

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

Заключительные мысли!

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

В. Что такое файл .htaccess в WordPress?

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

В. Как я могу отредактировать файл .htaccess в WordPress?

Файл WordPress .htaccess можно редактировать с помощью файлового менеджера веб-хостинга или любого текстового редактора. Используйте любой FTP-клиент, например FileZilla, и получите доступ к корневому каталогу. Откройте файл .htaccess в текстовом редакторе, чтобы изменить и обновить его.

В. Создает ли WordPress файл htaccess?

Да, по умолчанию в WordPress есть хотя бы один файл .htaccess. Если его нет в корневом каталоге, перейдите в панель управления WordPress -> Настройки -> Постоянные ссылки и нажмите «Сохранить изменения», чтобы создать новый файл .htaccess.

Поделиться этой статьей

Отзыв клиента на

«Красиво оптимизированный хостинг для WordPress и Magento»

Арда Бурак [Владелец агентства]

Мустасам Салим

Мустаасам — менеджер сообщества WordPress в Cloudways — управляемой платформе хостинга WordPress, где он активно работает и любит делиться своими знаниями с сообществом WordPress. Когда он не работает, вы можете найти его играющим в сквош со своими друзьями, защищающимся в футболе и слушающим музыку. Вы можете написать ему по адресу [email protected]

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