关于 robots.txt 文件使用的格式及注意 早在四年前子凡就曾在泪雪博客写过了,robots.txt的重要与必要性不言而喻,而在子凡前段时间的 网站 SEO 诊断之 robots.txt 文件配置误区及详细写法 也再次提及,那么这次在泪雪博客实现独立百度 MIP版站点的时候,WordPress 就需要在实现多域名绑定的同时,还能够实现独立的 robots.txt 文件配置。

随着百度对 MIP 项目的投入,同时也因为 MIP 站点页面在百度移动端搜索结果的优待,各大网站也都纷纷开始研究折腾改造并引入百度 MIP,子凡就是其中一员,只是子凡主要的改造和研究对象是针对于 WordPress 这个开源程序而深度改造。

Configure Robots.txt for WordPress

根据百度 MIP 官方的建议改造 MIP 的方法,最好的就是搭建独立的 MIP 站点,因为这样做的最大好处就是不影响原有站点。这可能也会是大家对 MIP 引入的最佳方式了,虽然子凡在一些讨论群里面看到有些人非常偏执的说要把自己的整站直接改为 MIP 版,直接忽略和无视其它搜索引擎,子凡就不评论也不否定了,因为每个人看到的不一样,就像我的泪雪博客,肯定不可能仅仅只是针对百度搜索引擎的用户,所以选择研究和开发独立的 MIP 站点。

同时问题也就产生了,MIP 站点的内容和原站的内容是一样的,所以为了不让其它搜索引擎抓取,就需要使用 robots.txt 来限制搜索引擎的抓取和限制,只允许百度抓取 mip,原来站点不变,而子凡这次分享的代码就是解决这个问题啦。

好了,回到今天的正题的,那就是 WordPress 根据不同的域名配置不同和独立的 robots.txt 文件吧,这个功能也是子凡在最近改造泪雪博客中所开发出来的,昨天也有人来问我要这个代码,所以这里就直接分享出来吧!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//WordPress多域名绑定独立配置robots.txt文件
//移除WordPress默认robots
add_action('robots_txt', 'Fanly_remove_robots');
function Fanly_remove_robots() {return '';}
//创建自己的robots
add_action('do_robots', 'Fanly_do_robots');
function Fanly_do_robots() {
	$robots = $_SERVER['SERVER_NAME']?$_SERVER['SERVER_NAME'].'.txt':$_SERVER['HTTP_HOST'].'.txt';//定义domain.txt为robots.txt文件
	if (is_readable($robots) !== false) {//判断这个文件是否存在或可读
		$content = file_get_contents($robots);//可读则优先显示文件robots.txt
		echo $content;
	} else { //否者显示以下
		header( 'Content-Type: text/plain; charset=utf-8' );
		$public = get_option( 'blog_public' );
		if ( '0' == $public ) {//判断网站是否开放
			$output = "User-agent: *\n";
			$output .= "Disallow: /\n";
		} else {//开放则显示以下
			$site_url = parse_url( site_url() );
			$path = ( !empty( $site_url['path'] ) ) ? $site_url['path'] : '';
			$output .= "Disallow: $path/wp-admin/\n";
			$output .= "Allow: $path/wp-admin/admin-ajax.php\n";
		}
		echo apply_filters( 'Fanly_robots_txt', $output, $public );
	}
}

直接将以上代码添加到你所需要使用的主题 functions.php 中,然后将你 WordPress 站点根目录的原有 robots.txt 删除或改名,然后使用你的 域名.txt 命名,例如:zhangzifan.com.txt 或 mip.zhangzifan.com.txt

如果有使用疑问欢迎在泪雪博客留言即可。

除非注明,否则均为泪雪博客原创文章,转载请以链接形式标明本文地址

本文链接:https://zhangzifan.com/wordpress-multi-domain-robots-txt.html

发表评论

  1. 抛物线
    1楼
    抛物线 7个月前 (12-07)

    不成功,还是使用的wordpress自动生成的robots.txt

    • 张子凡
      回复
      张子凡 7个月前 (12-07)
      回复 @抛物线 :初步估计你可能没有删除或者改名根目录下原有的robots.txt文件
      • 抛物线
        回复
        抛物线 7个月前 (12-07)
        回复 @张子凡 :根目录下没有这个文件,用rm -rf删过,也打开隐藏文件设置在xftp里看过,没有
        • 抛物线
          回复
          抛物线 7个月前 (12-08)
          回复 @抛物线 :非常好用,我加错functions了,应该加在移动站主题的functions.php里,我加到了PC站的
  2. qq昵称大全
    2楼
    qq昵称大全 2年前 (2016-12-03)

    好复杂的样子,二级域名可以绑定网站分类吗?

    • 张子凡
      回复
      张子凡 2年前 (2016-12-03)
      回复 @qq昵称大全 :WordPress好像有相关的插件可以实现分类目录绑定域名
  3. 马超金博客
    3楼
    马超金博客 2年前 (2016-12-02)

    来支持一下

    • 张子凡
      回复
      张子凡 2年前 (2016-12-03)
      回复 @马超金博客 :谢谢 欢迎常来
  4. 松松软文发布
    4楼
    松松软文发布 2年前 (2016-11-26)

    不怎么看得懂

  5. 征帆网络
    5楼
    征帆网络 2年前 (2016-11-26)

    配置robots.txt文件还蛮容易的吧。

    • 张子凡
      回复
      张子凡 2年前 (2016-11-26)
      回复 @征帆网络 :配置robots.txt本身很简单
  6. 乐赚168
    6楼
    乐赚168 2年前 (2016-11-25)

    板凳是我的

    • 张子凡
      回复
      张子凡 2年前 (2016-11-25)
      回复 @乐赚168 :这不是论坛,怎么都来抢沙发板凳了
  7. 任务易
    7楼
    任务易 2年前 (2016-11-24)

    绝对的沙发~get

    • 张子凡
      回复
      张子凡 2年前 (2016-11-24)
      回复 @任务易 :哈哈哈,来得真早