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

Mas*_*len 2 mediawiki

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

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

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

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

是否有某种PHP条件变量我可以设置为设置主页面?

Ilm*_*nen 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>
}}
Run Code Online (Sandbox Code Playgroud)

甚至只是:

{{:Main Page for {{SERVERNAME}}}}
Run Code Online (Sandbox Code Playgroud)

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

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

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

$wgRenderHashAppend .= "!$wgServer";
Run Code Online (Sandbox Code Playgroud)