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