Назад | Перейти на главную страницу

Установите собственное имя для загрузки файлов

У меня есть следующий файл конфигурации в моем 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.

Это адаптированный образец ссылки, которую я вам отправил. Попробуйте и убедитесь.