2014-09-02 52 views
0

所以,我有一些PHP腳本頁面通過AJAX訪問,其他通過POST或GET並用於發送電子郵件和訪問數據庫,雖然我知道搜索引擎可能不會對這些頁面感興趣,但我不希望它甚至知道那些存在。如何防止谷歌訪問/索引/列表到腳本頁面?

我想要一個穩固的方式來分隔應該由搜索引擎看到的頁面和不應該看到的頁面。

我見過Matt Cutts的視頻(https://www.youtube.com/watch?v=nM2VDkXPt0I),他解釋說,防止頁面被Google查看的最好方法是使用帶密碼保護的.htacess。問題是我的腳本頁面必須是由用戶訪問。

我想知道是否有一個解決方案只涉及.htacess一次在這個視頻馬特卡茨解釋說,noindex,robots.txt不是很有效。

因此,解決方案必須遵循的規則:

  • 僅使用.htacess(或一些作品,但沒有例外)
  • ,因爲我得到的具體響應的HTML標記。 responseText的(這些頁面甚至沒有HTML,PHP只)
  • 允許單個頁面的限制(例如不完整的目錄)
  • 允許用戶訪問

我搜索了很多東西,並且看到了很多解決方案,但沒有任何適合我的東西,所以,有什麼想法?

回答

1

爲您的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」); 
} 
+0

尼斯,適用於谷歌。只需要注意,您必須爲每個主要爬蟲找到useragents。 – ArtOfCode 2014-09-02 22:24:45

+0

這個答案那些不遵循我的規則: 允許單頁限制(例如不完整的目錄) 我正處於建立我的分類網站的最後階段,我現在不會改變它的整個結構! – 2014-09-02 22:26:17

+0

看到我的編輯 - 希望這可以幫助 – Corbin 2014-09-02 22:31:00