Руководство для начинающих по файлу .htaccess WordPress

by Jason Cosper
Руководство для начинающих по файлу .htaccess WordPress thumbnail

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

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

Введение в файл .htaccess

.htaccess — это сокращение от «HyperText Access». Это файл конфигурации, который определяет, как серверы на базе Apache взаимодействуют с вашим сайтом. Проще говоря, .htaccess контролирует, как можно получить доступ к файлам в директории. Можно думать о нем как о страже вашего сайта, поскольку он решает, кого впустить и что они могут делать.

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

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

Также стоит отметить, что файл .htaccess не имеет расширения файла. Точка в начале просто обеспечивает его скрытность.

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

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

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

Когда вы будете готовы редактировать файл .htaccess, вы можете получить к нему доступ с использованием Протокола безопасной передачи файлов (SFTP) или Секретного Шелла (SSH). Вы найдете .htaccess в корневом каталоге вашего сайта:

Файл .htaccess WordPress

Откройте файл с помощью предпочтительного текстового редактора, например, TextEdit или Notepad. Если файл ранее не редактировался, вы увидите следующую стандартную информацию:

Файл .htaccess WordPress

Важно не добавлять и не изменять ничего между тегами # BEGIN и # END. Вместо этого весь новый код следует добавлять после этого блока.

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

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

Также важно правильно настроить настройки разрешений файла. Затем вы можете загрузить .htaccess в корневой каталог вашего сайта.

9 вещей, которые вы можете делать с вашим файлом .htaccess WordPress

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

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

1. Запретить доступ к частям вашего сайта

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

Вы можете сделать это, добавив следующий код, который вызовет ошибку 404, если кто-либо попытается просмотреть файл:

<Files ~ "/wp-config.php">
Order Allow,Deny
Deny from All
</Files>

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

Options -Indexes

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

2. Перенаправление и перезапись URL-адресов

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

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

Redirect /oldfile.html http://www.example.com/newfile.html

Вы, вероятно, видите, что здесь происходит. Первая часть – это путь к старому файлу, вторая часть – это URL-адрес, на который вы хотите перенаправить посетителей.

Получайте контент прямо в свой почтовый ящик

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

3. Заставьте ваш сайт безопасно загружаться с HTTPS

<style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }</style><div class=’embed-container’><iframe src=’https://www.youtube.com/embed/QeicRf_Ri3Y’ frameborder=’0′ allowfullscreen></iframe></div>

Если вы добавили SSL-сертификат к вашему домену, например, бесплатный сертификат Let’s Encrypt от DreamHost, рекомендуется принудительно настроить загрузку вашего сайта по протоколу 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.

4. Изменение настроек кэширования

Кэширование в браузере — это процесс, при котором определенные файлы сайта временно сохраняются на локальном устройстве посетителя, чтобы страницы загружались быстрее. Используя .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.

5. Предотвращение определенных атак с инъекцией скриптов

Атаки с внедрением скриптов (или атаки с ‘внедрением кода’) пытаются изменить способ выполнения сайта или приложения, добавляя неправильный код. Например, кто-то может добавить скрипт в текстовое поле на вашем сайте и затем отправить его, что может привести к тому, что ваш сайт действительно выполнит этот скрипт.

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

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.

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

6. Остановить атаки на перечисление имен пользователей

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

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

RewriteCond %{REQUEST_URI} !^/wp-admin [NC]
RewriteCond %{QUERY_STRING} author=d
RewriteRule .* - [R=403,L]

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

7. Предотвращение хотлинкинга изображений

Горячая ссылка на изображение – это распространенная проблема, которая возникает, когда изображения на вашем сервере отображаются на другом сайте. Вы можете остановить это, добавив следующий код в .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 на свой собственный домен, и этот код предотвратит загрузку изображений на всех других сайтах. Вместо этого будет загружаться изображение, указанное в последней строке. Вы можете использовать это для отправки альтернативного изображения на сайты, которые пытаются отображать графику с вашего сервера.

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

8. Управляйте вашими файловыми расширениями

Используя .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 будет отображаться просто как index.

9. Принудительное скачивание файлов

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

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

AddType application/octet-stream mp3

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

Повышение безопасности и производительности вашего сайта

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

С помощью .htaccess вы можете запретить доступ к определенным частям вашего сайта. Кроме того, он позволяет перенаправлять URL, заставлять ваш сайт загружаться через HTTPS и предотвращать некоторые атаки с инъекцией скриптов.

Редактирование вашего файла .htaccess — это только один из способов повысить безопасность вашего сайта. Выбор надежного провайдера хостинга WordPress — это другой. Ознакомьтесь с нашими тарифными планами управляемого хостинга DreamPress, чтобы узнать, как мы можем улучшить безопасность и производительность вашего сайта!

Фоновое изображение объявления

Делайте больше с DreamPress

Пользователи DreamPress Plus и Pro получают доступ к Jetpack Professional (и более чем 200 премиальным темам) без дополнительных расходов!

Ознакомьтесь с планами