【问题标题】:Prevent URL-encoding of characters in link in MediaWiki防止在 MediaWiki 中的链接中对字符进行 URL 编码
【发布时间】:2012-09-29 13:24:16
【问题描述】:

即:如何禁止在 MediaWiki 链接中使用其 html 实体替换/替换字符?

我需要在 MediaWiki 文章中插入一个看起来像这样的链接,包括管道 (|):

http://www.somesite.asdf/#|param1|param2|param3

目标站点不接受 %7C| 作为其 URL 中的管道替代品。因此,以下网址无效:

http://www.somesite.asdf/#%7Cparam1%7Cparam2%7Cparam3
http://www.somesite.asdf/#|param1|param2|param3

当我在 MediaWiki 文章中键入链接时,例如:

http://www.somesite.asdf/#|param1|param2|param3

...它会产生一个指向:

http://www.somesite.asdf/#%7Cparam1%7Cparam2%7Cparam3

,这是无效的。

有什么建议吗?

【问题讨论】:

    标签: url escaping mediawiki


    【解决方案1】:

    这不是一个有效的 URI;对于RFC 3986,URI 由字符ALPHA / DIGIT / "-" / "." / "_" / "~" / ":" / "/" / "?" / "#" / "[" / "]" / "@" / "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" 组成;其他所有内容都必须进行百分比编码。 MediaWiki 会自动更正无效的 URL(可能与任何其他 CMS 一样),所以如果这个 wiki 归其他人所有,那么您就不走运了。如果是你的,你可以使用一些方法来避免内置的 HTML 处理(例如启用<html> 标签);确保您知道自己在做什么,这通常会带来安全后果。

    【讨论】:

    • 感谢您澄清这一点。难以置信——目标站点是一个官方的大型站点,它要求在其 URL 的“片段”部分(在# 之后)中使用未编码的管道。不过,wiki 是我的,所以 there 的变通方法已经摆在桌面上。我只是希望有某种方式(即转义字符)来抑制 wiki 文章中链接的 url 编码,而无需修改/重新配置 MediaWiki 框架。然而,这是有道理的,不可能立即创建无效链接 - 所以 MediaWiki 不应该受到责备。
    猜你喜欢
    • 2013-11-27
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 2012-08-29
    相关资源
    最近更新 更多