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: https://commons.wikimedia.org/w/index.php?title=File:Billete_$100_Mexico_Centenario_Reverso.png
* 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 :-)