wordpress禁止搜索引擎抓取指定路徑或者是動(dòng)態(tài)路徑頁面

今天查詢發(fā)現(xiàn)上午發(fā)布的一篇文章被收錄了,但收錄的地址卻是動(dòng)態(tài)的。

可以我的網(wǎng)站是偽靜態(tài)的,所以就不想讓它收錄動(dòng)態(tài)頁面。robots里面加入了禁止抓取這些動(dòng)態(tài)地址和某些路徑,但是蜘蛛依然每天抓取,而且還收錄了!所以只能強(qiáng)制禁止它訪問。

把下列代碼加入到服務(wù)器配置文件ROOT后面即可

#### 禁止搜索引擎訪問指定文件夾或者路徑 【開始】####
    #初始化變量為空
    set $deny_spider "";
    #如果請(qǐng)求地址中含有需要禁止抓取關(guān)鍵詞時(shí),將變量設(shè)置為y:
    if ($request_uri  ~* "\?replytocom=(\d+)|\?p=(\d+)|/feed|/date|/wp-admin|comment-page-(\d+)|/go") {
         set $deny_spider 'y';
    }
    #如果抓取的UA中含有spider或bot時(shí),繼續(xù)為變量賦值(通過累加賦值間接實(shí)現(xiàn)nginx的多重條件判斷)
    if ($http_user_agent ~* "spider|bot") {
     set $deny_spider "${deny_spider}es";
    }
    #當(dāng)滿足以上2個(gè)條件時(shí),則返回404,符合搜索引擎死鏈標(biāo)準(zhǔn)
     if ($deny_spider = 'yes') {
         return 403; #如果是刪除已收錄的,則可以返回404
         break;
     }
     #### 禁止搜索引擎訪問指定文件夾或者路徑【結(jié)束】 ####

然后測(cè)試一下,動(dòng)態(tài)地址抓取失敗,靜態(tài)地址成功。

還有一種方法就是把代碼直接寫進(jìn)當(dāng)前主題頁的functions.php里面即可。

PHP代碼如下

/*禁止蜘蛛抓取指定路徑代碼*/
ob_start("Deny_Spider_Advanced");
function Deny_Spider_Advanced() {
    $UA = $_SERVER['HTTP_USER_AGENT'];
    $Request_uri = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
    $Spider_UA  = '/(spider|bot|)/i'; //定義需要禁止的蜘蛛U(xiǎn)A,一般是spider和bot
    //禁止蜘蛛抓取的路徑,可以參考自己的robots內(nèi)容,每個(gè)關(guān)鍵詞用分隔符隔開,需注意特殊字符的轉(zhuǎn)義
    $Deny_path  = '/\?replytocom=(\d+)|\?p=(\d+)|\/feed|\/date|\/wp-admin|wp-includes|\/go|comment-page-(\d+)/i';
    //如果檢測(cè)到UA為空,可能是采集行為
    if(!$UA) {
        header("Content-type: text/html; charset=utf-8");
        wp_die('請(qǐng)勿采集本站,因?yàn)椴杉恼鹃L木有小JJ!');
    } else {
        //如果發(fā)現(xiàn)是蜘蛛,并且抓取路徑匹配到了禁止抓取關(guān)鍵詞則返回404或者403
        if(preg_match_all($Spider_UA,$UA) && preg_match_all($Deny_path,$Request_uri)) {
             //header('HTTP/1.1 404 Not Found');  
             //header("status: 404 Not Found");       
             header('HTTP/1.1 403 Forbidden'); 
             header("status: 403 Forbidden");             
        }
    }
}

寫在最后,我在發(fā)布這個(gè)篇文章時(shí),發(fā)現(xiàn)發(fā)布按鈕是灰色不可用的。用控制臺(tái)檢查發(fā)現(xiàn)有錯(cuò)誤:Failed to load resource: the server responded with a status of 403 ()

原來是上面規(guī)則中訪問后臺(tái)目錄會(huì)出現(xiàn)403錯(cuò)誤。把后臺(tái)目錄從上面規(guī)則里刪除即可。

 

THE END
亚洲中文色欧另类欧美,久久久久久久激情,亚洲 日韩 欧美 另类 国产,中文字幕高清无码男人的天堂 www.sucaiwu.net