近期发现自用导航 item.ink 的 RSS 一直被频繁访问,显然不太正常。
众所周知,Typecho是自带RSS输出的,并且无法关闭,于是乎专门研究了一下(伪)关闭的方法,大概可分为两种方式。
方式一 修改数据库
不难发现 Typecho 文章编辑页面,右侧下方高级选项中有一个 允许在聚合中出现
的选择项,顾名思义可以控制文章是否出现在feed中,只不过这个这个选项是默认选中的,于是有以下策略:
- 进入数据库,找到结尾为
options
表,将name
为defaultAllowFeed
的行,将其value
值修改为0
,如果你的站点有多个用户,可能会有多项记录,记得一并修改。一条通用SQL
|
|
- 修改完默认配置后,还需要修改掉之前文章的配置,同样的,找到后缀为
contents
的表,将所有文章的allowFeed
字段值修改为0
,通用SQL如下(注意表名):
|
|
方式二 修改代码
同样的,我们还可以直接修改typecho的源代码,更加简单方便,只不过以后如果更新需要重写修改一次
- 进入typecho的程序路径,打开
var/Widget/Archive.php
文件,搜索if ($parameter->isFeed)
定位到类似如下的代码(本例为Typecho1.2.1稳定版):
|
|
在大括号中添加一行 throw new WidgetException(_t('聚合页不存在'), 404);
,也即访问feed会直接抛出异常转到404页面。
这种方式只是取巧,如需要彻底移除feed,代码改动还是比较大的。
done~