2012-01-10 2 views
3

어떻게 만들 수 있습니까? http://domain.com 301 리디렉션을 http://www.domain.com으로 만드시겠습니까? 나는 ModRewrite에 .htaccess를 사용하는 데 익숙하다. 그러나 나는 Heroku에서 할 수 없다는 것을 배웠다. htaccess로의Heroku 301 리디렉션

예 :

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{HTTP_HOST} ^domain.com [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] 

내 파일 구조 : 난 그냥 한 페이지를 제공하고 있습니다

- /public 
--- /style 
--- index.html 
- config.ru 

, 내 config.ru이 구성

use Rack::Static, 
:urls => ["/style"], 
:root => "public" 

run lambda { |env| 
[ 
200, 
{ 
'Content-Type' => 'text/html', 
'Cache-Control' => 'public, max-age=86400' 
}, 
File.open('public/index.html', File::RDONLY) 
] 
} 
+0

아무도 여기에 나를 위해 일하지 www.yourdomainname.com로 리디렉션 내가 오래 전에이 포기 말한다 . – David

+0

나는 똑같은 문제가있다. 여전히 해결책이 없다? – dinkelk

답변

0

새로운 무료 Custom Domain을 추가해야합니다.

+0

나는 http : // www. 및 http : // 설치, 둘 다 작동하지만 그건 내가 묻는거야. http://domain.com에 가면 www.domain.com에로드하려고합니다. – David

3

gemfile에 rack_rewrite (gem 'rack-rewrite')를 사용하고 초기화 프로그램 디렉토리에 rack_rewrite.rb를 만듭니다.

YourAppName::Application.config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do 
    r301 %r{.*}, 'http://www.yourdomainname.com$&', :if => Proc.new {|rack_env| 
    rack_env['SERVER_NAME'] != 'www.yourdomainname.com' 
    } 
end if Rails.env == 'production' 

이 요구되는 서버 이름이 아닌 경우 www.yourdomainname.com 후 답변

+0

좋아요,이 작업을 수행했지만 효과가없는 것으로 보입니다. /config/initializers /를 추가 한 다음 위 코드로 rack_rewrite.rb를 만든 다음 (분명히 내 도메인 이름을 변경 함) Heroku가 rack-rewrite gem을 감지하여 설치했습니다. 하지만 ... domain.com을로드하면 아무 것도 발생하지 않습니다 (즉,로드 만하면 www로 다시 작성되지 않습니다). – David

+0

홀수 - 프로덕션 앱에서 바로 들어 봤습니다. 아, 내 레일 1 월 3 일 애플 리케이션 - https://github.com/jtrupiano/rack-rewrite에서 지침을보세요 –

+0

내 랙 애플 리케이션은/config/이니셜 라이저가 내 파일을 고려하고 있는게 뭔지 모르겠다 생각하고있어. 내 주요 게시물에 구조? – David