大家好,我是飞小优,在Google search console中查询网页收录索引结果时经常会看到一些未索引的结果,时不时会报错404
状态码。针对这些不想要爬虫抓取 及索引的”无良地址“如何处理呢?
答案就是利用Robots文件进行屏蔽。因此在操作之前先得弄清楚其结构含义及具体使用书写规范,只有这样才能让你的网站更加合规。
Disallow: /index.php/及Disallow: /index.php含义
认识 /index.php/和/index.php
/index.php/
通常是一个网页的入口文件,在PHP编程中特别常见。它通常包含网站的前端代码,可能还包含一些基本的业务逻辑。
/index.php
通常是一个默认的首页文件,当访问一个目录时,如果未指定具体的文件名,很多服务器会默认寻找并加载名为index的文件,通常是index.php
。它是一个PHP脚本文件,可以包含HTML代码以及PHP代码,用于处理请求和展示网页内容。
因此二者完全是两个不同的概念。一个是目录结构一个是默认网页首页文件,也可说按照所属关系原理,简单理解前者包含后者。
示例详解
Robots文件书写规则
根据上图提供的信息,Disallow: /index.php/
是用来禁止搜索引擎爬虫访问以 /index.php/ 开头的网页或资源。什么意思呢?就是说,这个网站目录下有很多其他的链接组合(因为从.php
扩展名看是动态网页)。举个列子:
https://你的域名/index.php/a.html
https://你的域名/index.php/其他目录/a.html
https://你的域名/index.php/.../a.html
在robots.txt 文件中,这一行代码会告诉搜索引擎机器人不要抓取和索引任何以 /index.php/
开头的URL。
按上述介绍如果有一系列以 /index.php?category=
或 /index.php?page=
开头的页面,并且不希望搜索引擎索引这些页面的内容,那么使用 Disallow: /index.php/
就能实现这个目的。
然而,请注意,Disallow: /index.php/
并不会禁止爬虫访问和索引以 /index.php 开头但后面没有斜杠的URL(如 /index.php )。如果也希望禁止这类URL,需要使用以下规则:
Disallow: /*.php$
这将禁止所有以.php
结尾的URL,无论是 /index.php
还是其他任何PHP脚本文件。
最后,如果想要完全禁止爬虫访问网站,应该使用 User-agent: *
这样的规则,它会针对所有搜索引擎爬虫。结合 Disallow: /
这条规则,将会禁止爬虫访问网站的所有内容。这是禁止搜索引擎索引整个网站的常见方法。
以上就是关于Disallow: /index.php/
及Disallow: /index.php
的操作介绍。如有更多具体问题,欢迎留言询问。
问题延伸
Disallow: /*.php$和Disallow:/index.php/互斥吗?
在robots.txt 文件中,Disallow: /*.php$
和 Disallow: /index.php$
不是互斥的。这两行分别表示禁止爬虫访问以.php
结尾的所有文件和禁止爬虫访问以/index.php
为路径的页面。它们各自独立地指定了不允许搜索引擎爬虫访问的网页资源。Disallow: /*.php$
是指禁止所有以.php
为扩展名的文件,而 Disallow: /index.php$
是专门禁止根目录下的index.php
文件(当以这个路径访问时)。如果网站上有其他.php
文件但不是以/index.php
形式出现的,那么这些文件将不会受到第二条规则的影响,依然可以被搜索引擎爬虫访问。
总结来说,这两条规则可以同时存在于robots.txt
文件中,并且会根据其指定的路径和扩展名来分别应用。如果希望禁止搜索引擎爬虫访问所有的.php
文件,包括/index.php
,那么只需使用第一条规则(Disallow: /*.php$)
即可。