我的网站(www.example.com)有我所有的图像通过CDN托管在一个不同的子域(cdn.example.com)。
我们最近注意到了一种奇怪的行为,似乎Googlebot-Image/1.0试图从CDN域抓取有效的图像URL,但以站点域作为前缀(或者添加一个前导斜杠?)。
它不是在https://cdn.example.com/product/12345.jpg请求图像,而是试图请求https://www.example.com/https:/cdn.example.com/product/12345.jpg
这导致每周有成千上万的异常记录在我们的主站点上,因为实际的URL是无效的。
除了对站点本身进行编程以处理格式错误的URL之外,我还能做些什么来缓解这种情况吗?
拒绝www域上的Googlebot-映像会阻止它成功地爬行cdn域吗?
我需要robots.txt域本身的cdn文件吗?
发布于 2020-02-18 22:12:00
这很可能是由于网页中的URL格式错误造成的。注意,https://www.example.com/https:/cdn.example.com/product/12345.jpg在https:/cdn中只有一个斜杠,而不是两个斜杠。如果您的页面有一个<img src="https:/cdn.example.com/...",它可能被解释为一个相对链接。
解决方案是找到站点中的所有图像URL,并确保它们具有两个斜线的良好格式。或者,您可以使用以两个斜杠开头的协议相对链接:<img src="//cdn.example.com/..."。
在web服务器上,您可以重定向包含"http:/“的URL,如下所示:
RewriteEngine On
RewriteCond %{THE_REQUEST} .*(https?):/{1,2}(cdn\.example\.com/.*) [NC]
RewriteRule ^(.*)$ %1://%2 [R=301,L]这将处理所有具有http或https、一个或两个斜杠以及可选路径前缀的请求:
https://www.example.com/https:/cdn.example.com/product/12345.jpghttps://www.example.com/http:/cdn.example.com/product/12345.jpghttps://www.example.com/https://cdn.example.com/product/12345.jpghttps://www.example.com/some-path/https:/cdn.example.com/product/12345.jpghttps://webmasters.stackexchange.com/questions/126463
复制相似问题