使用Nginx重写防止Google Image Search热链接

时间:2013-06-20 19:22:33

标签: redirect nginx rewrite hotlinking

Google图片搜索能够指向原始图片,而无需显示托管该图片的网站。所以我想将这些请求重定向到我网站中的自定义页面。

基本上,我想重写以下类型的网址(来自Google):

www.website.com/folder1/folder2/year/month/day/ID/string.jpg

并将其重定向到:

www.website.com/ID/page.html

其中" ID"是一个数字。

我尝试过以下代码:

set $button_redirect 0;
if ($http_referer ~ "\.google\.") { set $button_redirect 1; }
if ($http_referer ~ "\.google\.[^/]+/blank\.html") { set $button_redirect 0; } 
if ($http_user_agent ~ "Googlebot|bingbot|Slurp|Baiduspider|Yandex|Sogou") { set $button_redirect 0; }
if ($button_redirect = 1) {

    rewrite ^(.*)/folder1/folder2/([0-9]{4})/([0-9]{2})/([0-9]{2})/([0-9]+)/(.*)\.(jpg|jpeg|png)$ /index.php?/$5/page.html last;

}

然而,当我重新启动Nginx Web服务器时,不能加载单个页面,这让我觉得我犯了一个错误。你能帮助我吗?我正在运行Nginx,而且我正在使用Codeigniter框架。

我从这里获取了大部分代码:http://pixabay.com/en/blog/posts/hotlinking-protection-and-watermarking-for-google-32/

0 个答案:

没有答案