一般的302重定向都是完整的URL形式:如: h-t-t-p://www.xxx.com/g/p/getfile。这个时候CDN也会直接把302转发给终端用户。
但是nginx支持一种相对重定向的行为,也就是nginx反向代理发送请求如果返回的302重定向的地址是一个相对URL,如 /k/p/getfile的话,nginx不会直接将此转发给终端用户,而是根据自己的匹配规则寻找这个新的相对URL应该请求的地址进行再一步的代理访问。
请问阿里云的CDN是否支持这种行为。在视频防盗链上回比较有用。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云CDN服务主要聚焦于内容分发加速,对于您提到的基于相对URL的302重定向处理逻辑,这通常是Web服务器(如Nginx)的配置特性,而非CDN直接提供的功能。CDN的主要任务是根据源站返回的响应(包括状态码和重定向信息)将内容分发给终端用户,它并不修改或深度解析重定向的具体形式(绝对URL或相对URL),而是遵循HTTP协议标准进行转发。
在您的场景中,如果希望利用相对URL的302重定向来实现特定的访问控制或防盗链策略,这需要在源站服务器(比如使用Nginx的网站服务器)上正确配置相应的重定向规则,并确保这些规则能够与CDN服务协同工作。即,当CDN节点接收到源站的302响应时,会原样传递给客户端,客户端浏览器会根据响应中的Location头字段处理重定向,此时如果是相对路径,浏览器会基于当前页面的URL自动构建出完整的重定向地址并发起新的请求。
对于视频防盗链的需求,阿里云CDN提供了更为直接且安全的解决方案,例如:
综上所述,虽然阿里云CDN不直接支持对相对URL 302重定向的特殊处理逻辑,但通过结合CDN自带的安全功能和源站服务器的适当配置,可以有效实现视频防盗链等安全需求。