Принудительный «www» в Rails3 размещен на Heroku без .htaccess - PullRequest
3 голосов
/ 02 августа 2011

Мне было интересно, есть ли в Rack альтернатива принудительному использованию «www» в URL, поскольку Heroku не использует файлы .htaccess.

Может быть, даже хороший способ сделать это на маршрутах?

Спасибо

Ответы [ 2 ]

10 голосов
/ 21 мая 2012

В вашем ApplicationController вы можете просто создать фильтр перед:

before_filter :force_www!

protected

def force_www!
  if Rails.env.production? and request.host[0..3] != "www."
    redirect_to "#{request.protocol}www.#{request.host_with_port}#{request.fullpath}", :status => 301
  end
end

Или перейти в другом направлении и удалить www:

before_filter :remove_www!

protected

def remove_www!
  if Rails.env.production? and request.host[0..3] == "www."
    redirect_to "#{request.protocol}#{request.host_with_port[4..-1]}#{request.fullpath}", :status => 301
  end
end
1 голос
/ 02 августа 2011

Быстрый поиск в Google показывает это промежуточное ПО Rack , которое, кажется, делает именно то, что вы хотите.

...