我正在使用Youtube视频IMG。
示例链接:https://i.ytimg.com/vi/aSVpBqOsC7o/hqdefault.jpg
我想:http://cdn.mywebsite.com/vi/aSVpBqOsC7o/hqdefault.jpg
如何使用PHP和.htaccess进行操作?
答案 0 :(得分:1)
apache http服务器附带了很棒的模块,其中包括代理模块。它提供了您正在寻找的内容,而无需使用某种脚本语言或类似语言:
简单直接的方法是在您自己的域名空间内代理整个网址https://i.ytimg.com/vi/
:
ProxyRequests off
ProxyPass /vi/ https://i.ytimg.com/vi/
有关文档,请参阅:https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass
另一个提供更多灵活性的apporach是在重写模块中使用代理模块:
RewriteEngine on
RewriteRule ^/?vi/([^/]+)/(.+)$ https://i.ytimg.com/vi/$1/$2 [L,P]
有关文档,请参阅:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule
与第一种方法相同的效果也可以通过仅限于主机配置的符号来实现:
ProxyRequests off
<Location /vi/>
ProxyPass https://i.ytimg.com/vi/
</Location>
两种上层方法都可以在http主机配置中使用,或者,如果确实有必要,可以在动态配置文件(.htaccess
样式文件)中使用。通常,您应该始终更喜欢在主机配置中放置此类规则。 .htaccess
样式文件增加了复杂性,众所周知容易出错,难以调试,它们确实会降低http服务器的速度。它们仅作为最后一个选项提供给您无法控制主机配置的情况(阅读:非常便宜的托管服务提供商),或者您有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。