У меня есть следующий файл конфигурации в моем sites-available
<VirtualHost *:80>
ServerName my.domain
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
ServerName my.domain
DocumentRoot /var/www/html
ErrorLog /var/www/logs/error.log
CustomLog /var/www/logs/access.log combined
SSLEngine on
SSLCertificateFile /var/www/certs/certificate.pem
SSLCertificateKeyFile /var/www/certs/private.key
SSLCertificateChainFile /var/www/certs/ca_bundle.pem
<Directory /var/www/html>
Options -Indexes
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/html/nav>
DirectoryIndex nav.exe
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
И когда я иду в https: //my.domain/nav, Я ожидаю, что он загрузит файл как nav.exe
. Но вместо этого он загружает его как «скачать».
Как я могу установить собственное имя для этой загрузки?
Не совсем уверен, что это сработает, поскольку я не знаком с Apache. Но быстрый гугл и, возможно, что-то вроде следующего будет работать:
Сначала включите модуль apache mod_headers Видеть Вот о том, как это сделать.
Затем установите блокировку каталога в сайтах с поддержкой:
<Directory /var/www/html/nav>
DirectoryIndex nav.exe
AllowOverride All
Require all granted
SetEnvIf Request_URI "^.*/([^/]*)$" FILENAME=$1
Header set "Content-disposition" "attachment; filename=%{FILENAME}e"
UnsetEnv FILENAME
</Directory>
Буква e в конце {FILENAME} явно означает содержимое среды FILENAME. Так что не бросайте это. Если это сработает, я не уверен, что это приведет к тому, что файл будет называться nav.exe
или nav
.
Это адаптированный образец ссылки, которую я вам отправил. Попробуйте и убедитесь.