URI schemes

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search

Although some background information is provided only here, this page is outdated relative to the corresponding page on mediawiki.


As of version 1.5, MediaWiki supports user-configuration of the URI schemes (often referred to as "URL protocols") recognised as external links, via a variable called $wgUrlProtocols which consists of a regular expression of prefixes which are recognised as beginning a link.

Current settings[edit]

The default value is currently $wgUrlProtocols = 'http:\/\/|https:\/\/|ftp:\/\/|irc:\/\/|gopher:\/\/|news:|mailto:';, which means that strings beginning with the following prefixes are considered valid external links:

  • http: and https: (normal and secure web pages)
  • ftp: (FTP resources)
  • irc: (IRC-related resources)
  • gopher: (the largely historic Gopher protocol)
  • news: (USENET)
  • mailto: (e-mail addresses)

The Wikimedia websites are currently set to use this default setting.

Suggesting new schemes[edit]

Users often suggest, via MediaZilla:, that certain extra schemes be added to this list. The first question you need to consider if making a request is whether you want the change to affect the default setting for all users of the MediaWiki software or just the Wikimedia group of projects. [See Glossary if you're confused about the difference.] Remember that a change on a non-Wikimedia site has nothing to do with the maintainers of either Wikimedia or MediaWiki, as this is purely a configuration issue.

Criteria to consider[edit]

When making any suggestion, it might be useful to answer the following 3 questions (expanded from MediaZilla:3133#c5). If suggesting a change to the default setting, "the project" should be read as "all projects which use MediaWiki software"; if suggesting a configuration change for Wikimedia websites, "the project" means "one or more" of these.

  1. Is this URI scheme widely supported in the software used by readers? If it requires additional downloads, how likely are people to make or have made these downloads?
  2. Are editors familiar with this scheme and thus likely to use it?
  3. Are there likely to be situations within the project in which this scheme will be useful?

The consequences of adding a URI scheme without considering these questions isn't all that dire, but it could easily become a source of bloat—including all the officially registered URI schemes would result in something like this:

$wgUrlProtocols='ftp:\/\/|http:\/\/|gopher:|mailto:|news:|nntp:|telnet:|wais:|file:\/\/|prospero:|z39.50s:|z39.50r:|cid:|mid:|vemmi:|service:|imap:|nfs:|acap:|rtsp:|tip:|pop:|data:|dav:|opaquelocktoken:|sip:|sips:|tel:|fax:|modem:|ldap:|https:\/\/|soap.beep:|soap.beeps:|xmlrpc.beep:|xmlrpc.beeps:|urn:|go:|h323:|ipp:|tftp:|mupdate:|pres:|im:|mtqp:|iris.beep:|dict:|snmp:|crid:|tag:|dns:'

While some of these are obviously inappropriate, this demonstrates that some selectivity is required. And just think of all the free-standing links that could end up being created quite unintentionally by unfortunate placing of colons...

On the other hand as long as stuff like worldwind: is supported any hocuspocus qualifies as good scheme and should be requested as you see fit.

Discussions[edit]

Here are some previous and current discussions about adding particular URI schemes: