Como carregar o arquivo solicitado do subdiretório sem reescrever a base

Como carregar o arquivo solicitado do subdiretório sem reescrever a base

Utilizando .htaccessregras, estou tentando carregar um arquivo de dentro de um subdiretório, mantendo o URL do front-end inalterado se o domínio e o caminho do arquivo corresponderem aos critérios.

Exemplo de URL:

example.com/specificfile.xml

O arquivo em si está dentro de um subdiretório que não é a raiz pública da web:

/var/www/feeds/specificfile.xml

Ao tentar pesquisar isso no Google, estou obtendo muitos resultados, RewriteBasemas não é isso que procuro. Preciso "reescrever o diretório base" para apenas um único arquivo e manter o URL do frontend.

Responder1

Supondo /var/wwwque seja a raiz do documento, para servir /feeds/specificfile.xmlao solicitar, /specificfile.xmlvocê faria o seguinte usando mod_rewrite no .htaccessarquivo raiz:

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

Para que isso funcione, RewriteBasedeve ser não definido (preferível) ou definido como RewriteBase /.

A $0referência anterior simplesmente salva repetições - refere-se a todo o caminho da URL que corresponde aoRewriteRule padrão, ou seja. specificfile.xml.

Observe que se você tiver diretivas mod_rewrite existentes em seu .htaccessarquivo, entãoordem é importante. (por exemplo, redirecionamentos externos/canônicos precisam ser executados primeiro.)

informação relacionada