2011-03-17 68 views
0

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

我已经有水印PHP脚本GD将采取对目录中的图片的URL或FULLPATH并在其上叠加一个水印,但我的问题是这样的..

有没有一种方法来设置仅当htaccess检测到Referer不是来自域时才重写为页面?

而且,扔了PHP脚本,一旦重写进入到一个特定的页面在根目录下,我能得到它在哪里试图去义无返顾$ _ SERVER [“REQUEST_URI”]更容易获得知道他们在什么图像试图查看,而不使用GET查询?

回答

1

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

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

如果你不想url GET参数,然后使它成为一个PATH_INFO,或使用[L,E=ORIG_REQUEST_URI:$1]的环境变量。但我会避免这种解决方法。

+0

谢谢你,我不懂hataccess的htaccess领域。 – Ugleh 2011-03-17 19:00:53