Apache HTTP Server Version 2.5

�� 문��� RewriteRule
ì§����´ì�� �¬ì�©í�� �� ���� ����ê·¸ë�� �¼ì����ë©�, ���¸í�� �¤ë�ê³�
����� ��공����.
���
B (��참조 �´ì�¤ì��´í��)
BNP|backrefnoplus (공백�� +ë¡� �´ì�¤ì��´í����ì§� ����)
BCTLS
BNE
C|chain
CO|cookie
DPI|discardpath
E|env
END
F|forbidden
G|gone
H|handler
L|last
N|next
NC|nocase
NE|noescape
NS|nosubreq
P|proxy
PT|passthrough
QSA|qsappend
QSD|qsdiscard
QSL|qslast
R|redirect
S|skip
T|type
UnsafeAllow3F
UnsafePrefixStat
UNCRewriteRule��
������ ���� �´ì���� ����ê·¸ë� ������ �� ���µë����. ����ê·¸ë��
ê·�ì¹� ���� ��ê´��� ���� �¬í�¨ë��ë©�, �¬ë�� ����ê·¸ë�� �¼í��ë¡�
구ë��©ë����.
RewriteRule pattern target [Flag1,Flag2,Flag3]
ê°� ����ê·¸ë�� (ëª� ê°�ì§� ���¸ë�� ���¸í��ê³�) CO��
��� 짧� ������ cookie�� ��� � �����
ê°�ì§�����. ì§§ì�� ����ë¥� �¬ì�©í���� ê²��� ê°��� �¼ë����´ì�ë§�,
ê°� ����ê·¸ê� 무ì���� ����ì§� 기ì�µí��ê¸� ���� ê¸� ������
�µì���´ì��� ê²��� ì¢��µë����. �¼ë� ����ê·¸ë�� ���� �´ì����
�¸ì��ë¥� ì·¨í�©ë����. ����ê·¸ë�� ����문ì��ë¥� 구ë���ì§� ���µë����.
��ì²�ê³� ê´��¨ë�� ë©����°ì�´í�°ë�� ë³�ê²½í���� ����ê·�(T=, H=, E=)�� ������리ë� ë°� htaccess 컨í���¤í�¸ì���� ���¼í�� �¬ì���� ì²�ë¦� �¼ì�´ë�� ì¤��� ('-' �´ì�¸ì��) ì¹����� ������ �� �¨ê³¼ê°� ���µë����.
�¬ê¸°������ �¬ì�� ê°��¥í�� ê°� ����ê·¸ì�� �¨ê� �¬ì�� ë°©ë��� ����ê°� �����©ë����.
[B] ����그� RewriteRule��
ë³����� ���©í��ê¸� ���� ���«ì��ê°� ���� 문ì��ë¥� �´ì�¤ì��´í������ë¡�
ì§����©ë����.
mod_rewrite�� URL�� 매���� ����
�´ì�¤ì��´í��ë¥� �´ì���´ì�� ��ë¯�ë¡�, ��참조�� ���©ë�� ��
�´ì�¤ì��´í��ê°� �´ì���©ë����. B ����ê·¸ë�� �¬ì�©í��ë©� ��참조��
���«ì��ê°� ���� 문ì��ê°� �´ì�¤ì��´í���©ë����.
��ë¥� �¤ì��, �¤ì�� ê·�ì¹��� ê³��¤í��������:
��ë²� ë³����� ���¬í�� �´ì�¤ì��´í���� ���´ì���� "escape" 매í�� �¨ì��ë¥� 참조��������
RewriteRule "^search/(.*)$" "/search.php?term=$1"
ê²����´ê� 'x & y/z'�� ê²½ì�� ë¸��¼ì�°ì���� �´ë��
'x%20%26%20y%2Fz'ë¡� �¸ì��©í���� 'search/x%20%26%20y%2Fz'
��ì²��� ë§�������. B ����ê·� ���� �� �¬ì���� ê·�ì¹���
'search.php?term=x & y/z'ë¡� 매í����ë©�, �´ë�� ���¨í��
URL�� ������ search.php?term=x%20&y%2Fz=�
�¸ì��©ë���� ������ ê²�ê³� �¤ë�����.
���¼í�� ê·�ì¹��� B ����ê·¸ë�� �¤ì����ë©� 매ê�ë³���ê°� ì¶��� URL��
���¬ë��ê¸� ���� �¤ì�� �¸ì��©ë����
/search.php?term=x%20%26%20y%2Fzë¡� �¬ë�르ê�
매í���©ë����.
RewriteRule "^search/(.*)$" "/search.php?term=$1" [B,PT]
�� �¹ì�� ����ê°� �������¤ë©´
AllowEncodedSlashes�
On�¼ë� �¤ì���´ì�� �� ���� ���µë����. httpd��
URL���� �¸ì��©ë�� �¬ë����ë¥� ���©í��ì§� ��ê³� ����ë¥� ë³´ë©´
404� ������ ��문�����.
�� �´ì�¤ì��´í���� �¹í�� ��ë¡��� ���©ì���� �����©ë����. ë°±ì����ê°� �´ì�¤ì��´í����ì§� ���� URL�� ����ë°��¼ë©´ ì¤��¨ë�� �� ��ê¸� ��문ì������.
�� ����ê·¸ì�� ������ RewriteCondë¥� �¬ì�©í���� %{THE_REQUEST}�� ����
캡ì����� ê²��´ë©°, �´ë�� �¸ì��©ë�� ������ 문ì���´ì��
캡ì��©ë����.
2.4.26 �´ì�������� ��참조���� �´ì�¤ì��´í���� �¹ì�� 문ì��ë¥�
���´í���� ������ �� ���µë����: [B=#?;].
ì°¸ê�: �´ì�¤ì��´í���� 문ì�� 목ë��� 공백 문ì��ë¥� �¬ì�©í�� ��
���� RewriteRule��
��ì²� �� ë²�ì§� �¸ì��ë¥� �¸ì�©í�´ì�� ��ë©� 공백�� 목ë��� ë§�ì§�ë§�
문ì��ê°� ���´ì���� �� �©ë����.
# 공백ê³� 물ì����ë¥� �´ì�¤ì��´í���©ë����. 공백�� �¬í�¨ë�� ê²½ì�� # ìµ�ì¢� �¸ì�� 주ì���� �°ì�´í��ê°� �����©ë����. RewriteRule "^search/(.*)$" "/search.php?term=$1" "[B= ?]"
�� ë°©ì���¼ë� �´ì�¤ì��´í������ 문ì��ë¥� �������¤ë©´ #flag_bne�� #flag_bctlsë¥� 참조��������
[BNP] ����그� RewriteRule��
��참조���� 공백 문ì��ë¥� '+' ���� %20�¼ë� �´ì�¤ì��´í������ë¡�
ì§����©ë����. ��참조ê°� 쿼리 문ì���´ì�� ���� ê²½ë� 구ì�� ��������
�¬ì�©ë�� �� ���©í�©ë����.
# 쿼리 문ì���´ì�� �µí�� ���� ��ì¶��� �¬ì�©ë���� + ���� # ê²½ë����� 공백�� %20�¼ë� �´ì�¤ì��´í�� RewriteRule "^search/(.*)$" "/search.php/$1" "[B,BNP]"
�� ����ê·¸ë�� ë²��� 2.4.26 �´ì������ �¬ì�©í�� �� ���µë����.
[BCTLS] ����ê·¸ë�� [B] ����ê·¸ì�� ���¬í��ì§�ë§� ���� 문ì���� 공백 문ì��ë§� �´ì�¤ì��´í���©ë����. �´ê��� �¸ì��©ë��ì§� ���� ì±� 쿼리 문ì���´ë� ë³µì�¬ë�� �� ê±°ë����� ���¼í�� 문ì�� �¸í�¸ì������.
# ���� 문ì���� 공백�� �´ì�¤ì��´í�� RewriteRule "^search/(.*)$" "/search.php/$1" "[BCTLS]"
�� ����ê·¸ë�� ë²��� 2.5.1 �´ì������ �¬ì�©í�� �� ���µë����.
[BNE=...]�� 문ì�� 목ë��� [B] ���� [BCTLS] ����ê·¸ì�� 문ì���� ���� ���¸ë� ì²�리ë�©ë����. ���´ë�� 문ì���� �´ì�¤ì��´í����ì§� ���µë����.
# 기본 문ì��ë¥� �´ì�¤ì��´í������ /�� �¨ê� RewriteRule "^search/(.*)$" "/search.php?term=$1" "[B,BNE=/]"
�� ����ê·¸ë�� ë²��� 2.5.1 �´ì������ �¬ì�©í�� �� ���µë����.
[C] ���� [chain] ����ê·¸ë�� RewriteRule�� �¤ì�� ê·�ì¹���
ì²´ì�¸ë���� ������ ����������. ì¦�, ê·�ì¹��� �¼ì���ë©� ������
ê°��� ì²�리ë��ê³� ���´ê� �¤ì�� ê·�ì¹��¼ë� �´ë���©ë����. ê·¸ë�¬ë��
�¼ì���ì§� ���¼ë©´ �¤ì�� ê·�ì¹�ê³� �¨ê� ì²´ì�¸ë�� �¤ë¥¸ 모ë�� ê·�ì¹���
ê±´ë���°ì�´ì�����.
[CO] ���� [cookie] ����ê·¸ë�� �¬ì�©í��ë©� �¹ì��
RewriteRule��
�¼ì��� �� ì¿��¤ë�� �¤ì���� �� ���µë����. �¸ì���� �� ê°���
���� ������ �¤ì�� ê°��� ������ ����ë¡� 구ì�±ë�©ë����.
����ê·¸ì�� ��ì²� 구문�� 모ë�� ���±ì�� �¬í�¨í���� �¤ì��ê³� ê°��µë����:
[CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly:samesite]
ì¿��� ������ 리í�°ë�� ':' 문ì��ê°� ������ ê²½ì�� ��ì²� 구문�� �¬ì�©í�� �� ���µë����. ��ì²� 구문�� �������¤ë©´ ì¿��� "Name" ���� ';' 문ì��ë¥� ë¶��´ê� ���� 구ë���ë¥� ';'ë¡� ì§����´ì�� �©ë����.
[CO=;NAME;VALUE:MOREVALUE;DOMAIN;lifetime;path;secure;httponly;samesite]
ì¿��¤ë�� �¤ì�����¤ë©´ �´ë�, ê°� ë°� ��ë©��¸ì�� ���¸í�´ì�� �©ë����.
www.example.com�
ê°��� �¸ì�¤í�¸ë��´ê±°�� .example.comê³� ê°���
��ë©��¸ì�� �� ���µë����. ���¼ë� 구ë��� ìµ��� �� ë¶�ë¶��´ì�´ì��
�©ë����. ì¦�, �¨ì���� .com�´ë��
.net�� �� ���µë����. �´ë�¬í�� ì¢�ë¥��� ì¿��¤ë��
ì¿��� ë³´ì�� 모ë�¸ì�� ���� ê¸�ì§��©ë����.�������¼ë� �¤ì�� ê°��� �¤ì���� �� ���µë����:
/customers/ ����
/files/download/./ë¡� �¤ì���©ë���� - ì¦�,
��ì²� �¹ì�¬ì�´í�¸ì������.secure, true ����
1ë¡� �¤ì����ë©� ì¿��¤ë�� ë³´ì��(https) �°ê²°��
�µí�´ì��ë§� ���¬ë�©ë����.HttpOnly, true ����
1ë¡� �¤ì����ë©� ì¿��¤ì��
HttpOnly ����ê·¸ê� �¤ì����ë©�, �´ë�� �� 기ë�¥ì��
ì§������� ë¸��¼ì�°ì������ ì¿��¤ê� JavaScript ì½���ë¡� ��ê·¼í�� ��
������ ��미í�©ë����.false ���� 0 �´ì�¸ì�� ê°��¼ë�
�¤ì����ë©� SameSite ���±ì�� ì§����� ê°��¼ë�
�¤ì���©ë����. �¼ë����� ê°��� None,
Lax � Strict������.
2.5.1 �´ì������ �¬ì�©í�� �� ���µë����.�¤ì�� ����ë¥� ê³��¤í��������:
RewriteEngine On RewriteRule "^/index\.html" "-" [CO=frontdoor:yes:.example.com:1440:/]
주ì�´ì� �������� ê·�ì¹��� ��ì²��� �¬ì���±í��ì§� ���µë����.
"-" �¬ì���� ������ mod_rewrite��ê²� ��ì²���
ë³�ê²� ���� �µê³¼���¤ë��ë¡� ì§����©ë����. ���� 'frontdoor'�¼ë��
ì¿��¤ë�� 'yes' ê°��¼ë� �¤ì���©ë����. ì¿��¤ë��
.example.com ��ë©��¸ì�� 모ë�� �¸ì�¤í�¸ì�� ���¨í�©ë����.
1440ë¶�(24��ê°�) ���� ë§�ë£�����ë¡� �¤ì����ë©� 모ë�� URI�� ����
ë°����©ë����.
DPI ����ê·¸ë�� �¬ì���±ë�� URI�� PATH_INFO ë¶�ë¶��� ë²�립ë����.
�� ����ê·¸ë�� ë²��� 2.2.12 �´ì������ �¬ì�©í�� �� ���µë����.
������리ë� 컨í���¤í�¸ì���� ê°�
RewriteRule�� ������ URI�� URI��
PATH_INFO�� ���� ê°��� �°ê²°������.
���� URI�� �´ë�¼ì�´ì�¸í�¸ê� ��ì²��� ì´�ê¸� URI�´ê±°��,
�´ì�� mod_rewrite ì²�ë¦� �¼ì�´ë���� ê²°ê³¼�´ê±°��,
���� mod_rewrite ì²�ë¦� �¼ì�´ë������ �´ì��
ê·�ì¹��� ê²°ê³¼�� �� ���µë����.
��, � �� ���� URI�� ������ PATH_INFO��
�� mod_rewrite ì²�ë¦� �¼ì�´ë�� ���� PATH_INFO
ê°�ë§� ë°����©ë����. ê²°ê³¼���¼ë� URI�� �� ë¶�ë¶��� �¬ë��
RewriteRule ì§����´ì���� ì¹����¼ë�
�¼ì���ê³� ë³µì�¬ë�� ��, URI�� �´ë�� ë¶�ë¶��� ���� PATH_INFO����
����ì§� ê³��¤í��ì§� ���¼ë©´ ìµ�ì¢� URI�� PATH_INFO�� �¬ë�� ë³µì�¬ë³¸��
ì¶�ê°��� �� ���µë����.
�´ì�� ��ì²��� ���� ���¤í�� 매í������ ���±ë�� PATH_INFOê°�
ê´��� ���� ì¹����� �� ����ê·¸ë�� �¬ì�©í��������. �� ����ê·¸ë��
�� mod_rewrite ì²�ë¦� �¼ì�´ë�� ���� �¤ì����
PATH_INFOë¥� ��구ì���¼ë� ���µë����. PATH_INFO�� ����
mod_rewrite ì²�ë¦� �¼ì�´ë��ê°� ��ë£��� ��ê¹�ì§�
�¤ì�� ê³��°ë��ì§� ���µë����. �� ì²�ë¦� �¼ì�´ë�� ì¤� ���� ê·�ì¹���
PATH_INFO� ����� ���� ����� ������� 결과� �����.
[E] ���� [env] ����ê·¸ë�� �¬ì�©í��ë©� ��ê²� ë³����� ê°��� �¤ì���� �� ���µë����. �¼ë� ��ê²� ë³����� ê·�ì¹��� �¤í���� ���� �¤ì���� �� ���¼ë��ë¡�, �¤ì���� ê²��� �´ì���� �� ���¤ë�� ���� ������������. ��ê²� ë³����� ���� ë°©ì���� ���� ���¸í�� �´ì�©ì�� ��ê²� ë³��� 문ì��ë¥� 참조��������.
�� ����ê·¸ì�� ��ì²� 구문�� �¤ì��ê³� ê°��µë����:
[E=VAR:VAL] [E=!VAR]
VAL���� ���¥ë���� ��참조($N
���� %N)ê°� �¬í�¨ë�� �� ���µë����.
ì§§ì�� ����ë¥� �¬ì�©í����
[E=VAR]
VAR�´ë�¼ë�� ��ê²� ë³���ë¥� ë¹� ê°��¼ë� �¤ì���� ��
���µë����.
�¤ì�� ����
[E=!VAR]
ë¥� �¬ì�©í��ë©� �´ì���� �¤ì���� VAR�´ë�¼ë��
��ê²� ë³���ë¥� �´ì���� �� ���µë����.
��ê²� ë³����� CGI ��ë¡�ê·¸ë��, �¤ë¥¸ RewriteRule ì§����� ���� CustomLog ì§����´ë�� �¬í�¨í�� �¤ì���� 컨í���¤í�¸ì���� �¬ì�©í�� �� ���µë����.
�¤ì�� ������ ��ì²��� URIê°� �´ë�¸ì� ���¼ì�� ê²½ì�� 'image'�¼ë�� ��ê²� ë³���ë¥� '1' ê°��¼ë� �¤ì���©ë����. ê·¸ë�� �¤ì�� �´ë�� ��ê²� ë³���ë¥� �¬ì�©í���� ��ê·� ë¡�ê·¸ì���� �´ë�� ��ì²��� ���¸í�©ë����.
RewriteRule "\.(png|gif|jpg)$" "-" [E=image:1] CustomLog "logs/access_log" combined env=!image
�� ���¼í�� �¨ê³¼�� SetEnvIfë¥� �¬ì�©í���� �»ì�� ��
���µë����. �� 기ì���� ê¶��� �¬í���� ���� ����ë¡� ��ê³µë�©ë����.
[END] ����ê·¸ë�� �¬ì�©í��ë©� ([L]ê³� ê°���) ���� �¬ì���� ì²�ë¦� �¼ì�´ë��ë¥� ì¢�ë£��� ë¿�ë§� ������ ������리ë�(htaccess) 컨í���¤í�¸ì���� ���� �¬ì���� ì²�리ê� ë°������� ê²��� ë°©ì��©ë����.
�´ê��� �¸ë� 리ë�¤ì�´ë���¸ë� �¸í�� �� ��ì²����� ���©ë��ì§� ���µë����.
[F] ����ê·¸ë�� �¬ì�©í��ë©� ��ë²�ê°� �´ë�¼ì�´ì�¸í�¸ì�� 403 Forbidden
���� ì½���ë¥� ë°����©ë����. Deny ì§����´ë��
�¬ì�©í���� ���¼í�� ������ ������ �� ��ì§�ë§�, �´ê��� Forbidden
����ë¥� ���¹í���� �� �� ë§��� ���°ì�±ì�� ��ê³µí�©ë����.
�¤ì�� ê·�ì¹��� ��ë²����� .exe ���¼ì��
�¤ì�´ë���ë¥� ê¸�ì§��©ë����.
RewriteRule "\.exe" "-" [F]
�� ������ �¬ì���� ������ "-" 구문�� �¬ì�©í��ë©�, ��ì²��� URIê°� ������ì§� ������ ��미í�©ë����. ��ì²��� ê¸�ì§����¤ë�� ê²½ì�� �¤ë¥¸ URIë¡� �¬ì���±í�� �´ì��ê°� ���µë����.
[F]ë¥� �¬ì�©í�� �� [L]�� �����©ë���� - ì¦�, ���µì�� ì¦��� ë°�����ê³� ì¶�ê°� ê·�ì¹��� ��ê°���ì§� ���µë����.
[G] ����ê·¸ë�� ��ë²�ê°� ���µê³¼ �¨ê� 410 Gone ����ë¥� ë°�������ë¡� ê°����©ë����. �´ê��� ������ �´ì���� �¬ì�� ê°��¥í��ì§�ë§� �� �´ì�� �¬ì�©í�� �� ������ ����������.
[F] ����ê·¸ì�� ë§�ì°¬ê�ì§�ë¡� [G] ����ê·¸ë�� �¬ì�©í�� ���� �¼ë����¼ë� �¬ì���� ������ "-" 구문�� �¬ì�©í�©ë����:
RewriteRule "oldproduct" "-" [G,NC]
[G]ë¥� �¬ì�©í�� �� [L]�� �����©ë���� - ì¦�, ���µì�� ì¦��� ë°�����ê³� ì¶�ê°� ê·�ì¹��� ��ê°���ì§� ���µë����.
ê²°ê³¼ ��ì²��� ì§����� �¸ë�¤ë�¬ë� ì²�리ë����ë¡� ê°����©ë����. ��ë¥� �¤ì��, ���� ���¥ì��ê°� ���� 모ë�� ���¼ì�� php �¸ë�¤ë�¬ë� ���±í����ë¡� ê°����� �� ���µë����:
RewriteRule "!\." "-" [H=application/x-httpd-php]
���� ��� ������ - !\. - �� 리�� .
문ì��ë¥� �¬í�¨í��ì§� ���� 모ë�� ��ì²�ê³� �¼ì��©ë����.
�´ê��� �¼ë� ì¡°ê±´�� �°ë�� �¸ë�¤ë�¬ë�� ê°������� �°ì����
�¬ì�©í�� �� ���µë����. ��ë¥� �¤ì��, ��ë²�ë³� 컨í���¤í�¸ì���� �¬ì�©ë����
�¤ì�� �¤ë���«ì�� .phps ���¥ì��ë¡� ��ì²��� ê²½ì��
.php ���¼ì�� mod_php�� ����
��������ë¡� �©ë����:
RewriteRule "^(/source/.+\.php)s$" "$1" [H=application/x-httpd-php-source]
���� ��� ������ - ^(/source/.+\.php)s$ -
�� /source/ë¡� ������ê³� 1ê°� �´ì���� 문ì��ê°� �¤ë�°ë¥´ê³�
리í�°ë�� .phpsê°� �¤ë�°ë¥´�� 모ë�� ��ì²�ê³� �¼ì��©ë����.
��참조 $1�� ��ê·� �������� ê´��� ���� 캡ì��� �¼ì�ë¥�
참조�©ë����.
[L] ����ê·¸ë�� mod_rewriteê°� ê·�ì¹� �¸í�¸ì��
ì²�리ë�� ì¤�ì§�����ë¡� �©ë����. ��ë¶�ë¶��� 컨í���¤í�¸ì���� �´ê���
ê·�ì¹��� �¼ì���ë©� �� �´ì�� ê·�ì¹��� ì²�리ë��ì§� ������ ��미í�©ë����.
�´ê��� Perl�� last ëª��¹ì�´ë�� C��
break ëª��¹ì�� �´ë�¹í�©ë����. �� ����ê·¸ë�� �¬ì�©í����
���� ê·�ì¹��� ì¶�ê°� ê·�ì¹��� ê³��¤í��ì§� ��ê³� ì¦��� ���©ë���´ì��
�¨ì�� ����������.
.htaccess ���¼ì�´ë��
<Directory>
�¹ì������ RewriteRule��
�¬ì�©í���� ê²½ì�� ê·�ì¹��� ì²�리ë���� ë°©ì���� ���� �´í�´ê� ì¤����©ë����.
�´ê��� ê°��¨í�� ������ ê·�ì¹��� ì²�리ë��ë©� �¬ì���±ë�� ��ì²���
URL ���� ��ì§��� �¤ì�� ���¬ë���� ì²�리ë���¤ë�� ê²�������.
�¬ì���±ë�� ��ì²��� ì²�리ë�� �� .htaccess ���¼ì�´ë��
<Directory>
�¹ì���� �¤ì�� ë§���ì§� �� ���¼ë©°, �°ë�¼ì�� ê·�ì¹� �¸í�¸ê� ì²���ë¶���
�¤ì�� �¤í���� �� ���µë����. ê°��� �¼ë����¼ë� �´ê��� ê·�ì¹� ì¤�
����ê°� �´ë� ���� �¸ë� 리ë�¤ì�´ë���¸ë�� �¼ì�¼ì� ��ì²� ì²�리ê�
�¤ì�� �������� ê²½ì�°ì�� ë°����©ë����.
�°ë�¼ì�� �´ë�¬í�� 컨í���¤í�� ì¤� �������� RewriteRule ì§����´ë��
�¬ì�©í���� ê²½ì�� ê·�ì¹��� 루í���� �¼í��ê¸� ���� ëª����� ì¡°ì�ë¥�
ì·¨í��ê³�, ������ ������ ��ë¡� �¼ë�¨ì�� ê·�ì¹��� �¤í���� ì¢�ë£���ê¸�
���� [L] ����ê·¸ì��ë§� ��ì¡´í��ì§� ���� ê²��� ì¤����©ë����.
���� ����ê·¸ì�� [END]�� ���� �¬ì���� ì²�ë¦� �¼ì�´ë��ë¥� ì¢�ë£��� ë¿�ë§� ������ ������리ë�(htaccess) 컨í���¤í�¸ì���� ���� �¬ì���� ì²�리ê� ë°������� ê²��� ë°©ì��©ë����. �´ê��� �¸ë� 리ë�¤ì�´ë���¸ë� �¸í�� �� ��ì²����� ���©ë��ì§� ���µë����.
�¬ê¸° 주ì�´ì� ������ 모ë�� ��ì²��� index.phpë¡�
�¬ì���±í��ë©�, ���� ��ì²��� index.php�� 쿼리 문ì����
�¸ì��ë¡� ��ê³µí�©ë����. ê·¸ë�¬ë��
RewriteCond��
��ì²��� �´ë�� index.php�� ���� ê²��� ê²½ì��
RewriteRule��
ê±´ë���°ì�´ì���ë¡� �©ë����.
RewriteBase "/"
RewriteCond "%{REQUEST_URI}" !=/index.php
RewriteRule "^(.*)" "/index.php?req=$1" [L,PT]
[N] ����ê·¸ë�� ê·�ì¹� �¸í�¸ë�� ì§�ê¸�ê¹�ì§��� ê·�ì¹� �¸í�� ê²°ê³¼ë¥� �������¼ë� �¬ì�©í���� ì²���ë¶��� �¤ì�� ��������ë¡� �©ë����. 루í��ë¥� ì´����� �� ���¼ë��ë¡� ê·¹ë���� 주ì��ë¥� 기ì�¸ì�� �¬ì�©í��������.
[Next] ����ê·¸ë�� ��ë¥� �¤ì��, ��ì²����� �¹ì�� 문ì���´ì�´ë�� 문ì��ë¥� ë°�ë³µì���¼ë� ��ì²´í���¤ë�� ê²½ì�°ì�� �¬ì�©í�� �� ���µë����. �¬ê¸° ������ ������ ��ì²��� 모ë�� ê³³ì���� Aë¥� Bë¡� ��ì²´í��ë©� �� �´ì�� ��ì²´í�� Aê°� ���� ��ê¹�ì§� ê³����©ë����.
RewriteRule "(.*)A(.*)" "$1B$2" [N]
�´ê��� while 루í��ë¡� ��ê°��� �� ���µë����:
�� �¨í�´ì�� �¬ì���� �¼ì����� ����(ì¦�, URI�� �¬ì����
Aê°� �¬í�¨ë���� ���� ����) �� ì¹�����
�����©ë����(ì¦�, Aë¥� Bë¡�
��체����).
2.5.0 �´ì������ �� 모ë���� ������ì§� ���� 루í���¼ë�ë¶��� ë³´í�¸í��ê¸� ���� 10,000ë²��� ë°�ë³� ���� �¤ë�ë¥� ë°����©ë����. N ����ê·¸ì�� ì¶�ê°����� �������� ìµ��� ë°�ë³� ����ë¥� ì§����� �� ���µë����.
# 루í���� ê°� �¨ì�¤ì���� 1ê°��� 문ì��ë¥� ��ì²´í�� ���� RewriteRule "(.+)[><;]$" "$1" [N=32000] # ... ���� 10ë²� 루í�� �� �¬ê¸° RewriteRule "(.+)[><;]$" "$1" [N=10]
[NC] ����ê·¸ë�� �¬ì�©í��ë©�
RewriteRule��
����문ì��ë¥� 구ë���ì§� ���� ë°©ì���¼ë� �¼ì��©ë����. ì¦�,
�¼ì����� URI���� 문ì��ê°� ��문ì���¸ì� ��문ì���¸ì� ��ê´���ì§�
���µë����.
���� �������� �´ë�¸ì� ���¼ì�� ���� 모ë�� ��ì²��� ����
�´ë�¸ì� ��ë²�ë¡� ��ë¡����©ë����. �¼ì��� ����문ì��ë¥� 구ë���ì§�
���¼ë��ë¡�, ��ë¥� �¤ì�� .jpg�� .JPG
���� 모ë�� ���©ë�©ë����.
RewriteRule "(.*\.(jpg|gif|png))$" "http://images.example.com$1" [P,NC]
기본���¼ë� RewriteRule��
�¸ë� 리ë�¤ì�´ë���¸ë� �´ì�´ì� ��, ì¶��¥ì���� �¤ì�� ���� �¸í�¸ì�� �¬í�¨ë��ì§�
���� 모ë�� 문ì���� 16ì§��� ì½���(�¼ì�¼í�� �¸ì���)ë¡� ë³����©ë����:
A-Z, a-z,
0-9$-_.+!*'(),:;@&=/~��ë¥� �¤ì��, #�� %23�¼ë�,
?�� %3Fë¡� ë³����©ë����.
% 문ì���� (%25ë¡�) �´ì�¤ì��´í����ë¯�ë¡�
ì¹����� �´ë�� ì¡´ì�¬í���� �¼ì�¼í�� �¸ì��©ì�� �´ì� �¸ì��©ë�©ë����.
[NE] ����ê·¸ë�� �¬ì�©í��ë©� �� �´ì�¤ì��´í��ë¥� ë°©ì�����
#� ?�� ��� 문�� ������� ���
리ë�¤ì�´ë���� URLë¡� ���¬ë�©ë����.
RewriteRule "^/anchor/(.+)" "/bigpage.html#$1" [NE,R]
���� ������ /anchor/xyz�
/bigpage.html#xyzë¡� 리ë�¤ì�´ë���¸í�©ë����.
[NE]ë¥� ���µí��ë©� #�� 16ì§��� ì½����� %23�¼ë�
ë³������� 404 Not Found �¤ë� ì¡°ê±´�� ë°����©ë����.
[NS] ����ê·¸ë�� �¬ì�©í��ë©� ��ë¸���ì²����� ê·�ì¹��� �¬ì�©ë���� ê²���
ë°©ì��©ë����. ��ë¥� �¤ì��, SSI(Server Side Include)ë¥� �¬ì�©í����
�¬í�¨ë�� ���´ì��� ��ë¸���ì²��´ë©°, �´ë�� ��ë¸���ì²����� �¬ì���±ì��
ë°������� ê²��� �¼í��ê³� �¶ì�� �� ���µë����. ����
mod_dir�� ê°��¥í�� ������ë¦� 기본 ����(��:
index.html ����)�� ���� ��보� 찾�� �� ��
�´ê��� �´ë� ��ë¸���ì²��´ë©°, ì¢�ì¢� �´ë�¬í�� ��ë¸���ì²�����
�¬ì���±ì�� �¼í��ê³� �¶ì�� ê²�������. ��ë¸���ì²������� ��ì²�
ê·�ì¹� �¸í�¸ê� ���©ë���� ê²��� ���� ���©í��ì§� ���¼ë©° �¤ë�ë¥�
�¼ì�¼í�� ���� ���µë����. �� ����ê·¸ë�� �¬ì�©í���� 문ì��ê°� ����
ê·�ì¹��� ���¸í��������.
�� ê·�ì¹��� �¬ì�©í��ì§� �¬ë�ë¥� ê²°ì�����¤ë©´: CGI �¤í�¬ë¦½�¸ë� URL�� �����¬ë�� ë¶��� CGI �¤í�¬ë¦½�¸ì�� ���� ì²�리ë����ë¡� ê°������� ê²½ì��, ��ë¸���ì²����� 문ì��(���� ���¹í�� �¤ë��¤ë��)ê°� ë°����� ê°��¥ì�±ì�� ���µë����. �´ë�¬í�� ê²½ì�� �� ����ê·¸ë�� �¬ì�©í��������.
HTML ���´ì��� �¼ë�ë¡� ë¡������� �´ë�¸ì�, ��ë°��¤í�¬ë¦½�� ���� ���� CSS ���¼ì�� ��ë¸���ì²��� �������� - ë¸��¼ì�°ì���� �´ë�� ë³����� HTTP ��ì²��¼ë� ��ì²��©ë����.
[P] ����ê·¸ë�� �¬ì�©í��ë©� ��ì²���
mod_proxy�� ���� �리�� ����� �����
�µí�� ì²�리ë�©ë����. ��ë¥� �¤ì��, 모ë�� �´ë�¸ì� ��ì²��� ë°±ì����
�´ë�¸ì� ��ë²��� ���� ì²�리ë����ë¡� ���¤ë©´ �¤ì��ê³� ê°��� �� ��
���µë����:
RewriteRule "/(.*)\.(jpg|gif|png)$" "http://images.example.com/$1.$2" [P]
[P] ����ê·¸ë�� �¬ì�©í��ë©� [L]�� �����©ë���� - ì¦�, ��ì²��� ì¦��� ��ë¡���ë¥� �µí�� ���¬ë��ê³� �´í���� ê·�ì¹��� ê³��¤ë��ì§� ���µë����.
ì¹��� 문ì���´ì�� mod_proxyê°� ì²�리í�� �� ����
���¨í�� URI(�¼ë����¼ë� http://hostname�¼ë�
����)�¸ì� ���¸í�´ì�� �©ë����. ê·¸ë��ì§� ���¼ë©´ ��ë¡��� 모ë������
�¤ë�ê°� ë°����©ë����. �� ����ê·¸ë�� �¬ì�©í���� ë¡�ì»� ��ë²��� �¤ì���¤í���´ì�¤ì��
��� ����� 매�����
ProxyPass ì§����´ì��
�� ê°��¥í�� 구í���� �¬ì�±í�©ë����.
ê·�ì¹��� ���� URL�� 구ì�±í�� ��, ��ë²�ê°� ��ë¡���ë¡� ������ URL �¸í�¸ì�� ���� �´ë�¼ì�´ì�¸í�¸ì�� ���¥ì�¼ë� �¸í�� ë³´ì�� ���¥ì�� ê³��¤í���� 주ì����������. URL�� �¤í�¤ë� ë°� �¸ì�¤í�¸ë� ë¶�ë¶��� ê³������� ��ê±°ë�� �´ë�¼ì�´ì�¸í�¸ì��ê²� ë¶��¹í�� ���¥ì�� 주ì� ����ë¡� ��������.
�� ����ê·¸ë�� �¬ì�©í��ë©� mod_proxy�� �¬ì�©ì��
�¸ë¦¬ê±°ë��ë©�, �� ê²½ì�� 기본 ��커ê� �¬ì�©ë���� �°ê²°
��ë§�/�¬ì�¬ì�©ì�� ì²�리í��ì§� ���¼ë��ë¡� ��êµ� �°ê²°�� ì²�리í��ì§�
���µë����.
��êµ� �°ê²°�� �¬ì�©í���¤ë©´ ���� URL�� �¤í�¤ë� ë°� �¸ì�¤í��
���� ���� Proxy
ë¸�ë¡��� ìµ����� �¤ì����ê³� ��ë¥� �¤ì�� ���������� �¤ì������
ProxySet ì§����´ë��
�¬í�¨í�´ì�� �©ë����.
ProxyPass ����
ProxyPassMatch�
�¤ì����ë©� ��êµ� �°ê²°�� �����¼ë� �¬ì�©ë�©ë����.
ì°¸ê�: �� ����ê·¸ë�� �¬ì�©í���¤ë©´
mod_proxyê°� ���±í������ ���´ì�� �©ë����.
RewriteRule�� ����(���� ì¹��� 문ì����)�� 기본���¼ë� ����
ê²½ë�ë¡� ê°�주ë�©ë����. [PT] ����ê·¸ë�� �¬ì�©í��ë©� ���� URIë¡�
ì²�리ë�©ë����. ì¦�, [PT] ����ê·¸ë�� �¬ì�©í��ë©�
RewriteRule��
ê²°ê³¼ê°� URL 매í���� �µí�� �¤ì�� ���¬ë��ë¯�ë¡�,
Alias,
Redirect ����
ScriptAlias�� ���
��ì¹� 기ë� 매í���� �¨ê³¼ë¥� ë°����� 기í��ë¥� ê°�ì§�����.
��ë¥� �¤ì��, /icons�� ����
Alias� ���
거기� �리�� RewriteRule��
���¤ë©´ Aliasê°�
��ê°�����ë¡� [PT] ����ê·¸ë�� �¬ì�©í�´ì�� �©ë����.
Alias "/icons" "/usr/local/apache/icons" RewriteRule "/pics/(.+)\.jpg$" "/icons/$1.gif" [PT]
�� ê²½ì�� [PT] ����ê·¸ë�� ���µí��ë©� Aliasê°� 무ì������ 'File not found' �¤ë�ê°� ë°����©ë����.
PT ����그� L ����그�
�����©ë����: ��ì²��� ì²�리ì�� �¤ì�� �¨ê�ë¡� ���¬í��ê¸� ����
�¬ì���±ì�� ì¤�ì§��©ë����.
PT ����그�
<Directory>
�¹ì���´ë�� .htaccess ���¼ê³¼ ê°��� ������리ë�
컨í���¤í�¸ì���� �����©ë����. �´ë�� �°í������ ���¼í�� ë°©ë���
-ë¡� �¬ì���±í���� ê²�������.
��ì²� URI�� 쿼리 문ì���´ì�� �¬í�¨ë�� ê²½ì��
RewriteRule��
기본 ������ 기존 쿼리 문ì���´ì�� ë²�리ê� ��ë¡� ���±ë�� ê²��¼ë�
��ì²´í���� ê²�������. [QSA] ����ê·¸ë�� �¬ì�©í��ë©� 쿼리 문ì���´ì��
결�����.
�¤ì�� ê·�ì¹��� ê³��¤í��������:
RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]
[QSA] ����ê·¸ë�� �¬ì�©í��ë©� /pages/123?one=two��
���� ����� /page.php?page=123&one=two�
매í���©ë����. [QSA] ����ê·� ���� ���¼í�� ��ì²���
/page.php?page=123�¼ë� 매í���©ë���� - ì¦�,
기존 쿼리 문ì���´ì�� ë²��¤ì�����.
��ì²��� URI�� 쿼리 문ì���´ì�� �¬í�¨ë���� ��ê³� ���� URI����
���� 경�, RewriteRule��
기본 ������ �´ë�� 쿼리 문ì���´ì�� ���� URI�� ë³µì�¬í����
ê²�������. [QSD] ����ê·¸ë�� �¬ì�©í��ë©� 쿼리 문ì���´ì��
ë²��¤ì�����.
�� ����ê·¸ë�� ë²��� 2.4.0 �´ì������ �¬ì�©í�� �� ���µë����.
[QSD]�� [QSA]ë¥� �¨ê� �¬ì�©í��ë©� [QSD]ê°� �°ì���©ë����.
���� URI�� 쿼리 문ì���´ì�� ���� ê²½ì�� 기본 ������
ê´�ì°°ë�©ë���� - ì¦�, ���� 쿼리 문ì���´ì�� ë²��¤ì�ê³�
RewriteRule ���� URI�� 쿼리 문ì���´ë�
��체����.
기본���¼ë� ì¹������� ì²� ë²�ì§�(ê°��� �¼ìª½) 물ì����ê°� ê²½ë���
쿼리 문ì���´ì�� 구ë��©ë����. [QSL] ����ê·¸ë�� �¬ì�©í��ë©�
RewriteRule��
���� ë§�ì§�ë§�(ê°��� �¤ë¥¸ìª�) 물ì����ë¥� �¬ì�©í���� �� 구ì�� ����ë¥�
�리����.
�´ê��� ���¼ë��� 리í�°ë�� 물ì����ê°� ���� ���¼ì�� 매í���� �� ���©í�©ë����. ì¹����� 쿼리 문ì���´ì�� �¬ì�©ë��ì§� ���� ê²½ì�� �� ����ê·¸ì�� �¨ê� 물ì����ë¥� ì¶�ê°��� �� ���µë����.
�� ����ê·¸ë�� ë²��� 2.4.19 �´ì������ �¬ì�©í�� �� ���µë����.
[R] ����ê·¸ë�� �¬ì�©í��ë©� ë¸��¼ì�°ì���� HTTP 리ë�¤ì�´ë���¸ê�
ë°����©ë����. ������ URL(ì¦�,
http://servername/ �¬í��)�� ì§�����ë©�
�´ë�� ��ì¹�ë¡� 리ë�¤ì�´ë���¸ê� ë°����©ë����. ê·¸ë��ì§� ���¼ë©´
���� ��ë¡���ì½�, ��ë²�ëª� ë°� �¬í�� ë²��¸ê� 리ë�¤ì�´ë���¸ì��
�¨ê� ���¡ë���� URL�� ���±í���� �� �¬ì�©ë�©ë����.
���¨í�� 모ë�� HTTP ���� ���� ì½���ë¥�
[R=305] 구문�¼ë� ì§����� �� ���¼ë©°, ì§�����ì§� ���¼ë©´
302 ���� ì½���ê°� 기본���¼ë� �¬ì�©ë�©ë����. ì§����� ���� ì½���ê°�
ë°����� 리ë�¤ì�´ë����(3xx) ���� ì½����� ������ ���µë����.
ê·¸ë�¬ë�� ���� ì½���ê°� 리ë�¤ì�´ë���� ë²���(300-399) ë°��� ���¼ë©´
ì¹��� 문ì���´ì�� ������ ������ê³� L�� �¬ì�©ë��
ê²�ì²��� �¬ì���±ì�� ì¤�ì§��©ë����.
���� ���� ì½��� �¸ì���� 기í�� �´ë��� �¬ì�©í���� 리ë�¤ì�´ë����
����ë¥� ì§����� ���� ���µë����: temp(기본ê°�),
permanent ���� seeother.
ê±°ì�� ���� [R]�� [L]ê³� �¨ê� �¬ì�©í��ê³� �¶ì�� ê²�������(ì¦�,
[R,L]). [R] ����ê·� �¨ë���¼ë��� URI ����
http://thishost[:thisport]� ������
�´ë�� ê·�ì¹� �¸í�¸ì�� �¤ì�� ê·�ì¹��� ���¬í���� ì¢�ì¢�
'Invalid URI in request' ê²½ê�ë¥� ì´����©ë����.
ì°¸ê�: httpd�� HTTP �¬ì���� �¬í�¨ë�� ���� ì½���ë§� ì§����©ë����. �¸ì���� �� ���� ���� ì½���ë¥� �¬ì�©í��ë©� 500 �¤ë��� �¤ë� ë¡�ê·� ë©���ì§�ê°� ë°����©ë����.
[S] ����ê·¸ë�� �¤í����ê³� �¶ì� ���� ê·�ì¹��� ê±´ë���°ë�� ��
�¬ì�©ë�©ë����. ê±´ë���°ê¸° ����ê·¸ì�� 구문�� [S=N]�´ë©°,
N�� 건��� ���� ��� ����������
(RewriteRule�
���� RewriteCond
ì§����´ê� �¼ì����� ê²½ì��). �´ê��� �¬ì���� ê·�ì¹� �¸í�¸ì��
goto 문ì�¼ë� ��ê°��� �� ���µë����. �¤ì�� ����������
��ì²��� URIê°� �¤ì�� ���¼ì�� �´ë�¹í��ì§� ���� ê²½ì�°ì��ë§�
RewriteRule��
�¤í����ê³��� �©ë����.
# Is the request for a non-existent file?
RewriteCond "%{REQUEST_FILENAME}" !-f
RewriteCond "%{REQUEST_FILENAME}" !-d
# If so, skip these two RewriteRules
RewriteRule ".?" "-" [S=2]
RewriteRule "(.*\.gif)" "images.php?$1"
RewriteRule "(.*\.html)" "docs.php?$1"
�� 기��� RewriteCond�
ë°�ë¡� �¤ì���� �¤ë��
RewriteRule���
���©ë��ê¸� ��문ì�� ���©í�©ë����. �°ë�¼ì��
RewriteCondë¥� �¬ë��
RewriteRule�� ���©í���¤ë©´ ê°��¥í�� 기ì�� ì¤�
������ �´ë�� ì¡°ê±´�� ë¶�����ê³� [Skip] ����ê·¸ë�� ê°�ì§�
RewriteRule�� ������ �������.
�´ë�� �¬ì�©í���� ���� if-then-else 구조ë¥� ë§��� �� ���µë����:
then ���� ��� ���� skip=N�� ���,
N�� else ���� �� ��������:
# Does the file exist?
RewriteCond "%{REQUEST_FILENAME}" !-f
RewriteCond "%{REQUEST_FILENAME}" !-d
# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.
RewriteRule ".?" "-" [S=3]
# IF the file exists, then:
RewriteRule "(.*\.gif)" "images.php?$1"
RewriteRule "(.*\.html)" "docs.php?$1"
# Skip past the "else" stanza.
RewriteRule ".?" "-" [S=1]
# ELSE...
RewriteRule "(.*)" "404.php?file=$1"
# END
<If>,
<ElseIf> ë°�
<Else> ì§����´ë��
���� �¬ì�©í��ë©� �´ë�¬í�� ì¢�ë¥��� �¤ì���� �� �½ê� �¬ì�±í�� ��
���µë����.
ê²°ê³¼ ���µì�� ���¡ë�� MIME ������ �¤ì���©ë����. �´ê���
AddType ì§����´ì��
���¼í�� �¨ê³¼ë¥� ê°�ì§�����.
��ë¥� �¤ì��, �¹ì�� ë°©ì���¼ë� ��ì²��� ê²½ì�� Perl ���� ì½���ë¥� �¼ë� ���¤í�¸ë� ��ê³µí��ê¸� ���� �¤ì�� 기ì���� �¬ì�©í�� �� ���µë����:
# .pl ���¼ì�� �¼ë� ���¤í�¸ë� ��ê³� RewriteRule "\.pl$" "-" [T=text/plain]
���� ���� ���¥ì�� ���� jpeg �´ë�¸ì�ë¥� ���±í���� ì¹´ë��¼ê� ���� ê²½ì�� ���� �´ë��� 기ì��¼ë� �¬ë�ë¥� MIME �����¼ë� �´ë�� �´ë�¸ì�ê°� ��ê³µë����ë¡� ê°����� �� ���µë����:
# �´ë��� 'IMG'ê°� �¬í�¨ë�� ���¼ì�� jpg �´ë�¸ì�������. RewriteRule "IMG" "-" [T=image/jpg]
�´ê��� ê°��¨í�� �����´ë©° ����
<FilesMatch>�
�¬ì�©í���� �� �� ������ �� ���¤ë�� ���� ������������.
�¬ì���±ì�� ��ì¡´í��ê¸� ���� ���� 문ì���� ���� ���� ��루ì����
ê³��¤í��������. �¬ì���±ì�� ����ë³´ë�� ���� �� �¨ì�¨ì����
��루ì���� �©ë����.
������리ë� 컨í���¤í�¸ì���� �¬ì�©í���� ê²½ì�� ��ì²�
mod_rewrite ì²�ë¦� �¼ì�´ë���� ����
ì¹����¼ë� -(����)ë§� �¬ì�©í��������.
ê·¸ë��ì§� ���¼ë©´ �´ë� �¬ì�ë¦�(����
mod_rewrite ì²�ë¦� �¼ì�´ë�� �¬í��)ë¡� �¸í��
�� ����ê·¸ë� �¤ì���� MIME ������ ���¤ë�©ë����.
L ����ê·¸ë�� �� 컨í���¤í�¸ì����
mod_rewrite ì²�리ì�� ���� �¼ì�´ë��ë¥�
ì¢�ë£����� �� ���©í�� �� ���µë����.
���� ì¤��� HTTP ��ì²��� �¸ì��©ë�� 물ì���� '%3f'ê°� ��ê³� �¬ì���� ê²°ê³¼�� ì¹����� '?'ê°� ���� ê²½ì�� �¬ì���±ì�� ê³�������ë¡� ���©í���¤ë©´ �� ����ê·¸ë�� �¤ì���´ì�� �©ë����. �´ë�� �¸ì��©ë�� 물ì������ 캡ì� ë°� �¬ì����� �´ì�©í���� �������� URLë¡�ë¶��� ë³´í�¸í�©ë����.
��ë²� ë²����� ì¹����� ë³����� ��참조ë¡� ������ê³� ���� ���¤í�� ê²½ë�ë¡� �´ì������ ê²½ì�� �� ����ê·¸ë�� �¤ì���´ì�� �©ë����. �´ë�¬í�� ì¹����� 문ì�� 루í�¸ë� �����¬ê� ë¶�ì§� ���µë����. �´ë�� ���¥ë�� ì¹����� ����ì¹� 못í�� ���� ���¤í�� ��ì¹��� 매í������ �������� URLë¡�ë¶��� ë³´í�¸í�©ë����.
Available in Apache HTTP Server 2.5.1 and later.