Htaccess в WordPress: правильная настройка без проблем

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

Где лежит htaccess

Htaccess обязательно должен находится в корневой папке сайта, вместе с каталогами типа wp-admin. У меня лежит как показано на снимке, иначе работать не будет, сервер его не найдет.

Где находится htaccess
Где располагается объект

Как создать чистый htaccess

По умолчанию WordPress 5 должен создать htaccess, либо хостер добавляет его в каталог ресурса. Но бывает, что отсутствует, тогда создаем документ на компьютере с названием .htaccess с помощью стандартного блокнота.

Делаем файл доступов в блокноте
Создать в блокноте
  1. В меню выбираем Файл > Сохранить как
  2. Появляется окно, в нем вписываем название и папку для сохранения
  3. Нажимаем на Сохранить

После можно загрузить чистый документ на сервер или редактировать локально на компьютере, а потом перенести.

Что нужно добавить в htaccess обязательно

Перед правкой нужно скачать htaccess на компьютер, чтобы была резервная копия.

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

Стандартный htaccess

Если htaccess не было изначально, то нужно добавить стандартный код, который 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

301 редирект на https

Если к ресурсу прикреплен SSL сертификат, то необходимо занести после #BEGIN WordPress конфигурацию 301 редиректа.

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

Как должен выглядеть правильный htaccess

В итоге правильный код htaccess должен выглядеть так:

# BEGIN WordPress
RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
<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. В других статьях интернета прописаны множество бесполезных директив, например для безопасности, кеширования и закрытия индексации. Они были написаны давно, и устарели не пользуйтесь их советами.

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

Что еще можно подключить в htaccess

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

  • Кэш браузера
  • Gzip сжатие
  • Защита wp-config, нет ли доступа его просмотреть

Кэш браузера

Для начала проверим активен ли кэш браузера на сайте, переходим на сервис webpagetest, вводим в поле url главной страницы и находим start scan.

Определяем ошибки в серверной оптимизации
Проверка функций блога

Ждем процесса проверки и смотрим на результаты. Ищем строчку Leverage browser caching и определяем кэшируются ли документы. В моем случае да, исключение – метрика, аналитика и vk, на них повлиять нельзя.

Определение наличия кэша браузера
Есть ли кеш браузера

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

<ifModule mod_headers.c>
<FilesMatch "\.(html|htm)$">Header set Cache-Control "max-age=43100</FilesMatch>
<FilesMatch "\.(js|css|txt)$">Header set Cache-Control "max-age=604700</FilesMatch>
<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">Header set Cache-Control "max-age=2591000"</FilesMatch>
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">Header unset Cache-Control</FilesMatch>
</IfModule>

Gzip сжатие

Gzip сжатие потеряло актуальность при появлении AMP и Турбо страниц, но пользоваться ими нужно. Проверяем тем же сервисом webpagetest, только ищем строчку “Use gzip compression for transferring compressable responses”.

Есть ли сжатие gzip на сервере WordPress
Наличие gzip сжатия

Сжатие настроено и работает, если по другому то пишем в помощь хостеру, с просьбой включить Gzip. При отказе добавляем такие строки в htaccess и проверяем сервисом.

<ifModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
  mod_gzip_item_exclude mime ^image/.* 
  mod_gzip_item_include handler ^cgi-script$
</ifModule>

Такими встроенными возможностями обладают большинство провайдеров, например:

  • Beget
  • Timeweb
  • Masterhost

Для безопасности и защиты wp-config

В 99,9% проблемы нет, но перестраховаться стоит. Заходим на сайт и приписываем к адресу /wp-admin.php, смотрим что выдает браузер.

Показан ли wp-config
Отображение wp-config

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

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

Посетители спрашивают, а нужно ли добавлять правила для плагинов WooCommerce, BBPress, Elementor и им подобным. Отвечу – нет, все встроено в сами плагинах. Будет полезно прочитать как создавать robots txt. В заключении дам видео инструкцию, чтобы сделать процесс более понятным.

Вывод настройки

Настройка htaccess в WordPress не сложная, потому что разработчики и хостер сделали все условия, чтобы снизить количество ошибок. В статье показал правильный вариант, в котором только стандартные директивы и перенаправление на https, остальные функции должны быть встроены и работать изначально. В любом случае сначала пишем в поддержку, и только потом делаем сами.

Пожалуйста, оцените материал:

Давно занимаюсь и разрабатываю сайты на Wordpress. Считаю что лучшего решения для ведения бизнеса не найти, поэтому считаю долгом делиться информацией с остальными.
Получай полезные материалы удобным способом!
Комментарии:
  1. Здравствуйте! Подскажите пожалуйста, если основной домен без www, требуется ли прописывать перенаправление 301 редирект?

    1. Здравствуйте. Да нужно если вы хотите сделать основным зеркалом домен без www.

  2. Статья написана максимально упрощенным языком!
    Спасибо за ваш труд!

  3. Здравствуйте! Пользуюсь такими директивами:

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{QUERY_STRING} (\|%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]

    Order Allow,Deny
    Deny from all

    order allow,deny
    deny from all
    satisfy all

    Стоит ли их удалить?

    И как вы считаете стоит ли использовать .htpasswd для доп. защиты сайта?

    1. Здравствуйте. Если они не дают ошибок, и сайт нормально индексируется то оставляйте. htpasswd да хороший способ защиты, так придется два раза подбирать логин и пароль.

  4. Здравствуйте.
    А если WordPress установлен не в корне сайта, а в папке?
    То в каких строчках её прописывать?
    Спасибо.

    1. Здравствуйте. Вопрос не совсем понятен, в той папке где установлен WordPress это и есть корень сайта.

      1. Корень домена site.ru
        При установке WordPress указывается директория, например, wp
        В файловой структуре на хостинге и это выглядит примерно так: site.ru/wp
        1. Соответственно, при открытии в браузере site.ru (если не настроены редиректы – все чистое по умолчанию), то будет
        “Forbidden
        You don’t have permission to access this resource.
        Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request””
        2. если открывать в браузере урл site.ru/wp, то поднятый сайт на вордпрессе откроется прекрасно.

        Уверен, Евгений, выше написал именно эту ситуацию. По умолчанию при установке так и происходит. Надо править htaccess.

  5. Здрасти Валентин!
    Уже сомнения терзают что вы ответите. Но всё же задам вопрос.
    Есть ли такое правило, что бы первой к показу была страница index.html/ Очень надо. Весь рунет перерыла, не могу найти.
    Может вооще такое невозможно?
    Благодарю за помощь!

    1. Привет. А почему терзают сомнения? Вы хотите вывести старицу не из движка WordPress?

  6. У меня (в отличии от оригинального файла Htaccess) есть еще 2 такие сточки:

    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

    Подскажите, они нужны? Или это лишнее что-то. Возможно, меня взломали? Спасибо.

  7. Доброго времени подскажите что нужно прописать чтоб сайт работал без www если можно напишите код

  8. Спасибо, сууууупер!!!
    а как вам такое:

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

    RewriteCond %{HTTP:Accept-Language} ^.*(ro|fr|it|ru|en).*$ [NC]

    RewriteRule ^(.*)$ – [env=prefer-language:%1]

    МОЖНО ВСТАВИТЬ ЭТОТ КОД? мне очень понравилась эта функция (хоть у меня всего два языка, я удалю лишние), и куда лучше его вставить здесь:

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

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

    # END WordPress

  9. И еще, хотела с вами поделиться какой бред у меня был прописан в htacess до вашей чудесной статьи.
    Выскажите свое профессиональное мнение, пожалуйста!

    SetOutputFilter DEFLATE

    # Netscape 4.x has some problems…
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
    # the above regex won’t work. You can use the following
    # workaround to get the desired effect:
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

    # Don’t compress images
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don’t deliver the wrong content
    Header append Vary User-Agent env=!dont-vary

    что это было?

  10. Что добавить в htaccess, что бы не учитывался регистр букв в поисковой строке? Желательно что-бы отдавал ошибку 404.

    Пример:
    https://ваш-сайт.ru/htaccess-wordpress/
    https://ваш-сайт.ru/HTACCESS-wordpress/

    Получается это две одинаковых страницы (то есть дубли). И таких дублей можно сделать большое количество (особенно если название статьи большое).

  11. Здравствуйте. А у меня такая вот картина:

    RewriteEngine On
    RewriteCond %{HTTP_ACCEPT} image/webp
    RewriteCond %{REQUEST_FILENAME} (.+)\.(jpe?g|png|gif)$
    RewriteCond %1\.webp -f
    RewriteCond %{QUERY_STRING} !type=original
    RewriteRule (.+)\.(jpe?g|png|gif)$ $1.webp [NC,T=image/webp,E=webp,L]

    Header append Vary Accept

    AddType image/webp .webp
    # END W3TC WEBP

    # BEGIN W3TC Browser Cache

    AddType text/css .css
    AddType text/x-component .htc
    AddType application/x-javascript .js
    AddType application/javascript .js2
    AddType text/javascript .js3
    AddType text/x-js .js4
    AddType video/asf .asf .asx .wax .wmv .wmx
    AddType video/avi .avi
    AddType image/avif .avif
    AddType image/avif-sequence .avifs
    AddType image/bmp .bmp
    AddType application/java .class
    AddType video/divx .divx
    AddType application/msword .doc .docx
    AddType application/vnd.ms-fontobject .eot
    AddType application/x-msdownload .exe
    AddType image/gif .gif
    AddType application/x-gzip .gz .gzip
    AddType image/x-icon .ico
    AddType image/jpeg .jpg .jpeg .jpe
    AddType image/webp .webp
    AddType application/json .json
    AddType application/vnd.ms-access .mdb
    AddType audio/midi .mid .midi
    AddType video/quicktime .mov .qt
    AddType audio/mpeg .mp3 .m4a
    AddType video/mp4 .mp4 .m4v
    AddType video/mpeg .mpeg .mpg .mpe
    AddType video/webm .webm
    AddType application/vnd.ms-project .mpp
    AddType application/x-font-otf .otf
    AddType application/vnd.ms-opentype ._otf
    AddType application/vnd.oasis.opendocument.database .odb
    AddType application/vnd.oasis.opendocument.chart .odc
    AddType application/vnd.oasis.opendocument.formula .odf
    AddType application/vnd.oasis.opendocument.graphics .odg
    AddType application/vnd.oasis.opendocument.presentation .odp
    AddType application/vnd.oasis.opendocument.spreadsheet .ods
    AddType application/vnd.oasis.opendocument.text .odt
    AddType audio/ogg .ogg
    AddType video/ogg .ogv
    AddType application/pdf .pdf
    AddType image/png .png
    AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx
    AddType audio/x-realaudio .ra .ram
    AddType image/svg+xml .svg .svgz
    AddType application/x-shockwave-flash .swf
    AddType application/x-tar .tar
    AddType image/tiff .tif .tiff
    AddType application/x-font-ttf .ttf .ttc
    AddType application/vnd.ms-opentype ._ttf
    AddType audio/wav .wav
    AddType audio/wma .wma
    AddType application/vnd.ms-write .wri
    AddType application/font-woff .woff
    AddType application/font-woff2 .woff2
    AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw
    AddType application/zip .zip

    ExpiresActive On
    ExpiresByType text/css A31536000
    ExpiresByType text/x-component A31536000
    ExpiresByType application/x-javascript A31536000
    ExpiresByType application/javascript A31536000
    ExpiresByType text/javascript A31536000
    ExpiresByType text/x-js A31536000
    ExpiresByType video/asf A31536000
    ExpiresByType video/avi A31536000
    ExpiresByType image/avif A31536000
    ExpiresByType image/avif-sequence A31536000
    ExpiresByType image/bmp A31536000
    ExpiresByType application/java A31536000
    ExpiresByType video/divx A31536000
    ExpiresByType application/msword A31536000
    ExpiresByType application/vnd.ms-fontobject A31536000
    ExpiresByType application/x-msdownload A31536000
    ExpiresByType image/gif A31536000
    ExpiresByType application/x-gzip A31536000
    ExpiresByType image/x-icon A31536000
    ExpiresByType image/jpeg A31536000
    ExpiresByType image/webp A31536000
    ExpiresByType application/json A31536000
    ExpiresByType application/vnd.ms-access A31536000
    ExpiresByType audio/midi A31536000
    ExpiresByType video/quicktime A31536000
    ExpiresByType audio/mpeg A31536000
    ExpiresByType video/mp4 A31536000
    ExpiresByType video/mpeg A31536000
    ExpiresByType video/webm A31536000
    ExpiresByType application/vnd.ms-project A31536000
    ExpiresByType application/x-font-otf A31536000
    ExpiresByType application/vnd.ms-opentype A31536000
    ExpiresByType application/vnd.oasis.opendocument.database A31536000
    ExpiresByType application/vnd.oasis.opendocument.chart A31536000
    ExpiresByType application/vnd.oasis.opendocument.formula A31536000
    ExpiresByType application/vnd.oasis.opendocument.graphics A31536000
    ExpiresByType application/vnd.oasis.opendocument.presentation A31536000
    ExpiresByType application/vnd.oasis.opendocument.spreadsheet A31536000
    ExpiresByType application/vnd.oasis.opendocument.text A31536000
    ExpiresByType audio/ogg A31536000
    ExpiresByType video/ogg A31536000
    ExpiresByType application/pdf A31536000
    ExpiresByType image/png A31536000
    ExpiresByType application/vnd.ms-powerpoint A31536000
    ExpiresByType audio/x-realaudio A31536000
    ExpiresByType image/svg+xml A31536000
    ExpiresByType application/x-shockwave-flash A31536000
    ExpiresByType application/x-tar A31536000
    ExpiresByType image/tiff A31536000
    ExpiresByType application/x-font-ttf A31536000
    ExpiresByType application/vnd.ms-opentype A31536000
    ExpiresByType audio/wav A31536000
    ExpiresByType audio/wma A31536000
    ExpiresByType application/vnd.ms-write A31536000
    ExpiresByType application/font-woff A31536000
    ExpiresByType application/font-woff2 A31536000
    ExpiresByType application/vnd.ms-excel A31536000
    ExpiresByType application/zip A31536000

    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

    AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext text/plain text/xsd text/xsl text/xml image/bmp application/java application/msword application/vnd.ms-fontobject application/x-msdownload image/x-icon application/json application/vnd.ms-access video/webm application/vnd.ms-project application/x-font-otf application/vnd.ms-opentype application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.text audio/ogg application/pdf application/vnd.ms-powerpoint image/svg+xml application/x-shockwave-flash image/tiff application/x-font-ttf application/vnd.ms-opentype audio/wav application/vnd.ms-write application/font-woff application/font-woff2 application/vnd.ms-excel

    # DEFLATE by extension
    AddOutputFilter DEFLATE js css htm html xml

    FileETag MTime Size

    Header unset Set-Cookie

    FileETag MTime Size

    FileETag MTime Size

    Header unset Set-Cookie

    Header set Referrer-Policy “no-referrer-when-downgrade”

    # END W3TC Browser Cache
    # BEGIN W3TC Page Cache core

    RewriteEngine On
    RewriteBase /
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%{QUERY_STRING}]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)_branch_match_id(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)_bta_c(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)_bta_tid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)_ga(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)_gl(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)_ke(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)adgroupid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)adid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)age\-verified(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)ao_noptimize(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)campaignid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)campid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)cn\-reloaded(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)customid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)dm_i(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)ef_id(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)epik(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)fb_action_ids(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)fb_action_types(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)fb_source(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)fbclid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)gclid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)gclsrc(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)gdffi(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)gdfms(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)gdftrk(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)hsa_acc(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)hsa_ad(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)hsa_cam(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)hsa_grp(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)hsa_kw(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)hsa_mt(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)hsa_net(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)hsa_src(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)hsa_tgt(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)hsa_ver(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)igshid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)matomo_campaign(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)matomo_cid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)matomo_content(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)matomo_group(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)matomo_keyword(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)matomo_medium(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)matomo_placement(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)matomo_source(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mc_cid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mc_eid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mkcid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mkevt(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mkrid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mkwid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)msclkid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mtm_campaign(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mtm_cid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mtm_content(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mtm_group(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mtm_keyword(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mtm_medium(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mtm_placement(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)mtm_source(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)pcrid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)piwik_campaign(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)piwik_keyword(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)piwik_kwd(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)pk_campaign(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)pk_cid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)pk_content(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)pk_keyword(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)pk_kwd(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)pk_medium(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)pk_source(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)pp(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)redirect_log_mongo_id(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)redirect_mongo_id(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)ref(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)s_kwcid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)sb_referer_host(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)si(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)sscid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)toolid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)trk_contact(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)trk_module(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)trk_msg(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)trk_sid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)usqp(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)utm_campaign(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)utm_content(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)utm_expid(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)utm_id(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)utm_medium(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)utm_source(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^(.*?&|)utm_term(=[^&]*)?(&.*|)$ [NC]
    RewriteRule ^ – [E=W3TC_QUERY_STRING:%1%3]
    RewriteCond %{ENV:W3TC_QUERY_STRING} ^&+$
    RewriteRule ^ – [E=W3TC_QUERY_STRING]
    RewriteCond %{HTTPS} =on
    RewriteRule .* – [E=W3TC_SSL:_ssl]
    RewriteCond %{SERVER_PORT} =443
    RewriteRule .* – [E=W3TC_SSL:_ssl]
    RewriteCond %{HTTP:X-Forwarded-Proto} =https [NC]
    RewriteRule .* – [E=W3TC_SSL:_ssl]
    RewriteCond %{HTTP:Accept-Encoding} gzip
    RewriteRule .* – [E=W3TC_ENC:_gzip]
    RewriteCond %{HTTP_COOKIE} w3tc_preview [NC]
    RewriteRule .* – [E=W3TC_PREVIEW:_preview]
    RewriteCond %{REQUEST_URI} \/$
    RewriteRule .* – [E=W3TC_SLASH:_slash]
    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{ENV:W3TC_QUERY_STRING} =””
    RewriteCond %{HTTP_COOKIE} !(comment_author|wp\-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle) [NC]
    RewriteCond %{HTTP_USER_AGENT} !(W3\ Total\ Cache) [NC]
    RewriteCond “%{DOCUMENT_ROOT}/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_SLASH}%{ENV:W3TC_SSL}%{ENV:W3TC_PREVIEW}.html%{ENV:W3TC_ENC}” -f
    RewriteRule .* “/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_SLASH}%{ENV:W3TC_SSL}%{ENV:W3TC_PREVIEW}.html%{ENV:W3TC_ENC}” [L]
    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{ENV:W3TC_QUERY_STRING} =””
    RewriteCond %{HTTP_COOKIE} !(comment_author|wp\-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle) [NC]
    RewriteCond %{HTTP_USER_AGENT} !(W3\ Total\ Cache) [NC]
    RewriteCond “%{DOCUMENT_ROOT}/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_SLASH}%{ENV:W3TC_SSL}%{ENV:W3TC_PREVIEW}.xml%{ENV:W3TC_ENC}” -f
    RewriteRule .* “/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_SLASH}%{ENV:W3TC_SSL}%{ENV:W3TC_PREVIEW}.xml%{ENV:W3TC_ENC}” [L]

    # END W3TC Page Cache core
    # BEGIN WordPress
    # Директивы (строки) между `BEGIN WordPress` и `END WordPress`
    # созданы автоматически и подлежат изменению только через фильтры WordPress.
    # Сделанные вручную изменения между этими маркерами будут перезаписаны.

    RewriteEngine On
    RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress
    Это что такое? Что это значит?

  12. Подскажите показывает что тройной редирект
    http://www.мойсайт.ru
    https://www.мойсайт.ru/
    https://мойсайт.ru/

    То есть -301-301-200
    Как убрать ?
    Сейчас настройки такие:

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

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

    # END WordPress

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

×
Улучши работу сайта с плагином Clearfy Pro!
Скидка для тебя -15%
Купить со скидкой ⋙