事情的经过是这样的:之前新建了一个书籍的命名空间,ID号为1504,参考的是bluespice的规则,最近正好在编写心百科的帮助文档,重新翻阅了一下官方文档,发现bluespice跟我设想的不一样。于是萌生了修改命名空间的念头,以防哪天脑子一抽想用bluespice又会造成冲突的局面。
先来看看之前的LocalSettings.php的配置代码:
define("NS_BOOK", 1504);
define("NS_BOOK_TALK", 1505);
命名空间常量NS_BOOK的ID号为1504,如果修改常量的话,直接刷新网站并没有什么问题,但是一旦修改了ID那就会出现下面的错误:
原本是以书籍:
开头的页面链接,现在成了特殊:Badtitle/NS1504:
,点击后显示没有页面然后需要重新创建。
从搜索结果来看,有网友是建议不要轻易修改ID,出错之后最好的解决办法就是改回去,不过这也不符合我折腾的性格。
重新查阅官方文档,其中提到了命名空间冲突的问题,解决办法有两种,一个是使用维护脚本namespaceDupes.php
,另一种通过修改数据库。
前者我试了一下,不知道是对修改ID的情况无效还是我的操作不当,反正我没成功。
后者的话,从官方文档来看,主要还是在page表中。打开数据表,果然出错的页面中,page_namespcae的数值还是1504。
UPDATE page SET page_namespace = REPLACE(page_namespace, '1504', '3000')
操作前最好备份一下数据库。刷新页面,页面恢复。
注意:
修改之后如果出现搜索无结果的现象,最好停用高级搜索插件然后用维护脚本执行一下php rebuildtextindex.php
,如果不放心的话也可以选择执行php rebuildall.php
,具体可参考本站文章《MediaWiki使用高级搜索“找不到和查询相匹配的结果”》。
2 条评论
参见大佬,我很喜欢您在知乎上发布的mediawiki相关文章,希望您能继续更新下去!
谢谢鼓励,我会继续努力的。