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 ==WORKAROUD== 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 ==ISSUE== 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.