nginx rewrite
도메인이 www 로 시작하지 않는 것을 www로 가게
- 서브 도메인이 없을 경우
# 서브 도메인을 모두 무시하게 만든다.
if ($host !~* ^www\.) {
rewrite ^(.*)$ http://www.$host$1 permanent;
} - 서브 도메인이 있다면 www 서브 도메인이 지정 안됐을 경우만 처리
# .com .net .org 에 대해서도 마찬가지 처리
if ($host ~* ^([a-z0-9\-]+\.(com|net|org))$) {
set $host_with_www www.$1;
rewrite ^(.*)$ http://$host_with_www$1 permanent;
}
Query Parameter 삭제
- nginx rewrite는 rewrite 후에 쿼리 파라미터를 자동으로 붙여버린다.
- 쿼리 파라미터가 붙는 것을 막으려면 타겟 URL의 끝에 물음표(?)가 있어야 한다.
rewrite ^ http://www.example.com/? last; # 쿼리 파라미터를 무시하고 무조건 http://www.example.com 으로 보내버림
http로 온 것을 모두 https로
- 예제
server {
listen 80;
server_name my.domain.com;
rewrite ^(.*) https://$host$1 permanent;
}server {
listen 443;
server_name my.domain.com;
# …..
}