1

我正在使用rack-rewrite gem 在 Rails 应用程序中重写我的 url。

我要避免的问题之一是在 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 实现吗?

4

0 回答 0