В дополнение к ответу @AlexD...
думаю, что это должно быть возможно с помощью mod_rewrite в .htaccess
файл
Это возможно с использованием mod_rewrite, но не в .htaccess
. Вам нужно будет сделать это непосредственно в конфигурации основного сервера (или в контейнере VirtualHost).
В каталог (или же .htaccess
) контекст, который вы можете переписать только на URL-путь. Однако в сервер (или же виртуальный хост) контекст, который вы можете переписать в URL-путь или же абсолютный путь к файловой системе.
Однако это не является причиной вашего Внутренняя ошибка сервера
...
RewriteRule files/(.*\.txt) /var/www/html/files/$1 [L]
Это, скорее всего, приводит к циклу перезаписи (отсюда ответ 500 Internal Server Error), потому что незакрепленный Правило перезаписи
шаблон также соответствует замена строка (относительный корневой URL-путь), поэтому переписанный URL-путь переписывается снова и снова...
В сервер контексте, вы можете написать это так:
Правило перезаписи ^/files/(.+\.txt)$ /var/www/html/files/$1 [L]
(Если вы не ожидаете, что подкаталоги /файлы
каталог, то регулярное выражение следует сделать более строгим, например. ([^/]+\.txt)
)