
Я только что настроил сервер Apache2, и он отлично работает. Поскольку цель этого сервера — просто обслуживать версионные файлы, я создал latest
символическую ссылку, которая указывает нанапример myfile_v1.1.0.ext
.
Проблема в том, что когда я захожу по URL-адресу http://localhost/latest
, в окне загрузки отображается latest
имя файла и application/octet-stream
тип MIME.
Мне бы хотелось, чтобы при доступе к этому же URL-адресу он отображался myfile_v1.1.0.ext
как имя файла и application/my-app
как тип MIME.
Есть ли способ этого добиться?
Спасибо заранее
решение1
Один из способов сделать это — использовать псевдоним в конфигурации Apache. Недостаток в том, что вам придется обновлять его каждый раз, когда будет релиз, но преимущество в том, что вы можете иметь большую степень контроля над тем, как обрабатывается файл.
Вот как это можно сделать:
- Отредактируйте файл Apache
.conf
для сайта - Добавьте это в
<VirtualHost>
раздел:
Примечание:Обязательно заменитеAlias "/download" "/path/to/releases/myfile_v1.1.0.ext" <Directory "/path/to/releases"> Options FollowSymLinks AllowOverride All <FilesMatch "\.(ext|zip)$"> Header set Cache-Control "max-age=1209600, public" ForceType application/tar+gzip </FilesMatch> </Directory>
application/tar+gzip
на правильный тип содержимого файла. - Сохраните файл и перезапустите Apache:
Примечание:Не стесняйтесь переключатьсяsudo service apache2 restart
restart
с помощьюreload
. - Проверьте URL, посетив
your.site/download
Это было протестировано на Ubuntu Server 20.04.3 LTS с Apache 2.4.41.
решение2
Решение — просто добавить Redirect
директиву в файл конфигурации Apache для вашего веб-сайта.
Redirect "/latest" "files/myfile_v1.1.0.ext"