Link simbólico do Apache2 - Como usar o nome do destino e o tipo MIME

Link simbólico do Apache2 - Como usar o nome do destino e o tipo MIME

Acabei de configurar um servidor Apache2 e funciona bem. Como o objetivo do servidor é simplesmente servir arquivos versionados, criei um latestlink simbólico direcionadopor exemplo myfile_v1.1.0.ext.

O problema é que quando acesso a URL http://localhost/latest, a janela de download aparece latestcomo nome do arquivo e application/octet-streamcomo tipo MIME.

Gostaria que ao acessar essa mesma URL ela aparecesse myfile_v1.1.0.extcomo nome do arquivo e application/my-appcomo tipo MIME.

Existe uma maneira de conseguir isso?

Muito obrigado antecipadamente

Responder1

Uma maneira de fazer isso seria usar um Alias ​​na configuração do Apache. A desvantagem é que você precisará atualizar isso sempre que houver um lançamento, mas a vantagem é que você pode ter um maior grau de controle sobre como o arquivo é tratado.

Aqui está como você pode fazer isso:

  1. Edite o arquivo Apache .confpara o site
  2. Adicione isto na <VirtualHost>seção:
    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>
    
    Observação:Certifique-se de substituir application/tar+gzippelo tipo de conteúdo adequado para o arquivo.
  3. Salve o arquivo e reinicie o Apache:
    sudo service apache2 restart
    
    Observação:Sinta-se à vontade para mudar restartcom reload.
  4. Teste o URL visitandoyour.site/download

Isso foi testado no Ubuntu Server 20.04.3 LTS com Apache 2.4.41

Responder2

A solução é simplesmente adicionar uma Redirectdiretiva no arquivo de configuração do Apache para o seu site.

Redirect "/latest" "files/myfile_v1.1.0.ext"

informação relacionada