下面是针对"IIS真正能用的ISAPI-Rewrite图片防盗链规则写法"的详细攻略。
什么是ISAPI-Rewrite
ISAPI-Rewrite是一个IIS的URL重写工具,它能够让用户通过编写.htaccess文件来进行网站的URL重写。同时它也可以用来进行URL的伪静态化,以及防盗链等功能。
ISAPI-Rewrite图片防盗链规则写法
防盗链是指通过某种方式来避免别人直接使用你的网络资源的一项技术。在针对图片文件的防盗链中,我们常常需要通过某种方式来强制验证网站访问者的域名,以此来防止其他人直接使用我们的图片资源。下面是ISAPI-Rewrite图片防盗链的规则写法:
#防盗链
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(.+\.)?example\.com/ [NC]
RewriteRule \.(jpe?g|gif|bmp|png)$ - [F,NC]
其中,
%{HTTP_REFERER}
表示请求来源头字段(即Referrer),它用来表示当前请求是从哪个网站打开的。^
表示开头的符号,$
表示结尾的符号,!
表示非,http(s)?
表示http或https开头(?
表示前面的s可有可无),其中\.
表示匹配.符号,(.+\.)?
表示匹配除去首位的任意字符加上.符号,零或一次,example\.com
则表示你的域名。[NC]
表示不区分大小写的匹配。"
.(jpe?g|gif|bmp|png)$"`用来匹配图片的扩展名。- `[F]表示强制禁止访问,返回403状态码,当然你也可以稍微修改一下这个规则,使它返回你希望的状态码,比如302状态码,然后把它重定向到其他页面。
示例说明
比如你有一张图片资源地址为:
https://www.example.com/images/cat.jpg
则下面是一些示例:
- 如果网站A中的资源引用了你的图片资源,如下:
https://www.website.com/img/cat.jpg
则这个请求来源是https://www.website.com
,然而并不在你的白名单中,因此第二个RewriteCond匹配则失败了,这时候你的RewriteRule就会取消这个资源的请求,返回错误状态码。
- 如果另一个网站B也引用了同一张图片资源,但它是从你的白名单中的地址中引用的,如下:
https://www.example.com/images/cat.jpg
这时候这个请求来源是https://www.example.com
,在你的白名单中,因此这个请求就会被正常处理,返回图片资源。
综上所述,以上是我对于"IIS真正能用的ISAPI-Rewrite图片防盗链规则写法"的详细攻略和示例说明,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IIS真正能用的ISAPI-Rewrite图片防盗链规则写法 - Python技术站