리다이렉션했는데 슬래쉬가 2개 붙는 경우? //
음.. 나는 일단 www.abc.com으로 접속하면 abc.com으로 http로 접속하면 https로 접속되게끔 httpd-prefix.conf를 수정한 상태인데 동작이 좀 이상하다. 위 사진처럼 끝에 슬래쉬가 2개 붙는 경우가 있다.
httpd-prefix.conf
1 2 3 4 5 6 7 8 | RewriteEngine On #www > non-www RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] #http > https RewriteCond %{HTTPS} !=on RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R=301,L] | cs |
정확하게 테스트를 해보자
입력된 주소 |
변경된 주소 |
abc.com |
https://abc.com |
www.abc.com |
https://abc.com// |
http://abc.com |
https://abc.com |
http://www.abc.com |
https://abc.com// |
https://abc.com |
https://abc.com |
https://www.abc.com | https://abc.com |
음.. http이면서 www가 붙는 경우에 생기는 문제 같다.
다행히 https://stackoverflow.com/questions/234723/generic-htaccess-redirect-www-to-non-www를 뒤져보면 답이 있다.
(double slash, double final slash)
1 2 3 4 5 6 7 8 | RewriteEngine On #www > non-www RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^/(.*)$ https://%1/$1 [R=301,L] #http > https RewriteCond %{HTTPS} !=on RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R=301,L] | cs |
위의 코드에서 5번째 줄에 빨간색으로 표시한 /와 s가 추가됐다. s는 없어도 되긴 하지만.. 과부하를 조금이라도 줄이기 위해 ㅎㅎ;;
sudo /opt/bitnami/ctlscript.sh restart apache
명령어로 서버 재시작 후에.. 시간이 좀 지나도(2~3분) 문제는 해결되지 않았다 ㅡ.ㅡ;;;
이 문제에 대해 잊어먹었다가. 며칠 지나서 확인하니 //가 끝에 붙는 문제가 해결된 것을 확인했다.
신기하게도 서버 재시작해도 바로 적용이 안되나보다. 같은 문제를 겪는 사람들은 위와 같이 코드를 고치고 조금 시간을 두고 확인해보자!
댓글 영역