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
/Ae la seconda nella directory/B - Vorrei che "A" utilizzi
domain.come "B" utilizzisubdomain.domain.com
Domanda
- In questo caso devo usare la configurazione standard di
.htaccessper 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.