2012-06-11 3 views
1

Как-то Google проиндексировал мою домашнюю страницу как https://mydomain.com. Когда вы делаете сайт: поиск mydomain.com, первый результат - https://mydomain.com, и у меня нет сертификата SSL и вы не хотите делать https. Теперь наши посетители получают уродливые предупреждения в своих браузерах, конечно (потому что герою по умолчанию выполняет их * .heroku cert).Код перезаписи для переадресации https на http (on heroku)

Кажется, что я могу сделать 301 переадресацию с помощью перезаписи, но я просто не могу найти способ.

Итак, что такое рецепт перезаписи для переадресации всех https: // на http: //? Все, что я могу найти, это информация о том, как сделать обратную вещь или сделать канонические перенаправления.

+0

Я пытаюсь выполнить ту же самую вещь. Какое решение вы в конечном итоге использовали? – Lee

ответ

1

Хм, непроверенный, но что-то вроде этой работы?

r301 %r{.*}, 'http://non-secure-domain.com$&', :if => Proc.new {|rack_env| 
    rack_env['SERVER_PORT'] != '80' 
} 
0

Используя scheme вариант из стойки-переписывание только вызовет бесконечную петлю на Heroku. Вы также не можете в порту быть 80 из-за того, как героику будет доверять вашим работникам. Из-за этого и образом слой работы маршрутизации, вы должны проверить HTTP_X_FORWARDED_PROTO заголовок:

r301 %r{.*}, 'http://example.com$&', :if => Proc.new { |rack_env| 
    rack_env['HTTP_X_FORWARDED_PROTO'] == 'https' 
} 
Смежные вопросы