Делаем правильный .htaccess для WordPress. Подробное руководство по настройке редиректов, защиты и оптимизации WP

правильный htaccess для wordpress,Делаем правильный .htaccess для WordPress,htaccess wordpress,правильный htaccess Шаблоны и чек-листы
Из статьи вы узнаете обо всех возможностях, которые можно реализовать с помощью этого файла, а также о том как это правильно сделать.
Содержание статьи
  1. Что такое .htaccess
  2. Стандартный .htaccess для WordPress
  3. Как редактировать файл .htaccess
  4. Настройка редиректов в .htaccess
  5. Как сделать 301 редирект в .htaccess
  6. Как сделать 302 редирект в .htaccess
  7. Принудительная загрузка сайта с www
  8. Принудительная загрузка сайта без www
  9. Принудительная загрузка сайта по протоколу HTTPS
  10. Принудительная загрузка сайта по протоколу HTTP
  11. Редирект домена на директорию
  12. Редирект с одного сайта на другой
  13. Настройка безопасности WordPress-сайта в .htaccess
  14. Защита .htaccess
  15. Ограничение доступа к Консоли WordPress
  16. Защита файла wp-config.php
  17. Защита директории /wp-content/
  18. Защита системных файлов
  19. Запрет выполнения PHP
  20. Ограничение доступа к файлам
  21. Защита от внедрения скриптов
  22. Блокировка IP-адреса
  23. Запрет доступа к определенным файлам сайта
  24. Отключение просмотра директорий
  25. Настройка производительности WordPress-сайта в .htaccess
  26. Включение кэширования
  27. Включение gzip-сжатия
  28. Контроль и установка ограничений на хотлинкинг изображений

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

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

Стандартный .htaccess для WordPress

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

  1. Подключитесь к хостингу по FTP, используя FileZilla или другой FTP-клиент, и перейдите в корневую директорию сайта.
  2. Кликните правой кнопкой мыши по правому окошку с файлами сайта и выберите «Создать новый файл».
  3. Введите .htaccess и нажмите OK.

Обратите внимание! Убедитесь, что ввели имя .htaccess (с точкой), а не htaccess (без точки).

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

Стандартный .htaccess для WordPress выглядит следующим образом:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

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

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

Чтобы внести изменения в .htaccess, подключитесь к хостингу по FTP, используя FileZilla или другой FTP-клиент, перейдите в корневую директорию сайта, нажмите правой кнопкой мыши на файле .htaccess и выберите «Просмотр/Правка». После редактирования файла сохраните его и подтвердите загрузку файла на сервер, нажав кнопку «Да» в появившемся в FileZilla окошке «Файл изменен».

 

Настройка редиректов в .htaccess

Ранее говорилось о том, что .htaccess позволяет устанавливать правила управления перенаправлениями (редиректами). Далее мы рассмотрим самые часто используемые из них.

Как сделать 301 редирект в .htaccess

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

301 редирект передает ссылочной вес страницы.

Чтобы сделать 301 редирект со страницы staraya-stranitsa.html на novaya-stranitsa.html добавьте в .htaccess следующий код:

Redirect 301 /staraya-stranitsa.html https://example.com/novaya-stranitsa.html

Как сделать 302 редирект в .htaccess

В отличие от 301 редиректа, 302 сообщает поисковикам о том, что веб-адрес был перемещен в другое место временно. Временное перенаправление применяется в таких случаях:

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

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

302 редирект не передает ссылочный вес страницы.

Чтобы выполнить временное перенаправление со страницы staraya-stranitsa.html на novaya-stranitsa.html добавьте в .htaccess следующий код:

Redirect 302 /staraya-stranitsa.html https://example.com/novaya-stranitsa.html

Принудительная загрузка сайта с www

Чтобы сайт загружался по адресу www.example.com даже если пользователь вводит в браузере example.com, добавьте в .htaccess следующий код:

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

Принудительная загрузка сайта без www

Чтобы сайт загружался по адресу example.com даже если пользователь вводит в браузере www.example.com, добавьте в .htaccess следующий код:

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

Принудительная загрузка сайта по протоколу HTTPS

Чтобы сайт загружался по защищенному протоколу передачи данных HTTPS (https://example.com/) даже если пользователь хочет загрузить его по протоколу HTTP (http://example.com/), добавьте в .htaccess следующий код:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Принудительная загрузка сайта по протоколу HTTP

Чтобы сайт загружался по протоколу передачи данных HTTP (http://example.com/) даже если пользователь хочет загрузить его по защищенному протоколу HTTPS (https://example.com/), добавьте в .htaccess следующий код:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} ^https$
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>

Редирект домена на директорию

Чтобы при заходе на сайт https://example.com/ выполнялось перенаправление в директорию сайта https://example.com/directory/ добавьте в .htaccess следующий код:

RewriteCond %{HTTP_HOST} ^example.com$
RewriteCond %{REQUEST_URI} !^/directory/
RewriteRule (.*) /subdir/$1

Редирект с одного сайта на другой

Чтобы выполнить перенаправление с одного сайт на другой (https://example-1.com/), добавьте в .htaccess сайта, с которого должен выполняться редирект, следующий код:

Redirect 301 / https://example-1.com/

Настройка безопасности WordPress-сайта в .htaccess

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

Защита .htaccess

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

<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

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

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

<Limit GET POST PUT>
order deny,allow
deny from all
allow from xx.xx.xx.xx
</Limit>

После добавления этого кода в .htaccess, не забудьте заменить xx.xx.xx.xx на ваш IP-адрес. Узнать его можно по адресу https://www.myip.com/.

Теперь при попытке получить доступ к админке вашего WordPress-сайта пользователи, IP-адрес которых не указан в .htaccess, будут видеть сообщение Forbidden. You don’t have permission to access /wp-admin/ on this server.

Обратите внимание! Если нужно разрешить доступ к админке WordPress нескольким пользователям, укажите их IP-адреса в файле .htaccess через пробел. Например, allow from 123.456.789.101 112.131.141.151. 617.181.920.212

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

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

<files wp-config.php>
order allow,deny
deny from all
</files>

Защита директории /wp-content/

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

Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>

Это скроет от посетителей все файлы в каталоге /wp-content/, кроме XML, CSS, JPEG, JPG, GIF и JS.

Защита системных файлов

Некоторые директории WordPress-сайта никогда не должны быть доступны обычным посетителям. Например, /wp-includes/ и /wp-admin/includes/. Чтобы защитить их от несанкционированного доступа, добавьте в основной .htaccess-файл следующий код:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

Запрет выполнения PHP

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

<Files *.php>
deny from all
</Files>

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

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

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

RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L]
RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

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

Внедрение скриптов (Script Injection) — это распространенная техника, которую используют хакеры. Она заключается в добавлении вредоносного кода в код файлов WordPress с целью получения данных пользователей или контроля над сайтом. Чтобы защитить онлайн-ресурс от внедрения скриптов, добавьте в .htaccess следующий код:

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]

Блокировка IP-адреса

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

<Limit GET POST>
order allow,deny
deny from xx.xx.xx.xx
allow from all
</Limit>

После добавления этого кода в .htaccess, не забудьте заменить xx.xx.xx.xx на IP-адрес пользователя, которому нужно закрыть доступ к сайту.

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

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

<files filename.pdf>
order allow,deny
deny from all
</files>

Не забудьте заменить filename.pdf на имя файла, доступ к которому нужно закрыть.

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

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

Options All -Indexes

Настройка производительности WordPress-сайта в .htaccess

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

Включение кэширования

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

<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType image/x-icon "access plus 1 week"
ExpiresByType text/x-component "access plus 1 month"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
ExpiresByType text/cache-manifest "access plus 0 seconds"
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
</IfModule>

Включение gzip-сжатия

Для его включения добавьте в .htaccess следующий код:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>

Контроль и установка ограничений на хотлинкинг изображений

Хотлинкинг изображений — это размещение на сайте изображений, которые хранятся не на сервере этого сайта. Реализуется этот прием вставкой следующего кода в код веб-страницы:

<img src="https://example.com/image.jpg">

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

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

Не забудьте заменить example.com на доменное имя вашего сайта.

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


Источник: zompweb.com

Кай Кворкер
Оцените автора
( Пока оценок нет )
Заработок на Kwork.ru: секреты и хитрости заработка
Добавить комментарий

  1. Макс

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

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

    Вопрос: Какие основные настройки .htaccess рекомендуются для WordPress?

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

    Ответить
  2. мама_в_декрете

    Очень полезная статья! Я как раз искал информацию о правильной настройке .htaccess для своего сайта на WordPress. Рад, что нашел подробное руководство, которое поможет мне с настройкой редиректов, защиты и оптимизации WP. Надеюсь, это поможет повысить безопасность и производительность моего сайта. Спасибо автору за полезную информацию!

    Ответить
  3. Макс

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

    Ответить
  4. Ирина

    Очень хорошая статья! Большое спасибо за подробное руководство по созданию правильного .htaccess для WordPress. У меня есть вопрос — какая наиболее эффективная настройка редиректов для улучшения SEO-оптимизации сайта на WordPress?

    Ответить
  5. Сергей

    Спасибо за полезную статью! У меня есть вопрос касательно ручной настройки редиректов в .htaccess файле для WordPress. Какой код необходимо использовать, чтобы перенаправить старые URL-адреса на новые страницы? Буду благодарен за помощь!

    Ответить
  6. Алексей

    Спасибо за статью! Она действительно очень полезная для всех владельцев сайтов на WordPress. У меня есть вопрос: какие настройки в .htaccess файле можно использовать для защиты сайта от взлома? Надеюсь, вы сможете поделиться полезной информацией.

    Ответить
  7. Георгий

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

    Ответить
  8. Мария

    Спасибо за подробное руководство по настройке .htaccess для WordPress. Очень полезная статья!

    У меня возник вопрос: какие еще полезные функции можно настроить в файле .htaccess для оптимизации и защиты сайта на WordPress? Буду благодарен за ответ!

    Ответить
  9. Евгений

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

    Ответить
  10. Евгений

    Спасибо за подробное руководство по настройке .htaccess для WordPress! Очень полезная статья. У меня есть вопрос: каким образом можно добавить редирект, чтобы перенаправить посетителей с одной страницы на другую внутри моего сайта? Спасибо заранее за ответ!

    Ответить
  11. Татьяна

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

    Ответить
  12. Павел

    Какие типичные изменения можно внести в файл .htaccess для оптимизации безопасности и производительности сайта на WordPress?

    Ответить
  13. Сергей

    Спасибо за статью! Она мне очень помогла разобраться с настройкой .htaccess для WordPress. Однако, у меня возник вопрос: можно ли использовать .htaccess не только для редиректов и защиты, но и для оптимизации работы WordPress? Если да, то какие настройки можно применить? Спасибо!

    Ответить