2012-12-29 105 views
2

我有两个域指向共享相同数据库的同一个wiki。根据MediaWiki中的主机名显示不同的主页

我希望它与domainA.com的主页是MainPageA和domainB.com它是MainPageB。

更改MediaWiki主页的唯一方法就是编辑MediaWiki:Mainpage,但存储在MySQL数据库中。由于两个维基都共享相同的数据库,因此两个主页也会发生更改。

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

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

回答

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}}}} 

欲了解更多信息,请参阅Help:Magic words在mediawiki.org 。 (注意,第一个版本也需要the ParserFunctions extension。)

Ps。 MediaWiki的解析器缓存可能会导致出现错误的主页面。如果是这样,一个快速和肮脏的解决方法是安装the MagicNoCache extension并将__NOCACHE__添加到主页。

Pps。缓存问题更好的解决方案可能是,以确保不同的网站有不同的缓存键,通过添加以下行到您的LocalSettings.php:

$wgRenderHashAppend .= "!$wgServer"; 
+0

哇,这是一个好主意,比我好多了即将做的:.htacces重定向它,并将徽标中的主页链接硬编码到相应的主页面。非常感谢:) – Mastergalen

+1

Ps。处理缓存问题可能有更好的方法,请参阅上面的编辑。 –

+0

再次感谢,使用$ wgRenderHashAppend。=“!$ wgServer”;并听起来像它应该工作。 – Mastergalen