Configuración de Htaccess para WordPress en un subdominio único

3 feb 2017, 12:29:04
Vistas: 16.9K
Votos: 6

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" use subdomain.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]
0
Todas las respuestas a la pregunta 1
1

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:

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

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

3 feb 2017 15:13:49
Comentarios

Suena razonable :)

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