加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Google的索引XSLT页面

发布时间:2020-12-13 13:05:48 所属栏目:PHP教程 来源:网络整理
导读:我的站点是使用 XML作为数据存储创建的,而XSLT则用作模板.看来谷歌在基于XML / XSLT的索引网站上并不是很好.是否有任何有效/易于实现的软件组件可以为Google bot索引器呈现XSLT?如果他们使用 PHP,那会更好. 看看PHP XSLT处理器. http://php.net/manual/en/c
我的站点是使用 XML作为数据存储创建的,而XSLT则用作模板.看来谷歌在基于XML / XSLT的索引网站上并不是很好.是否有任何有效/易于实现的软件组件可以为Google bot索引器呈现XSLT?如果他们使用 PHP,那会更好.
看看PHP XSLT处理器.

http://php.net/manual/en/class.xsltprocessor.php

使用方法如下:

<?php 
$sXml  = "<xml>"; 
$sXml .= "<sudhir>hello sudhir</sudhir>"; 
$sXml .= "</xml>"; 

# LOAD XML FILE 
$XML = new DOMDocument(); 
$XML->loadXML( $sXml ); 

# START XSLT 
$xslt = new XSLTProcessor(); 
$XSL = new DOMDocument(); 
$XSL->load( 'xsl/index.xsl',LIBXML_NOCDATA); 
$xslt->importStylesheet( $XSL ); 
#PRINT 
print $xslt->transformToXML( $XML ); 
?>

(自http://php.net/manual/en/book.xsl.php起)

UPDATE

您在评论中询问如何拦截来自特定用户代理(例如Googlebot)的请求.有多种方法可以执行此操作,具体取决于您使用的Web服务器技术.

在Apache上,一种方法是使用mod_rewrite在内部将请求处理转移到包含类似于我们上面看到的代码的PHP脚本.此脚本从最初请求的URL中检索XML,并将转换呈现给客户端.重写规则将有一个Rewrite Condition,用于将HTTP_USER_AGENT标头与Google进行比较.这是一个规则的例子(未经测试,但你应该得到这个想法):

RewriteCond %{HTTP_USER_AGENT} ^(.*)Googlebot(.*)$[NC]
RewriteRule ^(.*.xml.*)$/renderxslt.php?url=$1 [L]

简而言之,条件是查找以字符串“googlebot”开头的引荐来源,并且重写规则匹配任何带有字符串“.xml”的URL,并将完整的URL作为查询字符串参数传递给renderxslt.php页面.

也是IIS的mod_rewrite exis端口(http://www.isapirewrite.com/).

或者,使用IIS,您可以使用ASP.NET HTTP module拦截请求,再次检查Request.Headers [“HTTP_USER_AGENT”]以获取Google的签名.然后,您可以通过阅读PHP脚本生成的HTML,或者通过使用ASP.NET XML控件来以类似的方式继续前进:

<asp:Xml ID="Xml1" runat="server" DocumentSource="~/cdlist.xml" TransformSource="~/listformat.xsl"></asp:Xml>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读