Manual:$wgLegalTitleChars
From MediaWiki.org
| Site customization: $wgLegalTitleChars | |
|---|---|
| Override the default list of illegal characters in page titles. |
|
| Introduced in version: | 1.6.0 (r10960) |
| Removed in version: | still in use |
| Allowed Values: | string of characters |
| Default Value: | " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+"( + was added in 1.8.0) |
Other settings: Alphabetical | By Function
[edit] Details
| Don't change this unless you know what you're doing! |
This is a regex character class (i.e. a list of characters in a format suitable for a regular expression) that you want MediaWiki to allow in page titles despite being in the list of illegal characters.
The list of illegal characters is as follows: #<>[]|{}, non-printable characters 0 through 31, and 'delete' character 127).
[edit] Problem characters
The following punctuation symbols may cause problems if enabled:
[]{}|#- These are needed for link syntax, never enable them.%- Minor problems with path to query rewrite rules, see below. Included in the default allow list.+- Doesn't work with path to query rewrite rules, corrupted by apache. Included in the default allow list since MediaWiki 1.8.0. In some rare cases you may wish to remove + for compatibility with old links.?- Doesn't work with path to PATH_INFO rewrites. Included in the default allow list.
The last three of these punctuation problems can be avoided by using an alias, instead of a rewrite rule of either variety.
The problem with % is that when using a path to query rewrite rule, URLs are double-unescaped: once by Apache's path conversion code, and again by PHP. So %253F, for example, becomes "?". Our code does not double-escape to compensate for this, indeed double escaping would break if the double-escaped title was passed in the query string rather than the path. This is a minor security issue because articles can be created such that they are hard to view or edit.
Theoretically 0x80-0x9F of ISO 8859-1 should be disallowed, but this breaks interlanguage links and so they are included in the allowed list by default.

