Jump to content

Help:URL

From mediawiki.org
PD Note: When you edit this page, you agree to release your contribution under the CC0. See Public Domain Help Pages for more info.
Some old revisions for this page were imported under CC BY-SA license. Only new contributions are PD.
PD

For help with URLs in wikitext, see Help:Links . This page is about various URLs of project pages.

[edit]

Form of the URL

[edit]

A link in external link style can be of the forms:

target
https://mediawiki.org/ renders as https://mediawiki.org
[ target label ], with a blank space in between
[https://mediawiki.org/ wikimedia] renders as wikimedia (see also Piped links )
[ target ]
"[https://mediawiki.org] and [https://www.w3.org/TR/url/]" renders as "[1] and [2]". Each link displays a serial number 1, 2, 3, ...

The target is a URL which can start with https://, https://, or ftp://. Within square brackets the URL can also start with // (no schema at all), a Protocol-relative URL that uses the same protocol (http or https) as the current web page.

file:// does not work by default. If enabled it only works in MSIE. To enable it, add a $wgUrlProtocols entry to LocalSettings.php; see the $wgUrlProtocols in DefaultSettings.php for example.

Allowed characters

[edit]

All characters of the URL must be among:

A-Z a-z 0-9 :._\/~%-+&#?!=()@

If a URL contains a different character you must convert it; for example, ^ has to be written %5e, the hexadecimal ASCII value with a percent sign in front. You can also write a blank space as an underscore.

Character conversion

[edit]
      "   #   $   %   &   '  (   )   *   ,   ; 
%20 %22 %23 %24 %25 %26 %27 %28 %29 %2a %2c %3b
 <   >   ?   [   ]   ^   `   {   |   }
%3c %3e %3f %5b %5d %5e %60 %7b %7c %7d

For the other characters either the code or the character can be used in internal and external links, they are equivalent. The system does a conversion when needed. E.g.

 [[m:%C3%80_propos_de_M%C3%A9ta]]

is rendered as m:%C3%80_propos_de_M%C3%A9ta, almost like m:À propos de Méta, which leads to the page on meta.wikimedia.org with in the address bar the URL https://meta.wikimedia.org/wiki/%C3%80_propos_de_M%C3%A9ta

while https://meta.wikimedia.org/wiki/À_propos_de_Méta leads to the same.

Parser function urlencode

[edit]
  • {{urlencode:"#$%&'()*,;?[]^`{} }} → %22%23%24%25%26%27%28%29%2A%2C%3B%3F%5B%5D%5E%60%7B%7D [3]
  • {{urlencode:<}} → %3C [4]
  • {{urlencode:>}} → %3E [5]
  • {{urlencode:{{!}} }} → %7C [6]

There is an external online converter for encoding custom URLs to mediawiki format.

See also (in Wikipedia): Internationalized domain names and Punycode.

Percent-encoding

[edit]

For ASCII characters (up to decimal 127, hex. 7F) percent-encoding simply means adding % to the hex value, e.g. for a tilde ~ (decimal 126, hex 7E) it's %7E. Otherwise (non-ASCII) convert it first to UTF-8 and then percent-encode it.

Here are the steps to follow with an example:

  1. Convert the character to Unicode, e.g. Latin-1 192 (hex. C0) to À (u+00C0), or windows-1252 131 (hex. 8B) to Š (u+0160).
  2. Convert Unicode to bits, 00000000 11000000 (u+00C0), or 00000001 01100000 (u+0160).
  3. Build groups of six bits from the right adding leading zeros if necessary until the rest are zeros: 000011 000000 (u+00C0), or 000101 100000 (u+0160).
  4. Add 10 in front of all but the leftmost group. 2 bits + 6 bits = 8bits, also known as octet.
  5. If there are only two groups, and the first (left) starts with 0:
    1. Add 11 to the left: 11 000011 10 0000000 (u+00C0), or 11 000101 10 100000 (u+0160).
    2. Convert the octets to hex., add percent in front, ready: %C3%80 (u+00C0), or %C5%A0 (u+0160).
  6. If the first (left) of two groups starts with 1:
    Add 111 00000 10 to the left, then percent-encode three octets, %E0%??%??
  7. If there are three groups, the first (left) starting with 00 (000001 up to 001111):
    Replace 00 by 111 0, percent-encode three octets, ready, result %E?%??%??.
  8. Otherwise it's at least 010000 000000 000000 (u+10000) needing four UTF-8 octets:
    1111 0000 10 010000 10 000000 10 000000 would be %F0%90%80%80.

URLs of pages within the projects

[edit]

See w:Wikipedia:URLs. On other projects everything works the same, except that the domain names vary:

  • xx.wikipedia.org with xx the language code, see Complete list of language Wikipedias available in Meta-wiki
  • meta.wikimedia.org (meta.wikipedia.org redirects there)
  • xx.wiktionary.org
  • xx.wikiquote.org
  • xx.wikibooks.org
  • xx.wikisource.org
  • sep11.wikipedia.org

A URL starting with www.wikipedia.org redirects to the corresponding one starting with en; only www.wikipedia.org itself leads to a portal page instead of the main page of the English Wikipedia: https://www.wikipedia.org

In projects outside Wikimedia the "w/" in URLs like https://www.wikipedia.org/w/wiki.phtml?title=Main_Page&action=history is sometimes not used, sometimes different, e.g.:

Use in templates

[edit]

For use in templates, note that all URLs on e.g. the English Wikipedia can be written in the form: https://en.wikipedia.org/w/index.php?title={{{1}}}

This requires {{{1}}} to be written with underscores and escape codes (if applicable), or can be escaped with urlencode as {{urlencode:{{{1}}}}}.

To benefit from the conversion carried out by magic word fullurl, two parameters are needed: {{fullurl:{{{1}}}|{{{2}}}}}

(see template Url 2p on meta). An example with the second parameter in fullurl fixed is w:Template:ed containing the link [{{fullurl:Template:{{{1}}}|action=edit}} {{MediaWiki:Edit}} {{{2|{{{1}}}}}}].

This works for a link in external link style to a page in the same project. We can use localurl for a link to a project which uses the same string in the URL between the server name and the question mark ($wgScript, on Wikimedia "/w/index.php"), but not for links to other projects.

Old versions of pages

[edit]

All old versions of all pages are numbered (with oldid) approximately in the order of becoming an old version, i.e. in chronological order of the next edit of the same page.

See also Linking to specific versions of a page.

New pages

[edit]

Pages are numbered with page_id (see Page table) in order of creation.

Conversely, most Query API output provides page names as well as page id's, e.g. https://meta.wikimedia.org/w/query.php?titles=Hilfe:Zeitleiste

Page versions get a number "oldid" as soon as they are created; they are produced by variable {{REVISIONID}}. The URL is like in the previous section.

Edit

[edit]

Examples:

Purge

[edit]

In some cases of caching problems, to update a page it can help to use "action=purge", in a URL like

{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|action=purge}}

which results in:

//www.mediawiki.org/w/index.php?title=Help:URL&action=purge

Parameter uselang

[edit]

In some cases it is helpful to link to another Wikimedia project by using the "&uselang" parameter, in a URL like https://commons.wikimedia.org/w/index.php?title=Glavna_stran&uselang=sl. This allows specifying the language (hereby 'sl' for Slovenian) of the interface messages that will be displayed when opening the page 'Glavna stran' in the Commons project.

Miscellaneous actions

[edit]

You can fetch the raw wikitext of a page using a URL like

{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|action=raw}}

which results here in:

//www.mediawiki.org/w/index.php?title=Help:URL&action=raw

Other actions are view, watch, unwatch, delete, revert, rollback, unprotect, info, markpatrolled, validate, render, deletetrackback, and history. (These rarely need to be entered explicitly, as the useful ones are prelinked at various tabs and buttons. Several of these actions require administrator privileges. Other users do not have the link; if they try the URL they get an error.)

[edit]

There can be various kinds of errors in the URL. With some the server is not even reached, with others the server takes some action. The server may also go to the correct page and just ignore a wrong parameter or anchor.

See also

[edit]