【问题标题】:Joomla noindex,follow PHP codeJoomla noindex,跟随 PHP 代码
【发布时间】:2011-05-16 06:48:42
【问题描述】:

我有一个基于 joomla 的新闻网站,其中有大量无用的页面显示在搜索引擎索引中。至少作为一个快速修复,直到我可以从头开始重建网站我想在所有页面上实现一个 NOINDEX,FOLLOW 元标记,除了主页和以 .html 结尾的文章页面

处理发现hereelsewhere的各种sn-ps代码我想出了这个:

<?php
if ((JRequest::getVar('view') == "frontpage" ) || ($_SERVER['REQUEST_URI']=='*.html' ))    {
echo "<meta name=\"robots\" content=\"index,follow\"/>\n";
} else {
echo "<meta name=\"robots\" content=\"noindex,follow\"/>\n";
}
?> 

我对 php 编程还是很陌生,而且我确信我一定会犯一些错误,所以我想知道是否有好心人能够将我的代码重新提交一遍并告诉我如果在我不小心核对我的网站之前可以使用。

谢谢,

汤姆

【问题讨论】:

    标签: php joomla seo


    【解决方案1】:

    使用robots.txt 文件不是更好吗?

    一些主要的爬虫支持允许指令,它可以抵消随后的禁止指令。这在不允许整个目录但仍希望对该目录中的一些 HTML 文档进行爬网和索引时很有用。虽然通过标准实现,第一个匹配的 robots.txt 模式总是胜出,但 Google 的实现不同之处在于,允许在指令路径中具有相同或更多字符的模式胜过匹配的 Disallow 模式。 Bing 使用最具体的 Allow 或 Disallow 指令。

    为了与所有机器人兼容,如果要允许单个文件进入原本不允许的目录,则必须首先放置 Allow 指令,然后是 Disallow,例如:

    Allow: /folder1/myfile.html
    Disallow: /folder1/
    

    此示例将禁止 /folder1/ 中除 /folder1/myfile.html 之外的任何内容,因为后者将首先匹配。但是,对于 Google,顺序并不重要。

    【讨论】:

    • 我会为此使用 robots.txt 文件,我认为有一些 SEO/SEF 扩展也会将元标记添加到您选择的页面。
    • 嗨,我看到的 robots.txt 的问题是我必须禁止每个我不想编入索引的部分,这很复杂,因为我们的系统会自动生成新部分。如果我禁止所有内容,只允许主页和 .html 页面,那么这些部分都不会被抓取,从而有效地掩盖了搜索引擎的所有更深层次的文章。
    • @Tom,如果您使用 Allow 指令,则不会。只允许首页和文章目录,禁止其他所有内容。
    【解决方案2】:

    这永远不会匹配:

    $_SERVER['REQUEST_URI']=='*.html'
    

    == 是文字比较,不解析通配符。您可以使用 substr 检查字符串的结尾:

    substr($_SERVER['REQUEST_URI'], -5) == '.html'
    

    或者你可以使用正则表达式:

    //This will match when .html is enywhere inside the string
    preg_match('/\.html/', $_SERVER['REQUEST_URI'])
    
    //This will match when .html is at the end of the string, but the
    //substr solution is faster in that case
    preg_match('/\.html$/', $_SERVER['REQUEST_URI'])
    

    【讨论】:

      【解决方案3】:

      从这里的海报和一个朋友那里得到建议,我想出了这个:

      你需要去 /public_html/libraries/joomla/document/html 并编辑 html.php

      替换

      //set default document metadata
           $this->setMetaData('Content-Type', $this->_mime . '; charset=' . $this->_charset , true );
           $this->setMetaData('robots', 'index, follow' );
      

      //set default document metadata
      $this->setMetaData('Content-Type', $this->_mime . '; charset=' . $this->_charset , true );
      
      $queryString = $_SERVER['REQUEST_URI'];
      if (( $queryString == '' ) || ( $queryString == 'index.php/National-news' ) || ( $queryString == 'index.php/Business' ) || ( $queryString == 'index.php/Sport' ) || ( substr($queryString, -5 ) == '.html' )) {
      $this->setMetaData('robots', 'index, follow' );
      }else {
      $this->setMetaData('robots', 'noindex, follow' );
      }
      

      这将更新网站上每个页面上的元机器人标签,从搜索引擎中删除所有混乱的内容,只留下我们希望在索引中找到的内容。

      我将在接下来的几天内尝试在测试服务器上运行它并报告。

      【讨论】:

        猜你喜欢
        • 2012-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        相关资源
        最近更新 更多