Agregue esta línea para evitar exponer la subcarpeta en la URL

Agregue esta línea para evitar exponer la subcarpeta en la URL

Tengo una configuración en la que un sitio web estático se encuentra en la carpeta raíz y Wordpress se encuentra en una subcarpeta. Entonces necesito reescribir todas las solicitudes a index.html mientras que todas las solicitudes relacionadas con Wordpress deben ir a la subcarpeta. Lo logro usando dos archivos .htaccess: uno en la raíz y otro en la subcarpeta de Wordpress.

Raíz .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-.+
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteRule (wp-.*)$ /wordpress/$1 [L]
# Rewrite rule for frontend
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

Subcarpeta de Wordpress .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

Esto funciona, pero cuando intento abrir, /wp-admin/me redirigen /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwordpress%2Fwp-admin%2F&reauth=1para que la subcarpeta quede expuesta en la URL.

¿Hay alguna manera de ocultar la subcarpeta?

Respuesta1

Para ocultar la subcarpeta en la URL para solicitudes relacionadas con WordPress, puede modificar ligeramente su configuración. Puede mantener el archivo raíz .htaccess tal como está, pero realizar algunos cambios en el archivo .htaccess en la subcarpeta de WordPress. Así es como puedes hacerlo:

  1. Modifique el archivo .htaccess en la subcarpeta de WordPress ( e.g.,/wordpress/) de la siguiente manera:
RewriteEngine en RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L]

Agregue esta línea para evitar exponer la subcarpeta en la URL

ReescribirCond %{REQUEST_URI} !^/wordpress/

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L]

Al agregar la condición RewriteCond %{REQUEST_URI} !^/wordpress/, te aseguras de que las solicitudes a la carpeta /wp-admin/ no se verán afectadas por esta regla de reescritura, por lo que la subcarpeta no quedará expuesta en la URL. para solicitudes relacionadas con WordPress.

  1. En su archivo raíz .htaccess, puede simplificar las reglas para reescribir a index.html:

    Reescribir motor encendido

    Excluir solicitudes a la subcarpeta /wordpress/ de esta regla

    ReescribirCond %{REQUEST_URI} !^/wordpress/

    Reescribir regla para frontend

    RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]

Con estas modificaciones, las solicitudes relacionadas con WordPress seguirán siendo manejadas por la subcarpeta de WordPress y la subcarpeta no estará expuesta en la URL al acceder a /wp-admin/. Otras solicitudes se reescribirán en index.html en la carpeta raíz como antes.

información relacionada