繁体   English   中英

Apache2 PHP - 如何使用 .htaccess 重写直接下载链接

[英]Apache2 PHP - How do I use .htaccess to rewrite direct download links

我有一个文件目录,由用户包管理器使用文件的直接链接下载。 我正在尝试设置文件日志记录,以便获取有关下载的统计信息。 我正在使用我在 GitHub 上找到的这个脚本: https : //github.com/iNamik/PHP-Download-Tracker

  • 我正在使用上面的脚本,它由一个文件目录、一个日志目录和一个列出要下载的文件的 index.php 组成。

  • Index.php 列出了下载目录中的所有文件。 这个文件可以重命名为任何东西,即download.php

  • 如果我使用 index.php 并单击我想下载的文件,它会记录信息并下载它。

  • 如果我使用文件 (/downloadfolder/file.exe) 的直接链接,则绕过 index.php 并且不会记录任何内容。

是否可以在 Apache 中使用类似 mod_rewrite 的东西,在直接链接中的文件名之前添加 download.php?file= ?

例子:

  1. 访问此直接链接: https : //exampledomain.com/files/file.pdf --> 这不会被记录。 文件传输开始。

  2. 让它自动重写为: https://exampldomain.com/files/download.php?file=file.pdf --> 这确实被记录了。 然后文件传输开始

这会将任何不存在的内容重定向到 index.php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ index.php [L]

在使用 htaccess 测试仪进行一些头发拉扯和测试之后,这就是我想出的。

我的 download.php 位于 files 目录中。

RewriteEngine On
RewriteBase /files/
RewriteRule ^(.+(deb|DEB))$ download.php?file=$1 [L]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM