2014-10-30 28 views
0

我在處理一個帶有ID值的圖像的nginx熱鏈接保護代碼,並且使用了。 的圖像。我只想阻止其他3個網站侵害我們的圖像。帶有ID的圖像的Nginx熱鏈接保護 - 我做錯了嗎?

例如;

mydomain.com/attachments/someimage-jpg.179394/ 
mydomain.com/attachments/6-jpg.185288/ 

圖像顯示它的方式始終攜帶-jpg-gif隨後。{ID}和斜線。

例如;

/attachments/image-jpg.12345/ 

我是想正則表達式(我在這顯然無望至今),但他們沒有任何影響,但不會導致對nginx的任何錯誤重裝無論是。

location /attachments/([0-9a-zA-Z])-(png|jpg|jpeg|gif).([0-9]+)/ { 
if ($http_referer ~ ^(www.example.com|www.example.org|www.example.net)) { 
    rewrite^url/to/leech.jpg; 
} 
} 

很抱歉,如果我上面的例子就是一切可以做的錯,做錯了,但我是一個PCRE(?)的新手。 我是否關閉?

回答

0

你的正則表達式是錯誤

通過

/attachments/([0-9a-zA-Z])+-(png|jpg|jpeg|gif)[.]([0-9]+) 

取代

/attachments/([0-9a-zA-Z])-(png|jpg|jpeg|gif).([0-9]+) 

因爲([0-9A-ZA-Z])匹配只是1個字符和。需要逃脫

+0

完美!感謝您解釋我錯過了什麼。 +1 – 2014-10-30 14:31:29