mod_rewrite从.png重定向到.php

时间:2015-01-24 21:40:24

标签: php apache .htaccess mod-rewrite

我有:

http://www.site.tk/track/aaaa.png

我希望从该文件夹访问的所有.png文件都重定向到:

http://www.site.tk/track/track.php

因此当我使用以下方式插入其他网站中该文件夹的png文件时:

<img src="http://www.site.tk/track/bbbb.png">

用户将看到“track.php”的内容

我试过:

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteBase track

RewriteRule ^([A-z0-9]{6}).png /track.php

我使用了“RewriteBase track”,因为.htaccess位于〜/ track /文件夹中。

这是track.php的内容

<?php
$date = date('d-m-Y');
$time = date('H:i:s');
$ip = $_SERVER['REMOTE_ADDR'];
$ref = @$_SERVER["HTTP_REFERER"];

header('Content-type: image/png');
echo gzinflate(base64_decode('6wzwc+flkuJiYGDg9fRwCQLSjCDMwQQkJ5QH3wNSbCVBfsEMYJC3jH0ikOLxdHEMqZiTnJCQAOSxMDB+E7cIBcl7uvq5rHNKaAIA'));

$myFile = "tr.txt";
$fh = fopen($myFile, 'a');
fwrite($fh, $myFile = $time ." | ". $date . " | " .$ip. " | " .$ref. " | \r\n\r\n");
fclose($fh);
?>

所有.png图像将是1px x 1px,作为tracker.php内base64上编码的图像。我想在电子邮件和论坛上使用它来查看谁看到了我的电子邮件和我的个人资料。

1 个答案:

答案 0 :(得分:2)

您设置RewriteBase但不正确。
此外,您的规则在内部重写为根文件/track.php(不存在),因为您设置了一个前导斜杠(因此,取消RewriteBase操作)。

你可以用这个替换你当前的代码(你的htaccess仍然必须在track文件夹中)

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /track/

RewriteRule ^[^/]+\.png$ track.php [L]