Você só precisa prefixar sua string r=ca92b32
com ?
(ex: http://<server>/foo/?r=ca93b32
)
A string será considerada como um parâmetro em vez de um nome de arquivo e não será tratada como um nome de arquivo.
Eu tenho a seguinte diretiva mod_rewrite
no meu arquivo de configuração lighttpd :
url.rewrite-once = (
"foo.*$" => "static/foo.pdf",
)
Gostaria de distribuir URLs como este: http://<server>/foo/r=ca2b912
(ou similar), de modo que eu possa rastrear a origem do link no log de acesso http.
Quando eu digito http://<server>/foo/r=131ab42
, no entanto, a caixa de diálogo "salvar como" é mostrada e está propondo nomear o arquivo r=131ab42
(pelo menos quando estiver usando o firefox). Eu gostaria que ele propusesse foo.pdf
como nome do arquivo para salvar. Isso deve funcionar independentemente da ferramenta que acessa a URL (por exemplo, wget, IE, etc., todos devem salvar o arquivo como foo.pdf
).
Como posso conseguir isso? Percebi que o Firefox corrige o nome do arquivo ao recarregar o URL.
Por favor note : esta é a primeira vez que quero usar uma regra de reescrita. Tentei encontrar a resposta, mas não consegui.
reescrita é uma operação interna do servidor; o usuário não vê o resultado (a menos que você o exponha manualmente de alguma forma).
Você pode experimentar o cabeçalho Content-Disposition ; mas a melhor maneira é corrigir seus URLs (ou seja, ter .../foo.pdf
desde o início). Você poderia usar regras de redirecionamento para a migração.
Tags mod-rewrite lighttpd rewrite