Htaccess pentru Wordpress configurat pe un singur subdomeniu

3 feb. 2017, 12:29:04
Vizualizări: 16.9K
Voturi: 6

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]
0
Toate răspunsurile la întrebare 1
1

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:

  1. Folosirea unui COD standard este recomandată deoarece este mai ușor de întreținut și depanat, fiind același peste tot.

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

3 feb. 2017 15:13:49
Comentarii

Sună rezonabil :)

DDos Schwagins DDos Schwagins
3 feb. 2017 15:16:57