~(チルダ)が%7Eでリクエストされると表示できない
http://foo.bar/~aaa/
このようなURLの場合、通常はこれでリクエストされますが、
私が持っているAUのW44Tは~を%7Eに自動的に変換します。
そうすると、リクエストとURLが異なってしまいます。
そのため、ルーティングがおかしくなり、
404エラーが発生します。
そのため、パッチを作りました。
--- request.rb.org 2007-04-17 12:42:55.487682329 +0900 +++ request.rb 2007-04-17 12:42:34.387251466 +0900 @@ -138,7 +138,7 @@ # Return the request URI, accounting for server idiosyncracies. # WEBrick includes the full URL. IIS leaves REQUEST_URI blank. def request_uri - if uri = @env['REQUEST_URI'] + if uri = @env['REQUEST_URI'].sub(/%7E/i,"~") # Remove domain, which webrick puts into the request_uri. (%r{^\w+\://[^/]+(/.*|$)$} =~ uri) ? $1 : uri else
--- cgi_process.rb.org 2007-04-17 11:53:10.758924361 +0900 +++ cgi_process.rb 2007-04-17 11:53:41.955559374 +0900 @@ -51,7 +51,7 @@ def query_string if (qs = @cgi.query_string) && !qs.empty? qs - elsif uri = @env['REQUEST_URI'] + elsif uri = @env['REQUEST_URI'].gsub(/%7E/i,'~') parts = uri.split('?') parts.shift parts.join('?')