php采集360看,移动搜索SEO分享:PHP自动生成百度开放适配及360移动适配专用的Sitemap文件 | 张戈博客...

导读,随着智能手机的高速普及,人们将更多时间放到了手机上,麻利的做着以前只能在电脑上才能完成的购物、聊天、信息获取等事情。如此一来,站长们对移动端的SEO也就越来越关注。当然,也各大搜索引擎也开始发力移动搜索,比如百度近期推出的2014网站移动化大赛和开放适配、360推出的移动适配等。而张戈对于移动适配也是关注已久,写过不少相关文章,现在就来分享一个通过php自动生成百度开放适配和360移动适配的专用sitemap文件的方法。

先再次回顾下,张戈关于百度开放适配和360移动适配的历次折腾记录:

必须要申明的是,下面介绍的专用适配Sitemap,并不同于我们平常所说的网站地图Sitemap,百度开放适配Sitemap里面是PC页—手机页的对应关系,例如:

那么可以通过这个专用sitemap文件将对应关系提交到百度开放适配,一旦适配成功,百度将会在移动搜索中将原PC页结果替换为对应的手机页结果。具体可以参考百度官方说明文档:http://zhanzhang.baidu.com/wiki/39#3

另外,响应式的网站可以不用浪费时间往下看了,只需在head后加入禁止百度转码的meta申明即可。

弄清楚概念之后,咱们继续往下看。

一、适配前的准备工作

在生成适配文件之前,你需要一个PC网站的手机版本。本文所提供的代码默认支持的是二级域名做移动站,想用二级域名做移动站的请查看张戈博客的相关文章:

二、生成专用Sitemap文件的php代码

①、百度开放适配:

require('./wp-blog-header.php');

header("Content-type: text/xml");

header('HTTP/1.1 200 OK');

$posts_to_show = 1000;  //限制最大生成1000篇

echo '<?xml  version="1.0" encoding="UTF-8"?>';

echo '

xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">';

?>

http://zhangge.net

daily

1.0

http://m.zhangge.net

http://m.zhangge.net

http://m.zhangge.net

header("Content-type: text/xml");

$myposts = get_posts( "numberposts=" . $posts_to_show );

foreach( $myposts as $post ) { ?>

monthly

0.6

②、360移动适配:

require('./wp-blog-header.php');

header("Content-type: text/txt");

header('HTTP/1.1 200 OK');

$posts_to_show = 1000;  //限制最大生成1000篇

?>

http://zhangge.net<?php  echo "\t"; ?>http://m.zhangge.net<?php  echo "\n"; ?>

header("Content-type: text/txt");

$myposts = get_posts( "numberposts=" . $posts_to_show );

foreach( $myposts as $post ) { ?>

<?php  } ?>???????????????????????????

代码说明:

<1>、以上代码默认限制1000篇文章,如需修改请改变第5行的数值即可;

<2>、涉及到张戈博客域名( *.zhangge.net )的代码,请根据实际情况修改成自己网站的域名;

<3>、如果,你的手机站有多种版式,那么上面百度适配代码也请选择多个,总之以实际为准。如,张戈博客的手机版是XHTML版式,所以只需要保留XHTML那一行即可!

Ps:如何查看网站版式?

一般在网站的

前面都会有相应的版式申明,如下所示:

XHTML版式申明:

html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

WML版式申明:

wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

HTML5版式申明:

HTML>

如果发现你的移动站用的还是PC通用的版式申明,那么请改成相应的mobile版式申明,以加快搜索引擎的识别。

补充说明:如果是其他类型的移动站,该如何修改?

(1)、如果是 http://yoursite.com/wap 这种二级目录形式,请将代码中的m.zhangge.net全部替换成 yoursite.com/wap即可。

(2)、如果是http://yoursite.com?type=mobile 这种参数形式:

请将2种代码中的

修改为:

<?php the_permalink(); ?>?type=mobile

即加上你移动站对应的转换参数即可,至于代码中的首页对应关系该如何修改,相信可以自行搞定,无需赘述!

为防止代码复制发生错乱,以上代码,特提供打包下载:

下载解压并按照上述说明修改完成后,请上传到网站根目录。

二、新增the_sitemaplink()函数

请编辑主题目录下的functions.php文件,插入以下函数代码:

/** 开放适配相关函数 **/

function the_sitemaplink() {

return esc_url( apply_filters( 'the_permalink', get_permalink() ) );

}

做完以上步骤,你就可以手动访问2个php

若显示正常,你可以继续下一步了。

目前已收集到的报错反馈,及相应解决办法:

①、若访问报500 Internal Server Error :File xxx is writeable by group错误,请将以上2个文件权限设置为644。

②、访问百度开放适配php地址后,大概在16行报出如下错误:

Warning

: Cannot modify header information - headers already sent by (output started at /www/web/musk100_com/public_html/sitemap_baidu_sp.php:6) in /www/web/musk100_com/public_html/sitemap_baidu_sp.phpon line

这个和Apache设置有关系,目测是Win主机下特有问题。

解决办法有2个:

第1种:请打开 php.ini 然后把 output_buffering 设为 on 。重起appache,OK(可以找主机商解决);

第2种:删除上文中百度开放适配代码中的第25行:header("Content-type: text/xml"); 应该可以解决。

三、设置伪静态规则

从第二步最后的访问地址可以看出,用的是php的动态路径,而百度写明了需要提交xml格式(其实,我发现php格式也可以提交成功),360则写明了需要提交txt格式。于是,接下来就是将地址伪静态化。

编辑网站根目录的 .htaccess文件,如下代码所示位置新增8~11行内容:

deny from all

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.zhangge\.net)(:80)? [NC]

RewriteRule ^(.*) http://zhangge.net/$1 [R=301,L]

#sitemap-shipei-start

RewriteRule ^(sitemap_baidu_sp)\.xml$ $1.php

RewriteRule ^(sitemap_360_sp)\.txt$ $1.php

#sitemap-shipei-end

order deny,allow

.....略....

保存之后,应该可以直接访问xml和txt路径了,如:

四、前往站长平台提交

21412_400395103.shtml

提交成功预览:

21412_400395103.shtml

21412_400395103.shtml

提交成功预览:21412_400395103.shtml

若以上未出现问题,那恭喜你!一劳永逸地搞定了百度开放适配和360移动适配这项闲得蛋疼的项目...!

至此,张戈终于搞定百度开放适配和360移动适配专用sitemap没法自动更新的历史遗留问题!

五、百度开放适配效果展示

在手机上百度,site:zhagnge.net 可得到如下图结果:

21412_400395103.shtml

看了上图,你可能会说,这不就只是收录了二级移动站么?那好,搜索 site:m.zhangge.net试试:

21412_400395103.shtml

看完上图无需多言,相信你已经明了百度开放适配是个啥效果了!

篇后语:php代码是动态生成的,如此就保证了搜索引擎更新抓取的时候,是最新状态!而不会是之前那样苦逼手动去生成和更新!不过,暂时也稍有遗憾,仅仅生成了文章页面的对应关系,单页面和分类并未提供!不过,能适配文章也差不多了!

注意事项;

①、本文提供的方法仅适合Wordpress建站程序,其他PHP建站程序仅提供参考思路;

②、代码默认支持

最后,再次感谢php二次开发网的php技术支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值