使用mod_rewrite启动文件下载后如何重定向到页面?

时间:2011-06-01 04:46:06

标签: mod-rewrite download

正如标题所述。假设一个人访问我的数据库http://domain.com/database/file.zip中的文件。一旦启动了文件下载,我希望浏览器再次重定向到数据库目录。这是我到目前为止所做的:

RewriteEngine On
Options +FollowSymLinks
RewriteRule ^Database(.zip)$ http://domain.com/db/index.html [R=301,L]

但是,我收到500错误。

如果我过于挑剔,最好在以下链接上忽略此功能:& file = something.zip。

无论哪种方式,让第一部分工作都会很棒。

编辑!

这最终对我有用。干杯!

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} .*zip$|.*rar$|.*tar$|.*txt$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !domain\.com [NC]
RewriteRule ^(.*)$ /dl.php?url=%{REQUEST_FILENAME} [L]

1 个答案:

答案 0 :(得分:0)

mod_rewrite不可能按照你所描述的方式实现:一旦服务器开始传送内容(发送200状态代码),没有相应的第二个请求就无法启动第二个响应。

如果你想这样做,你必须在客户端进行:例如,启动下载目标是一个单独的隐藏iframe,如果下载开始,那么你可以使用window.location更改页面位置。