2012-03-22 2 views
0

Мне нужно сделать мой url по умолчанию в приложении rails ответить на cdn без www, например my-domain.com. Я попытался переопределить как показано ниже умолчанию ресурса:Преобразование запросов URL-адреса без строки www

def default_url_options 
    if Rails.env.production? 
     {:host => "cdn.com"} 
    else 
     {} 
    end 
end 

Но это решение не работает в связи SSL. В моей .htaccess я попытался это:

RewriteCond %{HTTP_HOST} ^(my-domain\.com)(:443)? [NC] 
RewriteRule ^(.*) https://my-domain/$1 [R=301,L] 
order deny,allow 

Но когда я прошу URL: https://www.my-domain.com/, браузер еще называют один и тот же URL с WWW. Проблема в том, что сертифицированный ssl действителен для my-domain.com нет строки www, и когда я запрашиваю URL-адрес вот так: https://www.my-domain.com/, Chrome сообщает, что ssl недействителен. Мне нужно каким-то образом в применении рельсового преобразовать все запросы: https://www.my-domain.com/ в https://my-domain.com/

Благодаря

ответ

0

Вы должны попробовать это .htaccess

RewriteCond %{HTTP_HOST} ^(www\.)?(my-domain\.com)(:443)? [NC] 
RewriteRule ^(.*) https://my-domain/$1 [R=301,L] 
order deny,allow 

уведомление как есть еще один маркер, (www)? впереди? Он соответствует вашему доменному имени, если у вас есть www перед вами или нет.

+0

Hi, Большое спасибо вашему вниманию. Я использовал эту переписку и не работал. В моем приложении используется apache с Thin. Я считаю, что такая конфигурация должна быть на уровне рельсовой структуры. Например, когда пользователь нажимает ссылку sing_up, рельс заставляет соединение ssl и создает URL-адрес с www.my-domain.com. У вас есть идея? Спасибо – Emygdio

+0

Простите, я forgor поставил точку после www в '^ (www) (my-domain ...' поэтому я не мог работать (он бы переписал 'wwwmy-domain'' mydomain', но не с точкой между ними.Я исправил свой ответ.Пожалуйста, попробуйте еще раз. – devsnd

+0

Кроме того, я не думаю, что вы должны исправить эту проблему в своей структуре: или, вернее, если бы вы это сделали, вам пришлось бы сделайте точно так же, как это правило перезаписи: узнайте, находитесь ли вы в зашифрованном соединении https, если нет: перенаправляйте на http://my-domain.com – devsnd

Смежные вопросы