Known issues with Rack and ECMA-262¶ ↑
-
Many users expect the escape() function defined in ECMA-262 to be compatible with URI. Confusion is especially strong because the documentation for the escape function includes a reference to the URI specifications. ECMA-262 escape is not however a URI escape function, it is a javascript escape function, and is not fully compatible. Most notably, for characters outside of the BMP. Users should use the more correct encodeURI functions.
Known issues with Rack and Web servers¶ ↑
-
Lighttpd sets wrong SCRIPT_NAME and PATH_INFO if you mount your FastCGI app at “/”. This can be fixed by using this middleware:
class LighttpdScriptNameFix def initialize(app) @app = app end def call(env) env["PATH_INFO"] = env["SCRIPT_NAME"].to_s + env["PATH_INFO"].to_s env["SCRIPT_NAME"] = "" @app.call(env) end end
Of course, use this only when your app runs at “/”.
Since lighttpd 1.4.23, you also can use the “fix-root-scriptname” flag in fastcgi.server.