最近,大家都比较关心防盗链的问题,担心安装了SupeSite/X-Space之后,开通博客的朋友多了
他们上传的图片被盗链会造成服务器无谓的负担,现在我给大家讲解一下如何利用Apache本身来防盗链 :)
首先,找到您的apache设置文件,
一般情况下在 /usr/local/apache/conf/httpd.conf
或者apache 2.2 的 /usr/local/apache2/conf/extra/httpd-vhost.conf
您可以酌情找到自己的conf文件,windows和freebsd下也一样,然后找到类似如下内容
QUOTE:
这个是带rewrite的
以下为引用的内容: <VirtualHost *:80> DocumentRoot /home/www ServerName www.yourdomin.com <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^/supesite/([0-9]+)/spacelist(.*)$ /supesite/index.php?$1/action_spacelist$2 RewriteRule ^/supesite/([0-9]+)/viewspace_(.+)$ /supesite/index.php?$1/action_viewspace_itemid_$2 RewriteRule ^/supesite/([0-9]+)/viewbbs_(.+)$ /supesite/index.php?$1/action_viewbbs_tid_$2 RewriteRule ^/supesite/([0-9]+)/(.*)$ /supesite/index.php?$1/$2 RewriteRule ^/supesite/([0-9]+)$ /supesite/index.php?$1 RewriteRule ^/supesite/action_(.+)$ /supesite/index.php?action_$1 RewriteRule ^/supesite/category_(.+)$ /supesite/index.php?action_category_catid_$1 RewriteRule ^/supesite/itemlist_(.+)$ /supesite/index.php?action_itemlist_catid_$1 RewriteRule ^/supesite/viewnews_(.+)$ /supesite/index.php?action_viewnews_itemid_$1 RewriteRule ^/supesite/viewthread_(.+)$ /supesite/index.php?action_viewthread_tid_$1 RewriteRule ^/supesite/index([\.a-zA-Z0-9]*)$ /supesite/index.php </IfModule> </VirtualHost> |
以下为引用的内容: <VirtualHost *:80> DocumentRoot /home/www ServerName www.yourdomin.com </VirtualHost> |
以下为引用的内容: SetEnvIfNoCase Referer "^http://www.yourdomin.com" local_ref=1 SetEnvIfNoCase Referer "^http://yourdomin.com" local_ref=1 <FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> Order Allow,Deny Allow from env=local_ref </FilesMatch> |
还一种写法,是用正则的,这种写法在各个版本的apache比较通用。
写法是
以下为引用的内容: 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> |
最终改完就变成了
以下为引用的内容: <VirtualHost *:80> DocumentRoot /home/www ServerName www.yourdomin.com SetEnvIfNoCase Referer "^http://www.yourdomin.com" local_ref=1 SetEnvIfNoCase Referer "^http://yourdomin.com" local_ref=1 <FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> Order Allow,Deny Allow from env=local_ref </FilesMatch> <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^/supesite/([0-9]+)/spacelist(.*)$ /supesite/index.php?$1/action_spacelist$2 RewriteRule ^/supesite/([0-9]+)/viewspace_(.+)$ /supesite/index.php?$1/action_viewspace_itemid_$2 RewriteRule ^/supesite/([0-9]+)/viewbbs_(.+)$ /supesite/index.php?$1/action_viewbbs_tid_$2 RewriteRule ^/supesite/([0-9]+)/(.*)$ /supesite/index.php?$1/$2 RewriteRule ^/supesite/([0-9]+)$ /supesite/index.php?$1 RewriteRule ^/supesite/action_(.+)$ /supesite/index.php?action_$1 RewriteRule ^/supesite/category_(.+)$ /supesite/index.php?action_category_catid_$1 RewriteRule ^/supesite/itemlist_(.+)$ /supesite/index.php?action_itemlist_catid_$1 RewriteRule ^/supesite/viewnews_(.+)$ /supesite/index.php?action_viewnews_itemid_$1 RewriteRule ^/supesite/viewthread_(.+)$ /supesite/index.php?action_viewthread_tid_$1 RewriteRule ^/supesite/index([\.a-zA-Z0-9]*)$ /supesite/index.php </IfModule> </VirtualHost> |