Как выглядит правильный .htaccess для WordPress

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

Файл .htaccess является файлом конфигурации Apache . Это позволяет нам устанавливать правила для сервера. Например, WordPress использует его для создания дружественной структуры ссылок.

правильный .htaccess для WordPress

 

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

Я покажу, как сделать следующие настройки сайта:

  • Защита самого файла .htaccess
  • Защита файлов license.txt, readme.html и wp-config.php
  • Отключить просмотр каталогов
  • Отключить подпись сервера
  • Безопасность от взлома и инъекций
  • Файловый кеш
  • Сжатие Gzip
  • Дружеские ссылки

Наш оптимизированный под эти требования .htaccess будет выглядеть так:

Правильный .htaccess для WordPress с комментариями

#Защита самого файла .htaccess
 <Files ~ "^.*\.([Hh][Tt][Aa])">
 order allow,deny
 deny from all
 satisfy all
</Files>

#Защита файлов license.txt, readme.html и wp-config.php
 <FilesMatch "^(license|readme|wp-config|wp-config-sample).*$">
 order allow,deny
 deny from all
</FilesMatch>

#Деактивировать просмотр каталогов
Options All -Indexes

#Отключить подпись сервера
ServerSignature Off

Правильный .htaccess для WordPress защищает от хакеров

#НАЧАЛО Безопасность от взлома и инъекций
# без доступа к  proc/self/environ
RewriteCond %{QUERY_STRING} proc/self/environ [OR]

# Заблокировать любой скрипт, который пытается установить значение mosConfig через URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

# Заблокировать любой скрипт, который пытается ввести код в кодировке base64_encode через URL
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]

# Заблокировать любой скрипт, который включает тег <script> в URL
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

# Заблокировать любой скрипт, который пытается установить переменную PHP GLOBALS через URL
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]

# Заблокировать любой скрипт, который пытается изменить переменную _REQUEST через URL
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})

# Отправляет все заблокированные запросы на домашнюю страницу с ошибкой 403 Запрещено
RewriteRule ^(.*)$ index.php [F,L]
#Окончание: Защита от взлома и инъекций

#НАЧАТЬ Файловый кеш
<IfModule mod_expires.c>
ExpiresActive on

# Кэш по умолчанию на 1 месяц
ExpiresDefault "access plus 1 month"

# HTML никогда не должен кэшироваться, как динамические данные
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/ld+json "access plus 0 seconds"
ExpiresByType application/vnd.geo+json "access plus 0 seconds"

#HTML-компоненты (HTC)
ExpiresByType text/x-component "access plus 1 month"

# Фавикон
ExpiresByType image/x-icon "access plus 3 months"

# Изображения, видео, аудио: 1 месяц
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"

# Интернет-источники: 1 месяц
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresByType application/x-font-woff "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"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"

# CSS и JavaScript: 1 месяц
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType text/plain "access plus 1 month"
</IfModule>

# Удалить E-Tag
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
FileETag None
#КОНЕЦ файлового кеша

#Начало сжатия gzip
<IfModule mod_deflate.c>
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>

<IfModule mod_filter.
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/x-component
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddType x-font/otf .otf
AddType x-font/ttf .ttf
AddType x-font/eot .eot
AddType x-font/woff .woff
AddType image/x-icon .ico
AddType image/png .png
</IfModule>
</IfModule>
#Конец компрессии Gzip

#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  в корневой каталог сайта

Добавить комментарий

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

Читайте ранее:
Ревизии Wordpress
Как удалить ревизии WordPress

Я расскажу, как удалить ревизии Wordpress, если они вам не нужны. WordPress включил ревизии(редакции статей) в систему для того, чтобы...

Закрыть
«Copyright © 2020 год by Mikhailov S. Все права защищены в Seneschal.ru. Запрещено любое копирование материалов сайта без письменного согласия владельца – Mikhailov S»