Htaccess per Wordpress configurato su un singolo sottodominio

3 feb 2017, 12:29:04
Visualizzazioni: 16.9K
Voti: 6

Situazione

  • Ho un hosting standard su OVH (non VPS) e posso configurare più siti web in sottodirectory diverse,
  • Vorrei installare 2 istanze di Wordpress - la prima nella directory /A e la seconda nella directory /B
  • Vorrei che "A" utilizzi domain.com e "B" utilizzi subdomain.domain.com

Domanda

  • In questo caso devo usare la configurazione standard di .htaccess per Wordpress su un singolo dominio in ogni directory Wordpress o devo usare una configurazione speciale per il sottodominio in ogni directory Wordpress?

Dominio

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Sottodominio

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# aggiunge uno slash finale a /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]
  • o forse dovrei usare la versione per sottodirectory di .httaccess?

Sottocartella

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# aggiunge uno slash finale a /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
Tutte le risposte alla domanda 1
1

Il mio suggerimento è: usa la stessa configurazione standard .htaccess per Wordpress su un singolo dominio in ogni directory 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>

Insieme a questo, aggiungi un piccolo CODICE per assicurarti che gli utenti vengano reindirizzati al dominio corretto nel caso raggiungano quella sottodirectory utilizzando un altro dominio:

RewriteCond %{HTTP_HOST} !^domain\.com$
RewriteRule ^(.*)$ "https://domain.com/$1" [R=301,L]

Dopo di ciò, il tuo .htaccess per domain.com sarà come:

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

e per subdomain.domain.com, sarà come:

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

Motivi:

  1. Utilizzare il CODICE standard è consigliato perché è più facile da mantenere e debug, essendo lo stesso ovunque.

  2. Le due righe extra sono consigliate principalmente per il SEO. Senza di esse, uno dei tuoi domini potrebbe essere accessibile utilizzando un altro dominio. Questo potrebbe sollevare alcune questioni di contenuti duplicati.

3 feb 2017 15:13:49
Commenti

Sembra ragionevole :)

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