1

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でも可能ですか?

4

0 に答える 0