Cómo cargar el archivo solicitado desde el subdirectorio sin reescribir la base

Cómo cargar el archivo solicitado desde el subdirectorio sin reescribir la base

Utilizando .htaccessreglas, intento cargar un archivo desde un subdirectorio manteniendo la URL de la interfaz sin cambios si tanto el dominio como la ruta del archivo coinciden con los criterios.

Ejemplo de URL:

example.com/specificfile.xml

El archivo en sí está dentro de un subdirectorio que no es la raíz web pública:

/var/www/feeds/specificfile.xml

Al intentar buscar esto en Google, obtengo muchos resultados, RewriteBasepero eso no es lo que busco. Necesito "reescribir el directorio base" para un solo archivo y conservar la URL de la interfaz.

Respuesta1

Suponiendo /var/wwwque es la raíz del documento, para servir /feeds/specificfile.xmlcuando se solicita, /specificfile.xmldebe hacer lo siguiente usando mod_rewrite en el .htaccessarchivo raíz:

RewriteRule ^specificfile\.xml$ feeds/$0 [L]

Para que esto funcione, RewriteBaseno debe estar configurado en absoluto (preferible) o debe estar configurado en RewriteBase /.

La $0referencia inversa simplemente evita la repetición: se refiere a la ruta URL completa que coincide con elRewriteRule patrón, es decir. specificfile.xml.

Tenga en cuenta que si tiene directivas mod_rewrite existentes en su .htaccessarchivo, entoncesel orden importa. (Por ejemplo, las redirecciones externas/canónicas deben realizarse primero).

información relacionada