Я успешно использовал код для перенаправления моего приложения с example.com на www.example.com
Я использую следующее:
class ApplicationController < ActionController::Base
before_filter :ensure_domain
APP_DOMAIN = "www.example.com"
NAKED_DOMAIN = "example.com"
protected
def ensure_domain
if request.env['HTTP_HOST'] == NAKED_DOMAIN && RAILS_ENV =='production'
#HTTP 301 is a permanent redirect
redirect_to "http://#{APP_DOMAIN}", :status => 301
end
end
Это отлично работает для ссылок, ведущих на домашнюю страницу.
Однако я только что понял, что если у меня есть следующий URL:
example.com/products
Пользователь перенаправляется на домашнюю страницу www.example.com, а НЕ www.example.com/products.
Как я могу перенаправить на URL-адрес, к которому пользователь пытается получить доступ, но не на корень www.example.com, а не на корень example.com.
Другими словами, если пользователю нужно следующее:
example.com/products
Я отправляю их
www.example.com/products
Спасибо за любую помощь.
Я размещен на Heroku. Я использую Zerigo DNS. Когда я попытался использовать DNS для пересылки всего трафика с голого домена на домен www.example.com, URL-адрес все еще показывает голый домен.
Так что это не сработало.