人員對于死鏈這個概念一定不陌生,網站的一些數據刪除或頁面改版等都容易制造死鏈,影響用戶體驗不說,過多的死鏈還會影響到網站的整體權重或排名。
百度站長平臺提供的死鏈提交工具,可將網站存在的死鏈(協議死鏈、404頁面)進行提交,可快速刪除死鏈,幫助網站seo優化。在提交死鏈的文件中逐個手動填寫死鏈的話太麻煩,工作中我們提倡復雜自動化,所以本文我們一起交流分享apache服務中通過shell腳本整理網站死鏈,便于我們提交。
、
1.配置apache記錄搜索引擎
apache是目前網站建設最為主流的web服務,但是apache的日志文件默認是不記錄百度、谷歌等各大搜索引擎的爬取程序的,所以首先需要我們設置apache的配置文件。
找到apache的配置文件httpd.conf,在配置文件中找到下面兩行:
1
2
|
customlog "logs/access_log" common #customlog "logs/access_log" combined |
默認采用的是common,這里我們只需要將common這一行前面加#注釋掉,然后將combined這一行前的#去掉即可。然后保存重啟apache服務。
注:如果你的服務器上添加了多個站點,每個站點有單獨的配置文件,則我們只需要在相應站點的配置文件中設置customlog項即可,例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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 |
下面是配置前后的網站日志記錄格式:
配置前:
配置后:
2.編寫shell腳本
我們通過shell腳本獲取網站日志中指定爬蟲的抓取記錄,然后匯總到一個文件中,便于后期使用。代碼如下,比如保存為deathlink.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#!/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 |
大家在使用該腳本時,根據自己服務器情況調整下路徑和字段即可,然后執行腳本,:
1
|
bash deathlink.sh |
3.提交死鏈
執行上面腳本時候,就會在指定目錄下生成包含所有獲取的404頁面鏈接的文件,每個連接占一行。例如:
最后在站長平臺提交死鏈頁面中,填寫自己的死鏈文件地址即可,例如:
百度在審核通過之后,會將已經收錄的失效鏈接刪除,以避免失效頁面鏈接對網站造成不良的影響。
總結
以上所述是小編給大家介紹的apache下通過shell腳本提交網站404死鏈的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:https://my.oschina.net/u/1385850/blog/1544586