htaccess Referer问题

时间:2011-03-17 18:13:33

标签: php .htaccess mod-rewrite referer

我有一个场景,我允许任何人从我的网站热链接图像,但它会在检测到Referer时显示水印。

我已经有了水印PHP GD脚本,它将获取目录上图像的url或完整路径并在其上叠加水印,但我的问题是这个..

有没有办法设置htaccess只有在检测到不是来自域的Referer时才重写页面?

另外,抛出PHP脚本,一旦重写到根目录中的特定页面,我可以到达尝试去扔 $ _ SERVER ['REQUEST_URI'] ,以便在不使用GET查询的情况下更方便地了解他们尝试查看的图像?

1 个答案:

答案 0 :(得分:1)

使用RewriteCond可能最简单。您通常首先检查是否存在Referer标头,然后将其与允许的值进行比较。但你也可以使用断言压缩它:

RewriteCond %{HTTP_REFERER} ^(?!your.domain.com)(.+)$
RewriteRule ^(img/.+)$  /watermark.php?url=$1  [L]

如果您不想使用url GET参数,请使用[L,E=ORIG_REQUEST_URI:$1]将其设为PATH_INFO或环境变量。但是,我会避免这样的解决方法。