2

所以...这是在您的网站上使用内部链接的安全方式吗.. 通过这样做,我有索引页面生成通常的 php 内容部分并将其交给 div 元素。

主要问题:谷歌仍会使用这种方法索引页面吗?常识告诉我确实如此。但只要仔细检查并将其留在这里作为基本示例,如果是的话。如在。

仅举例人


服务器端

if (isset($_REQUEST['page'])) {$pageID=$_REQUEST['page'];} else {$pageID="home";}
if (isset($_REQUEST['pageMode']) && $_REQUEST['pageMode']=="js") {
  require "content/".$pageID.".php";
  exit;
} // ELSE - REST OF WEBSITE WILL BE GENERATED USING THE page VARIABLE

链接

<a class='btnMenu' href='?page=home'>Home Page</a>
<a class='btnMenu' href='?page=about'>About</a>
<a class='btnMenu' href='?page=Services'>Services</a>
<a class='btnMenu' href='?page=contact'>Contact</a>

Javascript

$(function() {
    $(".btnMenu").click(function(){return doNav(this);});
});

function doNav(objCaller) {
  var sPage = $(objCaller).attr("href").substring(6,255);
  $.get("index.php", { page: sPage, pageMode: 'js'}, function(data) {
    ("#siteContent").html(data).scrollTop(0);
  });
  return false;
}

如果有任何错误,请原谅我,因为刚刚从我的脚本中复制和粘贴,然后删除了一堆垃圾以简化它,因为它仍在原型设计/白板项目中。所以是的,它现在看起来有点讨厌。

原因:主要原因是带宽和速度,这将允许其他脚本更好地运行和控制站点/应用程序,是的,它需要通过一些编码来锁定。--

进一步的例子——在顶部插入 PHP

<?php 
  // PHP CODE HERE
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="scripts.js"></script>
</head>
<body>
  <div class='siteBody'>
    <div class='siteHeader'>
        <?php
          foreach ($pageList as $key => $value) {
            if ($pageID == $key) {$btnClass="btnMenuSel";} else {$btnClass="btnMenu";}
              echo "<a class='$btnClass' href='?page=".$key."'>".$pageList[$key]."</a>";
          }
        ?>
      </div><div id="siteContent"  style='margin-top:10px;'>
        <?php require "content/".$pageID.".php"; ?>
      </div><div class='siteFooter'>
    </div>
  </div>
</body>
</html>
4

3 回答 3

3

不,这对搜索引擎不友好。您正在使用 JavaScript 从服务器获取内容并将其显示在页面上。尽管搜索引擎在处理 JavaScript 生成的内容方面做得越来越好,但它们仍然无法处理这个问题(除非您遵循 Google 的可抓取 Ajax 标准,但上个月网站已经远离该标准,尤其是 Twitter)。

所以这对SEO不利。另外,您节省的带宽并没有您想象的那么多。节省的费用很少,而且带宽非常便宜,这完全没有必要。事实上,您花费更多的钱通过执行正常操作(页面加载)来使您的站点无法访问,并通过使用 JavaScript 来实现它,这样您就可以节省带宽成本。

是的,这是搜索引擎友好的,并且是渐进增强的一个很好的例子。因为链接仍然是可抓取的,并且加载与 JavaScript 相同的内容,所以谷歌和任何没有启用 JavaScript 的用户仍然可以很好地找到内容。使用 JavaScript 的用户将获得更快页面加载的额外好处,因为他们在单击链接时无需等待整个页面加载。

于 2012-06-24T20:47:47.823 回答
0

目前尚不清楚 SEO 的影响是什么。谷歌现在解释了一些 javascript。所以有可能——但不能保证——谷歌仍然可以阅读这些链接。通常人们想要隐藏“关于”等页面的链接。因此,如果 Google 无法阅读这些链接,您实际上可能会获得 SEO 优势。也就是说,更多的 pagerank 会集中在您关心的页面上。出于这个原因,一些大型网站实际上使用 javascript 生成指向此类页面的链接。

上线后,您可以通过查看网站管理员工具中关于我们页面的链接来检查 Google 是否找到了这些链接。

于 2012-06-24T20:50:24.230 回答
-1

我认为锚点没问题,但你应该改进服务器端脚本,因为它只输出主要内容,而不是整个页面。

通过检查 $_SERVER['HTTP_X_REQUESTED_WITH'] 您可以区分 ajax 调用和“正常”请求。这是 jquery 自动设置的标题。

如果进行了 ajax 调用,则输出主要内容,否则输出所有内容:doctype、html-tags 以及它们之间的所有有趣的东西。所以每个人都可以在没有 javascript 的情况下获得内容,甚至是爬虫和其他访问者。

更多信息:http ://davidwalsh.name/detect-ajax

例子:

<?php
    $pageID = isset($_POST['page'])
        ? $_POST['page']
        : "home";

    if ( !$_SERVER['HTTP_X_REQUESTED_WITH'] ) {
        require('content/components/header.php');
    }

    require "content/" . $pageID . ".php";

    if ( !$_SERVER['HTTP_X_REQUESTED_WITH'] ) {
        require('content/components/footer.php');
    }

?>

与内容/组件/header.php:

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style.css" />
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript" src="scripts.js"></script>
    </head>
    <body>
        <div class='siteBody'>
            <div class='siteHeader'>
                <?php
                    foreach ($pageList as $key => $value) {
                        if ($pageID == $key) {$btnClass="btnMenuSel";} else {$btnClass="btnMenu";}
                        echo "<a class='$btnClass' href='?page=".$key."'>".$pageList[$key]."</a>";
                    }
                ?>
            </div>
        <div id="siteContent"  style='margin-top:10px;'>

和内容/组件/footer.php:

        </div>
    <div class='siteFooter'></div>
    </div>
</body>
</html>
于 2012-06-24T20:59:34.393 回答