怎样在Apache中用shell脚本提交网站404死链?百度站长平台提供的死链提交器材,可将网站存在的死链(条约死链、404页面)进行提交,可迅速删除死链,协助网站SEO优化。在提交死链的文件中逐一手动填写死链的话太困难,工作中咱们提倡复杂自动化,所以本文咱们一起交流分享Apache服务中经过shell脚本清理网站死链,便于咱们提交。
1.配置Apache记载搜寻引擎
Apache是目前网站建设为主流的web服务,可是apache的日志文件承认是不记载百度、google等各大搜寻引擎的爬取程序的,所以首先需求咱们配置Apache的配置文件。
找到Apache的配置文件httpd.conf,在配置文件中找到底下两行:
CustomLog "logs/access_log" common #CustomLog "logs/access_log" combined
承认选用的是common,这里咱们只需求将common这一行前方加#说明注解掉,而后将combined这一行前的#去掉能够。而后保存重启Apache服务。
注:假如你的服务器上增加了多个站点,每个站点有独自的配置文件,则咱们只需求在相应站点的配置文件中配置CustomLog项能够,例如:
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
#!/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页面链接的文件,每个连接占一行。例如:
后在站长平台提交死链页面中,填写自身的死链文件位置能够,例如:
百度在审核经过之后,会将依然收录的失效链接删除,以防止失效页面链接对网站形成不良的影响。
转载请注明出处。