如何关闭 Typecho 默认 RSS
众所周知,Typecho是自带RSS输出的,并且无法关闭,于是乎专门研究了一下(伪)关闭的方法,大概可分为两种方式。
方式一 修改数据库
不难发现 Typecho 文章编辑页面,右侧下方高级选项中有一个 允许在聚合中出现
的选择项,顾名思义可以控制文章是否出现在feed中,只不过这个这个选项是默认选中的,于是有以下策略:
- 进入数据库,找到结尾为
options
表,将name
为defaultAllowFeed
的行,将其value
值修改为0
,如果你的站点有多个用户,可能会有多项记录,记得一并修改。一条通用SQL
UPDATE options SET value = '0' WHERE name = 'defaultAllowFeed';
- 修改完默认配置后,还需要修改掉之前文章的配置,同样的,找到后缀为
contents
的表,将所有文章的allowFeed
字段值修改为0
,通用SQL如下(注意表名):
UPDATE contents SET allowFeed = '0';
方式二 修改代码
同样的,我们还可以直接修改typecho的源代码,更加简单方便,只不过以后如果更新需要重写修改一次
- 进入typecho的程序路径,打开
var/Widget/Archive.php
文件,搜索if ($parameter->isFeed)
定位到类似如下的代码(本例为Typecho1.2.1稳定版):
/** 用于判断是否为feed调用 */
if ($parameter->isFeed) {
//在这里加上 throw new WidgetException(_t('聚合页不存在'), 404);
$this->invokeByFeed = true;
}
在大括号中添加一行 throw new WidgetException(_t('聚合页不存在'), 404);
,也即访问feed会直接抛出异常转到404页面。 这种方式只是取巧,如需要彻底移除feed,代码改动还是比较大的。
摘自:https://www.fordes.top/posts/tutorials/disable-typecho-feed/
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,Typecho.Wiki所有文章均包含本声明。