Reescribir un directorio en otro directorio sin redirección

Reescribir un directorio en otro directorio sin redirección

Tengo la siguiente regla de reescritura:

RewriteRule ^support/(.*)$ /blog/support/$1 [R=301,NC,L]

Sin embargo, todo lo que hace es una simple redirección. Lo que quiero es /supportmostrar el contenido /blog/supportsin cambiar la URL de /support. ¿Cómo puedo hacer esto?

Además, lo anterior sólo funciona cuando /supporttiene una barra diagonal.

Respuesta1

Si /blog/supportcorresponde a una ubicación en el sistema de archivos, digamos /var/www/blog/support, entonces puedes usar

Alias /support /var/www/blog/support

Eldocumentaciónporque la directiva Alias ​​dice que el segundo argumento tiene que ser una ruta de archivo o directorio, no otra URL.

Si solo desea una redirección interna, para que el usuario no vea el cambio de URL, entonces probablemente todo lo que necesita hacer es eliminar R=301,las banderas en su archivo RewriteRule.

Para evitar requerir el final /, pruebe si hay una barra o un final de línea:

RewriteRule ^support(/.*|$) /blog/support$1 [NC,L]

información relacionada