Apache 防盜鏈的第一種實現方法,能夠用 rewrite 實現。首先要確認 Apache 的 rewrite module 可用:可以控制 Apache httpd.conf 文件的,打開 httpd.conf,確保有這麼一行配置:web
LoadModule rewrite_module modules/mod_rewrite.so而後在找到本身網站對應的 配置的地方,加入下列代碼:
ServerName xiaohui.com # 防盜鏈配置 RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://xiaohui.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://xiaohui.com$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.xiaohui.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.xiaohui.com$ [NC] RewriteRule .*\.(gif|jpg|swf)$ http://www.xiaohui.com/about/nolink.png [R,NC]防盜鏈配置的說明:
而後從新啓動 apache 服務器便可。apache
有些用戶使用的是虛擬主機,沒有服務器的控制權,沒法修改 httpd.conf 文件和重啓服務器。那麼請確認你的虛擬主機支持 .htaccess,將上面的配置寫入 .htaccess 文件,放入根目錄或圖片所在的目錄便可:瀏覽器
.htaccess 文件的內容: # 防盜鏈配置 RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://xiaohui.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://xiaohui.com$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.xiaohui.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.xiaohui.com$ [NC] RewriteRule .*\.(gif|jpg|swf)$ http://www.xiaohui.com/about/nolink.png [R,NC]注意:
另外一種方式是利用 SetEnvIfNoCase 和 access。具體的代碼以下:服務器
SetEnvIfNoCase Referer "^http://xiaohui.com" local_ref=1 SetEnvIfNoCase Referer "^http://www.xiaohui.com" local_ref=1 Order Allow,Deny Allow from env=local_ref將上述代碼,放入前面所講的 httpd.conf 或 .htaccess 文件便可。
下面是引用木頭同窗的:dom
位置通常狀況下在 /usr/local/apache/conf/httpd.conf
或者apache 2.2 的 /usr/local/apache2/conf/extra/httpd-vhost.conf
添加字體
- SetEnvIfNoCase Referer "^http://www.ccvita.com" local_ref=1
- SetEnvIfNoCase Referer "^http://ccvita.com" local_ref=1
- <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
- Order Allow,Deny
- Allow from env=local_ref
- </filesmatch>
其中粗體的是您的網址,若是有多個,就加多行
斜體的是您須要防盜鏈的文件後綴,中間用|隔開網站還一種寫法,是用正則的,這種寫法在各個版本的apache比較通用。
寫法是ui
- SetEnvIfNoCase Referer "^http://.*\.yourdomin\.com" local_ref=1
- SetEnvIfNoCase Referer ".*\.yourdomin\.com" local_ref=1
- <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
- Order Allow,Deny
- Allow from env=local_ref
- </filesmatch>
其中粗體的部分有一點區別,用正則寫法, \ 符號表明轉義,由於.自己在正則中有本身的做用。spa