Перезапись периодов после TLD с использованием Rack :: Rewrite - PullRequest
1 голос
/ 11 февраля 2012

Я использую гем rack-rewrite , чтобы переписать мои url-адреса в приложении Rails.

Одна из проблем, которых я хочу избежать, - это наличие завершающего периода после TLD.

http://example.com./foo
                  ^

Теперь я не уверен на 100%, имеет ли это значение для google juice или нет, но имеет значение для 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?

...