设为首页 收藏本站
查看: 712|回复: 0

[经验分享] 【转】使用Apache防盗链设置和自定义错误页面

[复制链接]

尚未签到

发表于 2017-1-14 07:30:50 | 显示全部楼层 |阅读模式
  使用Apache防盗链设置和自定义错误页面
  本文转载于http://www.discuz.net/thread-885395-1-1.html
  先来看看Apache的防止特定文件禁止下载的方法:

在httpd.conf文件最下面添加


  • #Apache禁止类型下载
  • <directory X:/X/X>
  • <FilesMatch "\.(html|htm|jpg|php|css|gif)">
  • Order Deny,Allow
  • Deny from all
  • </FilesMatch>
  • </directory>



复制代码

  
说明:



  • <directory X:/X/X>



复制代码

  
这里写你要保护的目录的绝对路径,比如C:/web/templates


这样C:/web/templates下的制定类型的文件将无法下载。可以来保护你的模板文件。


指定文件类型



  • <FilesMatch "\.(html|htm|jpg|php|css|gif)">



复制代码

  
里面的类型可以自己添加。


下面是防盗链的简单设置:

在你需要保护的网站域名定义字段内添加



  • NameVirtualHost *:80
  • <VirtualHost *:80>
  • 在此添加
  • DocumentRoot X:/你网站所在目录/X
  • ServerName www.你的网址.com
  • </VirtualHost>



复制代码




  • SetEnvIf Request_URI "/logo(.)+" local_ref=0
  • SetEnvIfNoCase Referer "^http://bbs.wanshy.com" local_ref=1
  • SetEnvIfNoCase Referer "^http://boke.wanshy.com" local_ref=1
  • SetEnvIfNoCase Referer "^http://blog.wanshy.com" local_ref=1
  • SetEnvIfNoCase Referer "^http://buy.wanshy.com" local_ref=1
  • SetEnvIfNoCase Referer "^http://www.wanshy.com" local_ref=1
  • <FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif|ma|png|wav|midi|wma|mb|swf|fla)">
  • Order Allow,Deny
  • Allow from env=local_ref
  • </FilesMatch>



复制代码

  
第一行是定义文件名为logo.*的文件可以排除在防盗链之外,这样可以和联盟网站传输logo图片。

第2-6行是定义排除的网站,在这里排除的网站不受防盗链影响。

第7行是定义文件类型,参照上面的防止特定文件禁止下载



然后就是自定义错误页面:



  • ErrorDocument 404 http://bbs.wanshy.com/index.php
  • ErrorDocument 403 http://bbs.wanshy.com/index.php



复制代码

  
格式为



  • ErrorDocument    错误代码 绝对地址



复制代码

  
这样就能自定义你自己的错误页面了。


最后附上Apache下绑定多域名的方法:

在的最后加上



  • NameVirtualHost *:80
  • <VirtualHost *:80>
  • DocumentRoot X:/你网站所在目录/X
  • ServerName www.你的网址.com
  • </VirtualHost>



复制代码

  注意本文所介绍的方法适用于windows主机,其他主机为测试!

所修改添加字段均在Apache的httpd.conf文件里面,.htaccess文件未做测试。



  =====================================================

  




  一、自定义错误信息页面,并根据所请求的URL所在的域,跳转到所在域名。

二、自定义APACHE错误信息,指定错误信息页面。配置文件里面有例子信息,去掉下面的注释符号#,激活。


Alias /error/ "/usr/local/apache2/error/"
<Directory "/usr/local/apache2/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en cs de es fr it ja ko nl pl pt-br ro sv tr
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
ErrorDocument 404 /error/404/index.html
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
  三、实现跳转JS。

新建错误信息html页面,页面中关键代码如下:


var ym=document.domain;//获取请求的URL域名+++ 关键 ++++
var returnid=5;
function return_prepage(){
document.getElementById("return_page").innerHTML=returnid+"";
if(returnid==0){
window.location.href="http://"+ym;  //重定向到请求的域名网站
}
returnid=returnid-1;
if(returnid>-1){
window.setTimeout("return_prepage()",1000);}
}
return_prepage()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-328059-1-1.html 上篇帖子: 【转载】了解开源的许可证GPL、LGPL、BSD、Apache 2.0的区别 下篇帖子: New Apache project will Drill big data in near real time
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表