2009-05-27 38 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