3

我正在尝试使用 php 和 htaccess 跟踪热链接器的 IP 地址。

.htaccess 文件:

RewriteEngine on 
RewriteRule images/(.+)\.(jpg|gif|png) images.php 

图像.php

?php 
    $ipAddress = $_SERVER['REMOTE_ADDR'];

    $statement=$db->prepare("INSERT INTO `ipaddress` (`ip` )
            VALUES (?)");
    $statement->execute(array($ipAddress));     

?>

现在用户请求像 www.domain.com/images/image.jpg 这样的图像,它将重定向到 images.php 并跟踪他们的 ips。我在这里面临的问题是我的页面内部没有显示图像(原因 htaccess 将其重定向到 images.php)。我该如何解决这个问题?

这是有关此问题的上一个问题的链接:

我不是 htaccess 专家,所以需要更多解释

谢谢

4

1 回答 1

5

如果您想记录 IP 然后无论如何提供图像,那么可能会这样做:

.htaccess 文件:

RewriteEngine on 
RewriteRule images/(.+)\.(jpg|gif|png) images.php?image=$1.$2

图像.php:

<?php 
    $ipAddress = $_SERVER['REMOTE_ADDR'];

    $statement=$db->prepare("INSERT INTO `ipaddress` (`ip` )
            VALUES (?)");
    $statement->execute(array($ipAddress));

    $ext = strtolower(end(explode('.', $_GET['image'])));

    if($ext == 'gif') {
        $type = "gif";
    }
    else if($ext == 'jpg') {
        $type = "jpeg";
    }
    else if($text == 'png') {
        $type = "png";
    }
    else {
        $type = "binary";
    }

    header("Content-type: image/$type");
    readfile("images/" . $_GET['image']);

?>

您可能需要在这里和那里调整路径以确保正确指向所有文件,无论是 in.htaccess还是 in images.php

于 2012-06-22T11:41:01.360 回答