Manual:$wgUrlProtocols
Parser: $wgUrlProtocols | |
---|---|
Defines the protocols which are supported and translated in HTML by the mediawiki parser. |
|
Introduced in version: | 1.5.0 (r10229) |
Removed in version: | Still in use |
Allowed values: | (array of strings) (1.6+) (string containing a regular expression) (1.5) |
Default value: | see below |
Other settings: Alphabetical | By function |
Details
[edit]Defines the URL protocols that MediaWiki will recognize as valid in UrlUtils::parse()
.
This is used in lots of places.
The most visible effect is it determines what protocols are allowed for external links: unrecognized protocols are ignored, no link is generated.
However, it's used in many other places too, including the code for Special:LinkSearch, and utility functions like UrlUtils::parse()
that are used in a wide variety of different places.
These examples would not work (because "test://"
is not defined as a valid protocol):
- test://www.example.com
- [test://www.example.com]
- [test://www.example.com link text]
- Some browsers, like Mozilla Firefox, will not follow file URLs on pages that have been loaded via HTTP. This is a security measure. See this mozillaZine article for more information, including some hints on how to overcome this restriction.
- Most browsers do not support "remote file" URLs like
file://host/share
(only Internet Explorer handles these per default. For Firefox, a plugin is required or use exactly 5 slashes likefile://///host/share
, see [1])
To allow links to local files (which may make sense in an intranet context), put this into your LocalSettings.php :
$wgUrlProtocols[] = "file://";
Usually you only want to add protocols to this array.
Default values
[edit]MediaWiki version: | ≥ 1.38 Gerrit change 876412 |
MediaWiki version: | 1.35 Gerrit change 876392 |
$wgUrlProtocols = [
'bitcoin:', 'ftp://', 'ftps://', 'geo:', 'git://', 'gopher://', 'http://',
'https://', 'irc://', 'ircs://', 'magnet:', 'mailto:', 'matrix:', 'mms://',
'news:', 'nntp://', 'redis://', 'sftp://', 'sip:', 'sips:', 'sms:',
'ssh://', 'svn://', 'tel:', 'telnet://', 'urn:', 'worldwind://', 'xmpp:',
'//',
];
MediaWiki versions: | 1.24 – 1.37 |
$wgUrlProtocols = [
'bitcoin:', 'ftp://', 'ftps://', 'geo:', 'git://', 'gopher://', 'http://',
'https://', 'irc://', 'ircs://', 'magnet:', 'mailto:', 'mms://', 'news:',
'nntp://', 'redis://', 'sftp://', 'sip:', 'sips:', 'sms:', 'ssh://',
'svn://', 'tel:', 'telnet://', 'urn:', 'worldwind://', 'xmpp:','slack://', '//',
];
MediaWiki versions: | 1.22 – 1.23 |
$wgUrlProtocols = array(
'http://',
'https://',
'ftp://',
'ftps://', // If we allow ftp:// we should allow the secure version.
'ssh://',
'sftp://', // SFTP > FTP
'irc://',
'ircs://', // @bug 28503
'xmpp:', // Another open communication protocol
'sip:',
'sips:',
'gopher://',
'telnet://', // Well if we're going to support the above.. -ævar
'nntp://', // @bug 3808 RFC 1738
'worldwind://',
'mailto:',
'tel:', // If we can make emails linkable, why not phone numbers?
'sms:', // Likewise this is standardized too
'news:',
'svn://',
'git://',
'mms://',
'bitcoin:', // Even registerProtocolHandler whitelists this along with mailto:
'magnet:', // No reason to reject torrents over magnet: when they're allowed over http://
'urn:', // Allow URNs to be used in Microdata/RDFa <link ... href="urn:...">s
'geo:', // urls define geo locations, they're useful in Microdata/RDFa and for coordinates
'//', // for protocol-relative URLs
);
MediaWiki versions: | 1.18 – 1.21 |
$wgUrlProtocols = array(
'http://',
'https://',
'ftp://',
'irc://',
'ircs://', // @bug 28503
'gopher://',
'telnet://', // Well if we're going to support the above.. -ævar
'nntp://', // @bug 3808 RFC 1738
'worldwind://',
'mailto:',
'news:',
'svn://',
'git://',
'mms://',
'//', // for protocol-relative URLs
);
MediaWiki version: | 1.17 |
$wgUrlProtocols = array(
'http://',
'https://',
'ftp://',
'irc://',
'gopher://',
'telnet://', // Well if we're going to support the above.. -ævar
'nntp://', // @bug 3808 RFC 1738
'worldwind://',
'mailto:',
'news:',
'svn://',
'git://',
'mms://',
);
MediaWiki versions: | 1.15 – 1.16 |
$wgUrlProtocols = array(
'http://',
'https://',
'ftp://',
'irc://',
'gopher://',
'telnet://', // Well if we're going to support the above.. -ævar
'nntp://', // @bug 3808 RFC 1738
'worldwind://',
'mailto:',
'news:',
'svn://',
);
MediaWiki versions: | 1.6 – 1.14 |
$wgUrlProtocols = array(
'http://',
'https://',
'ftp://',
'irc://',
'gopher://',
'telnet://', // Well if we're going to support the above.. -ævar
'nntp://', // @bug 3808 RFC 1738
'worldwind://',
'mailto:',
'news:'
);
MediaWiki version: | 1.5 |
$wgUrlProtocols = 'http:\/\/|https:\/\/|ftp:\/\/|irc:\/\/|gopher:\/\/|news:|mailto:';
Advanced modification
[edit]The default protocols should all be safe to click on (no evil side effects), and removing a protocol from the list will cause URLs using those protocols to become unrecognized in many places throughout the software. In particular, removing 'http://' or other common protocols will probably break huge amounts of stuff. Nevertheless, if you need to do so (for example, you already have a News: namespace), you can do something like this:
$wgUrlProtocols = array_diff($wgUrlProtocols, array('news:'));
See also
[edit]- URI schemes (historical)
- UNC links