尝试让我的Ajax页面可以抓取谷歌。但是,它无法正常工作。
顺便说一句,我调用的内容中包含链接,并作为主要导航。
<script type="text/javascript">
// Test script
$.ajaxSetup({
type: "GET",
url: "UpdateResults7.php#!",
/*dataType: "text/html", eliminated moveing from jq 1.4.1 to 1.5*/
beforeSend: function(){$("#txtResult").html("Pending"); },
success: function(html){ $("#txtResult").html(html); }
}); // close $.ajaxSetup
function dynamic_Select( state)
{
var myData = {pass_type: "<?php echo $pass_type ?>", pass_state: state};
//$.post("setSession.php", {pass_state: state });
$.ajax({
data: myData }); // close $.ajax
} // close dynamic_Select
</script>
提前致谢!
好的,谢谢你的帮助。这就是我的立场: 1.)我的页面已经用#实现了!并且AJAX工作正常 2.)我进入firefox并复制并保存了该文件的HTML版本 3.)我在php文件的顶部放了一些脚本来检测“?_escaped_fragment_ =”并重定向到html文件。
但是,当我查看Google的fetchbot时,它不会显示任何AJAX生成的内容。我甚至将“?_escaped_fragment_ =”加载到地址栏中以确认它加载了正确的html副本,事实确实如此。
以下是页面顶部的代码:
if (isset($_GET['_escaped_fragment_'])){
header(sprintf("Location: solidgreen-partners.html", $insertGoTo));
$path = $_SERVER['PHP_SELF'];
//generateStaticPHP($path);
}
最后几行不起作用。我正在尝试按照http://code.google.com/web/ajaxcrawling/docs/html-snapshot.html
所述动态生成HTML快照再次感谢您的帮助!
答案 0 :(得分:4)
看起来你对如何实现这一点的看法并不正确。
您网站上面向公众(或面向搜索引擎)的链接应采用适当的hashbang语法(#!)。这向Google(可能还有其他搜索引擎)表明您的网站是AJAX可抓取的。然后,Googlebot会使用名为_escaped_fragment_
的GET参数实际请求这些网页。您的应用程序必须接受此参数并使用它将HTML快照返回给Googlebot。
您网站上的网址,例如:
http://mydomain.com/mypage.html#!somevar=somevalue
Googlebot实际上会要求:
http://mydomain.com/mypage.html?_escaped_fragment_=somevar=somevalue
然后,您的应用程序将_escaped_fragment_
的值解析出参数,构建,然后返回相应的HTML。
但这些都不适用于您在网站上进行的实际AJAX调用。这是你的问题。
有关详细信息,请参阅:http://code.google.com/web/ajaxcrawling/docs/getting-started.html。