Muchos usuarios de WordPress deseamos que nuestro sitio web se vea desde la raíz de nuestro sitio web, pero no nos gusta que los archivos de instalación de WordPress acupen el directorio raíz de nuestro hosting ni que se mezclen con otros archivos o carpetas que se puedan poner ahí. Desde la versión 3.5, WordPress se permite instalar el directorio de WordPress en un subdirectorio (por ejemplo https://ejemplo.com/SUBDIRECTORIO_WORDPRESS/), pero que nuestro sitio web sea mostrado como si estuviera en la raíz del sitio web (por ejemplo https://ejemplo.com/). Hay algunos plugins que pueden presentar problemas con esta configuración, ahí debemos tomar nuestras precauciones haciendo unas pruebas para verificar que funcionen correctamente.

En este ejemplo muestro como lo resuelvo yo usando un servidor web con CPanel (Linux, Apache, PHP y MariaDB). Hay varias formas de hacerlo muy semejantes, sugiero se puede consultar el blog de soporte de WordPress para ondar un poco mas en el tema y ver otros casos en el siguiente vinculo: https://wordpress.org/support/article/giving-wordpress-its-own-directory/

Para este caso supongamos que partimos de una instalación nueva de WorpPress en un subdirectorio llamado SUBDIRECTORIO_WORDPRESS

1. Creamos un subdirectorio en la raíz de nuestro sitio web donde haremos la instalación de WordPress, por ejemplo, https://ejemplo.com/SUBDIRECTORIO_WORDPRESS/

2. Agregamos el siguiente código en el archivo .htaccess de la raíz de nuestro sitio web dentro de la capeta public_html en CPanel, si no existiera este archivo simplemente lo tenemos que crear, no es mas que un simple archivo de texto pero con ese nombre.

# 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 WordPres

Si no logramos ver el archivo .htaccess es porque suele estar oculto, si se usa CPanel hay que ir al Administrador de archivos, luego ir a la opción de Configuración (parte superior derecha), escoge la opción Raíz web (public_html or www) y seleccionar la casilla Mostrar archivos ocultos (dotfiles). Otra opción es que se accese al servidor por medio de un cliente FTP como FileZilla, ahí veremos todos los archivos aunque estén ocultos, descargamos el archivo .htaccess, lo modificamos y después lo volvemos a subir remplazando el anterior.

3. En caso de que nuestro sitio tenga un certificado SSL y accesemos a el por medio de HTTPS al sitio web (por ejemplo, https://ejemplo.com/), se sugiere se pueda incluir también el siguiente código al archivo .htaccess para redireccionar el sitio automáticamente de HTTP a HTTPS.

# INICIO Redirigir de HTTP a HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# FIN Redirigir de HTTP a HTTPS

4. Creamos un archivo index.php en la raíz del directorio public_html, si es que se usa CPanel, con el siguiente código, pero hay que modificar la ultima linea con el nombre del SUBDIRECTORIO_WORDPRESS donde esta nuestra instancia de WordPress.

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );
 
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/SUBDIRECTORIO_WORDPRESS/wp-blog-header.php' );

Este código es el mismo del archivo wp-blog-header.php de los archivos de WordPress, lo podríamos copiar de ahí mismo pero haciendo el cambio en la ultima linea que ya se mencionó.

5. Después nos dirigimos al escritorio de instalación de WordPress (por ejemplo: https://ejemplo.com/SUBDIRECTORIO_WORDPRESS/wp-admin/) y vamos a la opción Ajustes/Generales y hacemos los siguiente cambios:

Dirección de WorPress: https://ejemplo.com/SUBDIRECTORIO_WORDPRESS
Dirección de URL: https://ejemplo.com

Esto sería todo, ahora los archivos de WordPress entan aislados en su propio subdirectorio pero podemos accesar a nuestro sitio web como si estuviera en la raíz del sitio, por ejemplo, https://ejemplo.com/

Solo que para entrar al escritorio de WordPress si debemos usar la ruta completa con el subdirectorio donde esta instalado WordPress, por ejemplo, https://ejemplo.com/SUBDIRECTORIO_WORDPRESS/wp-admin/