![如何在 NGINX 服务器上使用 PHP 计算 PDF 下载次数 - Apache 重写规则的转换](https://linux22.com/image/750539/%E5%A6%82%E4%BD%95%E5%9C%A8%20NGINX%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E4%BD%BF%E7%94%A8%20PHP%20%E8%AE%A1%E7%AE%97%20PDF%20%E4%B8%8B%E8%BD%BD%E6%AC%A1%E6%95%B0%20-%20Apache%20%E9%87%8D%E5%86%99%E8%A7%84%E5%88%99%E7%9A%84%E8%BD%AC%E6%8D%A2.png)
我找到了出色的重写规则和一个 PHP 脚本,可用于Apache
计算某些文件类型的下载次数。我需要将其转换为NGINX
友好形式。Apache
重写规则如下:
RewriteEngine on
RewriteRule ^(.*).(rar|zip|pdf)$ http://xy.com/downloads/download.php?file=$1.$2 [R,L]
下载脚本是这里。
我正在尝试做同样的事情NGINX
:
当下载任何 pdf 文件时,脚本必须拦截下载,以便我可以跟踪它。我想跟踪两件事,下载的次数和下载的 IP 地址。
我最接近的答案是这样的:
location / {
rewrite ^(.*).(rar|zip|pdf)$ /track-downloads.php?file=$1 break;
}
但该规则不起作用,它没有被调用。还请注意标签location
。
我在 NGINX 的博客上找到了一些关于重写规则转换的其他技巧,这里,但这些转换是相当简单的主流转换。
我已经在 Google 上搜索了好久了。在 Google 上搜索“下载 PDF 文件时执行自定义 php 脚本 nginx”等短语时,问题在于返回的结果太多,都与 PHP 无法正常工作以及想要下载而不是提供文件有关。
任何帮助或指导都将不胜感激。顺便提一下,两个 NGINX 环境是 Laravel Valet 和 Virtualmin 控制面板。