问题描述
|
正如标题所述。假设某人从我的数据库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
更改页面位置。