Мне нужно сделать мой 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/
Благодаря
Hi, Большое спасибо вашему вниманию. Я использовал эту переписку и не работал. В моем приложении используется apache с Thin. Я считаю, что такая конфигурация должна быть на уровне рельсовой структуры. Например, когда пользователь нажимает ссылку sing_up, рельс заставляет соединение ssl и создает URL-адрес с www.my-domain.com. У вас есть идея? Спасибо – Emygdio
Простите, я forgor поставил точку после www в '^ (www) (my-domain ...' поэтому я не мог работать (он бы переписал 'wwwmy-domain'' mydomain', но не с точкой между ними.Я исправил свой ответ.Пожалуйста, попробуйте еще раз. – devsnd
Кроме того, я не думаю, что вы должны исправить эту проблему в своей структуре: или, вернее, если бы вы это сделали, вам пришлось бы сделайте точно так же, как это правило перезаписи: узнайте, находитесь ли вы в зашифрованном соединении https, если нет: перенаправляйте на http://my-domain.com – devsnd