2

我有两个域指向同一个 wiki 共享同一个数据库。

我想要这样,domainA.com 的主页是 MainPageA,而 domainB.com 的主页是 MainPageB。

据我所知,更改 MediaWiki 主页的唯一方法是编辑 MediaWiki:Mainpage,但它存储在 MySQL 数据库中。由于两个 wiki 共享同一个数据库,因此两个主页也会发生变化。

共享数据库的原因是因为所有文章都适用于两个 wiki,只是 wiki 的徽标等不同。

我可以设置某种 PHP 条件变量来设置主页吗?

4

1 回答 1

5

您可以在 wikicode 中执行此操作,方法是使您的主页源看起来像这样:

{{#switch:{{SERVERNAME}}
  |domainA.com={{:Main Page for domainA.com}}
  |domainB.com={{:Main Page for domainB.com}}
  |#default=<span class=error>Unrecognized domain {{SERVERNAME}}.</span>
}}

甚至只是:

{{:Main Page for {{SERVERNAME}}}}

有关详细信息,请参阅mediawiki.org 上的帮助:魔术词。(请注意,第一个版本还需要ParserFunctions 扩展。)

附言。MediaWiki 的解析器缓存可能存在一些问题,可能导致出现错误的主页。如果是这样,一个快速而肮脏的解决方法是安装MagicNoCache 扩展并添加__NOCACHE__到主页。

pps。缓存问题的更好解决方案可能是确保不同站点具有单独的缓存键,方法是将以下行添加到 LocalSettings.php:

$wgRenderHashAppend .= "!$wgServer";
于 2012-12-29T01:32:55.640 回答