我在本地网络上安装MediaWiki时遇到问题。我在德语中使用MediaWiki。我的wiki中有几个页脚链接,会产生404错误。例如,在页脚中有一个链接Impressum
(英文:Disclaimer)。它指向不存在的*NameOfMyWiki*:Impressum
。
当我转到MediaWiki:Disclaimers
时,会显示免责声明,这是应该在*wgSitename*:Impressum
后面的页面。我认为我不打算将免责声明链接指向MediaWiki:Disclaimers
。
可能基于相同问题的另一个行为是,当用户页面仍为空/尚未创建时,用户在自己的用户页面上获取404(单击设置旁边右侧的链接)。当另一个用户编辑第一个用户的用户页面时,第一个用户也可以访问和编辑它。但不是当它仍然是空的/未定义时。
我该如何解决?
答案 0 :(得分:9)
text of the footer links来自界面消息MediaWiki:Privacy
,MediaWiki:Aboutsite
和MediaWiki:Disclaimers
。要停用其中一个或多个链接,将相应的链接文字设置为单个连字符(-
)。
或者,从MediaWiki 1.17开始,您也可以通过defining a hook in your LocalSettings.php修改页脚。
聚苯乙烯。对于有兴趣一直到源的人来说,处理这些链接的代码在Skin::footerLink()方法中。通过将相应的消息设置为-
来禁用各种界面功能的做法在MediaWiki中实际上非常常见(尽管不是通用的);由于历史原因,完全空白的消息有点奇怪,因此-
通常用作“无价值”的替身。
编辑:我刚刚注意到您还在询问有关用户页面的第二个问题。为了更好地回答这个问题,让我首先描述MediaWiki 应该如何处理不存在的页面:
当MediaWiki看到指向不存在的页面的wikilink(导航菜单中的大多数,但不一定全部,链接也以相同的方式处理)时,它会创建所谓的{{3} }。这些链接的样式与普通链接的格式不同(通常它们是红色的,因此是名称),并指向一个看起来像redlink的网址,其参数为action=edit
(使其成为一种特殊的编辑方式)链接)和redlink=1
。
当用户点击此类链接时,MediaWiki会首先检查该页面是否同时未创建和,如果尚未创建,则该用户是允许创建和编辑它:
如果页面存在,则只会将用户重定向到该页面的普通视图网址。
如果该页面不存在,并且不允许用户创建该页面,则它们也会被重定向到普通视图URL,然后返回HTTP 404状态代码和表示该页面的消息不存在。 (如果您单击上面的“喜欢这个”链接,将会发生这种情况,除非您恰好是维基百科上的管理员。)
最后,如果页面不存在但允许用户创建它,MediaWiki只会将URL视为普通编辑链接,并显示编辑表单。
看起来,出于某种原因,点击维基上自己用户页面链接的新用户点击上面的案例2而不是预期的案例3.这可能是like this one问题:特别是您应该检查维基上的普通登录用户(组user
)是否具有createpage
权限。
如果您想允许普通用户创建仅他们自己的用户页面,有很多方法可以做到这一点,但我所知道的只涉及安装user rights或编写您的拥有extension个钩子。如果你愿意,我可以给你一些如何做的例子,但需要一些编码。
答案 1 :(得分:0)
这些链接是您可能想要填写的占位符。它们是提供的,因此您可以轻松填写新Wiki的一些重要部分。
有关完整列表,请参阅http://www.mediawiki.org/wiki/Manual:Footer。
实际上没有设置可以禁用它们。
答案 2 :(得分:0)
上面 Ilmari Karonen 提到的链接:
或者,从MediaWiki 1.17开始,您也可以修改页脚 defining a hook in your LocalSettings.php
...显示如何添加指向内置页脚链接列表的链接。它没有显示的是如何删除现有的内置页脚链接,这是原始问题。
事实证明,这是对引用的钩子解决方案的简单补充。您只需要丢弃模板数组中现有的页脚链接。
大多数人不仅要删除内置的页脚链接,还要添加自己的页脚链接。本着StackOverflow的精神,这里有一个完整的示例解决方案(这是来自现有的Wiki ......)
这适用于mediawiki-1.29.2,但它也可能适用于许多旧版本。将此代码放在LocalSettings.php文件中(我将其放在底部)以删除现有的页脚链接并添加您自己的链接:
# Remove all existing footer links and add my own
$wgHooks['SkinTemplateOutputPageBeforeExec'][] = function( $sk, &$tpl ) {
# IMPORTANT: this is the secret sauce - remove all existing footer links
$tpl->data['footerlinks']['places'] = array();
# To add new footer links to local wiki pages:
#
# 1) You MUST create your new pages in your (Main) namespace first, for example:
#
# http://<your-site>/wiki/index.php/About_Us
# http://<your-site>/wiki/index.php/Contact_Us
# http://<your-site>/wiki/index.php/Disclaimer
# http://<your-site>/wiki/index.php/Download
# http://<your-site>/wiki/index.php/Privacy_Policy
#
# 2) You MUST then create each of these pages in your MediaWiki namespace:
#
# http://<your-site>/wiki/index.php/MediaWiki:Aboutpage
# - Insert 1 line, with "About Us" (no quotes)
# http://<your-site>/wiki/index.php/MediaWiki:Contactpage
# - Insert 1 line, with "Contact Us" (no quotes)
# http://<your-site>/wiki/index.php/MediaWiki:Disclaimerpage
# - Insert 1 line, with "Disclaimer" (no quotes)
# http://<your-site>/wiki/index.php/MediaWiki:Downloadpage
# - Insert 1 line, with "Download" (no quotes)
# http://<your-site>/wiki/index.php/MediaWiki:Privacypage
# - Insert 1 line, with "Privacy Policy" (no quotes)
#
# 3) Add new footer links like this:
$tpl->set( 'aboutpage', $sk->footerLink( 'aboutpage', 'aboutpage' ) );
$tpl->data['footerlinks']['places'][] = 'aboutpage';
$tpl->set( 'contactpage', $sk->footerLink( 'contactpage', 'contactpage' ) );
$tpl->data['footerlinks']['places'][] = 'contactpage';
$tpl->set( 'disclaimerpage', $sk->footerLink( 'disclaimerpage', 'disclaimerpage' ) );
$tpl->data['footerlinks']['places'][] = 'disclaimerpage';
$tpl->set( 'downloadpage', $sk->footerLink( 'downloadpage', 'downloadpage' ) );
$tpl->data['footerlinks']['places'][] = 'downloadpage';
$tpl->set( 'privacypage', $sk->footerLink( 'privacypage', 'privacypage' ) );
$tpl->data['footerlinks']['places'][] = 'privacypage';
return true;
};
重要:请勿忘记按照说明操作并创建自己的网页和相应的MediaWiki重定向,否则您的链接可能无法显示或者可能已损坏。