Apache下經過shell腳本提交網站404死鏈

網站運營人員對於死鏈這個概念必定不陌生,網站的一些數據刪除或頁面改版等都容易製造死鏈,影響用戶體驗不說,過多的死鏈還會影響到網站的總體權重或排名。php

 

百度站長平臺提供的死鏈提交工具,可將網站存在的死鏈(協議死鏈、404頁面)進行提交,可快速刪除死鏈,幫助網站SEO優化。在提交死鏈的文件中逐個手動填寫死鏈的話太麻煩,工做中咱們提倡複雜自動化,因此本文咱們一塊兒交流分享Apache服務中經過shell腳本整理網站死鏈,便於咱們提交。html

 

 

1.配置Apache記錄搜索引擎

Apache是目前網站建設最爲主流的web服務,可是apache的日誌文件默認是不記錄百度、谷歌等各大搜索引擎的爬取程序的,因此首先須要咱們設置Apache的配置文件。web

找到Apache的配置文件httpd.conf,在配置文件中找到下面兩行:shell

 

CustomLog "logs/access_log" common
 #CustomLog "logs/access_log" combined

 

默認採用的是common,這裏咱們只須要將common這一行前面加#註釋掉,而後將combined這一行前的#去掉便可。而後保存重啓Apache服務。apache

注:若是你的服務器上添加了多個站點,每一個站點有單獨的配置文件,則咱們只須要在相應站點的配置文件中設置CustomLog項便可,例如:vim

 

vim /usr/local/apache/conf/vhost/www.chanzhi.org.conf


    ServerAdmin [email protected] DocumentRoot "/data/wwwroot/www.chanzhi.org"
    ServerName www.chanzhi.org
    ServerAlias chanzhi.org
    ErrorLog "/data/wwwlogs/www.chanzhi.org_error_apache.log"
    CustomLog "/data/wwwlogs/www.chanzhi.org_apache.log" combined

    SetOutputFilter DEFLATE
    Options FollowSymLinks ExecCGI
    Require all granted
    AllowOverride All
    Order allow,deny
    Allow from all
    DirectoryIndex index.html index.php

下面是配置先後的網站日誌記錄格式:bash

 

配置前:服務器

配置後:ide

 

2.編寫shell腳本

咱們經過shell腳本獲取網站日誌中指定爬蟲的抓取記錄,而後彙總到一個文件中,便於後期使用。代碼以下,好比保存爲deathlink.sh工具

 

#!/bin/bash
#初始化變量
#定義蜘蛛UA信息(默認是百度蜘蛛)
UA='+http://www.baidu.com/search/spider.html'
 
#前一天的日期(apache日誌)
DATE=`date +%Y%m%d -d "1 day ago"`
 
#定義日誌路徑
logfile=/data/wwwlogs/www.chanzhi.org_apache.log-${DATE}.log
 
#定義死鏈文件存放路徑
deathfile=/data/wwwroot/www.chanzhi.org/deathlink.txt
 
#定義網站訪問地址
website=http://www.chanzhi.org
 
#分析日誌並保存死鏈數據
for url in `awk -v str="${UA}" '$9=="404" && $15~str {print $7}' ${logfile}`
do
  grep -q "$url" ${deathfile} || echo ${website}${url} >>${deathfile}
done

 

你們在使用該腳本時,根據本身服務器狀況調整下路徑和字段便可,而後執行腳本,:

bash deathlink.sh

 

3.提交死鏈

執行上面腳本時候,就會在指定目錄下生成包含全部獲取的404頁面連接的文件,每一個鏈接佔一行。例如:

最後在站長平臺提交死鏈頁面中,填寫本身的死鏈文件地址便可,例如:

 

百度在審覈經過以後,會將已經收錄的失效連接刪除,以免失效頁面連接對網站形成不良的影響。

 

總結:

本文和你們分享了在Apache服務環境下,如何利用shell腳本自動獲取百度蜘蛛等爬蟲抓取的死鏈,並生成彙總文件提交給搜索引擎。若是你們還有其餘更好的方法或者疑問,歡迎一塊兒分享交流。

 

相關文章
相關標籤/搜索