Help:Bad title
![]() |
Note: When you edit this page, you agree to release your contribution under the CC0. See Public Domain Help Pages for more info. | ![]() |
Some page titles are defined as bad for various reasons. You can't create pages with these titles.
For details of what constitutes a bad title, see regex section or Title.php
.
For reference here is an example of a horrible, but valid title:
- Some¬`!"£$^&*()_+-=~?/.,;:'@
Things you can't use in titles:
- The following standard CGI chars are not good:
- https://www.mediawiki.org/wiki/Some%s — Very bad!
- The following standard wiki syntax seems to work:
- https://www.mediawiki.org/wiki/Some%sSome[s — gets trimmed
- https://www.mediawiki.org/wiki/Some%sSome]s — gets trimmed
- https://www.mediawiki.org/wiki/Some%sSome{s — bad
- https://www.mediawiki.org/wiki/Some%sSome}s — bad
- and some just don't work:
- https://www.mediawiki.org/wiki/Some%sSome#s — gets trimmed
- and some HTML like constructs are very bad, and can't be shown here because they break page formatting:
HTTP Codes
These vary according to the version number of the software:
- 400 (Bad Request) for v1.19.1 and above
- 200 (OK) for v1.16.4 and earlier
Regex
Relatively simple PCRE2 regex for many invalid characters and sequences in titles. Note that this does not pick up everything that could be wrong with titles.
# Matching titles will be held as illegal.
$rxTc = '~' .
# Any character not allowed is forbidden.
'[^' . self::legalChars() . ']' .
# Non-ASCII whitespace, Unicode bidi override characters, the replacement character and noncharacters.
'|[\xA0\x{1680}\x{180E}\x{2000}-\x{200A}\x{200E}\x{200F}\x{2028}-\x{202F}\x{205F}\x{3000}\x{FFFD}\p{Noncharacter Code Point}]' .
# Empty title, starting/closing/double whitespace or a starting colon.
'|(?:\A|\ )(?:[ :]|\Z)' .
# URL percent encoding sequences interfere with the ability to round-trip titles, you can't link to them consistently.
'|%[0-9A-Fa-f]{2}' .
# XML/HTML character references produce similar issues.
'|&[A-Za-z0-9\x80-\x{10FFFF}]+;' .
# Pages with "/./" or "/../" appearing in the URLs will often be unreachable due to the way web browsers deal with 'relative' URLs. Also, they conflict with subpage syntax. Forbid them explicitly.
'|(?:\A|/)\.\.?(?:/|\Z)' .
# Magic tilde sequences.
'|\~{3}' .
'~ux';