0

好吧,我把头撞在桌子上,显然错过了一些简单的事情。

试图让我的 Ajax 页面可被 google 抓取。但是,它不起作用。

顺便说一句,我调用的内容中有链接并用作主要导航。

    <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 快照

再次感谢你的帮助!

4

1 回答 1

4

看起来您对应该如何实现这一点没有正确的想法。

您网站上面向公众(或面向搜索引擎)的链接应在适当的情况下使用 hashbang 语法 (#!)。这向 Google(可能还有其他搜索引擎)表明您的网站是 AJAX 可抓取的。然后,Googlebot 将使用名为 的 GET 参数实际请求这些页面_escaped_fragment_。您的应用程序必须接受此参数并利用它向 Googlebot 返回 HTML 快照。

因此,您网站上的 URL,例如:

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了解更多信息。

于 2011-08-17T15:37:57.667 回答