1

这是我的问题:

我有一些带有“伪”命名空间的站点,例如“8800:Site”——但 8800 不是命名空间。但我的大多数网站都有真正的名称空间,例如“NG:Site”。

当我从我的 Localsettings.php 中删除所有命名空间时,在我看来“NG”也是一个伪命名空间 - 没有在任何地方声明。

但:

到“NG”命名空间中的站点的内部链接(即使我直接在浏览器中键入)不再起作用(有和没有“NG:”)- 8800 个站点可以。

有人可以向我解释吗?删除命名空间的站点会发生什么情况?关于“如果我删除 Namespace NG,它应该是像 8800 这样的“伪””,我的谬误是什么?

4

1 回答 1

2

当您以可能影响现有页面的方式删除或更改名称空间时,您需要修复 wiki 上的所有页面——否则 wiki 将无法再“看到”这些页面。这是因为数据库中的标题存储为(命名空间 id,剩余标题文本)对。所以一些 "OldNS:Title" 会被存储为类似 (104, "Title") ... 现在你已经删除了它,当 wiki 去寻找一个叫做 "OldNS:Title" 的东西时,它会被解析成 ( 0, "OldNS:Title") 并且两者之间不匹配。

有一个维护脚本来修复这些问题;在某些情况下, namespaceDupes.php可以工作并且速度更快,对于这种情况,您可能需要运行更彻底但更慢的cleanupTitles.php 。

于 2013-11-07T17:34:39.063 回答