<-
Apache > HTTP Server > Documentation > Version 2.5 > Rewrite

Apache mod_rewrite ���

°¡´ÉÇÑ ¾ð¾î:  de  |  en  |  es  |  fr  |  ja  |  ko  |  tr  |  zh-cn 

�� 문ì���� mod_rewrite 참조 문ì��ë¥� ë³´ì¶©�©ë����. mod_rewrite �¬ì�©ì�� ������ 기본 ê°����� �¤ë��©ë����. �¤ë¥¸ 문ì������ �� ���¸í�� �¤ë£¨ì§�ë§�, �� 문ì���� ì´�ë³´ì��ê°� �������� �� ������ �� ê²�������.

Âü°í

top

���

Apache 모ë�� mod_rewrite�� URL ì¡°ì���� �������� ë°©ë��� ��ê³µí���� 매ì�� ê°��¥í��ê³� ��êµ��� 모ë��������. �´ë�� �¬ì�©í��ë©� ������ ê±°ì�� 모ë�� ������ URL �¬ì���±ì�� ������ �� ���µë����. ê·¸ë�¬ë�� �¤ì�� ë³µì�¡í��ë©� ì´�ë³´ì����ê²� �������� �� ���µë����. ���� �¤ì��ë¡� 무ì���� ����ì§� �´í�´í��ì§� ��ê³� �¬ì���� ê·�ì¹��� ë§�ë²��� 주문ì²��� ì·¨ê����� ê²½í�¥ì�� ���µë����.

�� 문ì���� �´í���� �´ì�©ì�� �¨ì���� 맹목���¼ë� ë³µì�¬ë���� ê²��� ������ �´í�´ë����ë¡� ì¶©ë��� ë°°ê²½ ì§����� ��ê³µí��ê³��� �©ë����.

ë§��� �¼ë����� URL ì¡°ì�� �������� mod_rewrite�� ��ì²� 기ë�¥ê³¼ ë³µì�¡ì�±ì�� ������ì§� ���¤ë�� ê²��� 기ì�µí��������. ê°��¨í�� �������� mod_alias�� ���� ���¤í���� URL 매í�� 문ì��ë¥� 참조��������.

ë§�ì§�ë§��¼ë� ì§�����ê¸� ���� LogLevel ì§����´ë�� �¬ì�©í���� mod_rewrite�� ë¡�ê·� ��벨ì�� trace ��ë²� ì¤� ����ë¡� 구ì�±í��������. �´ë�� �������� ���� ��ë³´ë�� ��ê³µí�� �� ��ì§�ë§�, mod_rewrite �¤ì���� 문ì��ë¥� ��ë²�ê¹����� �� ������������. ê°� ê·�ì¹��� �´ë�»ê� ì²�리ë����ì§� ������ ���¤ì£¼ê¸� ��문ì������.

top

��� ������

mod_rewrite�� Perl �¸í�� ��ê·� ������ �´í��ë¥� �¬ì�©í�©ë����. �� 문ì�������� ��ê·� �������� ���� ���¸í�� 참조ë¥� ��ê³µí��ì§� ���µë����. �´ë�� ���� PCRE 매ë�´ì�� ���´ì�, Perl ��ê·� ������ 매ë�´ì�� ���´ì� ë°� Jeffrey Friedl�� Mastering Regular Expressions(3���� 2006���� ì¶�������ì§�ë§� ��ê·� ������ 구문�� 본ì����¼ë� ë³�ê²½ë��ì§� �����¼ë©° �� 주ì���� ���� ê²°ì������ ì°¸ê� ��ë£�ë¡� �¨ì�� ���µë����)ë¥� ê¶��¥í�©ë����.

�� 문ì�������� RewriteRule�� ë§�ë²��� 주문�� ���� ê³¼í���� ê³µì���� ����ë¡� �������´ì� ���� ��ì¤����� ������기ì�� ì¶©ë��� ��ê·� ������ �´í��ë¥� ��ê³µí��ê³��� �©ë����.

��ê·� ������ �´í��

�¤ì���� ��ê·� ������ê³� RewriteRule�� ���±í��ê¸� ���� ������ ìµ������� 구ì�� ����������. �´ê��¤ì�� ������ ��ê·� ������ �´í��ë¥� �����´ì��� ��ì§�ë§� ������기ì�� ì¢��� ì¶�ë°����´ë©°, 기본���� ��ê·� �������� �½ê� ����ë§��� ê²��� ���±í���� �� ������ �� ê²�������.

문� ��� ����
. ������ �¨ì�� 문ì���� �¼ì� c.t�� cat, cot, cut �±ê³¼ �¼ì�
+ �´ì�� �¼ì�ë¥� �� ë²� �´ì�� ë°�ë³� a+�� a, aa, aaa �±ê³¼ �¼ì�
* �´ì�� �¼ì�ë¥� 0ë²� �´ì�� ë°�ë³� a*�� a+ê°� �¼ì����� 모ë�� ê²�ê³� �¼ì���ì§�ë§� ë¹� 문ì���´ê³¼�� �¼ì�
? �¼ì�ë¥� �������¼ë� ë§��� colou?r�� color�� colour�� �¼ì�
\ �¤ì�� 문ì��ë¥� �´ì�¤ì��´í�� \.�� ������ �¤ë��� ������ �¨ì�� 문ì��ê°� ���� .(��)ê³� �¼ì�
^ �µì»¤�¼ê� ��ë©�, 문ì���´ì�� ����ê³� �¼ì� ^a�� aë¡� �������� 문ì���´ê³¼ �¼ì�
$ �¤ë¥¸ �µì»¤, 문ì���´ì�� ��ê³� �¼ì� a$�� aë¡� ������ 문ì���´ê³¼ �¼ì�
( ) �¬ë�� 문ì��ë¥� �¨ì�� �¨ì��ë¡� 그룹����ê³� ��참조���� �¬ì�©í�� �¼ì�ë¥� 캡ì� (ab)+�� abababê³� �¼ì� - ì¦�, +ê°� 그룹�� ���©ë��. ��참조�� ���� ���¸í�� �´ì�©ì�� ����ë¥� 참조
[ ] 문ì�� �´ë���� - 문ì�� ì¤� ������ �¼ì� c[uoa]t�� cut, cot ���� catê³� �¼ì�
[^ ] ë¶��� 문ì�� �´ë���� - ì§�����ì§� ���� 모ë�� 문ì���� �¼ì� c[^/]t�� cat ���� c=t�� �¼ì���ì§�ë§� c/t���� �¼ì���ì§� ����

mod_rewrite���� ! 문ì���� ��ê·� ������ ���� �¬ì�©í���� ë¶����� �� ���µë����. ì¦�, 문ì���´ì�� ��머ì� ������ê³� �¼ì���ì§� ���� ê²½ì�°ì��ë§� �¼ì��� ê²��¼ë� ê°�주ë�©ë����.

��ê·� ������ ��참조 �¬ì�� ê°��¥ì��

�¬ê¸°�� 기ì�µí�´ì�� �� ì¤����� ���� ���µë����: Pattern�´ë�� CondPattern ì¤� �������� ê´��¸ë�� �¬ì�©í�� ��ë§��� �´ë����¼ë� ��참조ê°� ���±ë��ë©� 문ì���� $Nê³� %N(���� 참조)�¼ë� �¬ì�©í�� �� ���µë����. �´ê��¤ì�� RewriteRule�� Substitution 매ê�ë³��� ���� RewriteCond�� TestString 매ê�ë³���ë¥� ���±í���� �� �¬ì�©í�� �� ���µë����.

RewriteRule �¨í�´ì�� 캡ì��� (ì§�ê´��� ë°�����) 모ë�� ���� RewriteCond ì§����´ì���� �¬ì�©í�� �� ���µë����. RewriteRule �������� ê°�ë³� ì¡°ê±´ë³´ë�� 먼ì�� ��ê°���ê¸� ��문ì������.

그림 1�� ��참조ê°� ���¥ì�� ���� ���¬ë���� ��ì¹��� RewriteRule, RewriteCond 매칭�� ��ë¦��� ë³´ì�¬ì�����. �¤ì�� �¥ì���� �´ë�¬í�� ��참조ë¥� �¬ì�©í���� ë°©ë��� ��구í�� ê²��´ë��ë¡�, ì²����� �¤ì�� ������ê²� ��ê»´ì�¸ë�� ê±±ì����ì§� ë§�������.

RewriteRule� RewriteCond 매칭�� ���
그림 1: ê·�ì¹��� �µí�� ��참조 ��ë¦�.
�� �������� /test/1234�� ���� ��ì²��� /admin.foo?page=test&id=1234&host=admin.example.com�¼ë� ë³����©ë����.

top

RewriteRule 기본

RewriteRule�� 공백�¼ë� 구ë��� �� ê°��� �¸ì��ë¡� 구ì�±ë�©ë����. �¸ì���� �¤ì��ê³� ê°��µë����:

  1. Pattern: ê·�ì¹��� ���¥ì�� ë°��� �¤ì�´ì�¤ë�� URL;
  2. Substitution: �¼ì����� ��ì²��� ���¡ë���´ì�� �� ê³�;
  3. [flags]: �¬ì���±ë�� ��ì²��� ���¥ì�� 미ì��� �µì��.

Pattern�� ��ê·� ������������. ì²�������(ì²� ë²�ì§� �¬ì���� ê·�ì¹��´ê±°�� ì¹����� ë°�����ê¸� ��ê¹�ì§�) �¤ì�´ì�¤ë�� ��ì²��� URL ê²½ë�(�¸ì�¤í�¸ë� �¤ë��� 쿼리 문ì���´ì�� ������ �����´ë�� 물ì���� ��ê¹�ì§��� ë¶�ë¶�) ���� ������리ë� 컨í���¤í�¸ì������ ê·�ì¹��� ������ ������리ì�� �������� ��ì²� ê²½ë��� ë¹�êµ��©ë����. ì¹����� ë°�����ë©� �´í���� ê·�ì¹��� ì¹����� ê°�ê³� ë¹�êµ��©ë����.

RewriteRule ì§����´ì�� 구문
그림 2: RewriteRule ì§����´ì�� 구문.

Substitution�� ��ì²´ì���¼ë� �¤ì�� �� ê°�ì§� ì¤� ������ �� ���µë����:

1. ������ ���� ��ì²� ���� ���¤í�� ê²½ë�
RewriteRule "^/games" "/usr/local/games/web/puzzles.html"

�´ê��� Alias ì§����´ì�� ë§�ì°¬ê�ì§�ë¡� ��ì²��� ���� ���¤í���� ������ ��ì¹��� 매í���©ë����.

2. ������ ���� �� ê²½ë�
RewriteRule "^/games$" "/puzzles.html"

DocumentRootê°� /usr/local/apache2/htdocsë¡� �¤ì���� ê²½ì�� �� ì§����´ë�� http://example.com/games�� ���� ��ì²��� /usr/local/apache2/htdocs/puzzles.html ê²½ë�ë¡� 매í���©ë����.

3. ���� URL
RewriteRule "^/product/view$" "http://site2.example.com/seeproduct.html" [R]

�´ê��� �´ë�¼ì�´ì�¸í�¸ì��ê²� ì§����� URL�� ���� �� ��ì²��� ����ë¡� ì§����©ë����.

1ê³� 2�� ������ ���¼í�� 구문�� ê°�ì§�����. ì°¨ì�´ì���� 1�� ê²½ì�� ���� ê²½ë��� ìµ����� ��ì¤�(ì¦�, /usr/)�� ���� ���¤í���� ì¡´ì�¬í���� ë°�ë©�, 2�� ê²½ì�� ì¡´ì�¬í��ì§� �����¤ë�� ê²�������. (ì¦�, ���� ���¤í���� /bar/�¼ë�� 루í�� ��ì¤� ������리ê� ���µë����.)

Substitution�� Pattern�� ���� �¼ì��� �¤ì�´ì�¤ë�� URL ê²½ë��� ë¶�ë¶��� ���� ��참조ë¥� �¬í�¨í�� ���� ���µë����. �¤ì���� ê³��¤í��������:

RewriteRule "^/product/(.*)/view$" "/var/web/productdb/$1"

ë³��� $1�� Pattern�� ê´��� ���� �������� ���� �¼ì��� ���¤í�¸ë� ��ì²´ë�©ë����. ��ë¥� �¤ì��, http://example.com/product/r14df/view�� ���� ��ì²��� /var/web/productdb/r14df ê²½ë��� 매í���©ë����.

ê´��� ���� �������� �� �´ì���� ê²½ì�� ë³��� $1, $2, $3 �±ì�� ����ë¡� �¬ì�©í�� �� ���µë����.

top

�¬ì���� ����ê·�

RewriteRule�� ������ ê·�ì¹� ���� ���� �´ì���� ����ê·¸ë�� ���©í���� ������ �� ���µë����. ��ë¥� �¤ì��, ê·�ì¹��� 매칭 ������ [NC] ����ê·¸ë�� ���©í���� ����문ì��ë¥� 구ë���ì§� ����ë¡� ë§��� �� ���µë����:

RewriteRule "^puppy.html" "smalldog.html" [NC]

�¬ì�� ê°��¥í�� ����ê·�, ê·� ��ë¯� ë°� ������ ���� ���¸í�� �´ì�©ì�� �¬ì���� ����ê·� 문ì��ë¥� 참조��������.

top

�¬ì���� ì¡°ê±´

���� �´ì���� RewriteCond ì§����´ë�� �¬ì�©í���� �¤ì�� RewriteRule�� ������ ���� ��ì²� ������ ������ �� ���µë����. ì²� ë²�ì§� �¸ì���� ��ì²��� �¹ì�±ì�� �¤ë����� ë³����´ê�, �� ë²�ì§� �¸ì���� ë³����� �¼ì��´ì�� ���� ��ê·� �������´ë©°, �� ë²�ì§� ������ �¸ì���� �¼ì� ��ê°� ë°©ì���� �������� ����ê·� 목ë�������.

RewriteCond ì§����´ì�� 구문
그림 3: RewriteCond ì§����´ì�� 구문

��ë¥� �¤ì��, �¹ì�� IP ë²����� 모ë�� ��ì²��� �¤ë¥¸ ��ë²�ë¡� ë³´ë�´ë�¤ë©´ �¤ì���� �¬ì�©í�� �� ���µë����:

RewriteCond "%{REMOTE_ADDR}" "^10\.2\."
RewriteRule "(.*)"           "http://intranet.example.com$1"

�� �´ì���� RewriteCondê°� ì§����� ê²½ì�� RewriteRule�� ���©ë���¤ë©´ 모ë�� ì¡°ê±´�� �¼ì��´ì�� �©ë����. ��ë¥� �¤ì��, 쿼리 문ì���´ì�� "hack"�´ë�¼ë�� �¨ì�´ê� �¬í�¨ë�� ��ì²��� ê±°ë�����, "go"�¼ë�� �¨ì�´ê� �¬í�¨ë�� ì¿��¤ê� ���� ê²½ì�°ë�� ���¸í���¤ë©´ �¤ì���� �¬ì�©í�� �� ���µë����:

RewriteCond "%{QUERY_STRING}" "hack"
RewriteCond "%{HTTP_COOKIE}"  !go
RewriteRule "."               "-"   [F]

�������� ë¶��� �¼ì�ë¥� ì§�����ë¯�ë¡�, ì¿��¤ì�� "go"ê°� �¬í�¨ë��ì§� ���� ê²½ì�°ì��ë§� ê·�ì¹��� ���©ë�©ë����.

RewriteCond�� �¬í�¨ë�� ��ê·� �������� �¼ì��� ë³��� %1, %2 �±ì�� �¬ì�©í���� RewriteRule�� Substitution�� �¼ë�ë¡� �¬ì�©í�� �� ���µë����. ��ë¥� �¤ì��, �¬ì�´í�¸ì�� ��ê·¼í���� �� �¬ì�©ë�� �¸ì�¤í�¸ë��� �°ë�� ��ì²��� �¤ë¥¸ ������리ë� ë³´ë�´ë�� �¤ì��ê³� ê°��µë����:

RewriteCond "%{HTTP_HOST}" "(.*)"
RewriteRule "^/(.*)"       "/sites/%1/$1"

http://example.com/foo/bar�� ���� ��ì²��´ë©´ %1�� example.com�� �¬í�¨í��ê³� $1�� foo/barë¥� �¬í�¨í�©ë����.

top

�¬ì���� ë§�

RewriteMap ì§����´ë�� �¬ì���±ì�� ������ �¸ë� �¨ì��ë¥� �¸ì����� ë°©ë��� ��ê³µí�©ë����. �´ì�� ���� ���¸í�� �´ì�©ì�� RewriteMap ë³´ì¶© 문ì������ �¼ì���©ë����.

top

.htaccess ����

�¬ì���±ì�� �¼ë����¼ë� ì£� ��ë²� �¤ì��( <Directory> �¹ì�� �¸ë�)���� ���� <VirtualHost> 컨í���´ë�� �´ì���� 구ì�±ë�©ë����. �´ê��� �¬ì���±ì�� �������� ê°��� �¬ì�� ë°©ë��´ë©° ê¶��¥ë�©ë����. ê·¸ë�¬ë�� �½ê��� ì¶�ê°� ë³µì�¡ì�±ì�� ê°�����ë©� <Directory> �¹ì���´ë�� .htaccess ���������� �¬ì���±ì�� ������ �� ���µë����. �� 기ì���� ������리ë� �¬ì���±ì�´ë�¼ê� �©ë����.

��ë²�ë³� �¬ì���±ê³¼�� 주ì�� ì°¨ì�´ì���� .htaccess ���¼ì�� �¬í�¨ë�� ������리ì�� ê²½ë� �����¬ê� RewriteRule���� 매칭��ê¸� ���� ��ê±°ë���¤ë�� ê²�������. ���� RewriteBaseë¥� �¬ì�©í���� ��ì²��� �¬ë�르ê� 매í������ë¡� �´ì�� �©ë����.

°¡´ÉÇÑ ¾ð¾î:  de  |  en  |  es  |  fr  |  ja  |  ko  |  tr  |  zh-cn