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