Skip to content

Instantly share code, notes, and snippets.

@mjy
Created March 5, 2011 00:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mjy/855964 to your computer and use it in GitHub Desktop.
Save mjy/855964 to your computer and use it in GitHub Desktop.
Solved by adding AllowEncodedSlashes On to the httpd.conf (must be in the virtual if using virtual).
I'm stumbling here because this is a problem that does not occur in dev, but does occur in production.
Last three routes-
map.connect ':controller/:action/:id.:format',
:controller => 'proj',
:requirements => {:action => /\w*/}
map.connect ':controller/:action/:id',
:controller => 'proj',
:requirements => {:action => /\w*/}
map.connect "*anything",
:controller => "application",
:action => "index",
:unresolvable => 'true'
This is what I want to see in params[:id] : "http://purl.obolibrary.org/obo/HAO_0000397"
This is the string I pass in the request : "http%3A%2F%2Fpurl%2Eobolibrary%2Eorg%2Fobo%2FHAO_0000397" , I'm literally just pasting that it to the FF URL (along with the controller/actions, which get detected fine in development).
If I remove all the %2F characters from the string above, I get the expected result in production. If I don't I get :unresolvable => 'true' ... but only in production.
My guess it's something to do with passenger/rewrite, but I really have no clue.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment