2012-12-29 72 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