- Что такое .htaccess
- Стандартный .htaccess для WordPress
- Как редактировать файл .htaccess
- Настройка редиректов в .htaccess
- Как сделать 301 редирект в .htaccess
- Как сделать 302 редирект в .htaccess
- Принудительная загрузка сайта с www
- Принудительная загрузка сайта без www
- Принудительная загрузка сайта по протоколу HTTPS
- Принудительная загрузка сайта по протоколу HTTP
- Редирект домена на директорию
- Редирект с одного сайта на другой
- Настройка безопасности WordPress-сайта в .htaccess
- Защита .htaccess
- Ограничение доступа к Консоли WordPress
- Защита файла wp-config.php
- Защита директории /wp-content/
- Защита системных файлов
- Запрет выполнения PHP
- Ограничение доступа к файлам
- Защита от внедрения скриптов
- Блокировка IP-адреса
- Запрет доступа к определенным файлам сайта
- Отключение просмотра директорий
- Настройка производительности WordPress-сайта в .htaccess
- Включение кэширования
- Включение gzip-сжатия
- Контроль и установка ограничений на хотлинкинг изображений
.htaccess — это файл, который содержит правила, регулирующие взаимодействие с сервером. Например, с его помощью можно управлять доступом к страницам сайта, повышать уровень безопасности онлайн-ресурса и его производительность. .htaccess может размещаться в любой директории сайта.
Обратите внимание! Прежде чем вносить какие-либо изменения в .htaccess, сделайте его резервную копию. Даже, казалось бы, такая незначительная опечатка, как пропущенная кавычка, сделанная при редактировании этого файла, может стать причиной того, что сайт перестанет загружаться.
Стандартный .htaccess для WordPress
В большинстве случаев при установке WordPress на хостинг .htaccess создается в корневой директории сайта. Однако иногда этого не происходит и тогда нужно создать этот файл самостоятельно. Для этого выполните следующие действия:
- Подключитесь к хостингу по FTP, используя FileZilla или другой FTP-клиент, и перейдите в корневую директорию сайта.
- Кликните правой кнопкой мыши по правому окошку с файлами сайта и выберите «Создать новый файл».
- Введите .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
.htaccess — это конфигурационный файл для сервера, который используется для настройки различных аспектов работы сайта. В данной статье предлагается подробное руководство по созданию правильного .htaccess файла для WordPress.
Такой файл может быть полезен для настройки редиректов, защиты от несанкционированного доступа и оптимизации работы WordPress.
Вопрос: Какие основные настройки .htaccess рекомендуются для WordPress?
Ответ: К основным настройкам .htaccess для WordPress можно отнести следующие: настройка редиректов с www на без www или наоборот, настройка редиректов на страницы с ошибками, настройка безопасности сайта (например, запрет доступа к определенным файлам и папкам), настройка кэширования, выполнять gzip-сжатие для ускорения загрузки страницы и другие оптимизации.
Очень полезная статья! Я как раз искал информацию о правильной настройке .htaccess для своего сайта на WordPress. Рад, что нашел подробное руководство, которое поможет мне с настройкой редиректов, защиты и оптимизации WP. Надеюсь, это поможет повысить безопасность и производительность моего сайта. Спасибо автору за полезную информацию!
Спасибо за подробное руководство по настройке .htaccess для WordPress. Это очень полезная информация, особенно для тех, кто только начинает разбираться с этой системой управления контентом. Но мне было бы интересно узнать больше о том, как правильно настроить редиректы в .htaccess для оптимизации SEO и улучшения пользовательского опыта.
Очень хорошая статья! Большое спасибо за подробное руководство по созданию правильного .htaccess для WordPress. У меня есть вопрос — какая наиболее эффективная настройка редиректов для улучшения SEO-оптимизации сайта на WordPress?
Спасибо за полезную статью! У меня есть вопрос касательно ручной настройки редиректов в .htaccess файле для WordPress. Какой код необходимо использовать, чтобы перенаправить старые URL-адреса на новые страницы? Буду благодарен за помощь!
Спасибо за статью! Она действительно очень полезная для всех владельцев сайтов на WordPress. У меня есть вопрос: какие настройки в .htaccess файле можно использовать для защиты сайта от взлома? Надеюсь, вы сможете поделиться полезной информацией.
Спасибо за статью! Очень интересно узнать, как правильно настроить .htaccess для WordPress. Есть ли какие-то особенности или нюансы, о которых стоит знать? Буду благодарен за подробную информацию по этой теме.
Спасибо за подробное руководство по настройке .htaccess для WordPress. Очень полезная статья!
У меня возник вопрос: какие еще полезные функции можно настроить в файле .htaccess для оптимизации и защиты сайта на WordPress? Буду благодарен за ответ!
Большое спасибо за статью! Очень интересно узнать о правильном .htaccess для WordPress. Я хотел бы узнать, как настроить редиректы для своего сайта и защитить его от возможных атак. Буду благодарен за подробное руководство по этим вопросам.
Спасибо за подробное руководство по настройке .htaccess для WordPress! Очень полезная статья. У меня есть вопрос: каким образом можно добавить редирект, чтобы перенаправить посетителей с одной страницы на другую внутри моего сайта? Спасибо заранее за ответ!
Мне очень понравилась статья! Она очень информативная и полезная для тех, кто работает с WordPress. Я впервые слышу о файле .htaccess, поэтому у меня возникает вопрос: какие именно задачи можно решить с помощью правки или добавления строк в этот файл? Благодарю!
Какие типичные изменения можно внести в файл .htaccess для оптимизации безопасности и производительности сайта на WordPress?
Спасибо за статью! Она мне очень помогла разобраться с настройкой .htaccess для WordPress. Однако, у меня возник вопрос: можно ли использовать .htaccess не только для редиректов и защиты, но и для оптимизации работы WordPress? Если да, то какие настройки можно применить? Спасибо!