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

问题描述

| 正如标题所述。假设某人从我的数据库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]
    

解决方法

        使用mod_rewrite确实无法实现您描述的方式:服务器开始传送内容(发送200状态代码)后,如果没有相应的第二个请求,就无法启动第二个响应。 如果要执行此操作,则必须在客户端执行此操作:例如,启动针对一个单独的隐藏iframe的下载,如果下载开始,则可以使用
window.location
更改页面位置。