这次算是呕心沥血了,网上的防盗链文章简直一个模子的,全部都是采用httpd.conf修改LoadModule rewrite_module modules/mod_rewrite.so或是httpd-default.conf,可是我用阿里云自动搭建的apache环境压根就没有啊,如果有相同经历的,可以看这篇文章,希望留下评论,给个鼓励不,QAQ,域名到了,打算开始用CDN缓存,Nice!
文章目录
Apache2.4版本防盗链配置
1 无图床引用版
指的是 你的图片不是用的外部URL链接,而是服务器网站内本地的图片
1.1首先是否安装了mod_rewrite模块(未安装的话不知道)
第一个坑,认为自己无对应文件就没有安装这个模块
使用该命令:
apachectl -t -D DUMP_MODULES | grep “rewrite”
如下则已经安装:
第二个坑,在httpd.conf中找不到 LoadModule rewrite_module modules/mod_rewrite.so这句话
这里可能会有人疑惑LoadModule rewrite_module modules/mod_rewrite.so这句话不在httpd.conf中,其实他在,具体位置请用find命令去查找:
参考文章(需要梯子):https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_rewrite-for-apache-on-centos-7#step-2-verifying-mod_rewrite
1.2 安装完后,进行配置(这里使用的是.htaccess文件)
第三个坑,对之后的配置文件进行允许处理没讲全,也少语句(他们不讲全,我来尽力讲)
a.首先在 /var/www/html下对AllowOverride进行处理,主要是允许/var/www/html下的配置文件可以使用,一般网站也在/var/www/html下
b.为什么.htaccess放在/var/www/html中而不是网站根目录下,主要是配置文件会在存在目录和子目录中使用,还有.htaccess是隐藏文件别忘了。
原文链接:https://blog.csdn.net/xiaofengdada/article/details/122809398
c.为什么include 这个.htaccess文件,这就是网上最坑的一点,我用ChatGpt才知道,.htaccess需要被httpd.conf使用include引用才行
1.3 对.htaccess文件进行创建以及编辑
a.htaccess本身是不存在,所以需要在/var/www/html中创建,如果不确定放在哪,找到网站目录,放在父目录上也行(反正我是搞着玩的,云服务器随便造)
第四个坑,语法问题(这里容易被忽略的是参数的设置和模块的引用和配置文件的语法)
以下是对比图,阿里云的参数图:
我的图:
1.首先是ifModule别忘了加,不然找不到这个配置是对哪个模块用的
参考文章(需要梯子):https://stackoverflow.com/questions/30855651/how-to-enable-mod-rewrite-on-apache-2-4
2.我的网址有.,大家应该知道转义,如果不确定语法请在ChatGpt上询问并修改一下
3.参数问题 其实仔细看参考文章
RewirteCond配置的是允许访问你的图片的网址,如果不希望其他网址访问的话,配置自己的网站就好了
RewriteRule 这里还是用的是阿里云的不跳转配置
参考文章:https://help.aliyun.com/document_detail/36366.html?spm=5176.21213303.J_6704733920.7.727953c99FAK7N&scm=20140722.S_help@@%E6%96%87%E6%A1%A3@@36366._.ID_help@@%E6%96%87%E6%A1%A3@@36366-RL_Apache%E9%98%B2%E7%9B%97%E9%93%BE-LOC_main-OR_ser-V_2-RK_rerank-P0_0
1.4 效果图
注意这里用的是必须可以访问网站资源的在线html环境,即用Img标签引用你的图片地址是可以出来图片的,兄弟们,可以使用无痕浏览,来防止缓存干扰
网址:http://tool.wdphp.com/htmlbasic.html
无防盗链:
有防盗链:
2 使用图床版
方法:只能对图床比如青牛云进行防盗链设置
原因:
1.没有必要
如果你的网站使用的是外部链接的图片,并且这些外部图片在其他网站再次被引用,那么这些引用过程并不会直接消耗你的网站资源。
当你在网页上使用外部链接的图片时,浏览器会直接从外部网站加载这些图片,而不是通过你的服务器。这意味着图片的加载请求并不会经过你的网站,因此不会对你的服务器资源造成直接影响。
2.没有作用
如果网站应用图床的话 img src=“图床外链/.png” 但是防盗链指的是对 img src="本网站/.png"访问时才会触发 并且对refer进行判断 ,所以如果用图床的话就没用
2 防泄漏
a. 如果有Include conf.modules.d/*.conf,无需添加Include conf/extra/httpd-default.conf,因为很大概率你也没有extra这个文件夹
b.直接在末尾添加
ServerTokens Prod
ServerSignature Off
c.最终效果:
参考文章:https://www.yangxingzhen.com/1188.html
凡心所向,素履以往,生如逆旅,一苇以航。