mod_rewrite vs link simbólico: o navegador não está enganado
-
06-09-2019 - |
Pergunta
Eu tenho um foo.bar.1 arquivo no meu servidor e quando tento acessá-lo a partir de um navegador (Firefox) recebo um pop-up que diz "Você escolheu foo.bar.1 aberta que é um: 1 arquivo ... O que deve Firefox fazer com este arquivo ... ". Se eu criar um link simbólico para ele, foo.dat, eu posso acessá-lo muito bem; o conteúdo exibido no navegador como eu esperava.
O meu problema é que eu não quero criar links simbólicos para todos esses arquivos, eu quero usar uma regra mod_rewrite, como
RewriteRule ^([^/]+)\.dat$ $1.bar.1
Mas isso não age como a ligação simbólica. Ele dá o mesmo pop-up (embora, estranhamente, ele agora diz: "Você escolheu foo.dat aberta que é um: arquivo DAT ...".
Como posso fazer a regra de reescrita de forma que o navegador é levado a tratá-la como um arquivo .dat normal, como é realizado pelo link simbólico?
Solução
Se você mod_mime instalado, então você pode fazer:
AddType text/plain .1
Não testado, mas deve exibir o arquivo em vez de baixar
http://httpd.apache.org/docs/ 2.0 / mod / mod_mime.html # AddType para documentação AddType
Outras dicas
olhar para o argumento [T]
à directiva RewriteRule
:
http://httpd.apache.org/docs/2.2 /mod/mod_rewrite.html#rewriterule
Quando você faz a ligação simbólica, Apache pensa que está servindo um arquivo .dat
, enquanto que quando você usa mod_rewrite, Apache ainda pensa que está servindo um arquivo .1
. Este aparece no cabeçalho do tipo de conteúdo servido para o navegador.