0

나는 Phalcon PHP로 만든 웹 사이트에서 HTTPS를 구성했습니다. 이제 HTTP에 대한 요청을 HTTPS로 리디렉션하려고합니다. 서버는로드 밸런서가있는 AWS EC2입니다.PhalconPHP + .htaccess : https를 강요하는 법

Phalcon PHP는이 .htaccess 파일이 있습니다

/htaccess로

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ public/ [L] 
    RewriteRule (.*) public/$1 [L] 
</IfModule> 

내가 this post의 지침을 따라 추가

AddDefaultCharset UTF-8 

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] 
</IfModule> 

/공공 htaccess로 이 파일들을이 파일에 저장하면 ERR_TOO_MANY_REDIRECTS가 생깁니다.

# force HTTPS 
RewriteCond %{HTTPS} !=on 
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

여기서 내가 잘못하고있는 것을 알아낼 수 있습니까?
도움 주셔서 감사합니다.

업데이트 : AWS의로드 밸런서에 문제가있는 것 같습니다. 이것은 내 구성입니다 :로드 밸런서가있는 EC2 인스턴스 (SSL 인증서 사용), 내 Route53에서이로드 밸런서를 가리 킵니다. this post에서 답을 시도했지만 여전히 작동하지 않습니다.

답변

1

니콜라이의 대답은 잘하지만 문제는 뭔가 다른했다 : AWS 부하 분산에 문제가.

<IfModule mod_rewrite.c> 
     RewriteEngine on 

     #solves the problem with load balancer 
     RewriteCond %{HTTP:X-Forwarded-Proto} =http 
     RewriteRule ^$ https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent] 

     RewriteCond %{HTTP:X-Forwarded-Proto} =http 
     RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent] 

     RewriteRule ^$ public/ [L] 
     RewriteRule (.*) public/$1 [L] 
</IfModule> 

아마존의 기사 here : 그래서,이 내 현재의 루트의 .htaccess이다.

+1

재미 있고, 감사합니다. –

1

HTTPS 리디렉션 또는 기타 리디렉션은 .htaccess 파일의 Phalcon 규칙 앞에 있어야합니다.

이것은 루트 폴더에 내 htaccess로 파일입니다

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    # Force HTTPS 
    RewriteCond %{HTTPS} off 
    RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

    # Force www 
    RewriteCond %{HTTP_HOST} !^$ 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteCond %{HTTPS}s ^on(s)| 
    RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

    # Forward to /public/ folder 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 
+0

답변 해 주셔서 감사합니다. .htaccess가 작동해야하지만 내 서버에서 어떤 이유로 작동하지 않습니다. 코드는 http://htaccess.mwl.be/에 테스트를 통과하지만 내 서버에서는 503 오류가 발생합니다. 이 문제를 해결하기 위해 노력 중입니다. 나는이 문제를 발견했을 때 여기에 다시 쓸 것입니다. 그것은 작은 세부 사항이어야합니다. –