Configuración de Htaccess para WordPress en un subdominio único
Situación
- Tengo un hosting estándar en OVH (no VPS) y puedo configurar múltiples sitios web en diferentes subdirectorios.
- Quiero instalar 2 instancias de WordPress - la primera en el directorio
/A
y la segunda en el directorio/B
- Quiero que "A" use
domain.com
y "B" usesubdomain.domain.com
Pregunta
- En este caso, ¿necesito usar la configuración estándar de
.htaccess
para WordPress en un solo dominio en cada directorio de WordPress o debo usar una configuración especial para el subdominio en cada directorio de 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>
Subdominio
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# agregar una barra diagonal al final de /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 tal vez debería usar la versión de subdirectorio de
.htaccess
?
Subdirectorio
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# agregar una barra diagonal al final de /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]

Mi sugerencia es: utiliza la misma configuración estándar del archivo .htaccess
para WordPress en un solo dominio en cada directorio de 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>
Junto con esto, añade un pequeño fragmento de CÓDIGO para asegurarte de que los usuarios sean redirigidos al dominio correcto en caso de que lleguen a ese subdirectorio usando otro dominio:
RewriteCond %{HTTP_HOST} !^domain\.com$
RewriteRule ^(.*)$ "https://domain.com/$1" [R=301,L]
Después de esto, tu archivo .htaccess
para domain.com
será así:
<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>
y para subdomain.domain.com
, será así:
<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>
Razones:
Usar código estándar es recomendado porque es más fácil de mantener y depurar, ya que es el mismo en todas partes.
Las dos líneas adicionales se recomiendan principalmente para
SEO
. Sin ellas, uno de tus dominios podría ser accesible usando otro dominio. Esto podría generar problemas de contenido duplicado.
