【问题标题】:Show different Main Pages based on host name in MediaWiki根据 MediaWiki 中的主机名显示不同的主页
【发布时间】:2012-12-29 01:15:20
【问题描述】:

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

我希望 domainA.com 的主页是 MainPageA,而 domainB.com 的主页是 MainPageB。

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

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

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

【问题讨论】:

    标签: mediawiki


    【解决方案1】:

    您可以在 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";
    

    【讨论】:

    • 哇,这是个好主意,比我打算做的要好得多:.htacces 重定向它并将徽标中的主页链接硬编码到适当的主页。非常感谢:)
    • 附言。可能有更好的方法来处理缓存问题,请参阅上面的编辑。
    • 再次感谢,使用了 $wgRenderHashAppend .= "!$wgServer";听起来应该可以。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2016-03-21
    • 2011-04-21
    • 2018-09-28
    • 1970-01-01
    相关资源
    最近更新 更多