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....