在Linux, Apache, PHP网站上,我需要确保我的网站上的子目录/cms不能被搜索引擎抓取。
看,在网站的根,我已经安装了一个产品目录称为品尼高推车。他们想要一个从CMS中提取内容的新闻页面。我把WordPress放到了一个名为/cms的子目录下,创建了一些帖子,然后用下面的代码把它们放到了我的Pinnacle Cart主题中:
<?php require_once('../../../cms/wp-blog-header.php'); ?>
<?php $i = 1; $MAX_ARTICLES_TO_SHOW = 5; ?>
<?php while (have_posts()): the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_id(); ?>">
<h2><?php the_title(); ?></h2>
<div class="entry">
<?php the_content(); ?>
</div><!-- .entry -->
<div style="clear:both;"> </div>
<small><?php the_time('F j, Y') ?></small>
</div><!-- #post-... -->
<?php ++$i; if ($i > $MAX_ARTICLES_TO_SHOW) { break; } ?>
<?php endwhile; ?>
请注意,文章中使用的一些图像将从/cms中提取,我希望这些图像可以正常加载,但我不希望谷歌或任何搜索引擎跟随/cms下的任何内容。
还注意在WordPress/cms中,我勾选了"不要让Google, Technorati等网站索引此网站"的设置。
我想我需要调整WordPress在/cms/wp-content/themes下的默认主题,或者在网站的/cms或/(根)文件夹中设置一些。htaccess设置。
您可以将其添加到robots.txt文件中。
Disallow: /cms/
更多信息请访问http://www.robotstxt.org/robotstxt.html
搜索引擎和刮刀总是可以忽略这一点(大多数大型搜索引擎将遵循规则)。你也可以检查$_SERVER['HTTP_USER_AGENT']
,但这是可以伪造的。没有100%的方法可以阻止刮刀。
查看robots.txt文件。这是搜索引擎在抓取你的网站之前读取的文件。在该文件中,您可以指示它们完全忽略某些目录。
为什么不用robots.txt呢它是一个放在根目录中的文件,所有机器人在抓取您的站点之前都会读取它。在这个文件中,您可以指定不希望被抓取的目录。有几个链接可以让你开始http://www.robotstxt.org/robotstxt.html http://codex.wordpress.org/Search_Engine_Optimization_for_WordPress Robots.txt_Optimization
robots.txt是一个选项,正如这里的其他答案所述。
Disallow: /cms/
robots.txt文件的主要缺点是它们可以被忽略,或者仅仅被忽略,这取决于机器人。
- http://www.google.com/support/webmasters/bin/answer.py?answer=156449
- http://www.robotstxt.org/robotstxt.html
您还可以选择密码保护目录,这将阻止搜索引擎索引页面(例如谷歌和必应)。根据您的服务器环境,您还可以禁止使用.htaccess和.htpasswd访问CMS文件夹。此方法允许用户访问Wordpress安装,但不包括bot/未经身份验证的用户。
- http://httpd.apache.org/docs/2.0/howto/htaccess.html auth
另一个选项是为该特定目录设置标头404或301,同样使用.htaccess
。这显然也会阻止用户访问它,所以如果你想阻止它只对机器人,你可以白名单某些ip或用户代理字符串,允许真正的用户看到页面和机器人接收一个404头,这将阻止索引页面。