2013-01-08 1 views
4

나는 헬로우 (heloku)에서 실행중인 레일 앱을 보유하고 있으며, SEO 목적으로 내 도메인 용/블로그 용 Wordpress 블로그를 설정하려고합니다. 나는 Rack :: ReverseProxy를 블로그의 하위 도메인을 가리키는 내 레일 앱에 설정하고 모든 CSS 및 링크가 올바르게 작동하도록 Wordpress 쪽의 모든 구성을 설정했습니다. 내가 겪고있는 문제는/blog/wp-admin에 갈 때/blog/wp-login으로 리다이렉트 되었습니까? redirect_to = {blog의 서브 도메인} & reauth = 1이고 로그인을 시도한 후에 보내졌습니다. 같은 페이지로레일즈 heroku 응용 프로그램에 하위 폴더로 로그인 할 수없는 하위 폴더로 로그인

Wordpress의 테스트 쿠키가 올바른 도메인으로 설정되어 있어도 로그인을 위해 쿠키를 사용하고 있지 않은 것으로 나타났습니다. 나는 wp_set_auth_cookie의 wp-includes/pluggable.php에서 성공한 로그인 후에 실제로 쿠키를 설정하고 setcookie를 호출하면 true를 반환하지만 쿠키가 내 세션에 추가되지 않은 직후 추적됩니다. 테스트 쿠키가 헤더에서 성공적으로 통과 했음에도 불구하고)

나는 잘못된 방향을보고 있습니까? 이 방법으로 로그인 할 수 있도록 조사해야 할 설정이 있습니까?

+0

이 작업을 성공적으로 마쳤습니까? 두 가지 사항은 사이트 URL 경로 및 쿠키 설정입니다. –

+0

내가 귀하의 설명에서 실제로 만들 수없는 것은 귀하의 쿠키가 WP에 도착했는지 여부입니다. WP는 브라우저/클라이언트에 쿠키를 설정하지만 브라우저가 WP로 다시 전달할 수 있는지 여부는 언급하지 않습니다. WP로가는 길에 길을 잃을 수도 있습니다. – berkes

+0

같은 문제가있는 해결책을 찾았습니까? – nicolas

답변

0

답변이 없지만 무슨 일이 일어나고 있는지 더 잘 이해할 수있는 몇 가지 제안 사항이 있습니다.

Google 크롬을 사용하는 경우 개발자 도구의 네트워크 패널을 열고 로그인하면 어떻게되는지보십시오.

쿠키를 설정할 도메인을 확인하십시오. 로그인을 처리하는 POST 요청에 대한 응답 헤더를 볼 때 Set-Cookie 헤더가 표시되고 해당 도메인이 .domain인지 확인해야합니다 .com 또는 blog.domain.com을 방문하여 요청이 다른 장소로 전달되는지 확인하십시오.

또 다른 가능성은 당신의 워드 프레스 설치가 당신이 예를 들어 사이트의 URL 대신 blog.domain.com

의 www.domain.com/blog되고, 그것을 원하는 것보다 다르게 구성 될 수 있다는 것이다 그것은 당신을 위해 가능 blog.domain.com/wp-admin/의 로그인 페이지로 이동 하시겠습니까?

1

나는이 정확한 문제가 있었고 마침내 랙 - 역방향 프록시의 버그를 추적했다. 쿠키 설정 헤더가 부적절한 형식으로 전송되었으므로 첫 번째 쿠키 만 브라우저에서 올바르게 해석됩니다. 그게 워드 프레스 테스트 쿠키 였어. 다른 유용한 (유용한) 것들은 버려지고 있었으므로 물론 로그인 할 수 없었습니다.

버그를 제출하고 rack-reverse-proxy로 브랜치 할 계획이지만 그 동안이 패치로 수정했습니다. 내 config.ru :

class MyReverseProxy < Rack::ReverseProxy 
    private 
    def create_response_headers(http_response) 
    response_headers = super(http_response) 
    if response_headers 
     if response_headers["Set-Cookie"].is_a?(Array) 
     response_headers["Set-Cookie"] = response_headers["Set-Cookie"].join("\n") 
     end 
    end 
    response_headers 
    end 
end 

# this is to make /blog show my wordpress blog 
use MyReverseProxy do 
    reverse_proxy_options :preserve_host => false 
    reverse_proxy(/^\/blog(\/.*)$/, 'http://your-blog-server.com$1') 
end 
관련 문제