2012-03-22 5 views
0

레일즈 애플리케이션의 기본 URL을 my-domain.com과 같은 www가없는 cdn에 응답해야합니다. 다음과 같이 default_url을 덮어 쓰려고했습니다.www 문자열이없는 URL 변환 요청

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

그러나이 해결책은 SSL 연결에서 작동하지 않습니다.

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

하지만이 URL을 요청할 때 : 내 htaccess로에서 나는이 시도 https://www.my-domain.com/를, 브라우저는 아직 WWW와 같은 URL을 호출합니다. 문제는 인증 된 SSL 인증이 www 문자열에없는 my-domain.com에 유효하며이 URL에 https://www.my-domain.com/과 같은 URL을 요청하면 ssl이 유효하지 않음을 알립니다. 나는 모든 요청을 변환하는 레일 응용 프로그램에서 수있는 방법이 필요합니다 : https://www.my-domain.com/ 덕분에 앞에

답변

0

당신이 다른 토큰이 얼마나

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

통지 .htaccess로 시도해야, (www)?

https://my-domain.com/에? www가 앞에 있거나없는 경우 도메인 이름과 일치합니다.

+0

안녕하세요, 감사합니다. 나는이 재 작성을 사용했고 일하지 않았다. 내 응용 프로그램은 Thin과 함께 apache를 사용합니다. 이러한 종류의 구성은 레일 프레임 워크 수준이어야한다고 생각합니다. 예를 들어 사용자가 sing_up 링크를 클릭하면 레일이 SSL 연결을 강제로 수행하고 www.my-domain.com을 사용하여 URL을 작성하기 때문입니다. 너는 어떤 생각을 가지고 있니? 감사합니다 – Emygdio

+0

죄송합니다. forgor은'^ (www) (my-domain ... ')에 www 다음에 점을 넣으므로 작동하지 않습니다 ('wwwmy-domain'을' mydomain'하지만 그 사이의 점이 아닙니다. 내 대답을 바로 잡았습니다. 다시 시도하십시오. – devsnd

+0

또한이 문제를 프레임 워크로 해결해야한다고 생각하지 않습니다. 그렇지 않으면 오히려 수행해야합니다. 이 다시 쓰기 규칙과 똑같은 일을하십시오. https 암호화 된 연결을 사용 중인지 확인하십시오. 그렇지 않은 경우 http://my-domain.com으로 리디렉션하십시오. – devsnd