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
/Ay la segunda en el directorio/B - Quiero que "A" use
domain.comy "B" usesubdomain.domain.com
Pregunta
- En este caso, ¿necesito usar la configuración estándar de
.htaccesspara 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.