Rack-rewrite gem を使用して、Rails アプリで URL を書き換えています。
私が避けたい問題の 1 つは、TLD の後にトレーリング ピリオドがあることです。
http://example.com./foo
^
これがGoogleジュースにとって重要かどうかは100%わかりませんが、リクエストしているドメインに基づいてライセンスを検証するDisqusと私のビデオプレーヤーにとっては重要です.
私が見ている問題は、ラック環境が SERVER_NAME 変数にこの末尾のピリオドを表示しないことです。
リクエスト時にログに表示される内容は次のhttp://example.com./foo
とおりです。
[RACK ENV]:
{
"GATEWAY_INTERFACE"=>"CGI/1.1",
"PATH_INFO"=>"/foo",
"QUERY_STRING"=>"",
"REMOTE_ADDR"=>"xx.xx.xx.xx",
"REMOTE_HOST"=>"xx.xx.xx.xx",
"REQUEST_METHOD"=>"GET",
"REQUEST_URI"=>"http://example.com/foo",
"SCRIPT_NAME"=>"",
"SERVER_NAME"=>"example.com",
"SERVER_PORT"=>"80",
"SERVER_PROTOCOL"=>"HTTP/1.1",
"HTTP_X_VARNISH"=>"2117759881",
"HTTP_X_REAL_IP"=>"xx.xx.xx.xx",
"HTTP_X_FORWARDED_FOR"=>"xx.xx.xx.xx",
"HTTP_USER_AGENT"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7",
"HTTP_HOST"=>"example.com"
}
ご覧のとおり、どの変数にも.
ドメインの後に末尾が含まれていません。
これはRack::Rewriteでも可能ですか?