Presupun că versiunea statică a site-ului dvs. (la static.example.com) este literalmente un site static non-WordPress, așa că nu poate să țină cont de redirecționări.
Nu este nimic „în neregulă” cu regula dvs. așa cum este postată. In orice caz, ...
Redirecționarea anterioară „WordPress” 301 (permanentă) de la non-www la www va fi stocată în cache (persistent) de browser-ul (și, eventual, intermediar). Acest lucru va trebui să fie șters manual pentru redirecționare .htaccess să aibă vreun efect.
Redirecționarea dvs. trebuie să meargă la top al .htaccess fişier inainte de blocul de cod WordPress (rescriere pe controlerul frontal), de exemplu. inainte de cel # ÎNCEPE WordPress marcator de comentarii. Dacă plasați redirecționarea la sfârșitul fișierului (sau după blocul de cod WordPress) aceasta va fi procesată doar pentru solicitările către resurse statice (și directoare). Adresele URL (virtuale) WordPress nu vor fi redirecționate, deoarece solicitarea a fost deja rescrisă index.php (controlerul frontal WordPress).
Deoparte:
<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>
Doar un pic de îngrijire... nu trebuie să repeți RewriteEngine Pornit directivă, deoarece aceasta apare deja mai tarziu în fișier, în blocul de cod WordPress.
Nu aveți nevoie de <IfModule> învelitoare. Această redirecționare trebuie să aibă loc, nu este opțional.
Al doilea condiție (RescrieCond directivă) nu este necesară. Nu este nevoie să verificați că Gazdă este A si nu B. (Daca este A atunci nu poate fi B de asemenea.)
Deci, cele de mai sus ar putea fi simplificate astfel:
# Redirecționează temporar vârful domeniului către subdomeniul „static”.
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule (.*) https://static.example.com/$1 [R=302,L]
# ÎNCEPE WordPress
: Urmează alte directive....