MEMO
URL 구조

기준이 되는 URL
상황설명:
한 리소스에 대해 여러 URL을 가지는 웹서버가 있다. 보통 (실제 사용하고 알려져야 할) 기준이 되는 URL과, 단축 혹은 내부 용도의 URL이 있다. 사용자가 요청에 어떤 URL을 사용하던지 기준이 되는 URL만을 보여줘야 한다.

해결책:
기준이 되지않는 모든 URL을 브라우저가 알도록 고치기위해 외부 HTTP 리다이렉션한다. 예를 들어 아래 규칙은 /~user를 기준이 되는 /u/user로 대체하고, /u/user 마지막에 슬래쉬가 없다면 추가한다.

RewriteRule   ^/~([^/]+)/?(.*)    /u/$1/$2  [R]
RewriteRule   ^/([uge])/([^/]+)$  /$1/$2/   [R]
기준이 되는 호스트명
상황설명:
이 규칙은 동일한 사이트에 도달할 수 있는 다른 호스트명 대신 특정 호스트명을 사용하도록 강제한다. 예를 들어, example.com 대신 www.example.com을 사용하도록 강제하고 싶다면 다음과 같은 규칙을 사용할 수 있다.
해결책:
# 80번이 아닌 포트에서 실행하는 사이트용
RewriteCond %{HTTP_HOST}   !^fully\.qualified\.domain\.name [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/(.*)         http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]

# 그리고, 80번 포트에서 실행하는 사이트용
RewriteCond %{HTTP_HOST}   !^fully\.qualified\.domain\.name [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://fully.qualified.domain.name/$1 [L,R]