Last modified: 2010-05-15 15:42:43 UTC
Creation of a new namespace can render it impossible to access inappropriately named existing pages.
==REPORT OF PROBLEM==
A user on the wiki had created a page such as "Guide:A_Page" on the wiki, but no "Guide" namespace existed. Upon creation of the "Guide" namespace "Guide:A_Page" redirected to a nonexistant page in the Guide namespace and displayed a page creation page.
The original page could not be accessed. Even using a leading colon for the default name space, e.g. "wiki/:Guide:A_Page" or variants thereof, all lead to a redirection to the Guide namespace.
However, the page still existed and could be found on wiki/index.php?title=Special:Allpages&namespace=0. In addition, if the the page(s) were part of a category, they still appeared on that Category page. However in both these cases, all links redirected to the "Guide" namespace page.
==STEPS TO REPRODUCE ERROR==
1. Create a new page with a colon, as if denoting a namespace, e.g. Problem:Trouble_Ahead
2. Once this page is created, create the appropriate namespace, e.g. 100 => "Problem"
3. Once the namespace is created the above problem should be observed.
The issue was resolved as follows
1. Rename the problem namespace. e.g. "Problem" is renamed to "Solution".
2. Move the now available pages with the namespace prefix to appropriate pages, e.g. "Problem:Trouble_Ahead" -> "Problem_Solved:Trouble_Ahead" or "Trouble_Ahead", etc. whichever is appropriate
3. Rename the problem namespace back to its intended name, e.g. "Solution" -> "Problem"
4. The original pages are now available and can be moved into the appropriate namespace
Mediawiki cannot unambiguously and uncategorically access a page in the default namespace if a namespace conflict exists. There is no way to explicitly visit a page in the default namespace under these conditions.
This is quite well explained on http://www.mediawiki.org/wiki/Manual:Using_custom_namespaces#Dealing_with_existing_pages. The solution is to run maintenance/namespaceDupes.php.