Mover WordPress a un subdirectorio sin cambiar las URLs
Actualmente tengo un sitio web en site.com con WordPress instalado en el directorio raíz. Mi sitio incluye páginas como:
- site.com
- site.com/page
- site.com/2015/10/01/post....
- site.com/login
- site.com/wp-content/uploads/...
Quiero mover todos los archivos de WordPress a un subdirectorio para mayor organización SIN CAMBIAR NINGUNA de las URLs públicas. Otras publicaciones y el hilo oficial de soporte hablan sobre "Darle a WordPress su propio directorio" pero requieren cambiar las URLs:
- https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory (site.com cargará la página de inicio, pero todas las demás URLs públicas cambiarán)
- Mover WordPress a carpeta sin cambiar URLs (pregunta similar pero habla sobre instalar múltiples blogs)
Por favor indícame si esto es posible.

El procedimiento está completamente documentado en el Codex bajo Mover una instalación raíz a su propio directorio.
Malinterpretas el punto sobre cambiar las URL en él, y sí, la terminología es confusa. Las únicas URL que cambiarán son aquellas basadas en la "dirección de WP". Eso sería el núcleo de WordPress, esencialmente el área de administración.
Todas las URL de contenido se basan en la "dirección del sitio", siguiendo este procedimiento, eso seguirá siendo la raíz de tu sitio.
Como deseas conservar las subidas en su lugar, puedes hacerlo manteniendo wp-content
en la raíz (separándolo de la carpeta del núcleo) y ajustando la configuración para eso. Consulta Mover la carpeta wp-content.

Bien, aquí te explico cómo se hace:
- Mueve
wp-*
,index.php
y.htaccess
a tu nueva carpetawordpress
Edita el archivo
wordpress/.htaccess
:- Busca esta línea:
RewriteRule . /index.php [L]
- Cámbiala por:
RewriteRule . /wordpress/index.php [L]
- Busca esta línea:
Crea un nuevo archivo en
/ruta/a/www
llamado.htaccess
y agrega esto:
RewriteEngine on RewriteRule ^$ https://www.ejemplo.com/ [L] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^/wordpress/index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /wordpress/$1 [L] </IfModule>

Método para mover archivos de Wordpress a otra carpeta (directorio) sin cambiar la configuración de Wordpress, es decir, completamente transparente para Wordpress:
- crea un directorio donde se moverá la instalación de Wordpress, por ejemplo "sitedir"
- mueve la instalación de WP, incluyendo el archivo
.htaccess
, a ese directorio recién creado - edita el archivo
.htaccess
en el directorio raíz www (probablemente public_html) e inserta las siguientes directivas:
RewriteEngine On RewriteBase / # redirección a ./sitedir/ RewriteCond %{http_host} ^example\.com$ RewriteCond %{request_uri} !^/sitedir(/.*)$ RewriteRule ^(.*)$ /sitedir/$1 [L,QSA] # extra, redirección de www.example.com a example.com RewriteCond %{http_host} ^www\.example\.com [NC] RewriteRule ^(.*) http://example.com/$1 [R=301,L]
Reemplaza "example.com" con tu dominio y "sitedir" con el nombre de la carpeta donde se colocará WP.
