디폴트 경로로 Redirect 하기
다국어를 처리해야 하는데, 여러 가지 방법이 있겠지만, 보통 URL Path에 언어코드를 넣어서 처리한다.
ex) https://azure.microsoft.com/en-us/ or https://azure.microsoft.com/ko-kr/
만약 다른 언어코드를 사용자가 입력했다면? 어떻게 될까? 기본 설정은 해두어서 페이지를 노출하는 데는 문제가 없겠지만, 보이는 주소는 이상한 값이 적혀있을 것이다...
ex)https://azure.microsoft.com/abscsdf-werwers/
나는 Rewrite를 사용하여 디폴트 경로로 Redirect 해주도록 설정했다.
RewriteEngine on
=> mod_rewrite 를 활성화
RewriteCond %{REQUEST_URI} ^/en/[^.]*$ [OR]
RewriteCond %{REQUEST_URI} ^/ko/[^.]*$
RewriteRule ".?" "-" [S=2]
=> /en/~~ 이거나 /ko/~~ 요청이라면 아래는 수행하지 않는다.
RewriteRule ^/(ko|en)$ https://%{SERVER_NAME}/$1/ [R=301]
=> /ko 거나 /en 요청인 경우, 각각 /ko/ /en/ 으로 바꾸어 준다.
RewriteRule ^/[^.]*$ https://%{SERVER_NAME}/ko%{REQUEST_URI}/ [R=301]
=> 모든 요청에 대해, 디폴트로 /ko/로 시작하도록 Redirect 한다.
구글링을 하면서, [L] 설정이 들어가게 되면, 아래 규칙은 안 한다고 한다... 아니다,, 동작한다...
그래서, 리디렉션이 너무 많다고,, 에러가 나더라,,
찾아보니, 아래 규칙을 동작시키지 않는 건 [S=2] 부분이다. 아래 2개 규칙을 Skip 한다는 의미!
위의 규칙은 재귀 함수처럼 종료 조건 ( /en/ or /ko/ )을 주고, 종료 조건이 아니라면, 종료 조건으로 Redirect 한다.
설정은 http-ssl.conf 파일에 적어주면 된다.
요즘, SEO글쓰기를 통해서 디지털 마케팅을 많이 하려고 하고, 개인들도 SEO글쓰기를 통해서 돈을 번다고 한다.
구글 검색엔진은 http보다 https에 더 높은 점수를 준다고 하고, 다국어 처리 가이드도 따로 있다.
http를 https로 Redirect 하는 방법은 별도로 적어 두었다.
2020/06/26 - [웹] - http요청을 https로 redirect 하기