在MediaWiki中根据主机名显示不同的主页

时间:2012-12-29 01:15:21

标签: mediawiki

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

我想这样,使用domainA.com主页面是MainPageA,而domainB.com则是MainPageB。

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

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

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

1 个答案:

答案 0 :(得分: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上的Help:Magic words。 (请注意,第一个版本还需要the ParserFunctions extension。)

聚苯乙烯。 MediaWiki的解析器缓存可能存在一些问题,可能导致错误的主页出现。如果是这样,快速而肮脏的解决方法是安装the MagicNoCache extension并将__NOCACHE__添加到主页。

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

$wgRenderHashAppend .= "!$wgServer";