TIL 2021-07-28

한꼬북·2021년 7월 28일
0

TIL

목록 보기
3/5
post-thumbnail

뭐가 문제인데?

  • request시 www 서브 도메인을 넣고 접근하면 www를 뺀 도메인으로 redirect 시키고 싶었다.
    그 이유로는!

현재 로직은 Cookie로 jwt를 보내서 로그인 처리를 하는데 www 붙인 웹 사이트와 붙이지 않은 사이트는 다른 사이트로 처리된다. 그래서 로그인 후 토큰을 발급 받고 www를 붙이거나 붙이지 않은 웹 사이트에 요청시 예외가 발생했다.

2. 검색엔진 최적화 (seo)

검색엔진 최적화(seo)면에서도 유리하다고 하다. 한 웹사이트로 통일 되기에,,? 사실 이건 부가적이고 1번째 이유가 99%😋

AWS EC2에 tomcat9을 통해 배포했고,
그렇기 때문에 tomcat쪽에서 redirect 해줄 방법을 찾아봤다.
찾고도 몇번을 시행착오 끝에 성공 😭


그래서 어떻게?

1. server.xml에 Valve 추가하기

Valve : Catalina 컨테이너의 요청 처리 파이프라인 상에서 특정기능을 수행하기 위해 추가될 수 있는 컴포넌트

<Host name="localhost" appBase="webapps"
	unpackWARs="true" autoDeploy="true">
    <!--Host아래 Valve추가해주기-->
	<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" /> 
    ...
</Host>

2. rewrite.config 만들기

경로 /tomcat9/conf/Catalina/host/
RewriteCond = 규칙 조건
RewriteRule = 규칙 조건이 충족된 경우 사용

RewriteCond %{HTTP_HOST} ^www.도메인.com [NC]
RewriteRule ^(.*)$ https://도메인.com$1 [L,R=301]

참고

tomcat rewrite 공식 문서 🕵️‍♀️
네이버 chess님의 블로그 👀

profile
오히려 좋아, 자 가보자고!

0개의 댓글