Mod-Rewrite
重寫下載 URL,但“另存為”對話框顯示原始 URL
我的lighttpd配置文件中有以下
mod_rewrite
指令:url.rewrite-once = ( "foo.*$" => "static/foo.pdf", )
我想分發這樣的 URL:(
http://<server>/foo/r=ca2b912
或類似的),這樣我就可以在 http 訪問日誌中跟踪連結的來源。但是,當我輸入
http://<server>/foo/r=131ab42
時,會顯示“另存為”文件對話框並建議命名文件r=131ab42
(至少在使用 firefox 時)。我想讓它foo.pdf
作為文件名來保存。這應該獨立於訪問 URL 的工具(即 wget、IE 等都應該將文件另存為foo.pdf
)。我怎樣才能做到這一點?我注意到 firefox 在重新載入 URL 時會更正文件名。
請注意:這是我第一次想使用重寫規則。我試圖自己找到答案,但沒有成功。
你只需要在你的
r=ca92b32
字元串前面加上一個?
(ie:http://<server>/foo/?r=ca93b32
)該字元串將被視為參數而不是文件名,並且不會被視為文件名。
rewrite 是伺服器內部操作;使用者看不到結果(除非您以某種方式手動公開它)。
您可以嘗試Content-Disposition標頭;但最好的方法是修復您的網址(即
.../foo.pdf
從一開始就有)。您可以使用重定向規則進行遷移。