2013-08-02 2 views
0

이전 사이트의 http 및 https 리디렉션을 새 사이트로 구성하려고합니다. 재 작성 지침의 문서에 따르면 Nginx https redirects - 추가 규칙 처리 중지

: // 다음 클라이언트가 리디렉션되고, 더 이상 재 작성 지침이 종료됩니다

는 대체 문자열은 http 시작합니다.

그리고 저는 https를 사용하여 아무런 효과를 얻지 않으려 고합니다. 이 내 서버 설정입니다 :

listen 80; 
listen 443 ssl; 
server_name mydomain.com 

rewrite ^/path/resource(.*)$ $scheme://newdomain.com/newpath/resource$1 permanent; 
... 
return 301 http://newdomain.com/newpath/; 

사용하여 HTTP 내가 무엇을 찾고 얻을 : 내가 newdomain.com/newpath/resource로 리디렉션하고있어 mydomain.com/path/resource에 액세스하는 경우.

그러나 https와 동일하게 http://newdomain.com/newpath/으로 리디렉션됩니다.

의 rewrite_log가 있으며 두 경우 모두 다시 쓰기 규칙이 일치하지만 https 프로토콜이 이후 규칙 처리를 중단하지 않습니다.

나는 정말 명백한 것을 놓치고 있거나 올바르게이 문제에 접근하지 못하고 있다고 느낍니다. 나는 그것이 작동한다면 전혀 다른 방식으로 이것을하는 것이 싫어.

https로 http 리디렉션을 수행하는 방법에 대해 알고 싶으신 분이 계신가요? 그것은 단지 하나이기 때문에

답변

0

나는 보통

location ~ /path/resource(.*) { 
    return 301 $scheme://newdomain.com/newpath/resource$1; 
} 

내가 생각하는 위치 블록을 더 추가 처리가 없을 것입니다 확실히 알고 이런 식으로 경로를 일치 시도, 리디렉션에 대한 return 대신 rewrite를 사용하려면 라인, 그것을 시도하고 그것이 어떻게되는지 말해.

추신 :이, 요청의 $scheme 유지 나는이 시도하고 난 항상 경우에 상관없이 http로 리디렉션 https://

+0

로 리디렉션됩니다 http://https://로 리디렉션됩니다 http://에 요청 원래 URL은 http 또는 https입니다. – Paco

+0

당신이 사용한 새로운 설정을 쓸 수 있습니까? –

+0

'서버 { 수신 대기 80; 듣기 443 ssl; ssl_certificate ... crt_file; ssl_certificate_key ... key_file; server_name mydomain.com www.mydomain.com; 루트 ...; 위치 ~ /path/resource.php(.*) { return 301 $ scheme : //newdomain.com/newpath/resource$1; }' – Paco