• htaccess vs header 리다이렉트 :: 마이구미
    HTTP 2016. 12. 9. 19:30
    반응형

    이번 글의 주제는 "htaccess vs header" 이다.

    무슨 의미인지 잘 이해가 안갈 수 있다.

    리다이렉트를 중점으로 다룰 것이다.

    리다이렉트는 누구나 사용하고 있지만 대수롭게 여기지 않고 있다.

    한번 자세히 알아보자.


    리다이렉트에 대해서의 고민은 너무나 광범위하다.

    아래와 같은 고민이 있을 수도 있다.


    http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=265195108&page=1#answer1


    위 고민은 처음 들어오는 페이지가 있는데 바로 리다이렉트를 시켜서 진짜 페이지를 보여준다.

    이 경우 meta를 어느 페이지에 설정해야할 지 고민한다.

    고민하는 이유는 검색봇이 어떤 페이지의 정보를 긁어갈 지 모르기 때문이다.

    봇마다 다르지만 왠만하면 리다이렉트는 명확해야한다. URL만을 가지고 긁어가는 봇들이 존재하기 때문이다.

    이런 경우에는 301 리다이렉트를 권장한다.

    (자세한 내용은 참고 링크를 남기겠다.)


    리다이렉트가 사용할 때는 많은 경우가 있다.

    자바스크립트의 경우는 document.location.href = "URL" 과 같이 많이 사용한다.

    위와 같이 사용하면 되긴 하지만, 이 방법이 좋지 못한 경우도 있다.

    대표적인 예로 www.mygumi.com 으로 접속할 때 www를 뺀 mygumi.com 으로 접속시키고 싶을 수 있다.

    여기서 www가 붙지 않으면 non-www 라고 불린다.

    www와 non-www는 엄연히 다르다.

    그렇기에 둘 중 하나를 골라 사용하는 것이 올바른 선택이다.

    (이것 또한 아래 참고 링크를 남기겠다.)


    이 경우 크게 서버쪽에서 소스를 추가하거나 .htaccess를 수정하는 방법이 있다.

    php를 예로 든다면 아래와 같이 할 수 있다.


    if (substr($_SERVER['HTTP_HOST'], 0, 4) === 'www.') {
        header('Location: http'.(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 's':'').'://' . substr($_SERVER['HTTP_HOST'], 4).$_SERVER['REQUEST_URI']);
        exit;
    }

    .htaccess는 아래와 같이 할 수 있다.


    #Force non-www:
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
    RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
    결과적으로는 두 방법 모두 301 리다이렉트이다.
    그렇다면 차이점이 무엇인지 설명해보겠다.

    먼저 .htaceess에 대해서 보자.
    .htaccess 는 우선적으로 탐색되어 먼저 실행된다.
    쉽게 말하면 php 파일보다 먼저 실행되는 것이다.
    그렇기에 php을 읽기 전에 실행됨으로써 조금 더 효율적이라고 생각할 수 있다.
    하지만 이것이 독이 될 수도 있다.
    1. 우선적이기 때문에 다른 것들은 무시해버린다. (무시해도 상관없고 .htaccess에서만 관리하고 싶다면 문제될 것은 없다.)
    2. 우선적이기 때문에 만약 sql 연결과 같은 경우 지연될 수 있다. (지연시간은 무시할 정도로 작다고 한다)

    이번엔 php를 통해 header 선언에 대해서 보자.
    가장 기본적인 방법이기에 딱히 설명할 건 없다.

    결론은.....
    개인 취향인 것 같다.
    하지만 본인은 전체적으로 보면 예로 든 php 와 같이 구현하는 편이 좋은 것 같다.
    .htaccess를 이용할 경우는 공수가 많이 든다.
    완벽히 파악하고 가볍게 만들 수 있다면 .htaccess가 더 효율적이 될 수도 있을 것 같다......
    결국 결론은 개인 취향?
    좋은 의견을 남겨주시면 감사하겠다.
    이만 안녕.


    301 redirect vs 302 redirect 차이

    http://www.seo-korea.com/301-vs-302-redirect/


    www vs non-www 차이

    http://babo.co/information/cloud/iaas/aws-route53-s3-non-www-redirection


    htaccess vs header - stackoverflow

    http://stackoverflow.com/questions/4094932/htaccess-redirect-vs-php-redirect


    반응형

    댓글

Designed by Tistory.