如何防止谷歌访问/索引/列表到脚本页面?

时间:2014-09-02 22:11:46

标签: php .htaccess

所以,我有一些PHP脚本页面可以通过AJAX访问,其他人通过POST或GET访问,用于发送电子邮件和访问数据库,虽然我知道搜索引擎可能不会对这个页面感兴趣我做不想让它甚至知道那些存在。

我想要一种可靠的方法来分隔搜索引擎应该看到的页面和不应该看到的页面。

我见过Matt Cutts视频(https://www.youtube.com/watch?v=nM2VDkXPt0I),其中他解释说阻止Google浏览网页的最佳方法是使用.htacess密码保护...问题是我的脚本页面必须由用户访问。

我想知道在这个视频中是否有一个仅涉及.htacess的解决方案Matt Cutts解释说noindex,robots.txt不是很有效。

所以解决方案必须遵守规则:

  • 仅使用.htacess(或可行的,但无例外)
  • 没有HTML标签,因为我收到了特定的响应.responseText(这些页面甚至没有html,只是php)
  • 允许单页限制(例如,不是完整目录)
  • 允许用户访问

我经常搜索,看到很多解决方案,但没有什么对我有用,那么,有什么想法吗?

1 个答案:

答案 0 :(得分:2)

为ajax页面创建一个目录,然后设置htaccess以阻止Google访问它。

对于目录重定向:

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT}   ^googlebot
RewriteRule ^/ajax/ - [F,L]

对于单页重定向:

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT}   ^googlebot
RewriteRule ^([^/\.]+)/?$ yourpage.php [L]

以防您想要重定向多个文件(我假设您这样做)

RewriteCond %{HTTP_USER_AGENT}   ^googlebot
RewriteRule ^(file1|file2|file3|file4)\.html$ http://www.yoursite.com [R=301,NC,L]

希望这有帮助。

请注意,必须将其上传到父目录而不是ajax文件夹。

编辑其他解决方案,因为您似乎热衷于单个文件重定向,如果搜索引擎机器人进入您的网站,您可以返回PHP 301重定向

function bot_detected() {

 if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
 return TRUE;
  }
   else {
  return FALSE;
  }

}


if(bot_detected() {
header (“http/1.1 301 Moved Permanently”);
header (“Location: http://www.yourwebsite.com”);
}