Apache HTTP Server Version 2.5

�� 문��� mod_rewrite�� URL 매�� 기���
�¸ë� �¬í�� �¼ë�ë¥� �¼ì���©ë����.
Apache HTTP Server�� �¬ë�� �¨ê�ë¡� ��ì²��� ì²�리í�©ë����. �´ë�¬í�� ê°� �¨ê����� ��ì²� ��ëª� 주기�� �´ë�� ë¶�ë¶��� ì²�리í��ê¸� ���� ���� �´ì���� 모ë���� �¸ì��� �� ���µë����. �¨ê����� URL���� ���¼ë��¼ë��� ë³���, �¸ì�, �¸ê�, ì½���ì¸�, ë¡�ê¹� �±ì�� �¬í�¨ë�©ë����. (�´ê��� ��ì²� 목ë��� ��������.)
mod_rewrite�� URL�� �¬ì���±ë�� �� ����
ë°©ì���� ���¥ì�� 미ì�ê¸� ���� �´ë�¬í�� �¨ê�(���� ì¢�ì¢�
"��"�´ë�� ë¶�리ë��) ì¤� �� ê°�ì§����� �����©ë����.
첫째, HTTP ��ì²��� �½í��ì§� �� �¸ê�ê°� ������ê¸� ����
ë°������� URL���� ���¼ë��¼ë��� ë³��� ���� �¬ì�©í�©ë����.
��ì§�, �¸ê� �¨ê� �� 그리ê³� ������리ë� �¤ì�� ����
(.htaccess ����)�� �½í�� �� ì½���ì¸�
�¸ë�¤ë�¬ê� �¸ì���ê¸� ���� ë°������� Fixup ����
�¬ì�©í�©ë����.
��ì²��� �¤ì�´ì�¤ê� �´ë�� ��ë²� ���� ê°��� �¸ì�¤í�¸ê�
ê²°ì���� ��, �¬ì���� ��ì§��� ��ë²�ë³� �¤ì���� ��������
모ë�� mod_rewrite ì§����´ì�� ì²�리ë��
�����©ë����. (ì¦�, ì£� ��ë²� �¤ì�� ���¼ê³¼
<Virtualhost>
�¹ì������.) �´ê��� URL���� ���¼ë��¼ë��� �¨ê�����
ë°����©ë����.
ëª� �¨ê� ��, ìµ�ì¢� �°ì�´í�� ������리ê� ë°�견ë��ë©�
������리ë� �¤ì�� ì§�����(.htaccess ���¼ê³¼
<Directory>
ë¸�ë¡�)ê°� ���©ë�©ë����. �´ê��� Fixup �¨ê�����
ë°����©ë����.
�´ë�¬í�� ê°� ê²½ì�°ì�� mod_rewrite��
REQUEST_URIë¥� �� URL ���� ���¼ë��¼ë�
�¬ì���±í�©ë����.
������리ë� 컨í���¤í��(ì¦�, .htaccess ���¼ê³¼
Directory ë¸�ë¡� ��)���� �´ë�¬í�� ê·�ì¹���
URL�� �´ë�� ���¼ë��¼ë� ë³����� ���� ���©ë�©ë����.
�� ��문� mod_rewrite� �����
RewriteRule
ì§����´ì�� ë¹�êµ����� URL ê²½ë��� ���� ������ë¦� ê²½ë�(�¤ì��
�¬ë���� �¬í��)ê°� ������ ��ê±°ë�� ë³����� ���¼ë��� ��ì²�
���� ���¤í�� ê²½ë�������.
��ë¥� �¤ì��: ê·�ì¹��� /var/www/foo/.htaccess�� ��ê³� /foo/bar/baz�� ���� ��ì²��� ì²�리ë��ê³� ���¤ë©´ ^bar/baz$�� ê°��� �������� �¼ì��©ë����.
������리ë� 컨í���¤í�¸ì���� ì¹����� �´ë£¨�´ì�ë©�
�� URLë¡� ��ë¡��� �´ë� ��ë¸���ì²��� ë°������� ��ì²�
�¨ê��� ì²�리ê� �¤ì�� �����©ë����. ì¹����� ���� ê²½ë���
경� RewriteBase
ì§����´ê� ì¹��� ���� ì¶�ê°����� URL ê²½ë� �����¬ë��
ê²°ì���©ë����. ������리ë� 컨í���¤í�¸ì������ 루í���� �¼í��ê¸�
���� ê²°êµ(미ë���� ������리ë� �¬ì���� ì²�ë¦� "�¼ì�´ë��"����)
ì¹����� ������ì§� ���� ê·�ì¹��� ���±í����ë¡� 주ì���´ì��
�©ë����. (�� 문ì���� ���� ���¸í�� �¼ì����
RewriteLooping��
참조��������.)
������리ë� 컨í���¤í�¸ì������ �´ë�¬í�� ì¶�ê°� URL ì¡°ì�� ��문ì�� �´ë�� 컨í���¤í�¸ì���� �¬ì���� ê·�ì¹��� �¤ë¥´ê²� ���±í����ë¡� 주ì���´ì�� �©ë����. �¹í�� ���� ������ë¦� ê²½ë�ê°� �¬ì���� ê·�ì¹��� ë³´ê� �� URL���� ��ê±°ë���¤ë�� ê²��� 기ì�µí��������. �� ���¸í�� �¤ë��� ���� ����ë¥� 참조��������.
| ���� ��� | �� |
|---|---|
| VirtualHost �¹ì�� | RewriteRule "^/images/(.+)\.jpg" "/images/$1.gif" |
| 문� 루�� .htaccess ���� | RewriteRule "^images/(.+)\.jpg" "images/$1.gif" |
| images ������리� .htaccess ���� | RewriteRule "^(.+)\.jpg" "$1.gif" |
mod_rewriteê°� �¤ì���� 컨í���¤í�¸ì����
URL�� ì¡°ì������ ë°©ì���� ���� �� ë§��� �µì°°�¥ì�� �»ì�¼ë�¤ë©´
�¬ì���� ì¤��� ���±ë���� ë¡�ê·� ��ëª���
참조�´ì�� �©ë����.
�´ì�� mod_rewriteê°� �� �� API �¨ê�����
�¸ë¦¬ê±°ë��ë©� �¤ì�� 구조���� 구ì�±ë�� ê·�ì¹� �¸í�¸ë�� �½ì�µë����
(�´ê��� ��ë²�ë³� 컨í���¤í�¸ì�� ê²½ì�� ���� ���� ���±ë��ê±°ë��
������리ë� 컨í���¤í�¸ì�� ê²½ì�� Apache 커ë���� ������ë¦� ����
ì¤��� ���±ë�©ë����). ê·¸ë�� �¤ì�� �¬í�¨ë�� ê·�ì¹� �¸í��(����
�´ì���� ê·�ì¹�ê³� ê·� ì¡°ê±´)ë¡� URL �¬ì���� ��ì§���
�����©ë����. URL �¬ì���� ��ì§� ��ì²´ì�� ������ ��
�¤ì�� 컨í���¤í�¸ì���� ������ ���¼í�©ë����. ìµ�ì¢� ê²°ê³¼
ì²�리ë� �¤ë�����.
ê·�ì¹� �¸í�¸ì���� ê·�ì¹��� ������ �¬ì���� ��ì§���
�¹ë���(그리ê³� ê·¸ë�¤ì� ë¶�ëª���ì§� ����) ����ë¡� ì²�리í��ë¯�ë¡�
ì¤����©ë����. ê·�ì¹��� �¤ì��ê³� ê°��µë����: �¬ì���� ��ì§���
ê·�ì¹� �¸í�¸ë�� ê·�ì¹�ë³�ë¡�(RewriteRule ì§�����)
������ê³� �¹ì�� ê·�ì¹��� �¼ì���ë©� �������¼ë� �´ë�¹í����
기존 조건(RewriteCond �����)��
�����©ë����. ���¬ì�� �´ì��ë¡� ì¡°ê±´�� 먼ì�� 주ì�´ì�ë¯�ë¡�
���� ��ë¦��� �½ê� �¥í�©í�©ë����. ���¸í�� �´ì�©ì��
그림 1�� 참조��������.

그림 1: �¬ì���� ê·�ì¹� �¸í�¸ë�� �µí�� ���� ��ë¦�
먼� URL�� � ���� Pattern�
ë¹�êµ��©ë����. �¤í�¨í��ë©� mod_rewrite��
ì¦��� �� ê·�ì¹��� ì²�리ë�� ì¤�ì§���ê³� �¤ì�� ê·�ì¹��¼ë�
ê³����©ë����. Pattern�� �¼ì���ë©�
mod_rewrite�� �´ë�¹í���� ê·�ì¹� ì¡°ê±´
(�¤ì������ RewriteRule ë°�ë¡� ���� ��������
RewriteCond ì§�����)�� ì°¾ì�µë����. ì¡°ê±´�� ���¼ë©´
Substitution 문ì���´ì���� 구ì�±ë�� �� ê°��¼ë�
URL�� ì¹�����ê³� ê·�ì¹� ����ë¥� ê³����©ë����. ê·¸ë�¬ë��
ì¡°ê±´�� ���¼ë©´ ���´ë�� ������ë¡� ì²�리í��ê¸� ���� �´ë�
루í��ë¥� �����©ë����. ì¡°ê±´�� ê²½ì�� ë¡�ì§��� �¤ë�����:
���� URL�� ���� �¨í�´ì�� 매ì¹��ì§� ���µë����. ����
먼ì�� ë³���, ��참조, ë§� ì¡°í�� ���� ���¥í����
문ì���� TestString�� ���±í�� �¤ì��
CondPattern�� �´ì�� ���� 매ì¹���¤ê�
�©ë����. �¨í�´ì�� �¼ì���ì§� ���¼ë©´ ��ì²� ì¡°ê±´ �¸í�¸ì��
�´ë�� ê·�ì¹��� �¤í�¨í�©ë����. �¨í�´ì�� �¼ì���ë©� �� �´ì��
ì¡°ê±´�� ���� ��ê¹�ì§� �¤ì�� ì¡°ê±´�� ì²�리ë�©ë����. 모ë��
ì¡°ê±´�� �¼ì���ë©� Substitution�¼ë� URL��
ì¹������� ì²�리ê� ê³����©ë����.