为什么我们网站上的URL有时会返回200,有时还会返回301?这似乎发生在我们的一些URL上,甚至是一些基本的URL,比如example.com/robots.txt。
当我自己加载URL时-它总是返回一个200
该站点被配置为www.example.com/robot.txt --是否是机器人正在查看非www版本并被重定向?
发布于 2021-12-02 05:14:02
对不起,我们在评论中有答案的案例。必须改正。
3.1客户端(在我们的例子中是Googlebot)将请求url (例如,带有“错误”子域或协议)发送到服务器端:80。
3.2在服务器上,在端口80上,我们有一个web服务器软件,可以监听类似的请求。它获取请求,并通过一堆逻辑运行请求,以了解如何处理它。它看到它有规则(通常在.htaccess中,但并不总是)将所有http:// url重定向到其https:// version,因此它向客户机发送一个响应,代码301和位置字段设置为url的https:// version。
3.3在将客户端发送出去后,web服务器无需等待下一次攻击,就会在其访问日志中记录显示已经发生了攻击,并对其进行了处理。在此之后,网络服务器永远忘记了那个客户端。
3.4客户机从服务器获得响应,然后有机地向接收到的响应的位置发出另一个请求,从而向页的https://版本发出请求。
3.5 web服务器获得另一个请求,并将其视为从来没有原始请求:它经过一串逻辑,并看到这种请求模式必须分配给php以获得响应,因此它将请求(和cookie)交给php端点,而php返回一个主体来响应客户端。web服务器响应客户端并在访问日志中创建另一条记录。
因此,在301命中之后,您几乎总是会在日志中得到另一个命中。
这里我忽略了许多细微之处,比如CDN、SSL/TLS握手、http2握手,但这只是为了给web服务器日志如何工作提供非常基本的理解。
https://webmasters.stackexchange.com/questions/137740
复制相似问题