LAMP:将文件下载请求重定向到php页面以计算文件下载


LAMP: Redirect file download requests to a php page to count file downloads

目前我有一个客户端应用程序,它直接从我的WEB服务器下载文件,该服务器运行在LAMP服务器上。文件地址如下:http://example.com/application/images/*.jpg .

我将计算文件下载的次数;但是,我不能更改客户端应用程序,以便它们可以将请求发送到其他地址或页面。

我猜有一些基于url重写的技术,这样我就可以将http://example.com/application/images/xyz.jpg形式的请求转换为http://example.com/application/counter.php?file=xyz.jpg之类的东西。这样我就可以处理文件下载,并使用这个答案中建议的技术来计算它们。

所以我想知道我应该如何设置.htaccess文件或使用mod-rewrtie重定向我的请求到counter.php页?

我当前的。htaccess文件是这样的:

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag  log_errors on
# AddHandler application/x-httpd-php54 .php .php5 .php4 .php3
Options -Indexes
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

注:我的web服务器在共享主机上运行,所以我无法访问此服务器上的所有内容,但我可以执行添加/编辑.htaccess文件等任务。

您可以在您的站点root .htaccess:

中使用这些规则
RewriteEngine On
RewriteRule ^(application)/images/(xyz'.jpg)$ $1/counter.php?file=$2 [QSA,L,NE]

然后在counter.php中保持计数,然后使用$_GET['file']正确的MIME-TYPE加载jpg图像。