在我的服务器中有一张名为 /images/pic.jpg 的图片。我想跟踪尝试通过 url 直接访问该图片的用户的 IP 地址,例如 www.domain.com/images/pic.jpg。我可以通过以下方式跟踪手动用户的 IP 地址:
<?php $ipAddress = $_SERVER['REMOTE_ADDR']; ?>
您可以创建一个拦截 PHP 脚本,该脚本将负责处理对存储在特定文件夹中的图像的所有请求。假设您的所有图像都位于images/
文件夹内。您只需要创建一个重写规则,它将对该文件夹内文件的所有请求重定向到 PHP 脚本。
RewriteRule images/(.+)\.(jpg|gif|png) images.php?image=$1.$2
这样,您仍然可以像以前一样在标记中使用图像。
<img src="images/logo.png" />
请考虑到这种方法可能会对您的系统性能产生重大影响,因为由于每次都调用 PHP,所有对图像资源的请求现在都会产生处理开销。
如果他们直接访问图像,那么除了解析您的 access_logs 并查看谁在请求文件之外,您无法使用 PHP 进行任何操作来跟踪它们。
您最好的选择是使用 PHP 来提供图像本身。这样您就可以通过 PHP 跟踪谁在请求它。
例子:
<img src="image.php?imagename.jpg">