Htaccess pentru Wordpress configurat pe un singur subdomeniu
Situație
- Am hosting standard la OVH (nu VPS) și pot configura mai multe site-uri în subdirectoare diferite,
- Doresc să instalez 2 instanțe Wordpress - prima în directorul
/A
și a doua în directorul/B
- Vreau ca "A" să folosească
domain.com
și "B" să foloseascăsubdomain.domain.com
Întrebare
- În acest caz, trebuie să folosesc configurația standard
.htaccess
pentru Wordpress pe un singur domeniu în fiecare director Wordpress sau trebuie să folosesc o configurație specială pentru subdomeniu în fiecare director Wordpress?
Domeniu
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
SubDomeniu
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# adaugă slash la final pentru /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
- sau poate ar trebui să folosesc versiunea pentru subdirector a
.htaccess
?
SubFolder
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# adaugă slash la final pentru /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

Sugestia mea este: folosește aceeași configurație standard .htaccess
pentru WordPress pe un singur domeniu în fiecare director 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>
Împreună cu aceasta, adaugă un mic COD pentru a te asigura că utilizatorii sunt redirecționați către domeniul corect în cazul în care ajung în acel subdirector folosind alt domeniu:
RewriteCond %{HTTP_HOST} !^domain\.com$
RewriteRule ^(.*)$ "https://domain.com/$1" [R=301,L]
După aceea, fișierul tău .htaccess
pentru domain.com
va arăta astfel:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^domain\.com$
RewriteRule ^(.*)$ "https://domain.com/$1" [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
iar pentru subdomain.domain.com
, va arăta astfel:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^subdomain\.domain\.com$
RewriteRule ^(.*)$ "https://subdomain.domain.com/$1" [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Motivații:
Folosirea unui COD standard este recomandată deoarece este mai ușor de întreținut și depanat, fiind același peste tot.
Cele două linii suplimentare sunt recomandate în principal din motive de
SEO
. Fără ele, unul dintre domeniile tale poate fi accesibil folosind alt domeniu. Acest lucru poate ridica întrebări legate de conținut duplicat.
