Last modified: 2012-05-03 02:42:48 UTC
Since the update to 1.19 all files containing a dollar sign ($) seem to redirect to the main page. Try the URL or
https://commons.wikimedia.org/wiki/File:Billete_$100_Mexico_Centenario_Reverso.png?action=history (shows history of the main page)
If you need more examples, there are enough in https://commons.wikimedia.org/wiki/Category:1_United_States_dollar_banknotes.
But https://simple.wikipedia.org/wiki/$kip works correctly.
Links from index.php do work:
* Also applies to inexistant page titles with a $ sign: https://commons.wikimedia.org/wiki/File:Foo_bar_$1_b.jpg
* Only happends when a number follows the $-sign: https://commons.wikimedia.org/wiki/File:Foo_bar_$a_b.jpg
* Doesn't happen locally for me on 1.19-svn
* Might be Wikimedia specific
This was to do with the PathRouter code.
The PathRouter has an extra check to make sure all parameters have been replaced:
For example this:
$router->add( "/wiki/$1", array( 'title' => "$1$2" );
Should never succeed because $2 will never be replaced. It's also just in case there is a situation where it's not a coding error and that is in fact happening because the pattern is not a proper match.
The problem was that it couldn't tell the difference between a $# or $key in the pattern that wasn't replaced and a $1 that came from the url.
I've updated the tests to include some cases I didn't think of originally. And I've fixed the issue by switching to a preg_replace_callback based system.
I bisected it to r104274 which was reverted, then bisected it again to r104689.
reclosing, looks like it was fixed while I was having lunch :-)