Ruta de subdominio a subcarpeta con htaccess en wordpress

2 minutos de lectura

avatar de usuario
joder98

Estoy tratando de crear un subdominio sub.domain.com que muestra domain.com/sub sin cambiar la barra de direcciones.

Se me ocurrió la siguiente regla .htaccess basada en otras preguntas hechas aquí:

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/$1 [L,NC]

El problema es que estoy usando una instancia de WordPress y mi .htaccess actualmente se ve así:

# BEGIN 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>
# END WordPress

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/$1 [L,NC]

Pero cuando navego por sub.dominio.com, estoy siendo redirigido a mi página de inicio (dominio.com) desde WordPress. ¿Cómo puedo hacer esto correctamente?


Intenté cambiarlo a:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/$1 [NC]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>

Pero sigue sin funcionar

  • Esa regla debe venir antes que las reglas de wordpress y no debe tener el L conjunto de banderas

    – arkascha

    6 de diciembre de 2019 a las 16:54

  • @arkascha editó la pregunta, probó su solución pero no funciona

    – J0ker98

    6 de diciembre de 2019 a las 17:04

  • ¿Puede verificar la configuración de su Cpanel y también verificar la dirección del sitio?

    – Pratik bhatt

    13 de diciembre de 2019 a las 12:59

  • @Pratikbhatt No estoy usando cPanel, estoy en Amazon AWS Lightsail con una instancia de Bitnami WordPress

    – J0ker98

    13 de diciembre de 2019 a las 14:01


Tienes que crear un host virtual en la configuración de apache.

<VirtualHost *:80>
    ServerName sub.domain.com
    DocumentRoot /var/www/sub
</VirtualHost>

O VirtualDocumentRoot si mod_vhosts_alias está habilitado.

<VirtualHost *:80>
    ServerName sub.domain.com
    ServerAlias *.domain.com
    VirtualDocumentRoot /var/www/%1
</VirtualHost>

Arriba lo apunto al directorio /sub si existe. Después de todos los cambios, reinicie el servidor.

Puede agregar la siguiente línea de código en sus archivos wp-config.php

define('WP_HOME','http://sub.domain.com');
define('WP_SITEURL','http://sub.domain.com');

  • No estoy tratando de cambiar el dominio de wordpress, quiero tener mi wordpress en mi dominio principal y un subdominio personalizado que muestre los contenidos de una subcarpeta en mi servidor web

    – J0ker98

    13 dic 2019 a las 14:00


¿Ha sido útil esta solución?