Я предполагаю, что статическая версия вашего сайта (в static.example.com
) буквально является статическим сайтом, отличным от WordPress, поэтому сам по себе не может учитывать какие-либо перенаправления.
На самом деле в опубликованном вами правиле нет ничего «неправильного». Однако, ...
Предыдущее перенаправление «WordPress» 301 (постоянное) с не-www на www будет кэшировано (постоянно) кешем браузера (и, возможно, промежуточным). Это нужно будет очистить вручную для вашего перенаправления в .htaccess
иметь какой-либо эффект.
Ваше перенаправление должно идти в вершина принадлежащий .htaccess
файл перед блок кода WordPress (переписать на фронт-контроллер), т.е. перед в # НАЧАТЬ WordPress
маркер комментария. Если вы поместите перенаправление в конец файла (или после блока кода WordPress), оно будет обрабатываться только для запросов к статическим ресурсам (и каталогам). URL-адреса WordPress (виртуальные) не будут перенаправлены, так как запрос уже был переписан на index.php
(фронт-контроллер WordPress).
В стороне:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteRule ^(.*) https://static.mydomain.com/$1 [R=302,L]
</IfModule>
Просто немного прибраться... вам не нужно повторять RewriteEngine включен
директива, так как это уже появляется позже в файле, в блоке кода WordPress.
Вам не нужно <IfModule>
обертка. Это перенаправление должно произойти, это не по желанию.
Второй условие (RewriteCond
директива) не требуется. Нет необходимости проверять, что Хозяин
является А
и нет Б
. (Если это А
тогда этого не может быть Б
также.)
Таким образом, вышеизложенное можно упростить до:
# Временно перенаправить вершину домена на «статический» поддомен
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule (.*) https://static.example.com/$1 [R=302,L]
# НАЧАТЬ WordPress
: Далее следуют другие директивы....