読者です 読者をやめる 読者になる 読者になる

~(チルダ)が%7Eでリクエストされると表示できない

Rails Ruby

http://foo.bar/~aaa/
このようなURLの場合、通常はこれでリクエストされますが、
私が持っているAUW44Tは~を%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('?')

ただ、これはRailsにてこ入れをする羽目になりますので、
プラグインにしてしまったほうがいいかも。
作ろうかな。