摘要:而张戈对于移动适配也是关注已久,写过不少相关文章,现在就来分享一个通过php自动生成百度开放适配和360移动适配的专用sitemap文件的方法。至此,张戈终于搞定百度开放适配和360移动适配专用sitemap没法自动更新的历史遗留问题!
引言:随着智能手机的快速普及,人们花在手机上的时间越来越多,做着以前只能在电脑上才能做的事情伪静态 百度不收录,比如购物、聊天、获取信息等。因此,站长们对移动端SEO的关注度也越来越高。当然各大搜索引擎也开始关注移动搜索,比如百度最近举办的2014网站移动端大赛及开放适配,360的移动端适配。张哥也关注移动端适配很久了,写过很多相关文章。现在给大家分享一种通过PHP自动生成百度开放适配和360移动端适配专用站点地图文件的方法。
我们来回顾一下张哥对于百度开放适配以及360移动适配的历史:
必须说明的是,下面介绍的专用适配Sitemap与我们通常说的网站地图Sitemap有所不同,百度开放的适配Sitemap里面包含了PC页面与移动页面的对应关系,例如:
然后你就可以通过这个专用的sitemap文件把对应关系提交给百度进行开放适配了,适配成功之后百度会在移动搜索中把原来的PC页面结果替换成对应的移动页面结果,具体可以参考百度官方文档:#3
另外,对于响应式网站,就不需要浪费时间看下文了伪静态 百度不收录,只需要在head后面加一个meta语句,禁止百度转码就可以了。
明确了概念之后,我们继续往下看。
1. 改编前的准备
生成适配文件之前需要有PC网站的移动版本,本文提供的代码默认支持二级域名作为移动站点,如果想使用二级域名作为移动站点请查看张哥博客相关文章:
2. 生成专用 Sitemap 文件的 PHP 代码
①.百度开放适配:
需要('./wp-blog-header.php');
标头(“内容类型:text/xml”);
标头('HTTP / 1.1 200OK');
$posts_to_show=1000; //限制最多可生成 1000 个帖子
回声'';
回声'
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9">';
日常的
1.0
标头(“内容类型:text/xml”);
$myposts=get_posts("numberposts=".$posts_to_show);
foreach($mypostsas$post){?>
每月
0.6
②、360手机适配:
需要('./wp-blog-header.php');
标头(“内容类型:text/txt”);
标头('HTTP / 1.1 200OK');
$posts_to_show=1000; //限制最多可生成 1000 个帖子
标头(“内容类型:text/txt”);
$myposts=get_posts("numberposts=".$posts_to_show);
foreach($mypostsas$post){?>
代码解释:
,以上代码默认限制1000篇文章,如需修改,请更改第5行的值;
2、涉及张哥博客域名(*.zhangge.net)的代码请根据实际情况修改为自己网站的域名;
如果您的移动网站有多种布局,那么请在上面选择多个百度适配代码,总之以实际情况为准,例如张哥博客的移动版是XHTML格式,那么您只需保留XHTML那一行即可!
附言:如何查看网站布局?
一般在网站上
前面会有对应的布局声明,如下所示:
XHTML 布局声明:
htmlPUBLIC"-//WAPFORUM//DTDXHTMLMobile1.0//EN""http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
WML 布局声明:
wmlPUBLIC"-//WAPFORUM//DTDWML1.1//EN""http://www.wapforum.org/DTD/wml_1.1.xml">
HTML5布局声明:
HTML>
如果您发现您的移动网站还在使用通用的PC版式声明,请将其更改为对应的移动版式声明,以加快搜索引擎识别速度。
补充说明:如果是其他型号的移动台该如何修改?
(1)如果是二级目录格式,请将代码中的m.zhangge.net全部替换为yoursite.com/wap。
(2)如果参数是这种形式:
请按照以下两种方式更改代码:
变成:
类型=移动
只要添加你移动端网站对应的转换参数就可以了,至于代码里如何修改首页的对应关系,相信大家自己都能做到,就不细说了!
为了避免代码复制造成混淆,以上代码以包下载的形式提供:
按照以上说明下载并解压并修改后,请上传至网站根目录。
2. 添加 the_sitemaplink() 函数
请编辑主题目录中的functions.php文件并插入以下功能代码:
/** 开放适配相关函数 **/
函数 the_sitemaplink() {
返回 esc_url(apply_filters('the_permalink',get_permalink()));
完成以上步骤后,就可以手动访问2个php
如果显示正常,则可以进行下一步。
目前收集到的错误反馈及对应的解决方案如下:
①.若访问时报错500 Internal Server Error: File xxx is writeable by group,请将以上两个文件的权限设置为644。
②.访问百度开放适配PHP地址后,在第16行左右报错如下:
警告
:无法修改标头信息-标头已由(输出开始于/www/web/musk100_com/public_html/sitemap_baidu_sp.php:6)在/www/web/musk100_com/public_html/sitemap_baidu_sp.phponline中发送
这个和Apache的设置有关,好像是Win主机下特有的问题。
有两种解决方案:
方法一:打开php.ini,将output_buffering设置为on。重启appache,OK(你可以要求你的主机商解决这个问题);
方法二: 删除上面百度开放适配代码中的第25行:header("Content-type: text/xml"); 这样应该可以解决问题。
3.设置伪静态规则
从第二步最后的访问地址可以看出,使用的是PHP的动态路径,而百度规定需要提交xml格式(其实我发现php格式也能提交成功),360规定需要提交txt格式。所以,接下来就是把地址做成伪静态。
编辑网站根目录下的.htaccess文件,添加第8至11行,如下代码所示:
全部否认
RewriteEngine 开启
RewriteCond %{HTTP_HOST} ^(www\.zhangge\.net)(:80)? [NC]
重写规则 ^(.*) $1 [R=301,L]
#sitemap-shipei-start
重写规则 ^(sitemap_baidu_sp)\.xml$$1.php
重写规则 ^(sitemap_360_sp)\.txt$$1.php
#sitemap-shipei-end
命令拒绝,允许
.....轻微地....
保存后,您应该可以直接访问 xml 和 txt 路径,例如:
4.前往站长平台提交
成功提交预览:
成功提交预览:
如果以上都没有问题的话,那么恭喜你!你已经彻底解决了百度开放适配和360手机适配项目……!
至此,张哥终于解决了百度开放适配和360移动适配专用站点地图无法自动更新的历史难题!
5.百度打开适配效果展示
在手机端百度,site:zhagnge.net 可以得到如下结果:
看完上面的图片,你可能会想,这不就是一堆移动二级网站的集合吗?好吧,试试搜索site:m.zhangge.net:
看完上面的图,不用多说,相信大家已经明白百度开放适配的效果了!
后记:PHP代码是动态生成的,所以保证搜索引擎更新抓取时是最新的!不会像以前一样手动生成更新那么痛苦!不过暂时有点遗憾,只生成了文章页面的对应关系,没有提供单页和分类!不过,适应文章差不多就够了!
防范措施;
①.本文提供的方法仅适用于WordPress建站程序,其他PHP建站程序仅提供参考思路;
②、代码默认支持
最后,再次感谢PHP二次开发网对PHP技术支持!