2012-09-03 72 views
0

下面的代碼工作正常:如何通用的.htaccess防止盜鏈

RewriteCond %{HTTP_REFERER} !^http://superwebx.com/.*$ [NC] 
RewriteRule .*\.(jpe?g|gif|bmp|png|swf|css)$ - [F] 

,但我想打一個通用的腳本爲我服務的幾個網站我管理,但沒有試圖讓

RewriteCond %{HTTP_REFERER} !^http://%{HTTP_HOST}/.*$ [NC] 
RewriteRule .*\.(jpe?g|gif|bmp|png|swf|css)$ - [F] 
+0

這是一個非常有用的問題。我正在構建一個.htaccess,我想在一堆網站上重複使用,所以一個通用的熱鏈接防止RewriteCond會非常棒! – harvest316

回答

0

您不能在正則表達式中使用變量。您可以通過使用正則表達式反向引用像這樣解決此問題:(注意#只是用作boundry這可能是因爲沒有在域的名稱中使用任何字符)。

RewriteCond %{HTTP_REFERER} ^https?://([^/]+)/ [NC] 
RewriteCond %1#%{HTTP_HOST} !^(.+)#\1$ 
RewriteRule \.(jpe?g|gif|bmp|png|swf|css)$ - [F] 

0

很老的,但這裏是你的答案:

RewriteCond %{HTTP_HOST}@@%{HTTP_REFERER} !^([^@]*)@@https?://\1/.*