사용자 도구

사이트 도구


nginx:rewrite

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
nginx:rewrite [2012/10/25 17:43]
kwon37xi 새로 만듦
nginx:rewrite [2019/01/08 16:42] (현재)
kwon37xi
줄 1: 줄 1:
 ====== nginx rewrite ====== ====== nginx rewrite ======
   * [[http://wiki.nginx.org/HttpRewriteModule|nginx HttpRewriteModule]]   * [[http://wiki.nginx.org/HttpRewriteModule|nginx HttpRewriteModule]]
 +
 +===== 도메인이 www 로 시작하지 않는 것을 www로 가게 =====
 +  * [[http://stackoverflow.com/questions/1629231/nginx-rewrite-non-www-prefixed-domain-to-www-prefixed-domain|Nginx rewrite non-www-prefixed domain to www-prefixed domain]] 참조
 +  * 서브 도메인이 없을 경우<code>
 +# 서브 도메인을 모두 무시하게 만든다.
 +if ($host !~* ^www\.) {
 +    rewrite ^(.*)$ http://www.$host$1 permanent;
 +}
 +</code>
 +  * 서브 도메인이 있다면 www 서브 도메인이 지정 안됐을 경우만 처리<code>
 +# .com .net .org 에 대해서도 마찬가지 처리
 +if ($host ~* ^([a-z0-9\-]+\.(com|net|org))$) {
 +    set $host_with_www www.$1;
 +    rewrite ^(.*)$ http://$host_with_www$1 permanent;
 +}
 +</code>
 +
 +===== Query Parameter 삭제 =====
 +  * nginx rewrite는 rewrite 후에 쿼리 파라미터를 자동으로 붙여버린다.
 +  * 쿼리 파라미터가 붙는 것을 막으려면 타겟 URL의 끝에 물음표(?)가 있어야 한다.<code>
 +rewrite ^ http://www.example.com/? last; # 쿼리 파라미터를 무시하고 무조건 http://www.example.com 으로 보내버림
 +</code>
 +
 +===== http로 온 것을 모두 https로 =====
 +  * [[http://serverfault.com/questions/67316/in-nginx-how-can-i-rewrite-all-http-requests-to-https-while-maintaining-sub-dom|redirect - In Nginx, how can I rewrite all http requests to https while maintaining sub-domain?]]
 +  * 예제<code>
 +server {
 +    listen 80;
 +    server_name    my.domain.com;
 +    rewrite ^(.*) https://$host$1 permanent;
 +}
 +
 +server {
 +    listen 443;
 +    server_name    my.domain.com;
 +    # .....
 +}
 +</code>
 +
 +===== 참고 =====
 +  * [[https://www.cyberciti.biz/faq/linux-unix-nginx-redirect-all-http-to-https/|How To Nginx Redirect All HTTP Request To HTTPS Rewrite 301 Rules - nixCraft]]
 +
  
nginx/rewrite.1351154585.txt.gz · 마지막으로 수정됨: 2012/10/25 17:43 저자 kwon37xi