Файл htaccess для WordPress: оптимизация и безопасность

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

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

Где находится файл htaccess WordPress

Файл .htaccess в WordPress обычно располагается в корневой директории вашего сайта. Если вы используете какую-либо панель управления хостингом или FTP-клиент, вы сможете найти его в основной папке сайта. Обычно, это директория с именем домена (например, public_html или www).

Стандартный файл htaccess WordPress

Структура стандартного файла .htaccess для WordPress включает блоки (комментарии), помеченные # BEGIN WordPress и # END WordPress, до и после которых вы можете добавлять свой код для своих целей. Но крайне не рекомендуется без знания дела менять или добавлять что-либо между этими комментариями.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Куда добавить код в стандартный файл htaccess

Добавление кода до или после секции WordPress может зависеть от конкретных задач и требований вашего проекта. Разница между добавлением кода до и после # BEGIN WordPress заключается в порядке выполнения этих правил сервером. Давайте рассмотрим оба варианта:

Добавление кода до # BEGIN WordPress

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

Добавление кода после # END WordPress

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

В общем, если код должен влиять на обработку запросов до того, как они попадут в WordPress, добавляйте его до # BEGIN WordPress. Если код должен влиять на запросы после обработки WordPress, то добавляйте его после # END WordPress.

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

Запрет доступа к wp-config.php и .htaccess

Этот код запрещает доступ к файлам wp-config.php и .htaccess через браузер.

<FilesMatch "^(wp-config\.php|\.htaccess)">
Order deny,allow
Deny from all
</FilesMatch>

Блокировка доступа к xmlrpc.php

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

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

Запрет исполнения PHP в папке uploads

Этот код блокирует возможность исполнения PHP-файлов в папке uploads.

<Files *.php>
Order deny,allow
Deny from all
</Files>

Установка времени кэширования для статических файлов

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

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>

Блокировка прямого доступа к wp-content

Этот код запрещает прямой доступ к содержимому папки wp-content, что может предотвратить попытки несанкционированного доступа.

Options -Indexes

Перенаправление на определенную страницу

Этот код перенаправляет постоянно страницу «old-page» на «new-page».

Redirect 301 /old-page http://example.ru/new-page

Перенаправление без www на www

Этот код перенаправляет посетителей с домена example.com на www.example.com.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.ru/$1 [L,R=301]

Перенаправление с www на без www

В этом случае посетителей с www.example.com перенаправляют на example.com.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

Редирект с HTTP на HTTPS

Этот код выполняет перенаправление всех запросов с протокола HTTP на HTTPS.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Управление сжатием GZIP

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

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript
</IfModule>

Запрет на доступ с определенных стран

Этот код использует модуль GeoIP для запрета доступа с IP адресов, принадлежащих к определенной стране (в данном случае, США).

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE US DenyCountry
Order allow,deny
Allow from all
Deny from env=DenyCountry

Разрешение по IP адресу

Этот код разрешает доступ к вашему сайту только с IP-адреса 122.222.222.0.

Order Deny,Allow
Deny from all
Allow from 122.222.222.0
Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *