Файл .htaccess определяет правила, по которым сервер на базе Apache взаимодействуют с сайтом. Код в .htaccess управляет доступом к файлам в каталоге. Вы можете рассматривать его как охрану вашего сайта, потому что он решает, кого впустить на сайт и что им можно позволить делать.
- Содержание
- Что такое .htaccess?
- Значение файла .htaccess
- Где находится файл .htaccess?
- Как отредактировать файл .htaccess?
- Как создать файл .htaccess?
- Запрет доступа к файлам сайта
- Редирект со старых адресов
- Редирект на HTTPS
- Настройки кеширования в браузере
- Защита от атак скриптами
- Защита от сбора имён пользователей
- Запрет на использование изображений с сервера
- Управление расширениями файлов
- Управление загрузкой файлов
Что такое .htaccess?
Файл .htaccess — это файл конфигурации для веб-сервера Apache. Он обслуживает сайты на WordPress.
Имя .htaccess ─ это сокращение от HyperText Access: «гипертекстовый доступ».
Файл .htaccess не имеет расширения. Точка в начале просто гарантирует, что файл остаётся скрытым.
Файл .htaccess ─ это мощный инструмент, который помогает защитить сайт и повысить его производительность за счёт некоторых незначительных изменений в коде. Редактируя этот файл, вы можете запрещать пользователям создавать перенаправления, предотвращать атаки и даже закрывать доступ к определённым частям сайта.
Значение файла .htaccess
По умолчанию файл .htaccess обычно включается в комплект файлов CMS WordPress. Основная его цель ─ повышение безопасности и производительности. Кроме того, он также позволяет переопределять настройки веб-сервера.
Где находится файл .htaccess?
Файл .htaccess можно найти в корневом каталоге сайта ─ главной папке с названием сайта, которая раскрывается по первому клику в программе FTP-клиента и содержит другие папки системы. Содержание файла .htaccess влияет на весь сайт на WordPress.
Как отредактировать файл .htaccess?
Редактирование файла .htaccess на практике так же просто, как редактирование любого другого текстового файла. Поскольку это основной файл, внесение в него изменений может иметь непредвиденные последствия. Поэтому жизненно важно создать резервную копию сайта перед началом работы с кодом.
Вы можете получить к доступ к .htaccess, используя протокол безопасной передачи файлов (SFTP) или сетевой протокол SSH. Вы найдёте .htaccess в корневом каталоге вашего сайта.
Откройте его с помощью текстового редактора Блокнот или Notepad.
Если файл ранее не редактировался, вы увидите информацию по умолчанию.
Важно ничего не добавлять и не изменять между тегами # BEGIN и # END. Весь новый код следует добавлять после этого блока.
Добавьте свой код и сохраните файл. Если вам нужно включить в код несколько новых функций, лучше сохраните и протестируйте каждую из них отдельно. В случае возникновения ошибки вы сразу поймёте какое изменение вызвало проблему.
Как создать файл .htaccess?
Хотя почти все установки WordPress содержат файл .htaccess, в некоторых случаях его нужно будет создать.
Вы можете сделать это с помощью текстового редактора. Сохраняйте имя файла .htaccess без расширения. Затем загрузите файл в корневой каталог о сайта.
9 вещей, которые вы можете сделать с вашим файлом WordPress .htaccess
Теперь, когда вы знакомы с файлом .htaccess, пришло время познакомиться с ним поближе. Мы собираемся представить несколько способов, которыми вы можете легко повысить безопасность и производительность вашего сайта, отредактировав этот файл.
Просто используйте фрагменты кода, которые мы предоставили ниже, и не забудьте создать резервную копию перед началом работы!
В приведённых примерах замените example.com своим собственным доменом.
Запретите доступ к частям вашего сайта
Одна из самых полезных вещей, которые вы можете сделать с помощью .htaccess, — это запретить доступ к определённым страницам и файлам. Есть несколько файлов, которые следует скрыть по соображениям безопасности, например, wp-config.php файл.
Вы можете сделать это, добавив следующий код, который приведёт к появлению ошибки 404, если кто-либо попытается просмотреть файл.
<files wp-config.php> order allow,deny deny from all </files>
В случаях, когда конфиденциальные данные должны быть скрыты, может быть полезно ограничить доступ к соответствующему каталогу. Поскольку многие сайты WordPress используют одинаковую структуру папок, общеизвестная настройка может сделать сайт уязвимым. Если вы добавите следующую строку, это отключит функциональность списка каталогов по умолчанию:
Options Indexes
Это запретит пользователям и роботам просматривать структуру папок сайта. Если кто-либо попытается получить доступ к ней, они увидят страницу с ошибкой 403.
Настройте перенаправления URL-адресов
В htaccess редирект позволяет автоматически отправлять пользователей на определённую страницу.
Перенаправления особенно полезны, если вы изменили адрес страницы или удалили её. Вы можете перенаправить пользователей, пытающихся получить доступ к странице по старому адресу куда-то ещё.
Вы можете выполнить это с помощью такого плагина Redirection, или путём редактирования файла .htaccess.
Чтобы создать htaccess редирект, используйте следующий код:
Redirect /oldfile.html http://www.example.com/newfile.html
Первая часть кода ─ это путь к старому файлу, а вторая часть ─ URL, на который вы хотите перенаправлять посетителей.
Настройте безопасную загрузку сайта с помощью HTTPS
Если вы добавили SSL сертификат к своему домену, например, получили бесплатный сертификат Let’s Encrypt от Beget.com, вам нужно обеспечить соединение по HTTPS. Это обеспечит безопасность вашего сайта как для вас, так и для ваших посетителей.
Вы можете сделать это, добавив следующий код:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Теперь ваш сайт будет автоматически перенаправлять любые HTTP-запросы и направлять их на использование HTTPS вместо этого. Например, если пользователь попытается получить доступ к http://www.example.com, он будет автоматически перенаправлен на https://www.example.com.
Измените настройки кэширования
Кэширование в браузере — это процесс, при котором определённые файлы сайта временно сохраняются на локальном устройстве посетителя, чтобы ускорить загрузку страниц.
Используя .htaccess, вы можете изменить время, в течение которого ваши файлы хранятся в кэше браузера, пока они не будут обновлены новыми версиями.
Для этого существует несколько различных способов, но в данном примере мы будем использовать функцию под названием mod_headers. Следующий код изменит максимальное время кэширования для всех файлов jpg, jpeg, png и gif.
<ifModule mod_headers.c> <filesMatch "\\.(jpg|jpeg|png|gif)$"> Header set Cache-Control "max-age=2592000, public" </filesMatch>
Мы установили максимальное время в 2 592 000 секунд, что равно 30 дням. Вы можете изменить это время, если хотите, а также расширения файлов, на которые это повлияет. Если вы хотите добавить разные настройки для разных расширений, просто добавьте дополнительные функции mod_header.
Предотвратите появление хакерских атак с использованием скриптов
Атаки с помощью внедрения скрипта (или ‘code injection’) пытаются изменить работу сайта путём добавления недопустимого кода. Например, если кто-то добавит скрипт в текстовое поле на вашем сайте, а затем отправить его кнопкой в систему, это может привести к фактическому запуску скрипта на вашем сайте.
Вы можете добавить следующий код для защиты от определённых типов скриптов.
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L]
Теперь ваш сайт должен быть способен обнаруживать и останавливать попытки внедрения скрипта и перенаправлять злоумышленника на вашу index.php страницу.
Однако важно отметить, что этот пример не защитит от всех типов инъекционных атак. Хотя этот конкретный код, безусловно, может быть полезен, вам не следует использовать его в качестве единственной защиты от атак такого типа.
Остановите атаки с перечислением имён пользователей
Перечисление имён пользователей ─ это процесс, при котором имена пользователей с вашего сайта собираются путём просмотра страницы автора каждого пользователя. Это особенно проблематично, если кому-то удаётся найти ваше имя администратора, что значительно облегчает ботам получение доступа к вашему сайту.
Вы можете предотвратить перечисление имён пользователей, добавив следующий код:
RewriteCond %{REQUEST_URI} !^/wp-admin [NC] RewriteCond %{QUERY_STRING} author=\d RewriteRule .* - [R=403,L]
Это остановит некоторые попытки перечисления имён пользователей и вместо этого выдаст страницу с ошибкой 403. Имейте в виду, что это не предотвратит все перечисления, и вам следует тщательно протестировать свою безопасность.
Рекомендуем дополнительно улучшить страницу входа, внедрив многофакторную аутентификацию.
Запретите использовать ваши изображения на чужих сайтах
Изображения с вашего сервера могут использовать в качестве иллюстраций на других сайтах. Такой трюк создаёт дополнительную нагрузку на ваш сервер. Вы можете остановить это, добавив код в .htaccess.
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https://(www\.)?example.com/.*$ [NC] RewriteRule \.(png|gif|jpg|jpeg)$ https://www.example.com/wp-content/uploads/hotlink.gif [R,L]
Замените example.com своим собственным доменом, и этот код предотвратит загрузку изображений на всех других сайтах.
Вместо этого загрузится изображение, указанное вами в последней строке. Вы можете использовать это для отправки альтернативного изображения сайтам, которые пытаются отображать графику с вашего сервера.
Помните, что это может вызвать проблемы, когда вы захотите, чтобы изображения отображались извне, например, в поисковых системах. Вы также можете рассмотреть возможность ссылки на скрипт вместо статического изображения, а затем ответить изображением с водяными знаками или изображением, содержащим рекламу.
Управляйте расширениями ваших файлов
Используя .htaccess, вы можете управлять тем, как файлы с различными расширениями загружаются вашим сайтом. С помощью этой функции вы можете многое сделать, например, запускать файлы как PHP, но сейчас мы просто рассмотрим базовый пример.
Следующий код удалит расширение файла из PHP-файлов при их загрузке. Вы можете использовать это с любым типом файла, при условии, что вы замените все экземпляры «php» на нужное вам расширение.
RewriteEngine On RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\ HTTP/ RewriteRule ^(.*)index$ http://example.com/$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://example.com/$1 [L,R=301] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.+)\.php\ HTTP/ RewriteRule ^(.+)\.php$ http://example.com/$1 [L,R=301] RewriteRule ^([a-z]+)$ /$1.php [L]
Это приведёт к загрузке всех файлов PHP без отображения их расширения в URL. Например, index.php файл будет отображаться просто как индекс.
Задайте принудительную загрузку файлов
Наконец, когда файл запрашивается на вашем сайте, по умолчанию он отображается в браузере. Например, если вы размещаете аудиофайл, он начнёт воспроизводиться в браузере, а не сохраняться на компьютере посетителя.
Вы можете изменить это, заставив сайт вместо этого загрузить файл. Это можно сделать с помощью следующего кода:
AddType application/octet-stream mp3
В этом примере мы использовали файлы mp3, но вы можете использовать ту же функцию для txt, mov или любого другого расширения.
Файл .htaccess файл обеспечивает гибкость управления поведением вашего сервера. Вы также можете использовать его для повышения производительности сайта и получения большего контроля над тем, кто к какой информации может получить доступ.
С помощью .htaccess вы можете запретить доступ к определённым частям вашего сайта. Кроме того, htaccess редирект позволяет перенаправлять URL-адреса, принудительно загружать ваш сайт по протоколу HTTPS и предотвращать некоторые атаки с использованием скриптов.
Редактирование файла .htaccess — это всего лишь один из способов повысить безопасность вашего сайта. Выбор надёжного хостинг-провайдера WordPress — другой.