2009-05-27 34 views
0

我在服務器上有一個文件foo.bar.1,當我嘗試從瀏覽器訪問它時(firefox),我得到一個彈出窗口,顯示「你選擇了打開foo .bar.1這是一個:1文件...... Firefox應該用這個文件做什麼......「。如果我爲它創建一個符號鏈接,foo.dat,我可以很好地訪問它;內容顯示在瀏覽器中,如我所料。mod_rewrite vs symlink:瀏覽器沒有被愚弄

我的問題是,我不想對所有這些文件創建符號鏈接,我想使用的mod_rewrite規則,像

RewriteRule ^([^/]+)\.dat$ $1.bar.1 

但是,這並不像符號鏈接。它給出了相同的彈出窗口(雖然,奇怪的是,它現在說「你已經選擇打開foo.dat這是一個DAT文件...」。

我該如何執行重寫規則,以便瀏覽器被欺騙?到對待它像一個正常的.dat文件,如通過符號鏈接來完成

+0

接受的答案確實解決了原始問題。我仍然很好奇其他答案出了什麼問題:在重寫規則中使用T標誌。 – dreeves 2009-05-27 06:20:52

回答

1

查找到[T]參數的RewriteRule指令:

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule

當您的符號鏈接,阿帕奇認爲它是服務於.dat文件,而當你使用mod_rewrite,阿帕奇仍然認爲它是服務於.1文件。這在提供給瀏覽器的內容類型頭中顯示。

+0

謝謝!這似乎應該工作,但我添加了[T = text/plain]沒有效果。不,我更困惑... – dreeves 2009-05-27 05:48:48