Как загрузить запрошенный файл из подкаталога без перезаписи базы

Как загрузить запрошенный файл из подкаталога без перезаписи базы

Используя .htaccessправила, я пытаюсь загрузить файл из подкаталога, сохраняя при этом URL-адрес интерфейса неизменным, если и домен, и путь к файлу соответствуют критериям.

Пример URL-адреса:

example.com/specificfile.xml

Сам файл находится в подкаталоге, который не является общедоступным корневым веб-каталогом:

/var/www/feeds/specificfile.xml

Пытаясь найти это в Google, я получаю много результатов, RewriteBaseно это не то, что мне нужно. Мне нужно «переписать базовый каталог» только для одного файла и сохранить URL-адрес интерфейса.

решение1

Предположим, /var/wwwчто это корневой документ, тогда для обслуживания /feeds/specificfile.xmlпри запросе /specificfile.xmlвам нужно сделать следующее, используя mod_rewrite в корневом .htaccessфайле:

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

Чтобы это работало, RewriteBaseнеобходимо либо вообще не устанавливать (предпочтительно), либо установить значение RewriteBase /.

Обратная $0ссылка просто экономит повторения — она ссылается на весь URL-путь, с которым совпадаетRewriteRule шаблон, то есть. specificfile.xml.

.htaccessОбратите внимание, что если в вашем файле есть существующие директивы mod_rewrite, топорядок имеет значение. (например, внешние/канонические перенаправления должны идти первыми.)

Связанный контент