PHP合集360观点、手机搜索SEO分享:PHP自动生成百度开放适配及360移动适配专用Sitemap文件|张戈博客...

佚名 次浏览

摘要:而张戈对于移动适配也是关注已久,写过不少相关文章,现在就来分享一个通过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.前往站长平台提交

21412_400395103.shtml

成功提交预览:

21412_400395103.shtml

21412_400395103.shtml

成功提交预览:

21412_400395103.shtml

如果以上都没有问题的话,那么恭喜你!你已经彻底解决了百度开放适配和360手机适配项目……!

至此,张哥终于解决了百度开放适配和360移动适配专用站点地图无法自动更新的历史难题!

5.百度打开适配效果展示

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

21412_400395103.shtml

看完上面的图片,你可能会想,这不就是一堆移动二级网站的集合吗?好吧,试试搜索site:m.zhangge.net:

21412_400395103.shtml

看完上面的图,不用多说,相信大家已经明白百度开放适配的效果了!

后记:PHP代码是动态生成的,所以保证搜索引擎更新抓取时是最新的!不会像以前一样手动生成更新那么痛苦!不过暂时有点遗憾,只生成了文章页面的对应关系,没有提供单页和分类!不过,适应文章差不多就够了!

防范措施;

①.本文提供的方法仅适用于WordPress建站程序,其他PHP建站程序仅提供参考思路;

②、代码默认支持

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

随机内容