개발 Q&A

제목 .htaccess 파일을 이용해서 https로 redirect하는 질문입니다.
카테고리 서버
글쓴이 브레인토스트 작성시각 2016/12/21 12:01:47
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 13373   RSS

자꾸 질문해서 죄송합니다.

구글링하고 여러가지 Example이랑 제가 나름 거기서 수정해서 해봤는데 잘안되네요..

자꾸 503 오류만 뱉습니다.

 

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteCond $1 !^(index\.php|images|captcha|assets|include|robots\.txt)

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ %{REQUEST_URI}.php[L]

</IfModule>

 

일단 이건 제 .htaccess파일입니다.

파일확장자를 표시하지 않기위해 이렇게 사용하고 잘작동합니다.

 

이제 여기서 http 프로토콜인 경우에 https 로 redirect 하는 걸 집어넣어야 하는데요.

사용해본건 저 .htaccess파일 아래에 덧붙여서 사용했습니다.

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{SERVER_NAME}/%$1 [R,L]

이것과

RewriteCond     %{SERVER_PORT} ^80$
RewriteRule     ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

그리고

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

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

 

이런걸 사용해봤는데 전부 처음엔 loop redirect로 서버가 작동을 안하다

나중엔 503 오류를 뱉기만 합니다.. 뭐가 문제일까요 ..

 다음글 정규식 문법이 프로그래밍 언어마다 달라질수 있나요? (2)
 이전글 탭키로 메인메뉴에서 서브메뉴로 이동 문제(explore... (1)

댓글

브레인토스트 / 2016/12/21 18:24:30 / 추천 0
해결하긴 했습니다만..
이것저것 로그도 찍어보고 $_SERVER변수도 찍어보고 했는데
$_SERVER['HTTPS']가 전혀 출력이 나오지 않는게 이상해서

관련 내용을 검색해보고 HTTP fowarded proto라는게 있다는걸 알게됐습니다 .그래서 .htaccess파일에서 해당 변수를 체크해서 https로 redirect하게 수정했습니다.
혹시 $_SERVER['HTTPS']가 https로 접속한 상태에서도 찍히지 않는 이유가 무엇인지 아는분 있으신가요
브레인토스트 / 2016/12/21 21:37:01 / 추천 0

해결했습니다...

aws ERB가 문제였던듯 하네요.. 인증서가 ec2에 erb에 물려있는 방식이라 바꿔도 소용없엇다는. ..

aws에서는 내부 웹서버에 접근할떄는 무조건 80포트를 사용하는데 제가 리다이렉트를 https로 해주니까 문제가 생기는거더라구요..