Htaccess per Wordpress configurato su un singolo sottodominio
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" utilizzisubdomain.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]

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:
Utilizzare il CODICE standard è consigliato perché è più facile da mantenere e debug, essendo lo stesso ovunque.
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.
