1 <?xml version="1.0" encoding="EUC-KR"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>URL ÀçÀÛ¼º Áöħ¼ - Apache HTTP Server</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="../mod/">¸ðµâ</a> | <a href="../mod/directives.html">Áö½Ã¾îµé</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">¿ë¾î</a> | <a href="../sitemap.html">»çÀÌÆ®¸Ê</a></p>
15 <p class="apache">Apache HTTP Server Version 2.0</p>
16 <img alt="" src="../images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
19 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.0</a> > <a href="./">Miscellaneous Documentation</a></div><div id="page-content"><div id="preamble"><h1>URL ÀçÀÛ¼º Áöħ¼</h1>
21 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/misc/rewriteguide.html" hreflang="en" rel="alternate" title="English"> en </a> |
22 <a href="../ko/misc/rewriteguide.html" title="Korean"> ko </a></p>
24 <div class="outofdate">ÀÌ ¹®¼´Â ÃÖ½ÅÆÇ ¹ø¿ªÀÌ ¾Æ´Õ´Ï´Ù.
25 ÃÖ±Ù¿¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼¸¦ Âü°íÇϼ¼¿ä.</div>
29 <cite>Ralf S. Engelschall <rse@apache.org></cite><br />
33 <p>ÀÌ ¹®¼´Â <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> <a href="../mod/mod_rewrite.html">ÂüÁ¶ ¹®¼</a>¸¦ º¸ÃæÇÑ´Ù.
34 ÀÌ ¹®¼´Â À¥°ü¸®ÀÚ°¡ ½ÇÁ¦ ÀÛ¾÷¿¡¼ ºÎµúÄ¡°ÔµÇ´Â ÀüÇüÀûÀÎ
35 URL°ü·Ã ¹®Á¦¸¦ ÇØ°áÇϱâÀ§Çؼ ¾î¶»°Ô ¾ÆÆÄÄ¡
36 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>¸¦ »ç¿ëÇÏ´ÂÁö ¼³¸íÇÑ´Ù. URL
37 ÀçÀÛ¼º ±ÔÄ¢À» ¼³Á¤ÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¹æ¹ýÀ» ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.</p>
40 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#ToC1"><code>mod_rewrite</code> ¼Ò°³</a></li>
41 <li><img alt="" src="../images/down.gif" /> <a href="#ToC2">½Ç¿ëÀûÀÎ ÇØ°áÃ¥</a></li>
42 <li><img alt="" src="../images/down.gif" /> <a href="#url">URL ±¸Á¶</a></li>
43 <li><img alt="" src="../images/down.gif" /> <a href="#content">ÄÁÅÙÃ÷ ´Ù·ç±â</a></li>
44 <li><img alt="" src="../images/down.gif" /> <a href="#access">Á¢±Ù Á¦ÇÑ</a></li>
45 <li><img alt="" src="../images/down.gif" /> <a href="#other">±âŸ</a></li>
47 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
49 <h2><a name="ToC1" id="ToC1"><code>mod_rewrite</code> ¼Ò°³</a></h2>
53 <p>¾ÆÆÄÄ¡ <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> ¸ðµâÀº ±²ÀåÇÏ´Ù.
54 Áï, URLÀ» Á¶ÀÛÇÒ ¼ö ÀÖ´Â °·ÂÇÏ°í ½Ç·Î Á¤±³ÇÑ ¸ðµâÀÌ´Ù.
55 »ó»óÇØ¿Ô´ø °ÅÀÇ ¸ðµç Á¾·ùÀÇ URL Á¶ÀÛÀÌ °¡´ÉÇÏ´Ù. ±×·¯³ª
56 ±× ´ë°¡·Î »ç¿ëÇϱ⠺¹ÀâÇÏ´Ù. <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ÀÇ
57 ÃÖ´ë ´ÜÁ¡Àº Ãʺ¸ÀÚ°¡ ÀÌÇØÇÏ°í »ç¿ëÇϱ⠽±Áö ¾Ê´Ù´Â Á¡ÀÌ´Ù.
58 ½ÉÁö¾î ¾ÆÆÄÄ¡ Àü¹®°¡µµ Á¾Á¾ <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ÀÇ
59 »õ·Î¿î ¿ëµµ¸¦ ¹ß°ßÇÑ´Ù.</p>
61 <p>´Ù¸¥ ¸»·Î: <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>¿¡ ´ëÇØ ´ç½ÅÀº
62 óÀ½¿¡ °ÌÀ» ¸Ô°í Àý´ë·Î ´Ù½Ã »ç¿ëÇÏÁö ¾Ê°Å³ª, °·ÂÇÔ¿¡ ¸Å·áµÇ¾î
63 ¾ÕÀ¸·Î »î µ¿¾È »ç¶û¿¡ ºüÁú °ÍÀÌ´Ù. ÀÌ ±ÛÀº ù¹ø° °æ¿ì¸¦
64 ¸·±âÀ§ÇØ ÀÌ¹Ì ¾Ë·ÁÁø ¸î°¡Áö ¼º°ø»ç·Ê¸¦ ¼Ò°³ÇÏ·Á°í ÇÑ´Ù.</p>
66 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
68 <h2><a name="ToC2" id="ToC2">½Ç¿ëÀûÀÎ ÇØ°áÃ¥</a></h2>
72 <p>ÀÌÁ¦ ³»°¡ Á÷Á¢ ¸¸µé¾ú°Å³ª ´Ù¸¥ »ç¶÷µéÀÌ ¸¸µç ¸¹Àº ½Ç¿ëÀûÀÎ
73 ÇØ°áÃ¥ÀÌ ³ª¿Â´Ù. ¿¹Á¦¿¡¼ URL ÀçÀÛ¼ºÀÇ È渶¼úÀ» ¸¶À½²¯ ¹è¿ì±æ
76 <div class="warning">ÁÖÀÇ: ¼¹ö ¼³Á¤¿¡ µû¶ó »óȲ¿¡ ¸Â°Ô
77 ¿¹Á¦¸¦ Á¶±Ý ¼öÁ¤ÇØ¾ß ÇÒ °æ¿ì°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î, Ãß°¡·Î
78 <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code>, <code class="module"><a href="../mod/mod_userdir.html">mod_userdir</a></code>
79 µîÀ» »ç¿ëÇÑ´Ù¸é <code>[PT]</code> Ç÷¡±×¸¦ Ãß°¡ÇÑ´Ù. ȤÀº
80 ÁÖ¼¹ö¼³Á¤/°¡»óÈ£½ºÆ® »ç¿ëÀå¼Ò°¡ ¾Æ´Ñ <code>.htaccess</code>
81 »ç¿ëÀå¼Ò¿¡ ¾Ë¸Â°Ô ±ÔÄ¢À» ¼öÁ¤ÇÒ ¼öµµ ÀÖ´Ù. »ç¿ëÇϱâ Àü¿¡
82 Ç×»ó ±ÔÄ¢ÀÌ ¾î¶² ±â´ÉÀ» ÇÏ´ÂÁö ÀÌÇØÇϵµ·Ï Çضó. ±×·¯¸é ¹®Á¦¸¦
85 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
87 <h2><a name="url" id="url">URL ±¸Á¶</a></h2>
91 <h3>±âÁØÀÌ µÇ´Â URL</h3>
99 <p>ÇÑ ¸®¼Ò½º¿¡ ´ëÇØ ¿©·¯ URLÀ» °¡Áö´Â À¥¼¹ö°¡ ÀÖ´Ù.
100 º¸Åë (½ÇÁ¦ »ç¿ëÇÏ°í ¾Ë·ÁÁ®¾ß ÇÒ) ±âÁØÀÌ µÇ´Â URL°ú,
101 ´ÜÃà ȤÀº ³»ºÎ ¿ëµµÀÇ URLÀÌ ÀÖ´Ù. »ç¿ëÀÚ°¡ ¿äû¿¡
102 ¾î¶² URLÀ» »ç¿ëÇÏ´øÁö ±âÁØÀÌ µÇ´Â URL¸¸À» º¸¿©Áà¾ß
109 <p>±âÁØÀÌ µÇÁö¾Ê´Â ¸ðµç URLÀ» ºê¶ó¿ìÀú°¡ ¾Ëµµ·Ï °íÄ¡±âÀ§ÇØ
110 ¿ÜºÎ HTTP ¸®´ÙÀÌ·º¼ÇÇÑ´Ù. ¿¹¸¦ µé¾î ¾Æ·¡ ±ÔÄ¢Àº
111 <code>/~user</code>¸¦ ±âÁØÀÌ µÇ´Â <code>/u/user</code>·Î
112 ´ëüÇÏ°í, <code>/u/user</code> ¸¶Áö¸·¿¡ ½½·¡½¬°¡ ¾ø´Ù¸é
115 <div class="example"><pre>
116 RewriteRule ^/<strong>~</strong>([^/]+)/?(.*) /<strong>u</strong>/$1/$2 [<strong>R</strong>]
117 RewriteRule ^/([uge])/(<strong>[^/]+</strong>)$ /$1/$2<strong>/</strong> [<strong>R</strong>]
124 <h3>±âÁØÀÌ µÇ´Â È£½ºÆ®¸í</h3>
131 <dd>ÀÌ ±ÔÄ¢Àº µ¿ÀÏÇÑ »çÀÌÆ®¿¡ µµ´ÞÇÒ ¼ö ÀÖ´Â ´Ù¸¥ È£½ºÆ®¸í
132 ´ë½Å ƯÁ¤ È£½ºÆ®¸íÀ» »ç¿ëÇϵµ·Ï °Á¦ÇÑ´Ù. ¿¹¸¦ µé¾î,
133 <strong>example.com</strong> ´ë½Å
134 <strong>www.example.com</strong>À» »ç¿ëÇϵµ·Ï °Á¦ÇÏ°í
135 ½Í´Ù¸é ´ÙÀ½°ú °°Àº ±ÔÄ¢À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.</dd>
140 <div class="example"><pre>
141 # 80¹øÀÌ ¾Æ´Ñ Æ÷Æ®¿¡¼ ½ÇÇàÇÏ´Â »çÀÌÆ®¿ë
142 RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]
143 RewriteCond %{HTTP_HOST} !^$
144 RewriteCond %{SERVER_PORT} !^80$
145 RewriteRule ^/(.*) http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]
147 # ±×¸®°í, 80¹ø Æ÷Æ®¿¡¼ ½ÇÇàÇÏ´Â »çÀÌÆ®¿ë
148 RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]
149 RewriteCond %{HTTP_HOST} !^$
150 RewriteRule ^/(.*) http://fully.qualified.domain.name/$1 [L,R]
157 <h3><code>DocumentRoot</code>¸¦ ¿Å±ä °æ¿ì</h3>
165 <p>À¥¼¹öÀÇ <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>´Â º¸Åë URL
166 "<code>/</code>"°ú Á÷Á¢ °ü·ÃÀÖ´Ù. ±×·¯³ª ÀÌ°÷¿¡ ¸ðµç
167 ÀÚ·á°¡ ÀÖÁö ¾Ê°í, ÀÚ·á°¡ ´Ù¸¥ ¿©·¯ °÷¿¡ Èð¾îÁ®ÀÖ´Â
168 °æ¿ì°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î ÀÎÆ®¶ó³Ý »çÀÌÆ®¿¡ (¿ÜºÎ¸¦ À§ÇÑ
169 ȨÆäÀÌÁö) <code>/e/www/</code>¿Í (ÀÎÆ®¶ó³ÝÀ» À§ÇÑ
170 ȨÆäÀÌÁö) <code>/e/sww/</code>°¡ ÀÖ´Ù°í ÇÏÀÚ. ÀÌÁ¦
171 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>°¡
172 <code>/e/www/</code>À̱⶧¹®¿¡, ¿äû¿¡¼ ÆäÀÌÁö¿¡
173 Æ÷ÇÔµÈ ±×¸² µîÀ» ÀÌ°÷¿¡¼ °¡Á®¿Í¾ß ÇÑ´Ù.</p>
179 <p>¿ì¸®´Â URL <code>/</code>¸¦ <code>/e/www/</code>·Î
180 ¸®´ÙÀÌ·º¼Ç¸¸ ÇÏ¸é µÈ´Ù. »ç¼ÒÇØ º¸ÀÌÁö¸¸ ½ÇÁ¦·Î
181 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>¸¦ »ç¿ëÇؼ¸¸ °¡´ÉÇÏ´Ù.
182 (<code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> µîÀÌ Á¦°øÇÏ´Â) URL
183 <em>Alias</em> °°Àº ÀüÇüÀûÀÎ ¹æ¹ýÀº <em>¾ÕºÎºÐ</em>¸¸
184 ã´Â´Ù. <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>°¡
185 ¸ðµç URLÀÇ ¾ÕºÎºÐÀ̱⶧¹®¿¡ ÀÌ ¹æ¹ýÀ» »ç¿ëÇÏ¿© ¸®´ÙÀÌ·º¼ÇÀ»
186 ÇÒ ¼ö ¾ø´Ù. <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>¸¦ »ç¿ëÇϸé
189 <div class="example"><pre>
191 RewriteRule <strong>^/$</strong> /e/www/ [<strong>R</strong>]
198 <h3>¸¶Áö¸· ½½·¡½¬ ¹®Á¦</h3>
206 <p>µð·ºÅ丮¸¦ ÁöĪÇÏ´Â URLÀÇ ¸¶Áö¸· ½½·¡½¬ ¹®Á¦°¡
207 ¾ø´Ù¸é ¸ðµç À¥°ü¸®Àڴ ȯȣÇÒ °ÍÀÌ´Ù. ½½·¡½¬°¡ ¾ø´Ù¸é,
208 Áï <code>/~quux/foo/</code> ´ë½Å <code>/~quux/foo</code>¸¦
209 »ç¿ëÇÏ¸é ¼¹ö°¡ <code>foo</code>¶ó´Â <em>ÆÄÀÏ</em>À»
210 ã±â¶§¹®¿¡ ¿À·ù°¡ ¹ß»ýÇÑ´Ù. ÆÄÀÏÀÌ µð·ºÅ丮À̱⶧¹®¿¡
211 ¹Þ¾ÆµéÀÌÁö ¾Ê´Â´Ù. ´ëºÎºÐÀÇ °æ¿ì º¸Åë ¼¹ö°¡ ÀÚµ¿À¸·Î
212 URLÀ» °íÄ¡Áö¸¸, °¡²û Á÷Á¢ ÇØÁà¾ß ÇÒ °æ¿ì°¡ ÀÖ´Ù. ¿¹¸¦
213 µé¾î, CGI ½ºÅ©¸³Æ® µîÀ¸·Î º¹ÀâÇÑ URL ÀçÀÛ¼ºÀ» ÇÑ ÈÄ¿¡
220 <p>ÀÌ ¹Ì¹¦ÇÑ ¹®Á¦ÀÇ ÇØ°á¹æ¹ýÀº ¼¹ö°¡ ÀÚµ¿À¸·Î ¸¶Áö¸·
221 ½½·¡½¬¸¦ Ãß°¡ÇÏ´Â °ÍÀÌ´Ù. ºê¶ó¿ìÀú°¡ ³ª¸ÓÁö ±×¸² µîÀ»
222 ¿Ã¹Ù·Î ¿äûÇÒ ¼ö ÀÖµµ·Ï, ¿ÜºÎ ¸®´ÙÀÌ·º¼ÇÀ» ÇØ¾ß ÇÑ´Ù.
223 ³»ºÎ ¸®´ÙÀÌ·º¼ÇÀ» ÇÑ´Ù¸é µð·ºÅ丮 ÆäÀÌÁö¿¡¸¸ µ¿ÀÛÇÏ¿©
224 ÀÌ ÆäÀÌÁö°¡ »ó´ë URL·Î Æ÷ÇÔÇÏ´Â ±×¸²À» ºê¶ó¿ìÀú°¡
225 ¿äûÇÒ¶§ ãÀ» ¼ö ¾ø´Ù. ¿¹¸¦ µé¾î, ¿ÜºÎ ¸®´ÙÀÌ·º¼ÇÀ»
226 »ç¿ëÇÏÁö ¾ÊÀ»¶§ <code>/~quux/foo/index.html</code>¿¡¼
227 <code>image.gif</code>¸¦ ¿äûÇϸé
228 <code>/~quux/image.gif</code>¸¦ ¿äûÇÏ°Ô µÈ´Ù!</p>
230 <p>±×·¡¼ À̸¦ ÇØ°áÇϱâÀ§ÇØ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ´Ù:</p>
232 <div class="example"><pre>
235 RewriteRule ^foo<strong>$</strong> foo<strong>/</strong> [<strong>R</strong>]
238 <p>Ȩµð·ºÅ丮ÀÇ ÃÖ»óÀ§ <code>.htaccess</code> ÆÄÀÏ¿¡
239 ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ó¸®Çϴµ¥ ºÎ´ãÀÌ
242 <div class="example"><pre>
245 RewriteCond %{REQUEST_FILENAME} <strong>-d</strong>
246 RewriteRule ^(.+<strong>[^/]</strong>)$ $1<strong>/</strong> [R]
253 <h3>ÀÏ°üµÈ URL ±¸Á¶·Î ¸¸µç À¥Å¬·¯½ºÅÍ</h3>
261 <p>ÀÎÆ®¶ó³Ý À¥¼¹ö±ºÀÇ ¸ðµç À¥¼¹ö¿¡ µ¿ÀÏÇÏ°í ÀÏ°üµÈ
262 URL ±¸Á¶¸¦ ¸¸µé°í ½Í´Ù. Áï, ¸ðµç (Á¤ÀÇ»ó ¼¹ö¿¡ ¼ÓÇÏ¿©
263 ¼¹ö¿¡ ÀÇÁ¸ÀûÀÎ!) URLÀ» ¼¹ö <em>µ¶¸³ÀûÀ¸·Î</em> ¸¸µç´Ù!
264 À¥ À̸§°ø°£¿¡ ¼¹öµ¶¸³ÀûÀÎ µ¿ÀÏÇÑ ±¸Á¶¸¦ ºÎ¿©ÇØ¾ß ÇÑ´Ù:
265 URLÀº ½ÇÁ¦ ¼¹ö¸¦ ÁöĪÇÏ¸é ¾ÈµÈ´Ù. ¼¹ö±ºÀÌ ÀÚµ¿À¸·Î
266 ½ÇÁ¦ ¼¹ö·Î À¯µµÇÑ´Ù.</p>
272 <p>¸ÕÀú »ç¿ëÀÚ, ±×·ì, µ¶¸³Ã¼ÀÇ À§Ä¡ Á¤º¸¸¦ ÀúÀåÇÑ
273 (ºÐ»êµÈ) ¿ÜºÎ¸Ê¿¡ ½ÇÁ¦ ¼¹ö Á¤º¸¸¦ ¾ò¾î¿Â´Ù. ¿ÜºÎ¸ÊÀº
274 ´ÙÀ½°ú °°Àº Çü½ÄÀÌ´Ù</p>
276 <div class="example"><pre>
277 user1 server_of_user1
278 user2 server_of_user2
282 <p>¿ì¸®´Â ÀÌ Á¤º¸¸¦ °¢°¢ <code>map.xxx-to-host</code>
283 ÆÄÀÏ¿¡ ÀúÀåÇß´Ù. ´ÙÀ½À¸·Î ¸ðµç ¼¹ö¿¡¼ URLÀÌ ¼¹ö¿¡
284 ¾ø´Ù¸é ´ÙÀ½°ú °°Àº URLÀ»,</p>
286 <div class="example"><pre>
292 <p>´ÙÀ½°ú °°ÀÌ ¸®´ÙÀÌ·º¼ÇÇÑ´Ù</p>
294 <div class="example"><pre>
295 http://physical-host/u/user/anypath
296 http://physical-host/g/group/anypath
297 http://physical-host/e/entity/anypath
300 <p>¾Æ·¡ ±ÔÄ¢Àº ¸ÊÆÄÀÏÀ» »ç¿ëÇÏ¿© ÀÌ ÀÛ¾÷À» ÇÑ´Ù (server0Àº
301 ¸Ê¿¡ Ç׸ñÀÌ ¾ø´Â °æ¿ì »ç¿ëÇÒ ±âº»¼¹ö¶ó°í °¡Á¤ÇÑ´Ù):</p>
303 <div class="example"><pre>
306 RewriteMap user-to-host txt:/path/to/map.user-to-host
307 RewriteMap group-to-host txt:/path/to/map.group-to-host
308 RewriteMap entity-to-host txt:/path/to/map.entity-to-host
310 RewriteRule ^/u/<strong>([^/]+)</strong>/?(.*) http://<strong>${user-to-host:$1|server0}</strong>/u/$1/$2
311 RewriteRule ^/g/<strong>([^/]+)</strong>/?(.*) http://<strong>${group-to-host:$1|server0}</strong>/g/$1/$2
312 RewriteRule ^/e/<strong>([^/]+)</strong>/?(.*) http://<strong>${entity-to-host:$1|server0}</strong>/e/$1/$2
314 RewriteRule ^/([uge])/([^/]+)/?$ /$1/$2/.www/
315 RewriteRule ^/([uge])/([^/]+)/([^.]+.+) /$1/$2/.www/$3\
322 <h3>Ȩµð·ºÅ丮¸¦ ´Ù¸¥ À¥¼¹ö·Î ÀÌÀü</h3>
330 <p>¸¹Àº À¥°ü¸®ÀÚ´Â À¥¼¹öÀÇ ¸ðµç Ȩµð·ºÅ丮¸¦ ´Ù¸¥
331 À¥¼¹ö·Î ÀÌÀüÇÑ °æ¿ì ÇØ°áÃ¥À» ¹°¾îº»´Ù. ÀÌ ¹æ¹ýÀº
332 ÀÌÀü ¼¹ö¸¦ ´ëüÇÒ »õ·Î¿î ¼¹ö¸¦ ±¸¼ºÇϴµ¥ ½Ã°£ÀÌ
333 °É¸®´Â °æ¿ì¿¡ ÇÊ¿äÇÏ´Ù.</p>
339 <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>¸¦ »ç¿ëÇÏ¸é °£´ÜÇÏ´Ù.
340 ÀÌÀü À¥¼¹ö´Â ¸ðµç <code>/~user/anypath</code> URLÀ»
341 <code>http://newserver/~user/anypath</code>·Î
342 ¸®´ÙÀÌ·º¼ÇÇÏ¸é µÈ´Ù.</p>
344 <div class="example"><pre>
346 RewriteRule ^/~(.+) http://<strong>newserver</strong>/~$1 [R,L]
353 <h3>Ȩµð·ºÅ丮 ±¸Á¶ ¸¸µé±â</h3>
361 <p>»ç¿ëÀÚ°¡ ¼öõ¸íÀÎ »çÀÌÆ®´Â º¸Åë Ȩµð·ºÅ丮 ±¸Á¶¸¦
362 ¸¸µç´Ù. Áï, ¿¹¸¦ µé¾î À̸§ÀÌ »ç¿ëÀÚ¸íÀÇ Ã¹¹ø° ¹®ÀÚÀÎ
363 ÇÏÀ§µð·ºÅ丮¿¡ Ȩµð·ºÅ丮¸¦ µÐ´Ù. ±×·¡¼,
364 <code>/~foo/anypath</code>´Â
365 <code>/home/<strong>f</strong>/foo/.www/anypath</code>ÀÌ°í,
366 <code>/~bar/anypath</code>´Â
367 <code>/home/<strong>b</strong>/bar/.www/anypath</code>ÀÌ´Ù.</p>
373 <p>¹°°áÇ¥½Ã°¡ ÀÖ´Â URLÀ» À§¿Í °°Àº ±¸Á¶·Î º¯È¯ÇϱâÀ§ÇØ
374 ´ÙÀ½ ±ÔÄ¢À» »ç¿ëÇÑ´Ù.</p>
376 <div class="example"><pre>
378 RewriteRule ^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*) /home/<strong>$2</strong>/$1/.www$3
385 <h3>ÆÄÀϽýºÅÛ À籸¼º</h3>
393 <p>ÀÌ ¿¹´Â ½Ç·Î ÇϵåÄÚ¾îÀûÀÌ´Ù: µð·ºÅ丮º°
394 <code>RewriteRules</code>¸¦ ¸Å¿ì ¸¹ÀÌ »ç¿ëÇÏ¿© ÀÚ·á
395 ÀÚü´Â ±×´ë·Î µÐü·Î À¥¿¡ ÀڷḦ ÀÚ¿¬½º·´°Ô ºê¶ó¿ì¡Çϵµ·Ï
396 ÇÑ´Ù. ¹è°æ: ³ª´Â 1992³â ºÎÅÍ ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â
397 À¯´Ð½º ¼ÒÇÁÆ®¿þ¾îµéÀ» <strong><em>net.sw</em></strong>¿¡
398 ¸ð¾ÆµÎ°í ÀÖ¾ú´Ù. ÀÌ´Â ³»°¡ ÄÄÇ»ÅÍ°úÇÐÀ» °øºÎÇϸé¼
399 ¿©·¯Çص¿¾È ¿©°¡½Ã°£¿¡ ½Ã½ºÅÛ °ü¸®ÀÚ¿Í ³×Æ®¿÷ °ü¸®ÀÚ¸¦
400 ÇؿԱ⶧¹®¿¡ ³» Ãë¹ÌÀÌÀÚ ÀÏÀÌ´Ù. ¸ÅÁÖ¸¶´Ù »õ·Î ¼ÒÇÁÆ®¿þ¾î°¡
401 Ãß°¡µÉ ¶§¸¶´Ù µð·ºÅ丮¸¦ ±í°Ô ¸¸µé¾î¿Ô´Ù:</p>
403 <div class="example"><pre>
404 drwxrwxr-x 2 netsw users 512 Aug 3 18:39 Audio/
405 drwxrwxr-x 2 netsw users 512 Jul 9 14:37 Benchmark/
406 drwxrwxr-x 12 netsw users 512 Jul 9 00:34 Crypto/
407 drwxrwxr-x 5 netsw users 512 Jul 9 00:41 Database/
408 drwxrwxr-x 4 netsw users 512 Jul 30 19:25 Dicts/
409 drwxrwxr-x 10 netsw users 512 Jul 9 01:54 Graphic/
410 drwxrwxr-x 5 netsw users 512 Jul 9 01:58 Hackers/
411 drwxrwxr-x 8 netsw users 512 Jul 9 03:19 InfoSys/
412 drwxrwxr-x 3 netsw users 512 Jul 9 03:21 Math/
413 drwxrwxr-x 3 netsw users 512 Jul 9 03:24 Misc/
414 drwxrwxr-x 9 netsw users 512 Aug 1 16:33 Network/
415 drwxrwxr-x 2 netsw users 512 Jul 9 05:53 Office/
416 drwxrwxr-x 7 netsw users 512 Jul 9 09:24 SoftEng/
417 drwxrwxr-x 7 netsw users 512 Jul 9 12:17 System/
418 drwxrwxr-x 12 netsw users 512 Aug 3 20:15 Typesetting/
419 drwxrwxr-x 10 netsw users 512 Jul 9 14:08 X11/
422 <p>1996³â 7¿ù ÀÌ ÀúÀå¼Ò¸¦ ¸ÚÀÖ´Â À¥ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ
423 ¼¼»ó¿¡ °ø°³Çϱâ·Î °áÁ¤ÇÞ´Ù. "¸ÚÀÖ´Ù"´Â ¸»Àº, ÃÖ»óÀ§
424 µð·ºÅ丮¿¡ CGI ½ºÅ©¸³Æ®¸¦ µÎÁö ¾Ê°íµµ, ÀúÀå¼Ò °èÃþ±¸Á¶¸¦
425 Á÷Á¢ ºê¶ó¿ìÁúÇÏ±æ ¹Ù¶õ´Ù´Â ¶æÀÌ´Ù. ¿Ö? ÀúÀå¼Ò¸¦ ³ªÁß¿¡
426 FTP·Îµµ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ¸¸µé ¿¹Á¤ÀÌ¿´±â¶§¹®¿¡ À¥À̳ª
427 CGI¿Í °ü·ÃµÈ ³»¿ëÀ» °°ÀÌ µÎ±â ½È¾ú´Ù.</p>
433 <p>ÇØ°áÃ¥Àº µÎ ºÎºÐÀ¸·Î ³ª´¶´Ù: ¸ÕÀú µð·ºÅ丮 ¼öÁØ¿¡¼
434 ÇÊ¿äÇÑ ¸ðµç ÆäÀÌÁö¸¦ µ¿ÀûÀ¸·Î ¸¸µå´Â CGI ½ºÅ©¸³Æ®°¡
435 ÇÊ¿äÇÏ´Ù. ³ª´Â ÀÌ ½ºÅ©¸³Æ®µéÀ» ´ÙÀ½°ú °°ÀÌ
436 <code>/e/netsw/.www/</code>¿¡ µÎ¾ú´Ù:</p>
438 <div class="example"><pre>
439 -rw-r--r-- 1 netsw users 1318 Aug 1 18:10 .wwwacl
440 drwxr-xr-x 18 netsw users 512 Aug 5 15:51 DATA/
441 -rw-rw-rw- 1 netsw users 372982 Aug 5 16:35 LOGFILE
442 -rw-r--r-- 1 netsw users 659 Aug 4 09:27 TODO
443 -rw-r--r-- 1 netsw users 5697 Aug 1 18:01 netsw-about.html
444 -rwxr-xr-x 1 netsw users 579 Aug 2 10:33 netsw-access.pl
445 -rwxr-xr-x 1 netsw users 1532 Aug 1 17:35 netsw-changes.cgi
446 -rwxr-xr-x 1 netsw users 2866 Aug 5 14:49 netsw-home.cgi
447 drwxr-xr-x 2 netsw users 512 Jul 8 23:47 netsw-img/
448 -rwxr-xr-x 1 netsw users 24050 Aug 5 15:49 netsw-lsdir.cgi
449 -rwxr-xr-x 1 netsw users 1589 Aug 3 18:43 netsw-search.cgi
450 -rwxr-xr-x 1 netsw users 1885 Aug 1 17:41 netsw-tree.cgi
451 -rw-r--r-- 1 netsw users 234 Jul 30 16:35 netsw-unlimit.lst
454 <p><code>DATA/</code> ÇÏÀ§µð·ºÅ丮¿¡ À§¿¡¼ ¸»ÇÑ ÀúÀå¼Ò°¡
455 ÀÖ´Ù. ½ÇÁ¦ <strong><em>net.sw</em></strong>ÀÇ ³»¿ëÀº º¸Åë
456 <code>rdist</code>¸¦ »ç¿ëÇÏ¿© ÀÚµ¿À¸·Î °¡Á®¿Â´Ù. µÎ¹ø°
457 ºÎºÐÀÌ ³²¾Ò´Ù: ¾î¶»°Ô ÀÌ µÎ ±¸Á¶¸¦ ÇϳªÀÇ ÀÚ¿¬½º·¯¿î
458 URL ±¸Á¶·Î ¿¬°áÇϴ°¡? »ç¿ëÀÚ¿¡°Ô <code>DATA/</code>
459 µð·ºÅ丮¸¦ °¨Ãß°í, URL¸¶´Ù ÀûÀýÇÑ CGI ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ°í
460 ½Í´Ù. ÇØ°áÃ¥Àº ´ÙÀ½°ú °°´Ù: ¸ÕÀú ¼¹öÀÇ <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>¿¡¼ °ø°³µÈ
461 URL <code>/net.sw/</code>¸¦ ³»ºÎ °æ·Î <code>/e/netsw</code>·Î
462 ÀçÀÛ¼ºÇϱâÀ§ÇØ µð·ºÅ丮º° ¼³Á¤ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ´Ù:</p>
464 <div class="example"><pre>
465 RewriteRule ^net.sw$ net.sw/ [R]
466 RewriteRule ^net.sw/(.*)$ e/netsw/$1
469 <p>ù¹ø° ±ÔÄ¢Àº ¸¶Áö¸·¿¡ ½½·¡½¬°¡ ¾ø´Â ¿äûÀ» À§Çؼ
470 »ç¿ëÇß´Ù! µÎ¹ø° ±ÔÄ¢ÀÌ ½ÇÁ¦ ÀÛ¾÷À» ÇÑ´Ù. ±×¸®°í µð·ºÅ丮º°
471 ¼³Á¤ÆÄÀÏ <code>/e/netsw/.www/.wwwacl</code>¿¡ °áÁ¤ÀûÀÎ
474 <div class="example"><pre>
475 Options ExecCGI FollowSymLinks Includes MultiViews
479 # ¾Õ ºÎºÐÀÌ /net.sw/ ·Î Á¢±ÙÇÑ´Ù
482 # ¸ÕÀú ÃÖ»óÀ§ µð·ºÅ丮¸¦
483 # cgi ½ºÅ©¸³Æ®·Î ÀçÀÛ¼ºÇÑ´Ù
484 RewriteRule ^$ netsw-home.cgi [L]
485 RewriteRule ^index\.html$ netsw-home.cgi [L]
487 # ºê¶ó¿ìÀú°¡ µð·ºÅ丮º° ÆäÀÌÁö¸¦ ¿äûÇÑ °æ¿ì
488 # ÇÏÀ§µð·ºÅ丮¸¦ ÃßÃâÇÑ´Ù
489 RewriteRule ^.+/(netsw-[^/]+/.+)$ $1 [L]
491 # ÀÌÁ¦ ÀçÀÛ¼ºÀ» ¸¶Ä£´Ù
492 RewriteRule ^netsw-home\.cgi.* - [L]
493 RewriteRule ^netsw-changes\.cgi.* - [L]
494 RewriteRule ^netsw-search\.cgi.* - [L]
495 RewriteRule ^netsw-tree\.cgi$ - [L]
496 RewriteRule ^netsw-about\.html$ - [L]
497 RewriteRule ^netsw-img/.*$ - [L]
499 # ´Ù¸¥ cgi ½ºÅ©¸³Æ®°¡ ó¸®ÇÒ
500 # ÇÏÀ§µð·ºÅ丮°¡ ³²¾Ò´Ù
501 RewriteRule !^netsw-lsdir\.cgi.* - [C]
502 RewriteRule (.*) netsw-lsdir.cgi/$1
505 <p>Çؼ®À» À§ÇÑ ÈùÆ®:</p>
508 <li>³×¹ø° ºÎºÐ¿¡¼ ´ëü Çʵå('<code>-</code>')°¡
509 ¾ø°í <code>L</code> (last) Ç÷¡±×°¡ ÀÖÀ½À» ÁÖ¸ñÇ϶ó</li>
511 <li>¸¶Áö¸· ºÎºÐ¿¡¼ ù¹ø° ±ÔÄ¢¿¡ <code>!</code>
512 (not) ¹®ÀÚ¿Í <code>C</code> (chain) Ç÷¡±×¸¦ ÁÖ¸ñÇ϶ó</li>
514 <li>¸¶Áö¸· ±ÔÄ¢¿¡¼ ±âŸ ÇØ´çÇÏÁö ¾Ê´Â ¸ðµç °æ¿ì¸¦
515 Àâ¾Æ³»´Â ÆÐÅÏÀ» ÁÖ¸ñÇ϶ó</li>
522 <h3>NCSA imagemapÀ» ¾ÆÆÄÄ¡ <code>mod_imap</code>À¸·Î</h3>
530 <p>»ç¶÷µéÀº NCSA À¥¼¹ö¿¡¼ Çö´ëÀûÀÎ ¾ÆÆÄÄ¡ À¥¼¹ö·Î
531 ÀÚ¿¬½º·´°Ô ¿Å°Ü°¡±æ ¹Ù¶õ´Ù. ±×·¡¼ ¿À·¡µÈ NCSA
532 <code>imagemap</code> ÇÁ·Î±×·¥À» »ç¿ëÇÑ ÆäÀÌÁö¸¦ Çö´ëÀûÀÎ
533 ¾ÆÆÄÄ¡ <code class="module"><a href="../mod/mod_imap.html">mod_imap</a></code>·Î ó¸®ÇÏ±æ ¹Ù¶õ´Ù.
534 ¹®Á¦´Â <code>imagemap</code> ÇÁ·Î±×·¥À»
535 <code>/cgi-bin/imagemap/path/to/page.map</code>°ú
536 °°ÀÌ ÂüÁ¶ÇÏ´Â ÇÏÀÌÆÛ¸µÅ©°¡ ¸¹´Ù´Â °ÍÀÌ´Ù. ¾ÆÆÄÄ¡´Â
537 <code>/path/to/page.map</code>°ú °°Àº ¿äûÀ» ¹Þ¾Æ¾ß
544 <p>¸ðµç ¿äû¿¡¼ ¾ÕºÎºÐÀ» µ¿ÀûÀ¸·Î Á¦°ÅÇÏ´Â Àü¿ª ±ÔÄ¢À»
547 <div class="example"><pre>
549 RewriteRule ^/cgi-bin/imagemap(.*) $1 [PT]
556 <h3>¿©·¯ µð·ºÅ丮¿¡¼ ÆäÀÌÁö °Ë»ö</h3>
564 <p>°¡²û À¥¼¹ö°¡ ¿©·¯ µð·ºÅ丮¿¡¼ ÆÄÀÏÀ» ã¾Æ¾ß ÇÒ
565 ¶§°¡ ÀÖ´Ù. ÀÌ °æ¿ì MultiViews³ª ´Ù¸¥ ¹æ¹ýÀº µµ¿òÀÌ
572 <p>¿©·¯ µð·ºÅ丮¿¡¼ ÆÄÀÏÀ» ã´Â ±ÔÄ¢À» Á÷Á¢ ÇÁ·Î±×·¥ÇÑ´Ù.</p>
574 <div class="example"><pre>
577 # ¸ÕÀú custom/¿¡¼ ã±æ ½ÃµµÇÏ°í...
579 RewriteCond /your/docroot/<strong>dir1</strong>/%{REQUEST_FILENAME} -f
580 RewriteRule ^(.+) /your/docroot/<strong>dir1</strong>/$1 [L]
582 # µÎ¹ø°·Î pub/¿¡¼ ã±æ ½ÃµµÇÑ´Ù...
584 RewriteCond /your/docroot/<strong>dir2</strong>/%{REQUEST_FILENAME} -f
585 RewriteRule ^(.+) /your/docroot/<strong>dir2</strong>/$1 [L]
587 # ¸øãÀ¸¸é ´Ù¸¥ Alias³ª ScriptAlias Áö½Ã¾î µîÀ¸·Î ÁøÇàÇÑ´Ù.
588 RewriteRule ^(.+) - [PT]
595 <h3>URL¿¡ µû¶ó ȯ°æº¯¼ö¸¦ ¼³Á¤ÇÑ´Ù</h3>
603 <p>¿äûµé°£¿¡ »óÅÂÁ¤º¸¸¦ À¯ÁöÇϱâÀ§ÇØ URL¿¡ Á¤º¸¸¦
604 ÀÎÄÚµùÇÏ´Â ¹æ¹ýµµ ÀÖ´Ù. ±×·¯³ª ´ÜÁö ÀÌ Á¤º¸¸¦ Á¦°ÅÇϱâÀ§ÇØ
605 ¸ðµç ÆäÀÌÁö¿¡ CGI wrapper¸¦ »ç¿ëÇÏ°í ½ÍÁö ¾Ê´Ù.</p>
611 <p>ÀçÀÛ¼º ±ÔÄ¢À» »ç¿ëÇÏ¿© »óÅÂÁ¤º¸¸¦ ÃßÃâÇÏ°í, ÃßÃâÇÑ
612 Á¤º¸¸¦ ³ªÁß¿¡ XSSI³ª CGI¿¡¼ »ç¿ëÇϱâÀ§ÇØ È¯°æº¯¼ö¿¡
613 ÀúÀåÇÑ´Ù. ±×·¡¼ URL <code>/foo/S=java/bar/</code>´Â
614 <code>/foo/bar/</code>·Î º¯È¯µÇ°í <code>STATUS</code>¶ó´Â
615 ȯ°æº¯¼ö °ªÀ» "java"·Î ¼³Á¤ÇÑ´Ù.</p>
617 <div class="example"><pre>
619 RewriteRule ^(.*)/<strong>S=([^/]+)</strong>/(.*) $1/$3 [E=<strong>STATUS:$2</strong>]
626 <h3>°¡»ó »ç¿ëÀÚ È£½ºÆ®</h3>
634 <p>°¡»óÈ£½ºÆ®¸¦ »ç¿ëÇÏÁö ¾Ê°í °°Àº ÄÄÇ»ÅÍ·Î DNS A
636 <code>www.<strong>username</strong>.host.domain.com</code>À»
637 »ç¿ëÀÚÀÇ È¨ÆäÀÌÁö·Î Á¦°øÇÏ°í ½Í´Ù.</p>
643 <p>HTTP/1.0 ¿äûÀÇ °æ¿ì ¹æ¹ýÀÌ ¾øÁö¸¸, Host: HTTP
644 Çì´õ¸¦ Æ÷ÇÔÇÑ HTTP/1.1 ¿äûÀº ´ÙÀ½ ±ÔÄ¢À» »ç¿ëÇÏ¿©
645 ³»ºÎÀûÀ¸·Î <code>http://www.username.host.com/anypath</code>¸¦
646 <code>/home/username/anypath</code>·Î ÀçÀÛ¼ºÇÒ ¼ö
649 <div class="example"><pre>
651 RewriteCond %{<strong>HTTP_HOST</strong>} ^www\.<strong>[^.]+</strong>\.host\.com$
652 RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
653 RewriteRule ^www\.<strong>([^.]+)</strong>\.host\.com(.*) /home/<strong>$1</strong>$2
660 <h3>Ȩµð·ºÅ丮¸¦ ¿ÜºÎ ¼¹ö·Î ¸®´ÙÀÌ·º¼Ç</h3>
668 <p>Áö¿ª µµ¸ÞÀÎ <code>ourdomain.com</code> ¹Û¿¡¼ ¿äûÀÌ
669 µé¾î¿À¸é Ȩµð·ºÅ丮 URLÀ» ´Ù¸¥ À¥¼¹ö
670 <code>www.somewhere.com</code>À¸·Î ¸®´Ù¸®·º¼ÇÇϱæ
671 ¹Ù¶õ´Ù. Á¾Á¾ °¡»óÈ£½ºÆ® »ç¿ëÀå¼Ò¿¡¼ »ç¿ëÇÑ´Ù.</p>
677 <p>ÀçÀÛ¼º Á¶°ÇÀ» »ç¿ëÇÏ¸é µÈ´Ù:</p>
679 <div class="example"><pre>
681 RewriteCond %{REMOTE_HOST} <strong>!^.+\.ourdomain\.com$</strong>
682 RewriteRule ^(/~.+) http://www.somewhere.com/$1 [R,L]
689 <h3>½ÇÆÐÇÑ URLÀ» ´Ù¸¥ À¥¼¹ö·Î ¸®´ÙÀÌ·º¼Ç</h3>
697 <p>URL ÀçÀÛ¼º¿¡ ´ëÇؼ À¥¼¹ö A¿¡ ÇØ´ç ÆÄÀÏÀÌ ¾ø´Â
698 °æ¿ì À¥¼¹ö B·Î ¿äûÀ» ¸®´ÙÀÌ·º¼ÇÇÏ´Â ¹æ¹ýÀ» ÀÚÁÖ
699 ¹°¾îº»´Ù. º¸Åë Perl·Î ÀÛ¼ºÇÑ <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code> CGI ½ºÅ©¸³Æ®¸¦
700 »ç¿ëÇÏÁö¸¸, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>¸¦ »ç¿ëÇÏ´Â
701 ¹æ¹ýµµ ÀÖ´Ù. ±×·¯³ª ¼º´ÉÀº <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code> CGI ½ºÅ©¸³Æ®º¸´Ù
702 ¶³¾îÁüÀ» ¸í½ÉÇ϶ó!</p>
708 <p>ù¹ø° ¹æ¹ýÀº ºü¸£Áö¸¸ À¯¿¬¼ºÀÌ ¶³¾îÁö°í ¿ÏÀüÇÏÁö
711 <div class="example"><pre>
713 RewriteCond /your/docroot/%{REQUEST_FILENAME} <strong>!-f</strong>
714 RewriteRule ^(.+) http://<strong>webserverB</strong>.dom/$1
717 <p>ÀÌ ¹æ¹ýÀÇ ´ÜÁ¡Àº <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> ¾È¿¡ ÀÖ´Â ÆäÀÌÁö¸¸
718 °¡´ÉÇÏ´Ù´Â Á¡ÀÌ´Ù. (¿¹¸¦ µé¾î Ȩµð·ºÅ丮 µîÀ» À§ÇØ)
719 Á¶°ÇÀ» Ãß°¡ÇÒ ¼ö ÀÖÁö¸¸, ´õ ÁÁÀº ¹æ¹ýÀÌ ÀÖ´Ù:</p>
721 <div class="example"><pre>
723 RewriteCond %{REQUEST_URI} <strong>!-U</strong>
724 RewriteRule ^(.+) http://<strong>webserverB</strong>.dom/$1
727 <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ÀÇ URL Àü¹æÂüÁ¶(look-ahead)¸¦
728 »ç¿ëÇÑ´Ù. ±×·¡¼ ¸ðµç URL¿¡ µ¿ÀÛÇÏ°í ¾ÈÀüÇÏ´Ù. ±×·¯³ª
729 ¸ðµç ¿äû¸¶´Ù ³»ºÎ ÇÏÀ§¿äûÀ» Çѹø ´õ Çϱ⶧¹®¿¡ À¥¼¹ö
730 ¼º´É¿¡ ¾Ç¿µÇâÀ» ÁØ´Ù. ±×·¡¼ °·ÂÇÑ CPU¿¡¼ À¥¼¹ö¸¦
731 ½ÇÇàÇÑ´Ù¸é »ç¿ëÇ϶ó. ÄÄÇ»ÅÍ°¡ ´À¸®´Ù¸é ù¹ø° ¹æ¹ýÀ̳ª
732 ´õ ³ªÀº <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code>
733 CGI ½ºÅ©¸³Æ®¸¦ »ç¿ëÇ϶ó.</p>
739 <h3>È®Àå ¸®´ÙÀÌ·º¼Ç</h3>
747 <p>°¡²û ¸®´ÙÀÌ·º¼ÇÇÏ´Â URLÀ» ´õ Á¶ÀýÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.
748 ¾ÆÆÄÄ¡ ³»ºÎ URL escape ÇÔ¼ö´Â "<code>url#anchor</code>"
749 °°Àº URLÀÇ anchorµµ escapeÇÑ´Ù. ¾ÆÆÄÄ¡ÀÇ
750 <code>uri_escape()</code> ÇÔ¼ö´Â ¿ì¹°Á¤ÀÚ(#)µµ °°ÀÌ
751 escapeÇϹǷΠ»ç¿ëÇÒ ¼ö ¾ø´Ù. ±×·¯¸é ¾î¶»°Ô ÀÌ·± URL·Î
752 ¸®´ÙÀÌ·º¼ÇÇÒ ¼ö ÀÖ³ª?</p>
758 <p>Á÷Á¢ ¸®´ÙÀÌ·º¼ÇÇÏ´Â NPH-CGI ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÑ ÇØ°áÃ¥ÀÌ
759 ÇÊ¿äÇÏ´Ù. escape¸¦ ÇÏÁö ¾Ê±â¶§¹®ÀÌ´Ù (NPH=non-parseable
760 headers). ¸ÕÀú ´ÙÀ½ ¼¹ö¼³Á¤À» ÇÏ¿© (ÀçÀÛ¼º ±ÔÄ¢ÀÇ
761 ³¡ºÎºÐ¿¡ »ç¿ëÇØ¾ß ÇÑ´Ù) »õ·Î¿î URL scheme
762 <code>xredirect:</code>¸¦ µµÀÔÇÑ´Ù:</p>
764 <div class="example"><pre>
765 RewriteRule ^xredirect:(.+) /path/to/nph-xredirect.cgi/$1 \
766 [T=application/x-httpd-cgi,L]
769 <p>±×·¯¸é <code>xredirect:</code>·Î ½ÃÀÛÇÏ´Â ¸ðµç URLÀº
770 <code>nph-xredirect.cgi</code> ÇÁ·Î±×·¥À» ÅëÇÏ°Ô µÈ´Ù.
771 ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°´Ù:</p>
773 <div class="example"><pre>
776 ## nph-xredirect.cgi -- NPH/CGI script for extended redirects
777 ## Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
781 $url = $ENV{'PATH_INFO'};
783 print "HTTP/1.0 302 Moved Temporarily\n";
784 print "Server: $ENV{'SERVER_SOFTWARE'}\n";
785 print "Location: $url\n";
786 print "Content-type: text/html\n";
788 print "<html>\n";
789 print "<head>\n";
790 print "<title>302 Moved Temporarily (EXTENDED)</title>\n";
791 print "</head>\n";
792 print "<body>\n";
793 print "<h1>Moved Temporarily (EXTENDED)</h1>\n";
794 print "The document has moved <a HREF=\"$url\">here</a>.<p>\n";
795 print "</body>\n";
796 print "</html>\n";
801 <p>±×·¯¸é <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>°¡ Á÷Á¢ ¹ÞÁö¸øÇÏ´Â
802 ¸ðµç URL schemeÀ¸·Î ¸®´ÙÀÌ·º¼ÇÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î,
803 ´ÙÀ½°ú °°ÀÌ <code>news:newsgroup</code>À¸·Î ¸®´ÙÀÌ·º¼ÇÇÒ
806 <div class="example"><pre>
807 RewriteRule ^anyurl xredirect:news:newsgroup
810 <div class="note">ÁÖÀÇ: À§ÀÇ Æ¯º°ÇÑ "Åë°ú" ±ÔÄ¢À» »ç¿ëÇÏ¿©
811 <code>xredirect:</code>¸¦ ¸¶Áö¸·¿¡ È®ÀåÇØ¾ß Çϱ⶧¹®¿¡
812 ±ÔÄ¢¿¡ <code>[R]</code>À̳ª <code>[R,L]</code>À» »ç¿ëÇϸé
819 <h3>ÀúÀå¼Ò Á¢±Ù Áß°è(multiplexer)</h3>
827 <p><a href="http://www.perl.com/CPAN">http://www.perl.com/CPAN</a>¿¡
828 ÀÖ´Â ´ë´ÜÇÑ CPAN (Comprehensive Perl Archive Network)À»
829 ¾Æ´Â°¡? ÀÌ ÁÖ¼Ò´Â ¼¼°è¿¡ Èð¾îÁø ¿©·¯ CPAN ¹Ì·¯ FTP
830 ¼¹öÁß Å¬¶óÀ̾ðÆ®¿¡ °¡±îÀÌ ÀÖ´Â ¼¹ö·Î ¸®´ÙÀÌ·º¼ÇÇÑ´Ù.
831 À̸¦ FTP Á¢±Ù Áß°è ¼ºñ½º¶ó°í ÇÑ´Ù. CPANÀº CGI ½ºÅ©¸³Æ®¸¦
832 »ç¿ëÇÏÁö¸¸, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>¸¦ »ç¿ëÇÏ¿©
833 ºñ½ÁÇÏ°Ô ¸¸µé ¼ö ÀÖÀ»±î?</p>
839 <p>¸ÕÀú <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 3.0.0 ¹öÀüºÎÅÍ
840 ¸®´ÙÀÌ·º¼Ç¿¡ "<code>ftp:</code>" schemeÀ» »ç¿ëÇÒ ¼ö
841 ÀÖ´Ù. ´ÙÀ½À¸·Î Ŭ¶óÀ̾ðÆ®ÀÇ ÃÖ»óÀ§ µµ¸ÞÀÎÀ» <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>°ú °°ÀÌ
842 »ç¿ëÇÏ¿© À§Ä¡¸¦ ÃßÁ¤ÇÒ ¼ö ÀÖ´Ù. º¹ÀâÈ÷ ¿«ÀÎ ±ÔÄ¢¿¡¼
843 ÃÖ»óÀ§ µµ¸ÞÀÎÀ» Áß°è¸ÊÀÇ Å°·Î »ç¿ëÇÑ´Ù.</p>
845 <div class="example"><pre>
847 RewriteMap multiplex txt:/path/to/map.cxan
848 RewriteRule ^/CxAN/(.*) %{REMOTE_HOST}::$1 [C]
849 RewriteRule ^.+\.<strong>([a-zA-Z]+)</strong>::(.*)$ ${multiplex:<strong>$1</strong>|ftp.default.dom}$2 [R,L]
852 <div class="example"><pre>
854 ## map.cxan -- Multiplexing Map for CxAN
857 de ftp://ftp.cxan.de/CxAN/
858 uk ftp://ftp.cxan.uk/CxAN/
859 com ftp://ftp.cxan.com/CxAN/
868 <h3>½Ã°£¿¡ µû¸¥ ÀçÀÛ¼º</h3>
876 <p>½Ã°£¿¡ µû¶ó ´Ù¸¥ ³»¿ëÀ» ¼ºñ½ºÇÏ´Â °æ¿ì ¸¹Àº À¥°ü¸®ÀÚ´Â
877 Àá½Ã Ưº°ÇÑ ÆäÀÌÁö·Î ¸®´ÙÀÌ·º¼ÇÇϱâÀ§ÇØ CGI ½ºÅ©¸³Æ®¸¦
878 »ç¿ëÇÑ´Ù. <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>·Î´Â ¾î¶»°Ô
885 <p>ÀçÀÛ¼º Á¶°Ç¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿©·¯ <code>TIME_xxx</code>
886 º¯¼ö°¡ ÀÖ´Ù. º¯¼ö¿Í Ưº°ÇÑ »çÀü¼ø¼ ºñ±³
887 <code><STRING</code>, <code>>STRING</code>,
888 <code>=STRING</code>À» »ç¿ëÇÏ¿© ½Ã°£¿¡ µû¶ó ¸®´ÙÀÌ·º¼ÇÇÒ
891 <div class="example"><pre>
893 RewriteCond %{TIME_HOUR}%{TIME_MIN} >0700
894 RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900
895 RewriteRule ^foo\.html$ foo.day.html
896 RewriteRule ^foo\.html$ foo.night.html
899 <p>URL <code>foo.html</code>À» ¿äûÇϸé
900 <code>07:00-19:00</code> µ¿¾È <code>foo.day.html</code>
901 ³»¿ëÀ» ¼ºñ½ºÇÏ°í, ³ª¸ÓÁö ½Ã°£ µ¿¾È
902 <code>foo.night.html</code> ³»¿ëÀ» ¼ºñ½ºÇÑ´Ù. ȨÆäÀÌÁö¿¡¼
903 »ç¿ëÇϱâ ÁÁÀº ±â´ÉÀÌ´Ù...</p>
909 <h3>YYYY¸¦ XXXX·Î ÀÌÀüÇÑ °æ¿ì ¿ªÈ£È¯</h3>
917 <p>¿©·¯ <code>.html</code> ÆÄÀÏÀ» <code>.phtml</code>·Î
918 º¯È¯ÇÏ´Â µî <code>document.YYYY</code>¸¦
919 <code>document.XXXX</code>·Î ÀÌÀüÇÑÈÄ ¿ªÈ£È¯(backward
920 compatibility) URLÀ» (°¡»óÀûÀ¸·Î Á¸ÀçÇÏ°Ô) ¸¸µé ¼ö
927 <p>À̸§À» ±âº»À̸§À¸·Î ÀçÀÛ¼ºÇÑÈÄ »õ·Î¿î È®ÀåÀÚ¸¦
928 °¡Áø ÆÄÀÏÀÌ ÀÖ´ÂÁö °Ë»çÇÑ´Ù. ÀÖ´Ù¸é ±× ÆÄÀϸíÀ» »ç¿ëÇÏ°í,
929 ¾øÀ¸¸é URLÀ» ¿ø·¡ »óÅ·ΠÀçÀÛ¼ºÇÑ´Ù.</p>
932 <div class="example"><pre>
934 # ¹®¼.phtml ¸¸ ÀÖ´Â °æ¿ì
935 # ¹®¼.html À» ¹®¼.phtml ·Î
936 # ÀçÀÛ¼ºÇÏ´Â ¿ªÈ£È¯ ±ÔÄ¢
939 # ±âº»À̸§À» ã°í, ã¾Ò´Ù´Â »ç½ÇÀ» ±â¾ïÇÑ´Ù
940 RewriteRule ^(.*)\.html$ $1 [C,E=WasHTML:yes]
941 # ÆÄÀÏÀÌ ÀÖ´Ù¸é ¹®¼.phtml ·Î ÀçÀÛ¼ºÇÑ´Ù
942 RewriteCond %{REQUEST_FILENAME}.phtml -f
943 RewriteRule ^(.*)$ $1.phtml [S=1]
944 # ¾Æ´Ï¸é ¾Õ¿¡¼ ãÀº ±âº»À̸§À» µÇµ¹¸°´Ù
945 RewriteCond %{ENV:WasHTML} ^yes$
946 RewriteRule ^(.*)$ $1.html
953 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
954 <div class="section">
955 <h2><a name="content" id="content">ÄÁÅÙÃ÷ ´Ù·ç±â</a></h2>
959 <h3>»õ·Î ÀÌÀü (°¨Ãß±â)</h3>
967 <p>ÃÖ±Ù <code>foo.html</code>À» <code>bar.html</code>·Î
968 º¯°æÇÏ°í ¿ªÈ£È¯¼ºÀ» À§ÇØ ÀÌÀü URLÀ» °è¼Ó Á¦°øÇÏ°í
969 ½Í´Ù°í °¡Á¤ÇÏÀÚ. »ç¿ëÀÚ´Â ÀÌÀü URLÀÌ º¯°æµÇ¾ú´Ù´Â
970 »ç½ÇÀ» ´«Ä¡Ã¤Áö ¸øÇÑ´Ù.</p>
976 <p>´ÙÀ½ ±ÔÄ¢À¸·Î ÀÌÀü URLÀ» ³»ºÎÀûÀ¸·Î »õ·Î¿î URL·Î
979 <div class="example"><pre>
982 RewriteRule ^<strong>foo</strong>\.html$ <strong>bar</strong>.html
989 <h3>»õ·Î ÀÌÀü (¾Ë¸®±â)</h3>
997 <p>´Ù½Ã <code>foo.html</code>À» <code>bar.html</code>·Î
998 º¯°æÇÏ°í ¿ªÈ£È¯¼ºÀ» À§ÇØ ÀÌÀü URLÀ» °è¼Ó Á¦°øÇÏ°í
999 ½Í´Ù°í °¡Á¤ÇÏÀÚ. ±×·¯³ª ÀÌÁ¦´Â ÀÌÀü URLÀ» »ç¿ëÇϸé
1000 »ç¿ëÀÚ¿¡°Ô »õ·Î¿î URLÀ» ÈùÆ®·Î ¾Ë·ÁÁØ´Ù. Áï, ºê¶ó¿ìÀú
1001 ÁÖ¼ÒâÀÌ º¯ÇÑ´Ù.</p>
1007 <p>»õ·Î¿î URL·Î HTTP ¸®´ÙÀÌ·º¼ÇÇÏ´Ù. ±×·¯¸é ºê¶ó¿ìÀú°¡
1008 »õ·Î¿î URL¸¦ º¸ÀÌ°í º¯°æ»ç½ÇÀ» »ç¿ëÀÚ°¡ ¾Ë°ÔµÈ´Ù:</p>
1010 <div class="example"><pre>
1013 RewriteRule ^<strong>foo</strong>\.html$ <strong>bar</strong>.html [<strong>R</strong>]
1020 <h3>ºê¶ó¿ìÀú¿¡ µû¸¥ ³»¿ë</h3>
1028 <p>ÃÖ¼ÒÇÑ Áß¿äÇÑ ÃÖ»óÀ§ ÆäÀÌÁö´Â ºê¶ó¿ìÀú¿¡ ÃÖÀûȵÈ
1029 ³»¿ëÀ¸·Î ¼ºñ½ºÇؾßÇÒ °æ¿ì°¡ ÀÖ´Ù. Áï, ÃֽŠNetscape
1030 ºê¶ó¿ìÀú¿¡°Ô´Â ÃÖ»óÀÇ ¹öÀüÀ», Lynx ºê¶ó¿ìÀú¿¡°Ô´Â
1031 ÃÖÀú ¹öÀüÀ», ³ª¸ÓÁö ºê¶ó¿ìÀú¿¡´Â Æò±ÕÀûÀÎ ¹öÀüÀ»
1038 <p>ºê¶ó¿ìÀú°¡ ³»¿ëÇù»óÀ» À§ÇØ ÀÚ½ÅÀÇ Á¾·ù¿¡ ´ëÇÑ Á¤º¸¸¦
1039 Á¦°øÇÏÁö ¾Ê±â¶§¹®¿¡ ³»¿ëÇù»óÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù. ´ë½Å
1040 HTTP "User-Agent" Çì´õ¸¦ »ç¿ëÇÑ´Ù. ´ÙÀ½ ±ÔÄ¢Àº HTTP
1041 "User-Agent" Çì´õ°¡ "Mozilla/3"À¸·Î ½ÃÀÛÇϸé
1042 <code>foo.html</code> ÆäÀÌÁö¸¦ <code>foo.NS.html</code>·Î
1043 ÀçÀÛ¼ºÇÏ°í ÀçÀÛ¼ºÀ» Áß´ÜÇÑ´Ù. ºê¶ó¿ìÀú°¡ "Lynx"³ª
1044 "Mozilla" ¹öÀü 1 ȤÀº 2¶ó¸é URLÀº
1045 <code>foo.20.html</code>ÀÌ µÈ´Ù. ³ª¸ÓÁö ºê¶ó¿ìÀú´Â
1046 <code>foo.32.html</code> ÆäÀÌÁö¸¦ ¹Þ´Â´Ù. ¾Æ·¡ ±ÔÄ¢ÀÌ
1049 <div class="example"><pre>
1050 RewriteCond %{HTTP_USER_AGENT} ^<strong>Mozilla/3</strong>.*
1051 RewriteRule ^foo\.html$ foo.<strong>NS</strong>.html [<strong>L</strong>]
1053 RewriteCond %{HTTP_USER_AGENT} ^<strong>Lynx/</strong>.* [OR]
1054 RewriteCond %{HTTP_USER_AGENT} ^<strong>Mozilla/[12]</strong>.*
1055 RewriteRule ^foo\.html$ foo.<strong>20</strong>.html [<strong>L</strong>]
1057 RewriteRule ^foo\.html$ foo.<strong>32</strong>.html [<strong>L</strong>]
1072 <p>¿ÜºÎ È£½ºÆ®¿¡ ¿ì¸® »çÀÌÆ®·Î °¡Á®¿À°í ½ÍÀº ÁÁÀº
1073 À¥ÆäÀÌÁö°¡ ÀÖ´Ù°í °¡Á¤ÇÏÀÚ. FTP ¼¹öÀÇ °æ¿ì Á÷Á¢ ¿ÜºÎ
1074 ÀÚ·áÀÇ Ãֽź¹»çº»À» À¯ÁöÇÏ´Â <code>mirror</code> ÇÁ·Î±×·¥À»
1075 »ç¿ëÇÒ ¼ö ÀÖ°í, À¥¼¹ö¶ó¸é HTTP·Î ºñ½ÁÇÑ ÀÛ¾÷À» ÇÏ´Â
1076 <code>webcopy</code> ÇÁ·Î±×·¥À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª
1077 µÎ ¹æ¹ý ¸ðµÎ ´ÜÁ¡ÀÌ ÀÖ´Ù: º¹»çº»Àº °¡²û¾¿ ÇÁ·Î±×·¥À»
1078 ½ÇÇàÇØÁÙ ¶§¸¸ ÃÖ½ÅÆÇÀ¸·Î À¯ÁöµÈ´Ù. Á÷Á¢ ±¸¼ºÇؾßÇÏ´Â
1079 Á¤ÀûÀÎ ¹Ì·¯°¡ ¾Æ´Ï¶ó¸é ÁÁ°Ú´Ù. ´ë½Å (¿ÜºÎ È£½ºÆ®¿¡¼
1080 ÀÚ·á°¡ °»½ÅµÇ¸é) ÇÊ¿äÇÒ¶§ ÀÚµ¿À¸·Î ÀڷḦ °»½ÅÇÏ´Â
1081 µ¿Àû ¹Ì·¯°¡ ÇÊ¿äÇÏ´Ù.</p>
1087 <p>À̸¦ À§ÇØ <dfn>Proxy Throughput</dfn> ±â´ÉÀ» (Ç÷¡±×
1088 <code>[P]</code>) »ç¿ëÇÏ¿© ¿ÜºÎ À¥ÆäÀÌÁö ȤÀº ¿ÜºÎ
1089 À¥°ø°£ Àüü¸¦ ¿ì¸® À̸§°ø°£À¸·Î ´ëÀÀÇÑ´Ù:</p>
1091 <div class="example"><pre>
1094 RewriteRule ^<strong>hotsheet/</strong>(.*)$ <strong>http://www.tstimpreso.com/hotsheet/</strong>$1 [<strong>P</strong>]
1097 <div class="example"><pre>
1100 RewriteRule ^<strong>usa-news\.html</strong>$ <strong>http://www.quux-corp.com/news/index.html</strong> [<strong>P</strong>]
1107 <h3>µ¿Àû ¿ª¹Ì·¯</h3>
1119 <div class="example"><pre>
1121 RewriteCond /mirror/of/remotesite/$1 -U
1122 RewriteRule ^http://www\.remotesite\.com/(.*)$ /mirror/of/remotesite/$1
1129 <h3>¾ø´Â ÀڷḦ ÀÎÆ®¶ó³Ý¿¡¼ °¡Á®¿À±â</h3>
1137 <p>½ÇÁ¦ ÀڷḦ ¹æȺ®ÀÌ º¸È£ÇÏ´Â (³»ºÎ) ÀÎÆ®¶ó³Ý À¥¼¹ö¿¡
1138 (<code>www2.quux-corp.dom</code>) ÀúÀåÇϸé¼, ±â¾÷ÀÇ
1139 (¿ÜºÎ) ÀÎÅÍ³Ý À¥¼¹ö¸¦ (<code>www.quux-corp.dom</code>)
1140 ½ÇÇàÇÏ´Â °Íó·³ º¸ÀÌ°Ô ÇÑ´Ù. ¿ÜºÎ À¥¼¹ö´Â ¿äûÇÑ
1141 ÀڷḦ ³»ºÎ À¥¼¹ö¿¡¼ °¡Á®¿Â´Ù.</p>
1147 <p>¸ÕÀú ¹æȺ®ÀÌ ³»ºÎ À¥¼¹ö¸¦ º¸È£ÇÏ°í ¿ÜºÎ À¥¼¹ö¸¸ÀÌ
1148 ³»ºÎ À¥¼¹ö¿¡¼ ÀڷḦ ¾òÀ» ¼ö ÀÖ°Ô ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ
1149 ÆÐŶÇÊÅ͸µ ¹æȺ®À» ¼³Á¤ÇÑ´Ù:</p>
1151 <div class="example"><pre>
1152 <strong>ALLOW</strong> Host www.quux-corp.dom Port >1024 --> Host www2.quux-corp.dom Port <strong>80</strong>
1153 <strong>DENY</strong> Host * Port * --> Host www2.quux-corp.dom Port <strong>80</strong>
1156 <p>½ÇÁ¦ ¼³Á¤¹®¹ý¿¡ ¾Ë¸Â°Ô °íÃĶó. ¾ø´Â ÀڷḦ ³»ºÎÀûÀ¸·Î
1157 proxy throughput ±â´ÉÀ» ÅëÇØ ¿äûÇÏ´Â
1158 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> ±ÔÄ¢À» ÀÛ¼ºÇÑ´Ù:</p>
1160 <div class="example"><pre>
1161 RewriteRule ^/~([^/]+)/?(.*) /home/$1/.www/$2
1162 RewriteCond %{REQUEST_FILENAME} <strong>!-f</strong>
1163 RewriteCond %{REQUEST_FILENAME} <strong>!-d</strong>
1164 RewriteRule ^/home/([^/]+)/.www/?(.*) http://<strong>www2</strong>.quux-corp.dom/~$1/pub/$2 [<strong>P</strong>]
1171 <h3>·Îµå¹ë·±½Ì (ºÎÇÏ ºÐ»êÇϱâ)</h3>
1179 <p><code>www.foo.com</code>ÀÇ Åë½Å·®À»
1180 <code>www[0-5].foo.com</code> (ÃÑ ¼¹ö 6´ë)À¸·Î ºÐ»êÇÏ°í
1181 ½Í´Ù. ¾î¶»°Ô Çϴ°¡?</p>
1187 <p>¸Å¿ì ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î ÀÌ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
1188 ¸ÕÀú DNS¸¦ »ç¿ëÇÑ Àß ¾Ë·ÁÁø ¹æ¹ýÀ» ¼³¸íÇÏ°í,
1189 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>¸¦ »ç¿ëÇÏ´Â °æ¿ì¸¦ »ìÆ캸ÀÚ:</p>
1193 <strong>DNS Round-Robin</strong>
1195 <p>°¡Àå °£´ÜÇÑ ·Îµå¹ë·±½Ì ¹æ¹ýÀº <code>BIND</code>ÀÇ
1196 DNS round-robin ¹æ½ÄÀ» »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ´ÙÀ½°ú
1197 °°ÀÌ DNS A(address) ·¹Äڵ忡
1198 <code>www[0-9].foo.com</code>À» ¼³Á¤ÇÑ´Ù.</p>
1200 <div class="example"><pre>
1209 <p>±×¸®°í ´ÙÀ½ Ç׸ñÀ» Ãß°¡ÇÑ´Ù:</p>
1211 <div class="example"><pre>
1212 www IN CNAME www0.foo.com.
1213 IN CNAME www1.foo.com.
1214 IN CNAME www2.foo.com.
1215 IN CNAME www3.foo.com.
1216 IN CNAME www4.foo.com.
1217 IN CNAME www5.foo.com.
1218 IN CNAME www6.foo.com.
1221 <p>À߸øµÈ °Íó·³ º¸ÀÌÁö¸¸, ½ÇÁ¦·Î <code>BIND</code>ÀÇ
1222 ÀǵµµÈ ±â´ÉÀÌ´Ù. ÀÌÁ¦ <code>www.foo.com</code>À»
1223 ãÀ¸¸é, <code>BIND</code>´Â ¸Å¹ø ¼ø¼¸¦ Á¶±Ý¾¿
1224 ¹Ù²ã°¡¸ç <code>www0-www6</code>À» ¹ÝȯÇÑ´Ù. ±×·¡¼
1225 Ŭ¶óÀ̾ðÆ®µéÀ» ¿©·¯ ¼¹ö·Î ºÐ»êÇÑ´Ù. ±×·¯³ª DNS
1226 °Ë»ö °á°ú°¡ ³×Æ®¿÷ÀÇ ´Ù¸¥ ³×ÀÓ¼¹ö¿¡ ij½¬µÇ¿©
1227 <code>www.foo.com</code>À» ãÀº °á°ú°¡ ƯÁ¤
1228 <code>wwwN.foo.com</code>À̸é Ŭ¶óÀ̾ðÆ®ÀÇ ´ÙÀ½
1229 ¿äûµéµµ °°Àº <code>wwwN.foo.com</code>À¸·Î
1230 º¸³»Áö±â¶§¹®¿¡ ¿Ïº®ÇÑ ·Îµå¹ë·±½Ì ±â¹ýÀÌ ¾Æ´ÔÀ»
1231 ÁÖÀÇÇ϶ó. ±×·¯³ª Å©°Ô º¸¸é ¿äûÀÌ ¿©·¯ À¥¼¹ö¿¡
1232 ºÐ»êµÇ¹Ç·Î È¿°ú°¡ ÁÁ´Ù.</p>
1236 <strong>DNS ·Îµå¹ë·±½Ì</strong>
1238 <p><a href="http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html">http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html</a>¿¡
1239 ÀÖ´Â <code>lbnamed</code> ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿©
1240 Á¤±³ÇÑ DNS±â¹Ý ·Îµå¹ë·±½ÌÀ» ÇÒ ¼ö ÀÖ´Ù. DNS°¡
1241 ½ÇÁ¦ ·Îµå¹ë·±½ÌÀ» Çϵµ·Ï ¸¸µå´Â ¿©·¯ µµ±¸¿Í Perl
1246 <strong>Proxy Throughput Round-Robin</strong>
1248 <p>ÀÌ ¹æ¹ýÀº <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>¿Í proxy
1249 throughput ±â´ÉÀ» »ç¿ëÇÑ´Ù. ¸ÕÀú DNS¿¡ ´ÙÀ½ Ç׸ñÀ»
1250 »ç¿ëÇÏ¿© <code>www0.foo.com</code>ÀÌ ½ÇÁ¦
1251 <code>www.foo.com</code>À» Àü´ãÇÏ°Ô ÇÑ´Ù</p>
1253 <div class="example"><pre>
1254 www IN CNAME www0.foo.com.
1257 <p>±×¸®°í <code>www0.foo.com</code>À» ÇÁ·Ï½ÃÀü¿ë
1258 ¼¹ö·Î º¯°æÇÑ´Ù. Áï, URLÀ» ¹ÞÀ¸¸é ¼¹ö´Â ³»ºÎ
1259 ÇÁ·Ï½Ã¸¦ ÅëÇØ ´Ù¸¥ 5´ë ¼¹öÁß (<code>www1-www5</code>)
1260 ÇÑ´ë·Î º¸³»±â¸¸ ÇÑ´Ù. À̸¦ À§ÇØ ¸ÕÀú ¸ðµç URLÀ»
1261 ·Îµå¹ë·±½Ì ½ºÅ©¸³Æ® <code>lb.pl</code>·Î º¸³»´Â
1264 <div class="example"><pre>
1266 RewriteMap lb prg:/path/to/lb.pl
1267 RewriteRule ^/(.+)$ ${lb:$1} [P,L]
1270 <p><code>lb.pl</code>À» ÀÛ¼ºÇÑ´Ù:</p>
1272 <div class="example"><pre>
1275 ## lb.pl -- ·Îµå¹ë·±½Ì ½ºÅ©¸³Æ®
1280 $name = "www"; # ±âº» È£½ºÆ®¸í
1281 $first = 1; # ù¹ø° ¼¹ö (ÀÚ½ÅÀÌ 0À̱⠶§¹®¿¡, 0À» »ç¿ëÇÏÁö ¾Ê´Â´Ù)
1282 $last = 5; # round-robin¿¡¼ ¸¶Áö¸· ¼¹ö
1283 $domain = "foo.dom"; # µµ¸ÞÀθí
1286 while (<STDIN>) {
1287 $cnt = (($cnt+1) % ($last+1-$first));
1288 $server = sprintf("%s%d.%s", $name, $cnt+$first, $domain);
1289 print "http://$server/$_";
1295 <div class="note">¸¶Áö¸· ÁÖÀÇ: ¿Ö ÀÌ ¹æ¹ýÀÌ À¯¿ëÇÑ°¡?
1296 <code>www0.foo.com</code>¿¡ ºÎ´ãÀÌ °¡Áö¾Ê´Â°¡?
1297 ¹°·Ð, ºÎ´ãÀÌ µÈ´Ù. ±×·¯³ª ´Ü¼øÇÑ proxy throughput
1298 ¿äû¸¸ Çϱ⶧¹®¿¡ ±¦Âú´Ù! ¸ðµç SSI, CGI, ePerl
1299 µîÀº ÀüÀûÀ¸·Î ´Ù¸¥ ¼¹ö°¡ ó¸®ÇÑ´Ù. ÀÌ°ÍÀÌ ÇÙ½ÉÀÌ´Ù.</div>
1303 <strong>Çϵå¿þ¾î/TCP Round-Robin</strong>
1305 <p>Çϵå¿þ¾î¸¦ »ç¿ëÇÑ ÇØ°áÃ¥µµ ÀÖ´Ù. Cisco´Â TCP/IP
1306 ¼öÁØ¿¡¼ ·Îµå¹ë·±½ÌÀ» ÇÏ´Â LocalDirector¶ó´Â ±«¹°À»
1307 ÆÇ´Ù. ½ÇÁ¦·Î´Â À¥¼¹ö±º ¾Õ´Ü¿¡ À§Ä¡ÇÏ´Â ÀÏÁ¾ÀÇ
1308 ȸ·Î¼öÁØ °ÔÀÌÆ®¿þÀÌ´Ù. ÀÚ±ÝÀÌ ÃæºÐÇÏ°í °í¼º´É
1309 ÇØ°áÃ¥ÀÌ ÇÊ¿äÇÏ´Ù¸é ÀÌ°ÍÀ» »ç¿ëÇ϶ó.</p>
1317 <h3>»õ·Î¿î MIME-type, »õ·Î¿î ¼ºñ½º</h3>
1325 <p>³×Æ®¿÷¿¡´Â ¸ÚÁø CGI ÇÁ·Î±×·¥µéÀÌ ¸¹´Ù. ±×·¯³ª »ç¿ëÇϱâ
1326 ¹ø°Å·¯¿ö¼ ¸¹Àº À¥°ü¸®ÀÚ°¡ »ç¿ëÇÏÁö ¾Ê´Â´Ù. ¾ÆÆÄÄ¡ÀÇ
1327 MIME-type¿¡ µû¸¥ Action Çڵ鷯 ±â´Éµµ CGI ÇÁ·Î±×·¥ÀÌ
1328 Ưº°ÇÑ URLÀ» (Á¤È®È÷ <code>PATH_INFO</code>¿Í
1329 <code>QUERY_STRINGS</code>) ÇÁ·Î±×·¥ÀÇ ÀÔ·ÂÀ¸·Î »ç¿ëÇÏÁö
1330 ¾ÊÀ» ¶§¸¸ ÀûÀýÇÏ´Ù. ¸ÕÀú, È®ÀåÀÚ°¡ (secure CGI¸¦ ÁÙ¿©)
1331 <code>.scgi</code>ÀÎ ÆÄÀÏÀ» À¯¸íÇÑ <code>cgiwrap</code>
1332 ÇÁ·Î±×·¥À¸·Î ó¸®ÇϱâÀ§ÇØ »õ·Î¿î typeÀ» ¼³Á¤ÇÑ´Ù.
1333 ¹®Á¦´Â (À§¿¡¼ º») ÀÏ°üµÈ URL ±¸Á¶¸¦ »ç¿ëÇÏ´Â °æ¿ì
1334 »ç¿ëÀÚ È¨µð·ºÅ丮°¡ <code>/u/user/foo/bar.scgi</code>°°Àº
1335 URLÀÎ Á¡ÀÌ´Ù. <code>cgiwrap</code>´Â
1336 <code>/~user/foo/bar.scgi/</code> Çü½ÄÀÇ URLÀ»
1337 ¿øÇϱ⶧¹®ÀÌ´Ù. ´ÙÀ½ ±ÔÄ¢ÀÌ ¹®Á¦¸¦ ÇØ°áÇÑ´Ù:</p>
1339 <div class="example"><pre>
1340 RewriteRule ^/[uge]/<strong>([^/]+)</strong>/\.www/(.+)\.scgi(.*) ...
1341 ... /internal/cgi/user/cgiwrap/~<strong>$1</strong>/$2.scgi$3 [NS,<strong>T=application/x-http-cgi</strong>]
1344 <p>ÀÌÁ¦ ´Ù¸¥ ¸ÚÁø ÇÁ·Î±×·¥, (URL ÇÏÀ§Æ®¸®¿¡ ´ëÇÑ
1345 <code>access.log</code>¸¦ Ãâ·ÂÇÏ´Â) <code>wwwlog</code>¿Í
1346 (URL ÇÏÀ§Æ®¸®¿¡ Glimpse¸¦ ½ÇÇàÇÏ´Â) <code>wwwidx</code>°¡
1347 ÀÖ´Ù°í °¡Á¤ÇÏÀÚ. ¿ì¸®´Â ÇÁ·Î±×·¥¿¡°Ô ÀÛ¾÷ÇÒ ´ë»óÀÎ
1348 URL ¿µ¿ªÀ» ¾Ë·ÁÁà¾ß ÇÑ´Ù. ±×·¯³ª ¿äûÇÒ¶§¸¶´Ù Ç×»ó
1349 Àû¾îÁà¾ß Çϱ⶧¹®¿¡ ±ò²ûÇÏÁö ¾Ê´Ù. Áï, º¸Åë
1350 <code>/u/user/foo/</code>¿¡ ´ëÇØ <code>swwidx</code>
1351 ÇÁ·Î±×·¥À» ½ÇÇàÇÑ´Ù¸é ´ÙÀ½°ú °°Àº ¸µÅ©¸¦ »ç¿ëÇÑ´Ù</p>
1353 <div class="example"><pre>
1354 /internal/cgi/user/swwidx?i=/u/user/foo/
1357 <p>±ò²ûÇÏÁö ¾Ê´Ù. ¸µÅ©¿¡ ¿µ¿ªÀÇ À§Ä¡<strong>¿Í</strong>
1358 CGI À§Ä¡¸¦ <strong>¸ðµÎ</strong> Àû¾î¾ß Çϱ⶧¹®ÀÌ´Ù.
1359 ¿µ¿ªÀ» À籸¼ºÇÑ´Ù¸é ¿©·¯ ÇÏÀÌÆÛ¸µÅ©¸¦ ¼öÁ¤Çϴµ¥ ¸¹Àº
1360 ½Ã°£ÀÌ °É¸± °ÍÀÌ´Ù.</p>
1366 <p>ÇØ°áÃ¥Àº ÀÚµ¿À¸·Î ÀûÀýÇÑ CGI¸¦ ½ÇÇàÇÏ´Â »õ·Î¿î
1367 Ưº°ÇÑ URL Çü½ÄÀ» ¸¸µå´Â °ÍÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ´Ù:</p>
1369 <div class="example"><pre>
1370 RewriteRule ^/([uge])/([^/]+)(/?.*)/\* /internal/cgi/user/wwwidx?i=/$1/$2$3/
1371 RewriteRule ^/([uge])/([^/]+)(/?.*):log /internal/cgi/user/wwwlog?f=/$1/$2$3
1374 <p>ÀÌÁ¦ <code>/u/user/foo/</code>À» °Ë»öÇÏ´Â ¸µÅ©´Â
1377 <div class="example"><pre>
1382 <p>³»ºÎÀûÀ¸·Î ´ÙÀ½°ú °°ÀÌ ÀÚµ¿º¯È¯µÈ´Ù</p>
1384 <div class="example"><pre>
1385 /internal/cgi/user/wwwidx?i=/u/user/foo/
1388 <p>°°Àº ¹æ¹ýÀ¸·Î ¸µÅ© µÚ¿¡ <code>:log</code>¸¦ »ç¿ëÇÏ¿©
1389 Á¢±Ù ·Î±× CGI ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö ÀÖ´Ù.</p>
1395 <h3>Á¤Àû¿¡¼ µ¿ÀûÀ¸·Î</h3>
1403 <p>¾î¶»°Ô ºê¶ó¿ìÀú¿Í »ç¿ëÀÚ°¡ ¸ð¸£°Ô ÀÚ¿¬½º·´°Ô Á¤Àû
1404 ÆäÀÌÁö <code>foo.html</code>À» µ¿ÀûÀÎ <code>foo.cgi</code>·Î
1411 <p>URLÀ» CGI ½ºÅ©¸³Æ®·Î ÀçÀÛ¼ºÇÏ°í, MIME-typeÀ» ¼öÁ¤ÇÏ¿©
1412 CGI ½ºÅ©¸³Æ®·Î ½ÇÇàÇÏ°Ô ÇÑ´Ù. ±×·¡¼
1413 <code>/~quux/foo.html</code>¸¦ ¿äûÇÏ¸é ³»ºÎÀûÀ¸·Î
1414 <code>/~quux/foo.cgi</code>¸¦ ½ÇÇàÇÏ°Ô µÈ´Ù.</p>
1416 <div class="example"><pre>
1419 RewriteRule ^foo\.<strong>html</strong>$ foo.<strong>cgi</strong> [T=<strong>application/x-httpd-cgi</strong>]
1426 <h3>Áï¼® ÄÁÅÙÃ÷ Àç»ý¼º</h3>
1434 <p>ÀÌ ¹æ¹ýÀº ½Ç·Î ºñ±âÀÌ´Ù: µ¿ÀûÀ¸·Î ÆäÀÌÁö¸¦ »ý¼ºÇÏÁö¸¸,
1435 Á¤ÀûÀ¸·Î ÆäÀÌÁö¸¦ ¼ºñ½ºÇÑ´Ù. Áï, ÆäÀÌÁö´Â ¼ø¼öÇÏ°Ô
1436 (ÆÄÀϽýºÅÛ¿¡¼ ÀÐÀº ³»¿ëÀ» ±×´ë·Î) Á¤Àû ÆäÀÌÁö·Î
1437 Àü´ÞµÇÁö¸¸, ¾øÀ» °æ¿ì À¥¼¹ö°¡ µ¿ÀûÀ¸·Î »ý¼ºÇÑ´Ù.
1438 ±×·¯¸é ´©°¡ (ȤÀº cron ÀÛ¾÷ÀÌ) Á¤Àû ÄÁÅÙÃ÷¸¦ Áö¿ìÁö¾Ê´Â
1439 ÇÑ CGI°¡ »ý¼ºÇÑ ÆäÀÌÁö¸¦ Á¤ÀûÀ¸·Î ¼ºñ½ºÇÑ´Ù. ÄÁÅÙÃ÷¸¦
1440 Áö¿ì¸é ³»¿ëÀ» °»½ÅÇÑ´Ù.</p>
1446 ´ÙÀ½ ±ÔÄ¢À» »ç¿ëÇÑ´Ù:
1448 <div class="example"><pre>
1449 RewriteCond %{REQUEST_FILENAME} <strong>!-s</strong>
1450 RewriteRule ^page\.<strong>html</strong>$ page.<strong>cgi</strong> [T=application/x-httpd-cgi,L]
1453 <p>¿©±â¼ <code>page.html</code>¸¦ ¿äûÇÒ¶§
1454 <code>page.html</code>ÀÌ ¾ø°Å³ª ÆÄÀÏÅ©±â°¡ 0ÀÎ °æ¿ì
1455 ³»ºÎÀûÀ¸·Î <code>page.cgi</code>¸¦ ½ÇÇàÇÑ´Ù. ¿©±â¼
1456 ºñ°áÀº <code>page.cgi</code>°¡ ÀϹÝÀûÀÎ CGI ½ºÅ©¸³Æ®¿Í
1457 °°ÀÌ <code>STDOUT</code>¿¡ Ãâ·ÂÇÏ°í, Ãß°¡·Î Ãâ·ÂÀ»
1458 <code>page.html</code> ÆÄÀÏ¿¡ Àû´Â´Ù. Çѹø ½ÇÇàÇÑÈÄ
1459 ¼¹ö´Â <code>page.html</code>ÀÇ Á¤º¸¸¦ º¸³½´Ù. À¥°ü¸®ÀÚ°¡
1460 °Àç·Î ³»¿ëÀ» °»½ÅÇÏ°í ½Í´Ù¸é, (º¸Åë cron ÀÛ¾÷ÀÌ)
1461 <code>page.html</code>À» Áö¿ì±â¸¸ ÇÏ¸é µÈ´Ù.</p>
1467 <h3>ÀÚµ¿À¸·Î »õ·Î °íħÇÏ´Â ¹®¼</h3>
1475 <p>º¹ÀâÇÑ À¥ÆäÀÌÁö¸¦ ¸¸µé¶§ ÆíÁýÀÚ°¡ ³»¿ëÀ» ¼öÁ¤ÇÒ
1476 ¶§¸¶´Ù ÀÚµ¿À¸·Î ÆäÀÌÁö¸¦ »õ·Î °íħÇÏ´Â À¥ºê¶ó¿ìÀú°¡
1477 ÀÖÀ¸¸é ¾ó¸¶³ª ÁÁÀ»±î? ºÒ°¡´ÉÇÑ°¡?</p>
1483 <p>°¡´ÉÇÏ´Ù! MIME multipart ±â´É°ú À¥¼¹ö NPH ±â´É,
1484 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ÀÇ URL Á¶ÀÛ ´É·ÂÀ» °áÇÕÇϸé
1485 µÈ´Ù. ¸ÕÀú, »õ·Î¿î URL ±â´ÉÀ» ¸¸µç´Ù: URL¿¡
1486 <code>:refresh</code>¸¦ Ãß°¡Çϱ⸸ Çϸé ÆÄÀϽýºÅÛ¿¡¼
1487 ¼öÁ¤µÉ ¶§¸¶´Ù »õ·Î °íħÇÑ´Ù.</p>
1489 <div class="example"><pre>
1490 RewriteRule ^(/[uge]/[^/]+/?.*):refresh /internal/cgi/apache/nph-refresh?f=$1
1493 <p>ÀÌÁ¦ ´ÙÀ½ URL¿¡ Á¢±ÙÇϸé</p>
1495 <div class="example"><pre>
1496 /u/foo/bar/page.html:refresh
1499 <p>´ÙÀ½ URLÀ» ³»ºÎÀûÀ¸·Î ºÎ¸¥´Ù</p>
1501 <div class="example"><pre>
1502 /internal/cgi/apache/nph-refresh?f=/u/foo/bar/page.html
1505 <p>ÀÌÁ¦ NPH-CGI ½ºÅ©¸³Æ®¸¸ ³²¾Ò´Ù. º¸Åë "µ¶ÀÚ¿¡°Ô
1506 ¿¬½ÀÀ¸·Î ³²°ÜµÒ"À̶ó°í ¸»ÇÏÁö¸¸ ;-) ³ª´Â À̰͵µ Á¦°øÇÑ´Ù.</p>
1508 <div class="example"><pre>
1511 ## nph-refresh -- NPH/CGI script for auto refreshing pages
1512 ## Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
1516 # split the QUERY_STRING variable
1517 @pairs = split(/&/, $ENV{'QUERY_STRING'});
1518 foreach $pair (@pairs) {
1519 ($name, $value) = split(/=/, $pair);
1520 $name =~ tr/A-Z/a-z/;
1521 $name = 'QS_' . $name;
1522 $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
1523 eval "\$$name = \"$value\"";
1525 $QS_s = 1 if ($QS_s eq '');
1526 $QS_n = 3600 if ($QS_n eq '');
1528 print "HTTP/1.0 200 OK\n";
1529 print "Content-type: text/html\n\n";
1530 print "&lt;b&gt;ERROR&lt;/b&gt;: No file given\n";
1534 print "HTTP/1.0 200 OK\n";
1535 print "Content-type: text/html\n\n";
1536 print "&lt;b&gt;ERROR&lt;/b&gt;: File $QS_f not found\n";
1540 sub print_http_headers_multipart_begin {
1541 print "HTTP/1.0 200 OK\n";
1542 $bound = "ThisRandomString12345";
1543 print "Content-type: multipart/x-mixed-replace;boundary=$bound\n";
1544 &print_http_headers_multipart_next;
1547 sub print_http_headers_multipart_next {
1548 print "\n--$bound\n";
1551 sub print_http_headers_multipart_end {
1552 print "\n--$bound--\n";
1556 local($buffer) = @_;
1557 $len = length($buffer);
1558 print "Content-type: text/html\n";
1559 print "Content-length: $len\n\n";
1565 local(*FP, $size, $buffer, $bytes);
1566 ($x, $x, $x, $x, $x, $x, $x, $size) = stat($file);
1567 $size = sprintf("%d", $size);
1568 open(FP, "&lt;$file");
1569 $bytes = sysread(FP, $buffer, $size);
1574 $buffer = &readfile($QS_f);
1575 &print_http_headers_multipart_begin;
1576 &displayhtml($buffer);
1579 local($file) = $_[0];
1582 ($x, $x, $x, $x, $x, $x, $x, $x, $x, $mtime) = stat($file);
1586 $mtimeL = &mystat($QS_f);
1588 for ($n = 0; $n &lt; $QS_n; $n++) {
1590 $mtime = &mystat($QS_f);
1591 if ($mtime ne $mtimeL) {
1594 $buffer = &readfile($QS_f);
1595 &print_http_headers_multipart_next;
1596 &displayhtml($buffer);
1598 $mtimeL = &mystat($QS_f);
1605 &print_http_headers_multipart_end;
1616 <h3>´ë·®ÀÇ °¡»óÈ£½ºÆ®</h3>
1624 <p>°¡»óÈ£½ºÆ®°¡ ¸î°³¸¸ ÀÖ´Ù¸é ¾ÆÆÄÄ¡ÀÇ <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
1625 ±â´ÉÀÌ Àß µ¿ÀÛÇÑ´Ù. ±×·¯³ª °¡»óÈ£½ºÆ®°¡ ¼ö¹é°³ ÀÖ´Â
1626 ISP¶ó¸é ÀÌ ±â´ÉÀÌ ÃÖ¼±Àº ¾Æ´Ï´Ù.</p>
1632 <p>ÀÌ ±â´ÉÀ» Á¦°øÇÏ·Á¸é <dfn>Proxy Throughput</dfn>
1633 ±â´ÉÀ» (Ç÷¡±× <code>[P]</code>) »ç¿ëÇÏ¿© ¿ÜºÎ À¥ÆäÀÌÁö
1634 ȤÀº Àüü ¿ÜºÎ À¥¿µ¿ªÀ» ¿ì¸®ÀÇ À̸§°ø°£¿¡ ´ëÀÀÇÑ´Ù:</p>
1636 <div class="example"><pre>
1640 www.vhost1.dom:80 /path/to/docroot/vhost1
1641 www.vhost2.dom:80 /path/to/docroot/vhost2
1643 www.vhostN.dom:80 /path/to/docroot/vhostN
1646 <div class="example"><pre>
1651 # ¸®´ÙÀÌ·ºÆ®ÇÒ¶§ Á¤±Ô È£½ºÆ®¸íÀ» »ç¿ëÇÑ´Ù.
1655 # °¡»óÈ£½ºÆ®¸¦ CLF Çü½Ä ¾Õ¿¡ Ãß°¡ÇÑ´Ù
1656 CustomLog /path/to/access_log "%{VHOST}e %h %l %u %t \"%r\" %>s %b"
1659 # ÁÖ¼¹ö¿¡¼ ÀçÀÛ¼º ¿£ÁøÀ» »ç¿ëÇÑ´Ù
1662 # µÎ ¸ÊÀ» Á¤ÀÇÇÑ´Ù: Çϳª´Â URLÀ» °íÄ¡°í,
1663 # ´Ù¸¥ Çϳª´Â °¡»óÈ£½ºÆ®º° DocumentRoot¸¦
1665 RewriteMap lowercase int:tolower
1666 RewriteMap vhost txt:/path/to/vhost.map
1668 # ÀÌÁ¦ Å©°í º¹ÀâÇÑ ±ÔÄ¢ ÇÑ°³¸¦ »ç¿ëÇÏ¿©
1669 # °¡»óÈ£½ºÆ®·Î ´ëÀÀÇÑ´Ù.
1671 # 1. °¡»óÈ£½ºÆ®µéÀÌ °°ÀÌ »ç¿ëÇÏ´Â À§Ä¡´Â ´ëÀÀÇÏÁö ¾Ê´Â´Ù
1672 RewriteCond %{REQUEST_URI} !^/commonurl1/.*
1673 RewriteCond %{REQUEST_URI} !^/commonurl2/.*
1675 RewriteCond %{REQUEST_URI} !^/commonurlN/.*
1677 # 2. ¿ì¸®°¡ ÇöÀç »ç¿ëÇÏ´Â ¹æ¹ýÀÌ Host Çì´õ¸¦
1678 # °¡»óÈ£½ºÆ®¸¦ Áö¿øÇϹǷÎ
1679 # Host Çì´õ°¡ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù
1680 RewriteCond %{HTTP_HOST} !^$
1682 # 3. È£½ºÆ®¸íÀ» ¼Ò¹®ÀÚ·Î ¸¸µç´Ù
1683 RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$
1685 # 4. vhost.map¿¡¼ È£½ºÆ®¸íÀ» ã°í
1686 # °æ·ÎÀ϶§¸¸ ±â¾ïÇÑ´Ù
1687 # (À§¿¡¼ "NONE"Àº ¾Æ´Ï´Ù)
1688 RewriteCond ${vhost:%1} ^(/.*)$
1690 # 5. ¸¶Áö¸·À¸·Î URLÀ» ¹®¼ À§Ä¡·Î ´ëÀÀÇÏ°í
1691 # ·Î±×¿¡ ³²±â±âÀ§ÇØ °¡»óÈ£½ºÆ®¸¦ ±â¾ïÇØ µÐ´Ù
1692 RewriteRule ^/(.*)$ %1/$1 [E=VHOST:${lowercase:%{HTTP_HOST}}]
1700 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1701 <div class="section">
1702 <h2><a name="access" id="access">Á¢±Ù Á¦ÇÑ</a></h2>
1714 <p>¾î¶»°Ô Çϸé ƯÁ¤ À¥°ø°£ÀÇ ÆäÀÌÁö¸¦ ±Ü¾î¸ðÀ¸´Â ±ÍÂúÀº
1715 ·Îº¿À» ¸·À» ¼ö ÀÖ³ª? "Robot Exclusion Protocol" Ç׸ñÀ»
1716 ÀúÀåÇÑ <code>/robots.txt</code> ÆÄÀÏÀº º¸Åë ÀÌ·± ·Îº¿À»
1717 ¸·´Âµ¥ ÃæºÐÇÏÁö ¾Ê´Ù.</p>
1723 <p>(¾Æ¸¶µµ µð·ºÅ丮°¡ ±í¾î¼ ·Îº¿ÀÌ µ¹¾Æ´Ù´Ï¸é ¼¹ö¿¡
1724 ºÎ´ãÀÌ Å« °æ¿ì) À¥°ø°£ <code>/~quux/foo/arc/</code>¿¡
1725 ÀÖ´Â URLµéÀ» °ÅºÎÇÏ´Â ±ÔÄ¢À» »ç¿ëÇÑ´Ù. ¿ì¸®´Â ƯÁ¤
1726 ·Îº¿ÀÇ Á¢±ÙÀ» ¸·¾Æ¾ß ÇÑ´Ù. Áï, ·Îº¿À» ½ÇÇàÇϴ ȣ½ºÆ®¸¦
1727 ¸·´Â °ÍÀ¸·Î´Â ºÒÃæºÐÇϸç, ±× È£½ºÆ®ÀÇ »ç¿ëÀÚµµ ¸·¾Æ¹ö¸®°Ô
1728 µÈ´Ù. User-Agent HTTP Çì´õ Á¤º¸µµ ºñ±³ÇÑ´Ù.</p>
1730 <div class="example"><pre>
1731 RewriteCond %{HTTP_USER_AGENT} ^<strong>NameOfBadRobot</strong>.*
1732 RewriteCond %{REMOTE_ADDR} ^<strong>123\.45\.67\.[8-9]</strong>$
1733 RewriteRule ^<strong>/~quux/foo/arc/</strong>.+ - [<strong>F</strong>]
1740 <h3>±×¸² ÆÛ°¡±â ¹æÁö</h3>
1748 <p><code>http://www.quux-corp.de/~quux/</code>¿¡ ÀÖ´Â
1749 ÆäÀÌÁöµéÀÌ GIF ±×¸²À» Æ÷ÇÔÇÑ´Ù°í °¡Á¤ÇÏÀÚ. ÀÌ ±×¸²ÀÌ
1750 ¸ÚÀÖ¾î¼, ´Ù¸¥ »ç¶÷µéÀÌ ÀÚ½ÅÀÇ ÆäÀÌÁö¿¡ Á÷Á¢ ¸µÅ©¸¦
1751 °Ç´Ù. ¼¹ö¿¡ ºÒÇÊ¿äÇÑ ºÎ´ãÀÌ µÇ¹Ç·Î ¸·°í ½Í´Ù.</p>
1757 <p>±×¸²À» 100% º¸È£ÇÒ ¼ö´Â ¾øÁö¸¸, ÃÖ¼ÒÇÑ ºê¶ó¿ìÀú°¡
1758 HTTP Referer Çì´õ¸¦ º¸³»´Â °æ¿ì Á¦ÇÑÇÒ ¼ö ÀÖ´Ù.</p>
1760 <div class="example"><pre>
1761 RewriteCond %{HTTP_REFERER} <strong>!^$</strong>
1762 RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC]
1763 RewriteRule <strong>.*\.gif$</strong> - [F]
1766 <div class="example"><pre>
1767 RewriteCond %{HTTP_REFERER} !^$
1768 RewriteCond %{HTTP_REFERER} !.*/foo-with-gif\.html$
1769 RewriteRule <strong>^inlined-in-foo\.gif$</strong> - [F]
1776 <h3>È£½ºÆ® °ÅºÎ</h3>
1784 <p>¾î¶»°Ô ¿ÜºÎ¿¡¼ ¼¹ö¿¡ Á¢±ÙÇÒ ¼ö ¾ø´Â È£½ºÆ® ¸ñ·ÏÀ»
1791 <p>¾ÆÆÄÄ¡ >= 1.3b6¿¡¼:</p>
1793 <div class="example"><pre>
1795 RewriteMap hosts-deny txt:/path/to/hosts.deny
1796 RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND [OR]
1797 RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND
1798 RewriteRule ^/.* - [F]
1801 <p>¾ÆÆÄÄ¡ <= 1.3b6¿¡¼:</p>
1803 <div class="example"><pre>
1805 RewriteMap hosts-deny txt:/path/to/hosts.deny
1806 RewriteRule ^/(.*)$ ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}/$1
1807 RewriteRule !^NOT-FOUND/.* - [F]
1808 RewriteRule ^NOT-FOUND/(.*)$ ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}/$1
1809 RewriteRule !^NOT-FOUND/.* - [F]
1810 RewriteRule ^NOT-FOUND/(.*)$ /$1
1813 <div class="example"><pre>
1817 ## ÁÖÀÇ! ÀÌ°ÍÀº ¸ñ·Ïó·³ º¸ÀÌÁö¸¸ ¸ñ·ÏÀÌ ¾Æ´Ï¶ó ¸ÊÀÌ´Ù.
1818 ## mod_rewrite´Â ÀÌ Á¤º¸¸¦ Å°/°ª ½ÖÀ¸·Î Çؼ®Çϱ⶧¹®¿¡,
1819 ## °¢ Ç׸ñÀÇ °ª ÀÚ¸®¿¡ ÃÖ¼ÒÇÑ "-"°¡ ÇÊ¿äÇÏ´Ù.
1831 <h3>ÇÁ·Ï½Ã °ÅºÎ</h3>
1839 <p>¾î¶»°Ô ƯÁ¤ È£½ºÆ® ȤÀº ƯÁ¤ È£½ºÆ®ÀÇ »ç¿ëÀÚ°¡
1840 ¾ÆÆÄÄ¡ ÇÁ·Ï½Ã¸¦ »ç¿ëÇÒ ¼ö ¾øµµ·Ï Çϳª?</p>
1846 <p>¸ÕÀú ¾ÆÆÄÄ¡ À¥¼¹ö¸¦ ÄÄÆÄÀÏÇÒ¶§ ±¸¼ºÆÄÀÏ¿¡¼
1847 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>°¡ <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>
1848 ¾Æ·¡¿¡(!) ÀÖ¾î¾ß ÇÑ´Ù. ±×·¯¸é <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>´Â
1849 <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> <em>ÀÌÀü¿¡</em> ºÒ¸°´Ù.
1850 ÀÌÁ¦ ´ÙÀ½°ú °°ÀÌ Æ¯Á¤ È£½ºÆ®¸¦ °ÅºÎÇϵµ·Ï ¼³Á¤ÇÑ´Ù...</p>
1852 <div class="example"><pre>
1853 RewriteCond %{REMOTE_HOST} <strong>^badhost\.mydomain\.com$</strong>
1854 RewriteRule !^http://[^/.]\.mydomain.com.* - [F]
1857 <p>...±×¸®°í ´ÙÀ½Àº user@host¿¡ µû¶ó °ÅºÎÇÑ´Ù:</p>
1859 <div class="example"><pre>
1860 RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>^badguy@badhost\.mydomain\.com$</strong>
1861 RewriteRule !^http://[^/.]\.mydomain.com.* - [F]
1868 <h3>Ưº°ÇÑ ÀÎÁõ ¹æ½Ä</h3>
1876 <p>°¡²û ¸Å¿ì Ưº°ÇÑ ÀÎÁõÀÌ ÇÊ¿äÇÒ ¶§°¡ ÀÖ´Ù. ¿¹¸¦
1877 µé¾î, ¹Ì¸® ¼³Á¤ÇصР»ç¿ëÀÚÀÎÁö °Ë»çÇÑ´Ù. À̵鿡°Ô¸¸
1878 (<code class="module"><a href="../mod/mod_auth.html">mod_auth</a></code>ÀÇ Basic Auth¸¦ »ç¿ëÇÑ
1879 °æ¿ì¿Í ´Þ¸®) º°´Ù¸¥ ¹°À½¾øÀÌ Á¢±ÙÀ» Çã¿ëÇÑ´Ù.</p>
1885 <p>Ä£±¸¸¸ Á¢±ÙÀÌ °¡´ÉÇϵµ·Ï ÀçÀÛ¼º ±ÔÄ¢µéÀ» »ç¿ëÇÑ´Ù:</p>
1887 <div class="example"><pre>
1888 RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>!^friend1@client1.quux-corp\.com$</strong>
1889 RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>!^friend2</strong>@client2.quux-corp\.com$
1890 RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>!^friend3</strong>@client3.quux-corp\.com$
1891 RewriteRule ^/~quux/only-for-friends/ - [F]
1898 <h3>Referer±â¹Ý º¯È¯±â(deflector)</h3>
1906 <p>"Referer" HTTP Çì´õ¿¡ µû¶ó ¿øÇϴ´ë·Î ÂüÁ¶ÆäÀÌÁö¸¦
1907 ¼³Á¤ÇÒ ¼ö ÀÖ´Â À¯¿¬ÇÑ URL º¯È¯±â¸¦ ¸¸µé ¼ö Àִ°¡?</p>
1913 <p>´ÙÀ½°ú °°ÀÌ º¹ÀâÇÑ ±ÔÄ¢À»...</p>
1915 <div class="example"><pre>
1916 RewriteMap deflector txt:/path/to/deflector.map
1918 RewriteCond %{HTTP_REFERER} !=""
1919 RewriteCond ${deflector:%{HTTP_REFERER}} ^-$
1920 RewriteRule ^.* %{HTTP_REFERER} [R,L]
1922 RewriteCond %{HTTP_REFERER} !=""
1923 RewriteCond ${deflector:%{HTTP_REFERER}|NOT-FOUND} !=NOT-FOUND
1924 RewriteRule ^.* ${deflector:%{HTTP_REFERER}} [R,L]
1927 <p>... ÀçÀÛ¼º ¸Ê°ú °°ÀÌ »ç¿ëÇÑ´Ù:</p>
1929 <div class="example"><pre>
1934 http://www.badguys.com/bad/index.html -
1935 http://www.badguys.com/bad/index2.html -
1936 http://www.badguys.com/bad/index3.html http://somewhere.com/
1939 <p>±×·¯¸é ¿äûÀ» ÀÚµ¿À¸·Î (¸Ê¿¡¼ °ªÀ¸·Î "<code>-</code>"¸¦
1940 »ç¿ëÇÑ °æ¿ì) ÂüÁ¶ÆäÀÌÁö³ª (URLÀÌ ¸Ê¿¡ ÀÖ´Â °æ¿ì µÎ¹ø°
1941 ¾Æ±Ô¸ÕÆ®·Î) ƯÁ¤ URL·Î ¸®´ÙÀÌ·º¼ÇÇÑ´Ù.</p>
1947 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1948 <div class="section">
1949 <h2><a name="other" id="other">±âŸ</a></h2>
1953 <h3>¿ÜºÎ ÀçÀÛ¼º ¿£Áø</h3>
1961 <p>FAQ: ¾î¶»°Ô ÀÌ·±Àú·± Àâ´ÙÇÑ ¹®Á¦¸¦ Ç® ¼ö Àִ°¡?
1962 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>·Î´Â ÇØ°áÃ¥ÀÌ ¾Èº¸ÀδÙ...</p>
1968 <p>¿ÜºÎ <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>À» »ç¿ëÇ϶ó.
1969 Áï, ÇÁ·Î±×·¥ÀÌ <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> ¿ªÇÒÀ»
1970 ÇÑ´Ù. ÇÁ·Î±×·¥Àº ¾ÆÆÄÄ¡°¡ ½ÃÀÛÇÒ¶§ ½ÃÀÛÇÏ¿©
1971 <code>STDIN</code>¿¡¼ ¿äûÇÑ URLÀ» ¹Þ°í, (°°Àº ¼ø¼·Î!)
1972 °á°ú (º¸Åë ÀçÀÛ¼ºµÈ) URLÀ» <code>STDOUT</code>¿¡ Ãâ·ÂÇÑ´Ù.</p>
1974 <div class="example"><pre>
1976 RewriteMap quux-map <strong>prg:</strong>/path/to/map.quux.pl
1977 RewriteRule ^/~quux/(.*)$ /~quux/<strong>${quux-map:$1}</strong>
1980 <div class="example"><pre>
1983 # ¾ÆÆÄÄ¡ ¼¹ö°¡ ¸ØÃßÁö ¾Êµµ·Ï
1984 # ÀÔÃâ·Â ¹öÆÛ¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù
1987 # stdin¿¡¼ ÇÑÁÙ¾¿ URLÀ» Àаí
1988 # stdout¿¡ º¯È¯ÇÑ URLÀ» Ãâ·ÂÇÑ´Ù
1995 <p>¼³¸íÇϱâÀ§ÇØ ¸ðµç <code>/~quux/foo/...</code> URLÀ»
1996 <code>/~quux/bar/...</code>·Î ÀçÀÛ¼ºÇÏ´Â ½ºÅ©¸³Æ®¸¦
1997 ¿¹·Î µé¾ú´Ù. ½ÇÁ¦·Î ¸¶À½´ë·Î ÇÁ·Î±×·¡¹ÖÇÒ ¼ö ÀÖ´Ù.
1998 ±×·¯³ª ÀÏ¹Ý »ç¿ëÀÚ°¡ ÀÌ·± ¸ÊÀ» <strong>»ç¿ëÇÒ</strong>
1999 ¼ö ÀÖ´Ù°í ÇÏ´õ¶ó°í, ¿ÀÁ÷ ½Ã½ºÅÛ °ü¸®ÀÚ¸¸ÀÌ ¸ÊÀ»
2000 <strong>Á¤ÀÇÇؾß</strong> ÇÔÀ» ÁÖÀÇÇ϶ó.</p>
2007 <div class="bottomlang">
2008 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/misc/rewriteguide.html" hreflang="en" rel="alternate" title="English"> en </a> |
2009 <a href="../ko/misc/rewriteguide.html" title="Korean"> ko </a></p>
2010 </div><div id="footer">
2011 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
2012 <p class="menu"><a href="../mod/">¸ðµâ</a> | <a href="../mod/directives.html">Áö½Ã¾îµé</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">¿ë¾î</a> | <a href="../sitemap.html">»çÀÌÆ®¸Ê</a></p></div>