Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何防止google访问/索引/列出脚本页面?_Php_.htaccess - Fatal编程技术网

Php 如何防止google访问/索引/列出脚本页面?

Php 如何防止google访问/索引/列出脚本页面?,php,.htaccess,Php,.htaccess,因此,我有一些通过AJAX访问的PHP脚本页面,还有一些通过POST或GET访问,用于发送电子邮件和访问数据库。虽然我知道搜索引擎可能对这些页面不感兴趣,但我不想让它知道这些页面的存在 我想要一个可靠的方法来区分搜索引擎应该看到的页面和不应该看到的页面 我看过Matt Cutts的视频(),他在视频中解释说,阻止谷歌浏览页面的最佳方法是使用带有密码保护的.htacess。。。问题是我的脚本页面必须由用户访问 我想知道是否有一个解决方案只涉及.htacess在这个视频马特·卡茨解释说noindex

因此,我有一些通过AJAX访问的PHP脚本页面,还有一些通过POST或GET访问,用于发送电子邮件和访问数据库。虽然我知道搜索引擎可能对这些页面不感兴趣,但我不想让它知道这些页面的存在

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

我看过Matt Cutts的视频(),他在视频中解释说,阻止谷歌浏览页面的最佳方法是使用带有密码保护的.htacess。。。问题是我的脚本页面必须由用户访问

我想知道是否有一个解决方案只涉及.htacess在这个视频马特·卡茨解释说noindex,robots.txt不是很有效

因此,解决方案必须遵循以下规则:

  • 仅使用.htacess(或可以工作但没有例外的东西)
  • 没有HTML标记,因为我在.responseText中得到了特定的响应(这些页面甚至没有HTML,只有php)
  • 允许单页限制(例如非完整目录)
  • 允许用户访问

我搜索了很多,看到了很多解决方案,但没有一个对我有效,所以,有什么想法吗?

为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]
对于单页重定向:

RewriteEngine On

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

RewriteCond %{HTTP_USER_AGENT}   ^googlebot
RewriteRule ^([^/\.]+)/?$ yourpage.php [L]
以防您想要重定向多个文件(我假设您会这样做)

希望这有帮助

请注意,这必须上载到父目录,而不是ajax文件夹

为不同的解决方案编辑,因为您似乎热衷于单文件重定向,如果搜索引擎机器人进入您的站点,您可以返回PHP301重定向

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”);
}

很好,为谷歌工作。只需要注意的是,你必须为每个主要的爬虫程序找到用户代理。这个答案不符合我的规则:允许单页限制(例如不允许完整目录)。我正在构建分类广告网站的最后阶段,我现在不会改变它的整体结构!你知道一些适用于所有主要搜索引擎的东西吗,最好不用指定每一个?我想你就快到了。谢谢你的帮助,但这不是一个非常可靠的方法,这正是我想要的。请参阅关于如何在php中对每个文件执行此操作的进一步编辑