home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F277929_rewriteguide.xml.ko < prev    next >
Extensible Markup Language  |  2004-09-06  |  62KB  |  2,013 lines

  1. <?xml version="1.0" encoding="EUC-KR" ?>
  2. <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
  3. <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
  4. <!-- English Revision: 1.4.2.12 -->
  5.  
  6. <!--
  7.  Copyright 2004 The Apache Software Foundation
  8.  
  9.  Licensed under the Apache License, Version 2.0 (the "License");
  10.  you may not use this file except in compliance with the License.
  11.  You may obtain a copy of the License at
  12.  
  13.      http://www.apache.org/licenses/LICENSE-2.0
  14.  
  15.  Unless required by applicable law or agreed to in writing, software
  16.  distributed under the License is distributed on an "AS IS" BASIS,
  17.  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18.  See the License for the specific language governing permissions and
  19.  limitations under the License.
  20. -->
  21.  
  22. <manualpage metafile="rewriteguide.xml.meta">
  23.   <parentdocument href="./">Miscellaneous Documentation</parentdocument>
  24.  
  25.   <title>URL └τ└█╝║ ┴÷─º╝¡</title>
  26.  
  27.   <summary>
  28.     <note>
  29.       <p>┐°└·└┌<br />
  30.       <cite>Ralf S. Engelschall <rse@apache.org></cite><br />
  31.       1997│Γ 12┐∙</p>
  32.     </note>
  33.  
  34.     <p>└╠ ╣«╝¡┤┬ <module>mod_rewrite</module> <a
  35.     href="../mod/mod_rewrite.html">┬ⁿ┴╢ ╣«╝¡</a>╕ª ║╕├µ╟╤┤┘.
  36.     └╠ ╣«╝¡┤┬ └Ñ░ⁿ╕«└┌░í ╜╟┴ª └█╛≈┐í╝¡ ║╬╡·─í░╘╡╟┤┬ └ⁿ╟ⁿ└√└╬
  37.     URL░ⁿ╖├ ╣«┴ª╕ª ╟╪░ß╟╧▒Γ└º╟╪╝¡ ╛ε╢╗░╘ ╛╞╞──í
  38.     <module>mod_rewrite</module>╕ª ╗τ┐δ╟╧┤┬┴÷ ╝│╕φ╟╤┤┘. URL
  39.     └τ└█╝║ ▒╘─ó└╗ ╝│┴ñ╟╧┐⌐ ╣«┴ª╕ª ╟╪░ß╟╧┤┬ ╣µ╣²└╗ └┌╝╝╚≈ ╝│╕φ╟╤┤┘.</p>
  40.  
  41.   </summary>
  42.  
  43.   <section id="ToC1">
  44.  
  45.     <title><code>mod_rewrite</code> ╝╥░│</title>
  46.  
  47.     <p>╛╞╞──í <module>mod_rewrite</module> ╕≡╡Γ└║ ▒▓└σ╟╧┤┘.
  48.     ┴∩, URL└╗ ┴╢└█╟╥ ╝÷ └╓┤┬ ░¡╖┬╟╧░φ ╜╟╖╬ ┴ñ▒│╟╤ ╕≡╡Γ└╠┤┘.
  49.     ╗≤╗≤╟╪┐╘┤° ░┼└╟ ╕≡╡τ ┴╛╖∙└╟ URL ┴╢└█└╠ ░í┤╔╟╧┤┘. ▒╫╖»│¬
  50.     ▒╫ ┤δ░í╖╬ ╗τ┐δ╟╧▒Γ ║╣└Γ╟╧┤┘. <module>mod_rewrite</module>└╟
  51.     ├╓┤δ ┤▄┴í└║ ├╩║╕└┌░í └╠╟╪╟╧░φ ╗τ┐δ╟╧▒Γ ╜▒┴÷ ╛╩┤┘┤┬ ┴í└╠┤┘.
  52.     ╜╔┴÷╛ε ╛╞╞──í └ⁿ╣«░í╡╡ ┴╛┴╛ <module>mod_rewrite</module>└╟
  53.     ╗⌡╖╬┐ε ┐δ╡╡╕ª ╣▀░▀╟╤┤┘.</p>
  54.  
  55.     <p>┤┘╕Ñ ╕╗╖╬: <module>mod_rewrite</module>┐í ┤δ╟╪ ┤τ╜┼└║
  56.     ├│└╜┐í ░╠└╗ ╕╘░φ └²┤δ╖╬ ┤┘╜├ ╗τ┐δ╟╧┴÷ ╛╩░┼│¬, ░¡╖┬╟╘┐í ╕┼╖ß╡╟╛ε
  57.     ╛╒└╕╖╬ ╗ε ╡┐╛╚ ╗τ╢√┐í ║ⁿ┴· ░═└╠┤┘. └╠ ▒█└║ ├╣╣°┬░ ░µ┐∞╕ª
  58.     ╕╖▒Γ└º╟╪ └╠╣╠ ╛╦╖┴┴° ╕ε░í┴÷ ╝║░°╗τ╖╩╕ª ╝╥░│╟╧╖┴░φ ╟╤┤┘.</p>
  59.  
  60.   </section>
  61.  
  62.   <section id="ToC2">
  63.  
  64.     <title>╜╟┐δ└√└╬ ╟╪░ß├Ñ</title>
  65.  
  66.     <p>└╠┴ª │╗░í ┴≈┴ó ╕╕╡Θ╛·░┼│¬ ┤┘╕Ñ ╗τ╢≈╡Θ└╠ ╕╕╡τ ╕╣└║ ╜╟┐δ└√└╬
  67.     ╟╪░ß├Ñ└╠ │¬┐┬┤┘. ┐╣┴ª┐í╝¡ URL └τ└█╝║└╟ ╚µ╕╢╝·└╗ ╕╢└╜▓» ╣Φ┐∞▒µ
  68.     ╣┘╢⌡┤┘.</p>
  69.  
  70.     <note type="warning">┴╓└╟: ╝¡╣÷ ╝│┴ñ┐í ╡√╢≤ ╗≤╚▓┐í ╕┬░╘
  71.     ┐╣┴ª╕ª ┴╢▒▌ ╝÷┴ñ╟╪╛▀ ╟╥ ░µ┐∞░í └╓┤┘. ┐╣╕ª ╡Θ╛ε, ├▀░í╖╬
  72.     <module>mod_alias</module>, <module>mod_userdir</module>
  73.     ╡ε└╗ ╗τ┐δ╟╤┤┘╕Θ <code>[PT]</code> ╟├╖í▒╫╕ª ├▀░í╟╤┤┘. ╚ñ└║
  74.     ┴╓╝¡╣÷╝│┴ñ/░í╗≤╚ú╜║╞« ╗τ┐δ└σ╝╥░í ╛╞┤╤ <code>.htaccess</code>
  75.     ╗τ┐δ└σ╝╥┐í ╛╦╕┬░╘ ▒╘─ó└╗ ╝÷┴ñ╟╥ ╝÷╡╡ └╓┤┘. ╗τ┐δ╟╧▒Γ └ⁿ┐í
  76.     ╟╫╗≤ ▒╘─ó└╠ ╛ε╢▓ ▒Γ┤╔└╗ ╟╧┤┬┴÷ └╠╟╪╟╧╡╡╖╧ ╟╪╢≤. ▒╫╖»╕Θ ╣«┴ª╕ª
  77.     ╟╟╟╥ ╝÷ └╓┤┘.</note>
  78.  
  79.   </section>
  80.  
  81.   <section id="url">
  82.  
  83.     <title>URL ▒╕┴╢</title>
  84.  
  85.     <section>
  86.  
  87.       <title>▒Γ┴╪└╠ ╡╟┤┬ URL</title>
  88.  
  89.       <dl>
  90.         <dt>╗≤╚▓╝│╕φ:</dt>
  91.  
  92.         <dd>
  93.           <p>╟╤ ╕«╝╥╜║┐í ┤δ╟╪ ┐⌐╖» URL└╗ ░í┴÷┤┬ └Ñ╝¡╣÷░í └╓┤┘.
  94.           ║╕┼δ (╜╟┴ª ╗τ┐δ╟╧░φ ╛╦╖┴┴«╛▀ ╟╥) ▒Γ┴╪└╠ ╡╟┤┬ URL░·,
  95.           ┤▄├α ╚ñ└║ │╗║╬ ┐δ╡╡└╟ URL└╠ └╓┤┘. ╗τ┐δ└┌░í ┐Σ├╗┐í
  96.           ╛ε╢▓ URL└╗ ╗τ┐δ╟╧┤°┴÷ ▒Γ┴╪└╠ ╡╟┤┬ URL╕╕└╗ ║╕┐⌐┴α╛▀
  97.           ╟╤┤┘.</p>
  98.         </dd>
  99.  
  100.         <dt>╟╪░ß├Ñ:</dt>
  101.  
  102.         <dd>
  103.           <p>▒Γ┴╪└╠ ╡╟┴÷╛╩┤┬ ╕≡╡τ URL└╗ ║Ω╢≤┐∞└·░í ╛╦╡╡╖╧ ░φ─í▒Γ└º╟╪
  104.           ┐▄║╬ HTTP ╕«┤┘└╠╖║╝╟╟╤┤┘. ┐╣╕ª ╡Θ╛ε ╛╞╖í ▒╘─ó└║
  105.           <code>/~user</code>╕ª ▒Γ┴╪└╠ ╡╟┤┬ <code>/u/user</code>╖╬
  106.           ┤δ├╝╟╧░φ, <code>/u/user</code> ╕╢┴÷╕╖┐í ╜╜╖í╜¼░í ╛°┤┘╕Θ
  107.           ├▀░í╟╤┤┘.</p>
  108.  
  109. <example><pre>
  110. RewriteRule   ^/<strong>~</strong>([^/]+)/?(.*)    /<strong>u</strong>/$1/$2  [<strong>R</strong>]
  111. RewriteRule   ^/([uge])/(<strong>[^/]+</strong>)$  /$1/$2<strong>/</strong>   [<strong>R</strong>]
  112. </pre></example>
  113.         </dd>
  114.       </dl>
  115.  
  116.     </section>
  117.  
  118.     <section>
  119.  
  120.       <title>▒Γ┴╪└╠ ╡╟┤┬ ╚ú╜║╞«╕φ</title>
  121.  
  122.       <dl>
  123.         <dt>╗≤╚▓╝│╕φ:</dt>
  124.  
  125.         <dd>└╠ ▒╘─ó└║ ╡┐└╧╟╤ ╗τ└╠╞«┐í ╡╡┤▐╟╥ ╝÷ └╓┤┬ ┤┘╕Ñ ╚ú╜║╞«╕φ
  126.         ┤δ╜┼ ╞»┴ñ ╚ú╜║╞«╕φ└╗ ╗τ┐δ╟╧╡╡╖╧ ░¡┴ª╟╤┤┘. ┐╣╕ª ╡Θ╛ε,
  127.         <strong>example.com</strong> ┤δ╜┼
  128.         <strong>www.example.com</strong>└╗ ╗τ┐δ╟╧╡╡╖╧ ░¡┴ª╟╧░φ
  129.         ╜═┤┘╕Θ ┤┘└╜░· ░░└║ ▒╘─ó└╗ ╗τ┐δ╟╥ ╝÷ └╓┤┘.</dd>
  130.  
  131.         <dt>╟╪░ß├Ñ:</dt>
  132.  
  133.         <dd>
  134. <example><pre>
  135. # 80╣°└╠ ╛╞┤╤ ╞≈╞«┐í╝¡ ╜╟╟α╟╧┤┬ ╗τ└╠╞«┐δ
  136. RewriteCond %{HTTP_HOST}   !^fully\.qualified\.domain\.name [NC]
  137. RewriteCond %{HTTP_HOST}   !^$
  138. RewriteCond %{SERVER_PORT} !^80$
  139. RewriteRule ^/(.*)         http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]
  140.  
  141. # ▒╫╕«░φ, 80╣° ╞≈╞«┐í╝¡ ╜╟╟α╟╧┤┬ ╗τ└╠╞«┐δ
  142. RewriteCond %{HTTP_HOST}   !^fully\.qualified\.domain\.name [NC]
  143. RewriteCond %{HTTP_HOST}   !^$
  144. RewriteRule ^/(.*)         http://fully.qualified.domain.name/$1 [L,R]
  145. </pre></example>
  146.         </dd>
  147.       </dl>
  148.  
  149.     </section>
  150.  
  151.     <section>
  152.  
  153.       <title><code>DocumentRoot</code>╕ª ┐┼▒Σ ░µ┐∞</title>
  154.  
  155.       <dl>
  156.         <dt>╗≤╚▓╝│╕φ:</dt>
  157.  
  158.         <dd>
  159.           <p>└Ñ╝¡╣÷└╟ <directive
  160.           module="core">DocumentRoot</directive>┤┬ ║╕┼δ URL
  161.           "<code>/</code>"░· ┴≈┴ó ░ⁿ╖├└╓┤┘. ▒╫╖»│¬ └╠░≈┐í ╕≡╡τ
  162.           └┌╖ß░í └╓┴÷ ╛╩░φ, └┌╖ß░í ┤┘╕Ñ ┐⌐╖» ░≈┐í ╚≡╛ε┴«└╓┤┬
  163.           ░µ┐∞░í └╓┤┘. ┐╣╕ª ╡Θ╛ε └╬╞«╢≤│▌ ╗τ└╠╞«┐í (┐▄║╬╕ª └º╟╤
  164.           ╚¿╞Σ└╠┴÷) <code>/e/www/</code>┐═ (└╬╞«╢≤│▌└╗ └º╟╤
  165.           ╚¿╞Σ└╠┴÷) <code>/e/sww/</code>░í └╓┤┘░φ ╟╧└┌. └╠┴ª
  166.           <directive module="core">DocumentRoot</directive>░í
  167.           <code>/e/www/</code>└╠▒Γ╢º╣«┐í, ┐Σ├╗┐í╝¡ ╞Σ└╠┴÷┐í
  168.           ╞≈╟╘╡╚ ▒╫╕▓ ╡ε└╗ └╠░≈┐í╝¡ ░í┴«┐═╛▀ ╟╤┤┘.</p>
  169.         </dd>
  170.  
  171.         <dt>╟╪░ß├Ñ:</dt>
  172.  
  173.         <dd>
  174.           <p>┐∞╕«┤┬ URL <code>/</code>╕ª <code>/e/www/</code>╖╬
  175.           ╕«┤┘└╠╖║╝╟╕╕ ╟╧╕Θ ╡╚┤┘. ╗τ╝╥╟╪ ║╕└╠┴÷╕╕ ╜╟┴ª╖╬
  176.           <module>mod_rewrite</module>╕ª ╗τ┐δ╟╪╝¡╕╕ ░í┤╔╟╧┤┘.
  177.           (<module>mod_alias</module> ╡ε└╠ ┴ª░°╟╧┤┬) URL
  178.           <em>Alias</em> ░░└║ └ⁿ╟ⁿ└√└╬ ╣µ╣²└║ <em>╛╒║╬║╨</em>╕╕
  179.           ├ú┤┬┤┘. <directive module="core">DocumentRoot</directive>░í
  180.           ╕≡╡τ URL└╟ ╛╒║╬║╨└╠▒Γ╢º╣«┐í └╠ ╣µ╣²└╗ ╗τ┐δ╟╧┐⌐ ╕«┤┘└╠╖║╝╟└╗
  181.           ╟╥ ╝÷ ╛°┤┘. <module>mod_rewrite</module>╕ª ╗τ┐δ╟╧╕Θ
  182.           ┴°┬Ñ ░ú┤▄╟╧┤┘:</p>
  183.  
  184. <example><pre>
  185. RewriteEngine on
  186. RewriteRule   <strong>^/$</strong>  /e/www/  [<strong>R</strong>]
  187. </pre></example>
  188.         </dd>
  189.       </dl>
  190.  
  191.     </section>
  192.  
  193.     <section>
  194.  
  195.       <title>╕╢┴÷╕╖ ╜╜╖í╜¼ ╣«┴ª</title>
  196.  
  197.       <dl>
  198.         <dt>╗≤╚▓╝│╕φ:</dt>
  199.  
  200.         <dd>
  201.           <p>╡≡╖║┼Σ╕«╕ª ┴÷─¬╟╧┤┬ URL└╟ ╕╢┴÷╕╖ ╜╜╖í╜¼ ╣«┴ª░í
  202.           ╛°┤┘╕Θ ╕≡╡τ └Ñ░ⁿ╕«└┌┤┬ ╚»╚ú╟╥ ░═└╠┤┘. ╜╜╖í╜¼░í ╛°┤┘╕Θ,
  203.           ┴∩ <code>/~quux/foo/</code> ┤δ╜┼ <code>/~quux/foo</code>╕ª
  204.           ╗τ┐δ╟╧╕Θ ╝¡╣÷░í <code>foo</code>╢≤┤┬ <em>╞─└╧</em>└╗
  205.           ├ú▒Γ╢º╣«┐í ┐└╖∙░í ╣▀╗²╟╤┤┘. ╞─└╧└╠ ╡≡╖║┼Σ╕«└╠▒Γ╢º╣«┐í
  206.           ╣▐╛╞╡Θ└╠┴÷ ╛╩┤┬┤┘. ┤δ║╬║╨└╟ ░µ┐∞ ║╕┼δ ╝¡╣÷░í └┌╡┐└╕╖╬
  207.           URL└╗ ░φ─í┴÷╕╕, ░í▓√ ┴≈┴ó ╟╪┴α╛▀ ╟╥ ░µ┐∞░í └╓┤┘. ┐╣╕ª
  208.           ╡Θ╛ε, CGI ╜║┼⌐╕│╞« ╡ε└╕╖╬ ║╣└Γ╟╤ URL └τ└█╝║└╗ ╟╤ ╚─┐í
  209.           ▒╫╖»╟╧┤┘.</p>
  210.         </dd>
  211.  
  212.         <dt>╟╪░ß├Ñ:</dt>
  213.  
  214.         <dd>
  215.           <p>└╠ ╣╠╣ª╟╤ ╣«┴ª└╟ ╟╪░ß╣µ╣²└║ ╝¡╣÷░í └┌╡┐└╕╖╬ ╕╢┴÷╕╖
  216.           ╜╜╖í╜¼╕ª ├▀░í╟╧┤┬ ░═└╠┤┘. ║Ω╢≤┐∞└·░í │¬╕╙┴÷ ▒╫╕▓ ╡ε└╗
  217.           ┐├╣┘╖╬ ┐Σ├╗╟╥ ╝÷ └╓╡╡╖╧, ┐▄║╬ ╕«┤┘└╠╖║╝╟└╗ ╟╪╛▀ ╟╤┤┘.
  218.           │╗║╬ ╕«┤┘└╠╖║╝╟└╗ ╟╤┤┘╕Θ ╡≡╖║┼Σ╕« ╞Σ└╠┴÷┐í╕╕ ╡┐└█╟╧┐⌐
  219.           └╠ ╞Σ└╠┴÷░í ╗≤┤δ URL╖╬ ╞≈╟╘╟╧┤┬ ▒╫╕▓└╗ ║Ω╢≤┐∞└·░í
  220.           ┐Σ├╗╟╥╢º ├ú└╗ ╝÷ ╛°┤┘. ┐╣╕ª ╡Θ╛ε, ┐▄║╬ ╕«┤┘└╠╖║╝╟└╗
  221.           ╗τ┐δ╟╧┴÷ ╛╩└╗╢º <code>/~quux/foo/index.html</code>┐í╝¡
  222.           <code>image.gif</code>╕ª ┐Σ├╗╟╧╕Θ
  223.           <code>/~quux/image.gif</code>╕ª ┐Σ├╗╟╧░╘ ╡╚┤┘!</p>
  224.  
  225.           <p>▒╫╖í╝¡ └╠╕ª ╟╪░ß╟╧▒Γ└º╟╪ ┤┘└╜░· ░░└╠ ╝│┴ñ╟╤┤┘:</p>
  226.  
  227. <example><pre>
  228. RewriteEngine  on
  229. RewriteBase    /~quux/
  230. RewriteRule    ^foo<strong>$</strong>  foo<strong>/</strong>  [<strong>R</strong>]
  231. </pre></example>
  232.  
  233.           <p>╚¿╡≡╖║┼Σ╕«└╟ ├╓╗≤└º <code>.htaccess</code> ╞─└╧┐í
  234.           ┤┘└╜░· ░░└╠ ╝│┴ñ╟╥ ╝÷╡╡ └╓┤┘. ▒╫╖»│¬ ├│╕«╟╧┤┬╡Ñ ║╬┤π└╠
  235.           ╡╚┤┘.</p>
  236.  
  237. <example><pre>
  238. RewriteEngine  on
  239. RewriteBase    /~quux/
  240. RewriteCond    %{REQUEST_FILENAME}  <strong>-d</strong>
  241. RewriteRule    ^(.+<strong>[^/]</strong>)$           $1<strong>/</strong>  [R]
  242. </pre></example>
  243.         </dd>
  244.       </dl>
  245.  
  246.     </section>
  247.  
  248.     <section>
  249.  
  250.       <title>└╧░ⁿ╡╚ URL ▒╕┴╢╖╬ ╕╕╡τ └Ñ┼¼╖»╜║┼═</title>
  251.  
  252.       <dl>
  253.         <dt>╗≤╚▓╝│╕φ:</dt>
  254.  
  255.         <dd>
  256.           <p>└╬╞«╢≤│▌ └Ñ╝¡╣÷▒║└╟ ╕≡╡τ └Ñ╝¡╣÷┐í ╡┐└╧╟╧░φ └╧░ⁿ╡╚
  257.           URL ▒╕┴╢╕ª ╕╕╡Θ░φ ╜═┤┘. ┴∩, ╕≡╡τ (┴ñ└╟╗≤ ╝¡╣÷┐í ╝╙╟╧┐⌐
  258.           ╝¡╣÷┐í └╟┴╕└√└╬!) URL└╗ ╝¡╣÷ <em>╡╢╕│└√└╕╖╬</em> ╕╕╡τ┤┘!
  259.           └Ñ └╠╕º░°░ú┐í ╝¡╣÷╡╢╕│└√└╬ ╡┐└╧╟╤ ▒╕┴╢╕ª ║╬┐⌐╟╪╛▀ ╟╤┤┘:
  260.           URL└║ ╜╟┴ª ╝¡╣÷╕ª ┴÷─¬╟╧╕Θ ╛╚╡╚┤┘. ╝¡╣÷▒║└╠ └┌╡┐└╕╖╬
  261.           ╜╟┴ª ╝¡╣÷╖╬ └»╡╡╟╤┤┘.</p>
  262.         </dd>
  263.  
  264.         <dt>╟╪░ß├Ñ:</dt>
  265.  
  266.         <dd>
  267.           <p>╕╒└· ╗τ┐δ└┌, ▒╫╖∞, ╡╢╕│├╝└╟ └º─í ┴ñ║╕╕ª └·└σ╟╤
  268.           (║╨╗Ω╡╚) ┐▄║╬╕╩┐í ╜╟┴ª ╝¡╣÷ ┴ñ║╕╕ª ╛≥╛ε┐┬┤┘. ┐▄║╬╕╩└║
  269.           ┤┘└╜░· ░░└║ ╟ⁿ╜─└╠┤┘</p>
  270.  
  271. <example><pre>
  272. user1  server_of_user1
  273. user2  server_of_user2
  274. :      :
  275. </pre></example>
  276.  
  277.           <p>┐∞╕«┤┬ └╠ ┴ñ║╕╕ª ░ó░ó <code>map.xxx-to-host</code>
  278.           ╞─└╧┐í └·└σ╟▀┤┘. ┤┘└╜└╕╖╬ ╕≡╡τ ╝¡╣÷┐í╝¡ URL└╠ ╝¡╣÷┐í
  279.           ╛°┤┘╕Θ ┤┘└╜░· ░░└║ URL└╗,</p>
  280.  
  281. <example><pre>
  282. /u/user/anypath
  283. /g/group/anypath
  284. /e/entity/anypath
  285. </pre></example>
  286.  
  287.           <p>┤┘└╜░· ░░└╠ ╕«┤┘└╠╖║╝╟╟╤┤┘</p>
  288.  
  289. <example><pre>
  290. http://physical-host/u/user/anypath
  291. http://physical-host/g/group/anypath
  292. http://physical-host/e/entity/anypath
  293. </pre></example>
  294.  
  295.           <p>╛╞╖í ▒╘─ó└║ ╕╩╞─└╧└╗ ╗τ┐δ╟╧┐⌐ └╠ └█╛≈└╗ ╟╤┤┘ (server0└║
  296.           ╕╩┐í ╟╫╕±└╠ ╛°┤┬ ░µ┐∞ ╗τ┐δ╟╥ ▒Γ║╗╝¡╣÷╢≤░φ ░í┴ñ╟╤┤┘):</p>
  297.  
  298. <example><pre>
  299. RewriteEngine on
  300.  
  301. RewriteMap      user-to-host   txt:/path/to/map.user-to-host
  302. RewriteMap     group-to-host   txt:/path/to/map.group-to-host
  303. RewriteMap    entity-to-host   txt:/path/to/map.entity-to-host
  304.  
  305. RewriteRule   ^/u/<strong>([^/]+)</strong>/?(.*)   http://<strong>${user-to-host:$1|server0}</strong>/u/$1/$2
  306. RewriteRule   ^/g/<strong>([^/]+)</strong>/?(.*)  http://<strong>${group-to-host:$1|server0}</strong>/g/$1/$2
  307. RewriteRule   ^/e/<strong>([^/]+)</strong>/?(.*) http://<strong>${entity-to-host:$1|server0}</strong>/e/$1/$2
  308.  
  309. RewriteRule   ^/([uge])/([^/]+)/?$          /$1/$2/.www/
  310. RewriteRule   ^/([uge])/([^/]+)/([^.]+.+)   /$1/$2/.www/$3\
  311. </pre></example>
  312.         </dd>
  313.       </dl>
  314.  
  315.     </section>
  316.  
  317.     <section>
  318.  
  319.       <title>╚¿╡≡╖║┼Σ╕«╕ª ┤┘╕Ñ └Ñ╝¡╣÷╖╬ └╠└ⁿ</title>
  320.  
  321.       <dl>
  322.         <dt>╗≤╚▓╝│╕φ:</dt>
  323.  
  324.         <dd>
  325.           <p>╕╣└║ └Ñ░ⁿ╕«└┌┤┬ └Ñ╝¡╣÷└╟ ╕≡╡τ ╚¿╡≡╖║┼Σ╕«╕ª ┤┘╕Ñ
  326.           └Ñ╝¡╣÷╖╬ └╠└ⁿ╟╤ ░µ┐∞ ╟╪░ß├Ñ└╗ ╣░╛ε║╗┤┘. └╠ ╣µ╣²└║
  327.           └╠└ⁿ ╝¡╣÷╕ª ┤δ├╝╟╥ ╗⌡╖╬┐ε ╝¡╣÷╕ª ▒╕╝║╟╧┤┬╡Ñ ╜├░ú└╠
  328.           ░╔╕«┤┬ ░µ┐∞┐í ╟╩┐Σ╟╧┤┘.</p>
  329.         </dd>
  330.  
  331.         <dt>╟╪░ß├Ñ:</dt>
  332.  
  333.         <dd>
  334.           <p><module>mod_rewrite</module>╕ª ╗τ┐δ╟╧╕Θ ░ú┤▄╟╧┤┘.
  335.           └╠└ⁿ └Ñ╝¡╣÷┤┬ ╕≡╡τ <code>/~user/anypath</code> URL└╗
  336.           <code>http://newserver/~user/anypath</code>╖╬
  337.           ╕«┤┘└╠╖║╝╟╟╧╕Θ ╡╚┤┘.</p>
  338.  
  339. <example><pre>
  340. RewriteEngine on
  341. RewriteRule   ^/~(.+)  http://<strong>newserver</strong>/~$1  [R,L]
  342. </pre></example>
  343.         </dd>
  344.       </dl>
  345.  
  346.     </section>
  347.  
  348.     <section>
  349.  
  350.       <title>╚¿╡≡╖║┼Σ╕« ▒╕┴╢ ╕╕╡Θ▒Γ</title>
  351.  
  352.       <dl>
  353.         <dt>╗≤╚▓╝│╕φ:</dt>
  354.  
  355.         <dd>
  356.           <p>╗τ┐δ└┌░í ╝÷├╡╕φ└╬ ╗τ└╠╞«┤┬ ║╕┼δ ╚¿╡≡╖║┼Σ╕« ▒╕┴╢╕ª
  357.           ╕╕╡τ┤┘. ┴∩, ┐╣╕ª ╡Θ╛ε └╠╕º└╠ ╗τ┐δ└┌╕φ└╟ ├╣╣°┬░ ╣«└┌└╬
  358.           ╟╧└º╡≡╖║┼Σ╕«┐í ╚¿╡≡╖║┼Σ╕«╕ª ╡╨┤┘. ▒╫╖í╝¡,
  359.           <code>/~foo/anypath</code>┤┬
  360.           <code>/home/<strong>f</strong>/foo/.www/anypath</code>└╠░φ,
  361.           <code>/~bar/anypath</code>┤┬
  362.           <code>/home/<strong>b</strong>/bar/.www/anypath</code>└╠┤┘.</p>
  363.         </dd>
  364.  
  365.         <dt>╟╪░ß├Ñ:</dt>
  366.  
  367.         <dd>
  368.           <p>╣░░ß╟Ñ╜├░í └╓┤┬ URL└╗ └º┐═ ░░└║ ▒╕┴╢╖╬ ║»╚»╟╧▒Γ└º╟╪
  369.           ┤┘└╜ ▒╘─ó└╗ ╗τ┐δ╟╤┤┘.</p>
  370.  
  371. <example><pre>
  372. RewriteEngine on
  373. RewriteRule   ^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)  /home/<strong>$2</strong>/$1/.www$3
  374. </pre></example>
  375.         </dd>
  376.       </dl>
  377.  
  378.     </section>
  379.  
  380.     <section>
  381.  
  382.       <title>╞─└╧╜├╜║┼█ └τ▒╕╝║</title>
  383.  
  384.       <dl>
  385.         <dt>╗≤╚▓╝│╕φ:</dt>
  386.  
  387.         <dd>
  388.           <p>└╠ ┐╣┤┬ ╜╟╖╬ ╟╧╡σ─┌╛ε└√└╠┤┘: ╡≡╖║┼Σ╕«║░
  389.           <code>RewriteRules</code>╕ª ╕┼┐∞ ╕╣└╠ ╗τ┐δ╟╧┐⌐ └┌╖ß
  390.           └┌├╝┤┬ ▒╫┤δ╖╬ ╡╨├╝╖╬ └Ñ┐í └┌╖ß╕ª └┌┐¼╜║╖┤░╘ ║Ω╢≤┐∞┬í╟╧╡╡╖╧
  391.           ╟╤┤┘. ╣Φ░µ: │¬┤┬ 1992│Γ ║╬┼═ └┌└»╖╙░╘ ╗τ┐δ╟╥ ╝÷ └╓┤┬
  392.           └»┤╨╜║ ╝╥╟┴╞«┐■╛ε╡Θ└╗ <strong><em>net.sw</em></strong>┐í
  393.           ╕≡╛╞╡╬░φ └╓╛·┤┘. └╠┤┬ │╗░í ──╟╗┼═░·╟╨└╗ ░°║╬╟╧╕Θ╝¡
  394.           ┐⌐╖»╟╪╡┐╛╚ ┐⌐░í╜├░ú┐í ╜├╜║┼█ ░ⁿ╕«└┌┐═ │╫╞«┐≈ ░ⁿ╕«└┌╕ª
  395.           ╟╪┐╘▒Γ╢º╣«┐í │╗ ├δ╣╠└╠└┌ └╧└╠┤┘. ╕┼┴╓╕╢┤┘ ╗⌡╖╬ ╝╥╟┴╞«┐■╛ε░í
  396.           ├▀░í╡╔ ╢º╕╢┤┘ ╡≡╖║┼Σ╕«╕ª ▒φ░╘ ╕╕╡Θ╛ε┐╘┤┘:</p>
  397.  
  398. <example><pre>
  399. drwxrwxr-x   2 netsw  users    512 Aug  3 18:39 Audio/
  400. drwxrwxr-x   2 netsw  users    512 Jul  9 14:37 Benchmark/
  401. drwxrwxr-x  12 netsw  users    512 Jul  9 00:34 Crypto/
  402. drwxrwxr-x   5 netsw  users    512 Jul  9 00:41 Database/
  403. drwxrwxr-x   4 netsw  users    512 Jul 30 19:25 Dicts/
  404. drwxrwxr-x  10 netsw  users    512 Jul  9 01:54 Graphic/
  405. drwxrwxr-x   5 netsw  users    512 Jul  9 01:58 Hackers/
  406. drwxrwxr-x   8 netsw  users    512 Jul  9 03:19 InfoSys/
  407. drwxrwxr-x   3 netsw  users    512 Jul  9 03:21 Math/
  408. drwxrwxr-x   3 netsw  users    512 Jul  9 03:24 Misc/
  409. drwxrwxr-x   9 netsw  users    512 Aug  1 16:33 Network/
  410. drwxrwxr-x   2 netsw  users    512 Jul  9 05:53 Office/
  411. drwxrwxr-x   7 netsw  users    512 Jul  9 09:24 SoftEng/
  412. drwxrwxr-x   7 netsw  users    512 Jul  9 12:17 System/
  413. drwxrwxr-x  12 netsw  users    512 Aug  3 20:15 Typesetting/
  414. drwxrwxr-x  10 netsw  users    512 Jul  9 14:08 X11/
  415. </pre></example>
  416.  
  417.           <p>1996│Γ 7┐∙ └╠ └·└σ╝╥╕ª ╕┌└╓┤┬ └Ñ └╬┼═╞Σ└╠╜║╕ª ┼δ╟╪
  418.           ╝╝╗≤┐í ░°░│╟╧▒Γ╖╬ ░ß┴ñ╟▐┤┘. "╕┌└╓┤┘"┤┬ ╕╗└║, ├╓╗≤└º
  419.           ╡≡╖║┼Σ╕«┐í CGI ╜║┼⌐╕│╞«╕ª ╡╬┴÷ ╛╩░φ╡╡, └·└σ╝╥ ░Φ├■▒╕┴╢╕ª
  420.           ┴≈┴ó ║Ω╢≤┐∞┴·╟╧▒µ ╣┘╢⌡┤┘┤┬ ╢µ└╠┤┘. ┐╓? └·└σ╝╥╕ª │¬┴▀┐í
  421.           FTP╖╬╡╡ ┴ó▒┘╟╥ ╝÷ └╓╡╡╖╧ ╕╕╡Θ ┐╣┴ñ└╠┐┤▒Γ╢º╣«┐í └Ñ└╠│¬
  422.           CGI┐═ ░ⁿ╖├╡╚ │╗┐δ└╗ ░░└╠ ╡╬▒Γ ╜╚╛·┤┘.</p>
  423.         </dd>
  424.  
  425.         <dt>╟╪░ß├Ñ:</dt>
  426.  
  427.         <dd>
  428.           <p>╟╪░ß├Ñ└║ ╡╬ ║╬║╨└╕╖╬ │¬┤╢┤┘: ╕╒└· ╡≡╖║┼Σ╕« ╝÷┴╪┐í╝¡
  429.           ╟╩┐Σ╟╤ ╕≡╡τ ╞Σ└╠┴÷╕ª ╡┐└√└╕╖╬ ╕╕╡σ┤┬ CGI ╜║┼⌐╕│╞«░í
  430.           ╟╩┐Σ╟╧┤┘. │¬┤┬ └╠ ╜║┼⌐╕│╞«╡Θ└╗ ┤┘└╜░· ░░└╠
  431.           <code>/e/netsw/.www/</code>┐í ╡╬╛·┤┘:</p>
  432.  
  433. <example><pre>
  434. -rw-r--r--   1 netsw  users    1318 Aug  1 18:10 .wwwacl
  435. drwxr-xr-x  18 netsw  users     512 Aug  5 15:51 DATA/
  436. -rw-rw-rw-   1 netsw  users  372982 Aug  5 16:35 LOGFILE
  437. -rw-r--r--   1 netsw  users     659 Aug  4 09:27 TODO
  438. -rw-r--r--   1 netsw  users    5697 Aug  1 18:01 netsw-about.html
  439. -rwxr-xr-x   1 netsw  users     579 Aug  2 10:33 netsw-access.pl
  440. -rwxr-xr-x   1 netsw  users    1532 Aug  1 17:35 netsw-changes.cgi
  441. -rwxr-xr-x   1 netsw  users    2866 Aug  5 14:49 netsw-home.cgi
  442. drwxr-xr-x   2 netsw  users     512 Jul  8 23:47 netsw-img/
  443. -rwxr-xr-x   1 netsw  users   24050 Aug  5 15:49 netsw-lsdir.cgi
  444. -rwxr-xr-x   1 netsw  users    1589 Aug  3 18:43 netsw-search.cgi
  445. -rwxr-xr-x   1 netsw  users    1885 Aug  1 17:41 netsw-tree.cgi
  446. -rw-r--r--   1 netsw  users     234 Jul 30 16:35 netsw-unlimit.lst
  447. </pre></example>
  448.  
  449.           <p><code>DATA/</code> ╟╧└º╡≡╖║┼Σ╕«┐í └º┐í╝¡ ╕╗╟╤ └·└σ╝╥░í
  450.           └╓┤┘. ╜╟┴ª <strong><em>net.sw</em></strong>└╟ │╗┐δ└║ ║╕┼δ
  451.           <code>rdist</code>╕ª ╗τ┐δ╟╧┐⌐ └┌╡┐└╕╖╬ ░í┴«┐┬┤┘. ╡╬╣°┬░
  452.           ║╬║╨└╠ │▓╛╥┤┘: ╛ε╢╗░╘ └╠ ╡╬ ▒╕┴╢╕ª ╟╧│¬└╟ └┌┐¼╜║╖»┐ε
  453.           URL ▒╕┴╢╖╬ ┐¼░ß╟╧┤┬░í? ╗τ┐δ└┌┐í░╘ <code>DATA/</code>
  454.           ╡≡╖║┼Σ╕«╕ª ░¿├▀░φ, URL╕╢┤┘ └√└²╟╤ CGI ╜║┼⌐╕│╞«╕ª ╜╟╟α╟╧░φ
  455.           ╜═┤┘. ╟╪░ß├Ñ└║ ┤┘└╜░· ░░┤┘: ╕╒└· ╝¡╣÷└╟ <directive
  456.           module="core">DocumentRoot</directive>┐í╝¡ ░°░│╡╚
  457.           URL <code>/net.sw/</code>╕ª │╗║╬ ░µ╖╬ <code>/e/netsw</code>╖╬
  458.           └τ└█╝║╟╧▒Γ└º╟╪ ╡≡╖║┼Σ╕«║░ ╝│┴ñ╞─└╧┐í ┤┘└╜░· ░░└╠ ╝│┴ñ╟╤┤┘:</p>
  459.  
  460. <example><pre>
  461. RewriteRule  ^net.sw$       net.sw/        [R]
  462. RewriteRule  ^net.sw/(.*)$  e/netsw/$1
  463. </pre></example>
  464.  
  465.           <p>├╣╣°┬░ ▒╘─ó└║ ╕╢┴÷╕╖┐í ╜╜╖í╜¼░í ╛°┤┬ ┐Σ├╗└╗ └º╟╪╝¡
  466.           ╗τ┐δ╟▀┤┘! ╡╬╣°┬░ ▒╘─ó└╠ ╜╟┴ª └█╛≈└╗ ╟╤┤┘. ▒╫╕«░φ ╡≡╖║┼Σ╕«║░
  467.           ╝│┴ñ╞─└╧ <code>/e/netsw/.www/.wwwacl</code>┐í ░ß┴ñ└√└╬
  468.           ╝│┴ñ└╠ │¬┐┬┤┘:</p>
  469.  
  470. <example><pre>
  471. Options       ExecCGI FollowSymLinks Includes MultiViews
  472.  
  473. RewriteEngine on
  474.  
  475. #  ╛╒ ║╬║╨└╠ /net.sw/ ╖╬ ┴ó▒┘╟╤┤┘
  476. RewriteBase   /net.sw/
  477.  
  478. #  ╕╒└· ├╓╗≤└º ╡≡╖║┼Σ╕«╕ª
  479. #  cgi ╜║┼⌐╕│╞«╖╬ └τ└█╝║╟╤┤┘
  480. RewriteRule   ^$                       netsw-home.cgi     [L]
  481. RewriteRule   ^index\.html$            netsw-home.cgi     [L]
  482.  
  483. #  ║Ω╢≤┐∞└·░í ╡≡╖║┼Σ╕«║░ ╞Σ└╠┴÷╕ª ┐Σ├╗╟╤ ░µ┐∞
  484. #  ╟╧└º╡≡╖║┼Σ╕«╕ª ├▀├Γ╟╤┤┘
  485. RewriteRule   ^.+/(netsw-[^/]+/.+)$    $1                 [L]
  486.  
  487. #  └╠┴ª └τ└█╝║└╗ ╕╢─ú┤┘
  488. RewriteRule   ^netsw-home\.cgi.*       -                  [L]
  489. RewriteRule   ^netsw-changes\.cgi.*    -                  [L]
  490. RewriteRule   ^netsw-search\.cgi.*     -                  [L]
  491. RewriteRule   ^netsw-tree\.cgi$        -                  [L]
  492. RewriteRule   ^netsw-about\.html$      -                  [L]
  493. RewriteRule   ^netsw-img/.*$           -                  [L]
  494.  
  495. #  ┤┘╕Ñ cgi ╜║┼⌐╕│╞«░í ├│╕«╟╥
  496. #  ╟╧└º╡≡╖║┼Σ╕«░í │▓╛╥┤┘
  497. RewriteRule   !^netsw-lsdir\.cgi.*     -                  [C]
  498. RewriteRule   (.*)                     netsw-lsdir.cgi/$1
  499. </pre></example>
  500.  
  501.           <p>╟╪╝«└╗ └º╟╤ ╚∙╞«:</p>
  502.  
  503.           <ol>
  504.             <li>│╫╣°┬░ ║╬║╨┐í╝¡ ┤δ├╝ ╟╩╡σ('<code>-</code>')░í
  505.             ╛°░φ <code>L</code> (last) ╟├╖í▒╫░í └╓└╜└╗ ┴╓╕±╟╧╢≤</li>
  506.  
  507.             <li>╕╢┴÷╕╖ ║╬║╨┐í╝¡ ├╣╣°┬░ ▒╘─ó┐í <code>!</code>
  508.             (not) ╣«└┌┐═ <code>C</code> (chain) ╟├╖í▒╫╕ª ┴╓╕±╟╧╢≤</li>
  509.  
  510.             <li>╕╢┴÷╕╖ ▒╘─ó┐í╝¡ ▒Γ┼╕ ╟╪┤τ╟╧┴÷ ╛╩┤┬ ╕≡╡τ ░µ┐∞╕ª
  511.             └Γ╛╞│╗┤┬ ╞╨┼╧└╗ ┴╓╕±╟╧╢≤</li>
  512.           </ol>
  513.         </dd>
  514.       </dl>
  515.  
  516.     </section>
  517.  
  518.     <section>
  519.  
  520.       <title>NCSA imagemap└╗ ╛╞╞──í <code>mod_imap</code>└╕╖╬</title>
  521.  
  522.       <dl>
  523.         <dt>╗≤╚▓╝│╕φ:</dt>
  524.  
  525.         <dd>
  526.           <p>╗τ╢≈╡Θ└║ NCSA └Ñ╝¡╣÷┐í╝¡ ╟÷┤δ└√└╬ ╛╞╞──í └Ñ╝¡╣÷╖╬
  527.           └┌┐¼╜║╖┤░╘ ┐┼░▄░í▒µ ╣┘╢⌡┤┘. ▒╫╖í╝¡ ┐└╖í╡╚ NCSA
  528.           <code>imagemap</code> ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╤ ╞Σ└╠┴÷╕ª ╟÷┤δ└√└╬
  529.           ╛╞╞──í <module>mod_imap</module>╖╬ ├│╕«╟╧▒µ ╣┘╢⌡┤┘.
  530.           ╣«┴ª┤┬ <code>imagemap</code> ╟┴╖╬▒╫╖Ñ└╗
  531.           <code>/cgi-bin/imagemap/path/to/page.map</code>░·
  532.           ░░└╠ ┬ⁿ┴╢╟╧┤┬ ╟╧└╠╞█╕╡┼⌐░í ╕╣┤┘┤┬ ░═└╠┤┘. ╛╞╞──í┤┬
  533.           <code>/path/to/page.map</code>░· ░░└║ ┐Σ├╗└╗ ╣▐╛╞╛▀
  534.           ╟╤┤┘.</p>
  535.         </dd>
  536.  
  537.         <dt>╟╪░ß├Ñ:</dt>
  538.  
  539.         <dd>
  540.           <p>╕≡╡τ ┐Σ├╗┐í╝¡ ╛╒║╬║╨└╗ ╡┐└√└╕╖╬ ┴ª░┼╟╧┤┬ └ⁿ┐¬ ▒╘─ó└╗
  541.           ╗τ┐δ╟╤┤┘:</p>
  542.  
  543. <example><pre>
  544. RewriteEngine  on
  545. RewriteRule    ^/cgi-bin/imagemap(.*)  $1  [PT]
  546. </pre></example>
  547.         </dd>
  548.       </dl>
  549.  
  550.     </section>
  551.  
  552.     <section>
  553.  
  554.       <title>┐⌐╖» ╡≡╖║┼Σ╕«┐í╝¡ ╞Σ└╠┴÷ ░╦╗÷</title>
  555.  
  556.       <dl>
  557.         <dt>╗≤╚▓╝│╕φ:</dt>
  558.  
  559.         <dd>
  560.           <p>░í▓√ └Ñ╝¡╣÷░í ┐⌐╖» ╡≡╖║┼Σ╕«┐í╝¡ ╞─└╧└╗ ├ú╛╞╛▀ ╟╥
  561.           ╢º░í └╓┤┘. └╠ ░µ┐∞ MultiViews│¬ ┤┘╕Ñ ╣µ╣²└║ ╡╡┐≥└╠
  562.           ╛╚╡╚┤┘.</p>
  563.         </dd>
  564.  
  565.         <dt>╟╪░ß├Ñ:</dt>
  566.  
  567.         <dd>
  568.           <p>┐⌐╖» ╡≡╖║┼Σ╕«┐í╝¡ ╞─└╧└╗ ├ú┤┬ ▒╘─ó└╗ ┴≈┴ó ╟┴╖╬▒╫╖Ñ╟╤┤┘.</p>
  569.  
  570. <example><pre>
  571. RewriteEngine on
  572.  
  573. #   ╕╒└· custom/┐í╝¡ ├ú▒µ ╜├╡╡╟╧░φ...
  574. #   ...├ú└╕╕Θ │í!
  575. RewriteCond         /your/docroot/<strong>dir1</strong>/%{REQUEST_FILENAME}  -f
  576. RewriteRule  ^(.+)  /your/docroot/<strong>dir1</strong>/$1  [L]
  577.  
  578. #   ╡╬╣°┬░╖╬ pub/┐í╝¡ ├ú▒µ ╜├╡╡╟╤┤┘...
  579. #   ...├ú└╕╕Θ │í!
  580. RewriteCond         /your/docroot/<strong>dir2</strong>/%{REQUEST_FILENAME}  -f
  581. RewriteRule  ^(.+)  /your/docroot/<strong>dir2</strong>/$1  [L]
  582.  
  583. #   ╕°├ú└╕╕Θ ┤┘╕Ñ Alias│¬ ScriptAlias ┴÷╜├╛ε ╡ε└╕╖╬ ┴°╟α╟╤┤┘.
  584. RewriteRule   ^(.+)  -  [PT]
  585. </pre></example>
  586.         </dd>
  587.       </dl>
  588.  
  589.     </section>
  590.  
  591.     <section>
  592.  
  593.       <title>URL┐í ╡√╢≤ ╚»░µ║»╝÷╕ª ╝│┴ñ╟╤┤┘</title>
  594.  
  595.       <dl>
  596.         <dt>╗≤╚▓╝│╕φ:</dt>
  597.  
  598.         <dd>
  599.           <p>┐Σ├╗╡Θ░ú┐í ╗≤┼┬┴ñ║╕╕ª └»┴÷╟╧▒Γ└º╟╪ URL┐í ┴ñ║╕╕ª
  600.           └╬─┌╡∙╟╧┤┬ ╣µ╣²╡╡ └╓┤┘. ▒╫╖»│¬ ┤▄┴÷ └╠ ┴ñ║╕╕ª ┴ª░┼╟╧▒Γ└º╟╪
  601.           ╕≡╡τ ╞Σ└╠┴÷┐í CGI wrapper╕ª ╗τ┐δ╟╧░φ ╜═┴÷ ╛╩┤┘.</p>
  602.         </dd>
  603.  
  604.         <dt>╟╪░ß├Ñ:</dt>
  605.  
  606.         <dd>
  607.           <p>└τ└█╝║ ▒╘─ó└╗ ╗τ┐δ╟╧┐⌐ ╗≤┼┬┴ñ║╕╕ª ├▀├Γ╟╧░φ, ├▀├Γ╟╤
  608.           ┴ñ║╕╕ª │¬┴▀┐í XSSI│¬ CGI┐í╝¡ ╗τ┐δ╟╧▒Γ└º╟╪ ╚»░µ║»╝÷┐í
  609.           └·└σ╟╤┤┘. ▒╫╖í╝¡ URL <code>/foo/S=java/bar/</code>┤┬
  610.           <code>/foo/bar/</code>╖╬ ║»╚»╡╟░φ <code>STATUS</code>╢≤┤┬
  611.           ╚»░µ║»╝÷ ░¬└╗ "java"╖╬ ╝│┴ñ╟╤┤┘.</p>
  612.  
  613. <example><pre>
  614. RewriteEngine on
  615. RewriteRule   ^(.*)/<strong>S=([^/]+)</strong>/(.*)    $1/$3 [E=<strong>STATUS:$2</strong>]
  616. </pre></example>
  617.         </dd>
  618.       </dl>
  619.  
  620.     </section>
  621.  
  622.     <section>
  623.  
  624.       <title>░í╗≤ ╗τ┐δ└┌ ╚ú╜║╞«</title>
  625.  
  626.       <dl>
  627.         <dt>╗≤╚▓╝│╕φ:</dt>
  628.  
  629.         <dd>
  630.           <p>░í╗≤╚ú╜║╞«╕ª ╗τ┐δ╟╧┴÷ ╛╩░φ ░░└║ ──╟╗┼═╖╬ DNS A
  631.           ╖╣─┌╡σ╕ª ╝│┴ñ╟╧┐⌐
  632.           <code>www.<strong>username</strong>.host.domain.com</code>└╗
  633.           ╗τ┐δ└┌└╟ ╚¿╞Σ└╠┴÷╖╬ ┴ª░°╟╧░φ ╜═┤┘.</p>
  634.         </dd>
  635.  
  636.         <dt>╟╪░ß├Ñ:</dt>
  637.  
  638.         <dd>
  639.           <p>HTTP/1.0 ┐Σ├╗└╟ ░µ┐∞ ╣µ╣²└╠ ╛°┴÷╕╕, Host: HTTP
  640.           ╟∞┤⌡╕ª ╞≈╟╘╟╤ HTTP/1.1 ┐Σ├╗└║ ┤┘└╜ ▒╘─ó└╗ ╗τ┐δ╟╧┐⌐
  641.           │╗║╬└√└╕╖╬ <code>http://www.username.host.com/anypath</code>╕ª
  642.           <code>/home/username/anypath</code>╖╬ └τ└█╝║╟╥ ╝÷
  643.           └╓┤┘:</p>
  644.  
  645. <example><pre>
  646. RewriteEngine on
  647. RewriteCond   %{<strong>HTTP_HOST</strong>}                 ^www\.<strong>[^.]+</strong>\.host\.com$
  648. RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
  649. RewriteRule   ^www\.<strong>([^.]+)</strong>\.host\.com(.*) /home/<strong>$1</strong>$2
  650. </pre></example>
  651.         </dd>
  652.       </dl>
  653.  
  654.     </section>
  655.  
  656.     <section>
  657.  
  658.       <title>╚¿╡≡╖║┼Σ╕«╕ª ┐▄║╬ ╝¡╣÷╖╬ ╕«┤┘└╠╖║╝╟</title>
  659.  
  660.       <dl>
  661.         <dt>╗≤╚▓╝│╕φ:</dt>
  662.  
  663.         <dd>
  664.           <p>┴÷┐¬ ╡╡╕▐└╬ <code>ourdomain.com</code> ╣█┐í╝¡ ┐Σ├╗└╠
  665.           ╡Θ╛ε┐└╕Θ ╚¿╡≡╖║┼Σ╕« URL└╗ ┤┘╕Ñ └Ñ╝¡╣÷
  666.           <code>www.somewhere.com</code>└╕╖╬ ╕«┤┘╕«╖║╝╟╟╧▒µ
  667.           ╣┘╢⌡┤┘. ┴╛┴╛ ░í╗≤╚ú╜║╞« ╗τ┐δ└σ╝╥┐í╝¡ ╗τ┐δ╟╤┤┘.</p>
  668.         </dd>
  669.  
  670.         <dt>╟╪░ß├Ñ:</dt>
  671.  
  672.         <dd>
  673.           <p>└τ└█╝║ ┴╢░╟└╗ ╗τ┐δ╟╧╕Θ ╡╚┤┘:</p>
  674.  
  675. <example><pre>
  676. RewriteEngine on
  677. RewriteCond   %{REMOTE_HOST}  <strong>!^.+\.ourdomain\.com$</strong>
  678. RewriteRule   ^(/~.+)         http://www.somewhere.com/$1 [R,L]
  679. </pre></example>
  680.         </dd>
  681.       </dl>
  682.  
  683.     </section>
  684.  
  685.     <section>
  686.  
  687.       <title>╜╟╞╨╟╤ URL└╗ ┤┘╕Ñ └Ñ╝¡╣÷╖╬ ╕«┤┘└╠╖║╝╟</title>
  688.  
  689.       <dl>
  690.         <dt>╗≤╚▓╝│╕φ:</dt>
  691.  
  692.         <dd>
  693.           <p>URL └τ└█╝║┐í ┤δ╟╪╝¡ └Ñ╝¡╣÷ A┐í ╟╪┤τ ╞─└╧└╠ ╛°┤┬
  694.           ░µ┐∞ └Ñ╝¡╣÷ B╖╬ ┐Σ├╗└╗ ╕«┤┘└╠╖║╝╟╟╧┤┬ ╣µ╣²└╗ └┌┴╓
  695.           ╣░╛ε║╗┤┘. ║╕┼δ Perl╖╬ └█╝║╟╤ <directive
  696.           module="core">ErrorDocument</directive> CGI ╜║┼⌐╕│╞«╕ª
  697.           ╗τ┐δ╟╧┴÷╕╕, <module>mod_rewrite</module>╕ª ╗τ┐δ╟╧┤┬
  698.           ╣µ╣²╡╡ └╓┤┘. ▒╫╖»│¬ ╝║┤╔└║ <directive
  699.           module="core">ErrorDocument</directive> CGI ╜║┼⌐╕│╞«║╕┤┘
  700.           ╢│╛ε┴ⁿ└╗ ╕φ╜╔╟╧╢≤!</p>
  701.         </dd>
  702.  
  703.         <dt>╟╪░ß├Ñ:</dt>
  704.  
  705.         <dd>
  706.           <p>├╣╣°┬░ ╣µ╣²└║ ║ⁿ╕ú┴÷╕╕ └»┐¼╝║└╠ ╢│╛ε┴÷░φ ┐╧└ⁿ╟╧┴÷
  707.           ╛╩┤┘:</p>
  708.  
  709. <example><pre>
  710. RewriteEngine on
  711. RewriteCond   /your/docroot/%{REQUEST_FILENAME} <strong>!-f</strong>
  712. RewriteRule   ^(.+)                             http://<strong>webserverB</strong>.dom/$1
  713. </pre></example>
  714.  
  715.           <p>└╠ ╣µ╣²└╟ ┤▄┴í└║ <directive
  716.           module="core">DocumentRoot</directive> ╛╚┐í └╓┤┬ ╞Σ└╠┴÷╕╕
  717.           ░í┤╔╟╧┤┘┤┬ ┴í└╠┤┘. (┐╣╕ª ╡Θ╛ε ╚¿╡≡╖║┼Σ╕« ╡ε└╗ └º╟╪)
  718.           ┴╢░╟└╗ ├▀░í╟╥ ╝÷ └╓┴÷╕╕, ┤⌡ ┴┴└║ ╣µ╣²└╠ └╓┤┘:</p>
  719.  
  720. <example><pre>
  721. RewriteEngine on
  722. RewriteCond   %{REQUEST_URI} <strong>!-U</strong>
  723. RewriteRule   ^(.+)          http://<strong>webserverB</strong>.dom/$1
  724. </pre></example>
  725.  
  726.           <p><module>mod_rewrite</module>└╟ URL └ⁿ╣µ┬ⁿ┴╢(look-ahead)╕ª
  727.           ╗τ┐δ╟╤┤┘. ▒╫╖í╝¡ ╕≡╡τ URL┐í ╡┐└█╟╧░φ ╛╚└ⁿ╟╧┤┘. ▒╫╖»│¬
  728.           ╕≡╡τ ┐Σ├╗╕╢┤┘ │╗║╬ ╟╧└º┐Σ├╗└╗ ╟╤╣° ┤⌡ ╟╧▒Γ╢º╣«┐í └Ñ╝¡╣÷
  729.           ╝║┤╔┐í ╛╟┐╡╟Γ└╗ ┴╪┤┘. ▒╫╖í╝¡ ░¡╖┬╟╤ CPU┐í╝¡ └Ñ╝¡╣÷╕ª
  730.           ╜╟╟α╟╤┤┘╕Θ ╗τ┐δ╟╧╢≤. ──╟╗┼═░í ┤└╕«┤┘╕Θ ├╣╣°┬░ ╣µ╣²└╠│¬
  731.           ┤⌡ │¬└║ <directive module="core">ErrorDocument</directive>
  732.           CGI ╜║┼⌐╕│╞«╕ª ╗τ┐δ╟╧╢≤.</p>
  733.         </dd>
  734.       </dl>
  735.  
  736.     </section>
  737.  
  738.     <section>
  739.  
  740.       <title>╚«└σ ╕«┤┘└╠╖║╝╟</title>
  741.  
  742.       <dl>
  743.         <dt>╗≤╚▓╝│╕φ:</dt>
  744.  
  745.         <dd>
  746.           <p>░í▓√ ╕«┤┘└╠╖║╝╟╟╧┤┬ URL└╗ ┤⌡ ┴╢└²╟╥ ╟╩┐Σ░í └╓┤┘.
  747.           ╛╞╞──í │╗║╬ URL escape ╟╘╝÷┤┬ "<code>url#anchor</code>"
  748.           ░░└║ URL└╟ anchor╡╡ escape╟╤┤┘. ╛╞╞──í└╟
  749.           <code>uri_escape()</code> ╟╘╝÷┤┬ ┐∞╣░┴ñ└┌(#)╡╡ ░░└╠
  750.           escape╟╧╣╟╖╬ ╗τ┐δ╟╥ ╝÷ ╛°┤┘. ▒╫╖»╕Θ ╛ε╢╗░╘ └╠╖▒ URL╖╬
  751.           ╕«┤┘└╠╖║╝╟╟╥ ╝÷ └╓│¬?</p>
  752.         </dd>
  753.  
  754.         <dt>╟╪░ß├Ñ:</dt>
  755.  
  756.         <dd>
  757.           <p>┴≈┴ó ╕«┤┘└╠╖║╝╟╟╧┤┬ NPH-CGI ╜║┼⌐╕│╞«╕ª ╗τ┐δ╟╤ ╟╪░ß├Ñ└╠
  758.           ╟╩┐Σ╟╧┤┘. escape╕ª ╟╧┴÷ ╛╩▒Γ╢º╣«└╠┤┘ (NPH=non-parseable
  759.           headers). ╕╒└· ┤┘└╜ ╝¡╣÷╝│┴ñ└╗ ╟╧┐⌐ (└τ└█╝║ ▒╘─ó└╟
  760.           │í║╬║╨┐í ╗τ┐δ╟╪╛▀ ╟╤┤┘) ╗⌡╖╬┐ε URL scheme
  761.           <code>xredirect:</code>╕ª ╡╡└╘╟╤┤┘:</p>
  762.  
  763. <example><pre>
  764. RewriteRule ^xredirect:(.+) /path/to/nph-xredirect.cgi/$1 \
  765.             [T=application/x-httpd-cgi,L]
  766. </pre></example>
  767.  
  768.           <p>▒╫╖»╕Θ <code>xredirect:</code>╖╬ ╜├└█╟╧┤┬ ╕≡╡τ URL└║
  769.           <code>nph-xredirect.cgi</code> ╟┴╖╬▒╫╖Ñ└╗ ┼δ╟╧░╘ ╡╚┤┘.
  770.           ╟┴╖╬▒╫╖Ñ└║ ┤┘└╜░· ░░┤┘:</p>
  771.  
  772. <example><pre>
  773. #!/path/to/perl
  774. ##
  775. ##  nph-xredirect.cgi -- NPH/CGI script for extended redirects
  776. ##  Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
  777. ##
  778.  
  779. $| = 1;
  780. $url = $ENV{'PATH_INFO'};
  781.  
  782. print "HTTP/1.0 302 Moved Temporarily\n";
  783. print "Server: $ENV{'SERVER_SOFTWARE'}\n";
  784. print "Location: $url\n";
  785. print "Content-type: text/html\n";
  786. print "\n";
  787. print "<html>\n";
  788. print "<head>\n";
  789. print "<title>302 Moved Temporarily (EXTENDED)</title>\n";
  790. print "</head>\n";
  791. print "<body>\n";
  792. print "<h1>Moved Temporarily (EXTENDED)</h1>\n";
  793. print "The document has moved <a HREF=\"$url\">here</a>.<p>\n";
  794. print "</body>\n";
  795. print "</html>\n";
  796.  
  797. ##EOF##
  798. </pre></example>
  799.  
  800.           <p>▒╫╖»╕Θ <module>mod_rewrite</module>░í ┴≈┴ó ╣▐┴÷╕°╟╧┤┬
  801.           ╕≡╡τ URL scheme└╕╖╬ ╕«┤┘└╠╖║╝╟╟╥ ╝÷ └╓┤┘. ┐╣╕ª ╡Θ╛ε,
  802.           ┤┘└╜░· ░░└╠ <code>news:newsgroup</code>└╕╖╬ ╕«┤┘└╠╖║╝╟╟╥
  803.           ╝÷ └╓┤┘</p>
  804.  
  805. <example><pre>
  806. RewriteRule ^anyurl  xredirect:news:newsgroup
  807. </pre></example>
  808.  
  809.           <note>┴╓└╟: └º└╟ ╞»║░╟╤ "┼δ░·" ▒╘─ó└╗ ╗τ┐δ╟╧┐⌐
  810.           <code>xredirect:</code>╕ª ╕╢┴÷╕╖┐í ╚«└σ╟╪╛▀ ╟╧▒Γ╢º╣«┐í
  811.           ▒╘─ó┐í <code>[R]</code>└╠│¬ <code>[R,L]</code>└╗ ╗τ┐δ╟╧╕Θ
  812.           ╛╚╡╚┤┘.</note>
  813.         </dd>
  814.       </dl>
  815.  
  816.     </section>
  817.  
  818.     <section>
  819.  
  820.       <title>└·└σ╝╥ ┴ó▒┘ ┴▀░Φ(multiplexer)</title>
  821.  
  822.       <dl>
  823.         <dt>╗≤╚▓╝│╕φ:</dt>
  824.  
  825.         <dd>
  826.           <p><a href="http://www.perl.com/CPAN">http://www.perl.com/CPAN</a>┐í
  827.           └╓┤┬ ┤δ┤▄╟╤ CPAN (Comprehensive Perl Archive Network)└╗
  828.           ╛╞┤┬░í? └╠ ┴╓╝╥┤┬ ╝╝░Φ┐í ╚≡╛ε┴° ┐⌐╖» CPAN ╣╠╖» FTP
  829.           ╝¡╣÷┴▀ ┼¼╢≤└╠╛≡╞«┐í ░í▒ε└╠ └╓┤┬ ╝¡╣÷╖╬ ╕«┤┘└╠╖║╝╟╟╤┤┘.
  830.           └╠╕ª FTP ┴ó▒┘ ┴▀░Φ ╝¡║±╜║╢≤░φ ╟╤┤┘. CPAN└║ CGI ╜║┼⌐╕│╞«╕ª
  831.           ╗τ┐δ╟╧┴÷╕╕, <module>mod_rewrite</module>╕ª ╗τ┐δ╟╧┐⌐
  832.           ║±╜┴╟╧░╘ ╕╕╡Θ ╝÷ └╓└╗▒ε?</p>
  833.         </dd>
  834.  
  835.         <dt>╟╪░ß├Ñ:</dt>
  836.  
  837.         <dd>
  838.           <p>╕╒└· <module>mod_rewrite</module> 3.0.0 ╣÷└ⁿ║╬┼═
  839.           ╕«┤┘└╠╖║╝╟┐í "<code>ftp:</code>" scheme└╗ ╗τ┐δ╟╥ ╝÷
  840.           └╓┤┘. ┤┘└╜└╕╖╬ ┼¼╢≤└╠╛≡╞«└╟ ├╓╗≤└º ╡╡╕▐└╬└╗ <directive
  841.           module="mod_rewrite">RewriteMap</directive>░· ░░└╠
  842.           ╗τ┐δ╟╧┐⌐ └º─í╕ª ├▀┴ñ╟╥ ╝÷ └╓┤┘. ║╣└Γ╚≈ ┐½└╬ ▒╘─ó┐í╝¡
  843.           ├╓╗≤└º ╡╡╕▐└╬└╗ ┴▀░Φ╕╩└╟ ┼░╖╬ ╗τ┐δ╟╤┤┘.</p>
  844.  
  845. <example><pre>
  846. RewriteEngine on
  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]
  850. </pre></example>
  851.  
  852. <example><pre>
  853. ##
  854. ##  map.cxan -- Multiplexing Map for CxAN
  855. ##
  856.  
  857. de        ftp://ftp.cxan.de/CxAN/
  858. uk        ftp://ftp.cxan.uk/CxAN/
  859. com       ftp://ftp.cxan.com/CxAN/
  860.  :
  861. ##EOF##
  862. </pre></example>
  863.         </dd>
  864.       </dl>
  865.  
  866.     </section>
  867.  
  868.     <section>
  869.  
  870.       <title>╜├░ú┐í ╡√╕Ñ └τ└█╝║</title>
  871.  
  872.       <dl>
  873.         <dt>╗≤╚▓╝│╕φ:</dt>
  874.  
  875.         <dd>
  876.           <p>╜├░ú┐í ╡√╢≤ ┤┘╕Ñ │╗┐δ└╗ ╝¡║±╜║╟╧┤┬ ░µ┐∞ ╕╣└║ └Ñ░ⁿ╕«└┌┤┬
  877.           └ß╜├ ╞»║░╟╤ ╞Σ└╠┴÷╖╬ ╕«┤┘└╠╖║╝╟╟╧▒Γ└º╟╪ CGI ╜║┼⌐╕│╞«╕ª
  878.           ╗τ┐δ╟╤┤┘. <module>mod_rewrite</module>╖╬┤┬ ╛ε╢╗░╘
  879.           ╟╥ ╝÷ └╓┤┬░í?</p>
  880.         </dd>
  881.  
  882.         <dt>╟╪░ß├Ñ:</dt>
  883.  
  884.         <dd>
  885.           <p>└τ└█╝║ ┴╢░╟┐í╝¡ ╗τ┐δ╟╥ ╝÷ └╓┤┬ ┐⌐╖» <code>TIME_xxx</code>
  886.           ║»╝÷░í └╓┤┘. ║»╝÷┐═ ╞»║░╟╤ ╗τ└ⁿ╝°╝¡ ║±▒│
  887.           <code><STRING</code>, <code>>STRING</code>,
  888.           <code>=STRING</code>└╗ ╗τ┐δ╟╧┐⌐ ╜├░ú┐í ╡√╢≤ ╕«┤┘└╠╖║╝╟╟╥
  889.           ╝÷ └╓┤┘:</p>
  890.  
  891. <example><pre>
  892. RewriteEngine on
  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
  897. </pre></example>
  898.  
  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>
  904.         </dd>
  905.       </dl>
  906.  
  907.     </section>
  908.  
  909.     <section>
  910.  
  911.       <title>YYYY╕ª XXXX╖╬ └╠└ⁿ╟╤ ░µ┐∞ ┐¬╚ú╚»</title>
  912.  
  913.       <dl>
  914.         <dt>╗≤╚▓╝│╕φ:</dt>
  915.  
  916.         <dd>
  917.           <p>┐⌐╖» <code>.html</code> ╞─└╧└╗ <code>.phtml</code>╖╬
  918.           ║»╚»╟╧┤┬ ╡ε <code>document.YYYY</code>╕ª
  919.           <code>document.XXXX</code>╖╬ └╠└ⁿ╟╤╚─ ┐¬╚ú╚»(backward
  920.           compatibility) URL└╗ (░í╗≤└√└╕╖╬ ┴╕└τ╟╧░╘) ╕╕╡Θ ╝÷
  921.           └╓│¬?</p>
  922.         </dd>
  923.  
  924.         <dt>╟╪░ß├Ñ:</dt>
  925.  
  926.         <dd>
  927.           <p>└╠╕º└╗ ▒Γ║╗└╠╕º└╕╖╬ └τ└█╝║╟╤╚─ ╗⌡╖╬┐ε ╚«└σ└┌╕ª
  928.           ░í┴° ╞─└╧└╠ └╓┤┬┴÷ ░╦╗τ╟╤┤┘. └╓┤┘╕Θ ▒╫ ╞─└╧╕φ└╗ ╗τ┐δ╟╧░φ,
  929.           ╛°└╕╕Θ URL└╗ ┐°╖í ╗≤┼┬╖╬ └τ└█╝║╟╤┤┘.</p>
  930.  
  931.  
  932. <example><pre>
  933. #   ╣«╝¡.html └╠ ╛°░φ
  934. #   ╣«╝¡.phtml ╕╕ └╓┤┬ ░µ┐∞
  935. #   ╣«╝¡.html └╗ ╣«╝¡.phtml ╖╬
  936. #   └τ└█╝║╟╧┤┬ ┐¬╚ú╚» ▒╘─ó
  937. RewriteEngine on
  938. RewriteBase   /~quux/
  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
  947. </pre></example>
  948.         </dd>
  949.       </dl>
  950.  
  951.     </section>
  952.  
  953.   </section>
  954.  
  955.   <section id="content">
  956.  
  957.     <title>─┴┼┘├≈ ┤┘╖τ▒Γ</title>
  958.  
  959.     <section>
  960.  
  961.       <title>╗⌡╖╬ └╠└ⁿ (░¿├▀▒Γ)</title>
  962.  
  963.       <dl>
  964.         <dt>╗≤╚▓╝│╕φ:</dt>
  965.  
  966.         <dd>
  967.           <p>├╓▒┘ <code>foo.html</code>└╗ <code>bar.html</code>╖╬
  968.           ║»░µ╟╧░φ ┐¬╚ú╚»╝║└╗ └º╟╪ └╠└ⁿ URL└╗ ░Φ╝╙ ┴ª░°╟╧░φ
  969.           ╜═┤┘░φ ░í┴ñ╟╧└┌. ╗τ┐δ└┌┤┬ └╠└ⁿ URL└╠ ║»░µ╡╟╛·┤┘┤┬
  970.           ╗τ╜╟└╗ ┤½─í├ñ┴÷ ╕°╟╤┤┘.</p>
  971.         </dd>
  972.  
  973.         <dt>╟╪░ß├Ñ:</dt>
  974.  
  975.         <dd>
  976.           <p>┤┘└╜ ▒╘─ó└╕╖╬ └╠└ⁿ URL└╗ │╗║╬└√└╕╖╬ ╗⌡╖╬┐ε URL╖╬
  977.           └τ└█╝║╟╤┤┘:</p>
  978.  
  979. <example><pre>
  980. RewriteEngine  on
  981. RewriteBase    /~quux/
  982. RewriteRule    ^<strong>foo</strong>\.html$  <strong>bar</strong>.html
  983. </pre></example>
  984.         </dd>
  985.       </dl>
  986.  
  987.     </section>
  988.  
  989.     <section>
  990.  
  991.       <title>╗⌡╖╬ └╠└ⁿ (╛╦╕«▒Γ)</title>
  992.  
  993.       <dl>
  994.         <dt>╗≤╚▓╝│╕φ:</dt>
  995.  
  996.         <dd>
  997.           <p>┤┘╜├ <code>foo.html</code>└╗ <code>bar.html</code>╖╬
  998.           ║»░µ╟╧░φ ┐¬╚ú╚»╝║└╗ └º╟╪ └╠└ⁿ URL└╗ ░Φ╝╙ ┴ª░°╟╧░φ
  999.           ╜═┤┘░φ ░í┴ñ╟╧└┌. ▒╫╖»│¬ └╠┴ª┤┬ └╠└ⁿ URL└╗ ╗τ┐δ╟╧╕Θ
  1000.           ╗τ┐δ└┌┐í░╘ ╗⌡╖╬┐ε URL└╗ ╚∙╞«╖╬ ╛╦╖┴┴╪┤┘. ┴∩, ║Ω╢≤┐∞└·
  1001.           ┴╓╝╥├ó└╠ ║»╟╤┤┘.</p>
  1002.         </dd>
  1003.  
  1004.         <dt>╟╪░ß├Ñ:</dt>
  1005.  
  1006.         <dd>
  1007.           <p>╗⌡╖╬┐ε URL╖╬ HTTP ╕«┤┘└╠╖║╝╟╟╧┤┘. ▒╫╖»╕Θ ║Ω╢≤┐∞└·░í
  1008.           ╗⌡╖╬┐ε URL╕ª ║╕└╠░φ ║»░µ╗τ╜╟└╗ ╗τ┐δ└┌░í ╛╦░╘╡╚┤┘:</p>
  1009.  
  1010. <example><pre>
  1011. RewriteEngine  on
  1012. RewriteBase    /~quux/
  1013. RewriteRule    ^<strong>foo</strong>\.html$  <strong>bar</strong>.html  [<strong>R</strong>]
  1014. </pre></example>
  1015.         </dd>
  1016.       </dl>
  1017.  
  1018.     </section>
  1019.  
  1020.     <section>
  1021.  
  1022.       <title>║Ω╢≤┐∞└·┐í ╡√╕Ñ │╗┐δ</title>
  1023.  
  1024.       <dl>
  1025.         <dt>╗≤╚▓╝│╕φ:</dt>
  1026.  
  1027.         <dd>
  1028.           <p>├╓╝╥╟╤ ┴▀┐Σ╟╤ ├╓╗≤└º ╞Σ└╠┴÷┤┬ ║Ω╢≤┐∞└·┐í ├╓└√╚¡╡╚
  1029.           │╗┐δ└╕╖╬ ╝¡║±╜║╟╪╛▀╟╥ ░µ┐∞░í └╓┤┘. ┴∩, ├╓╜┼ Netscape
  1030.           ║Ω╢≤┐∞└·┐í░╘┤┬ ├╓╗≤└╟ ╣÷└ⁿ└╗, Lynx ║Ω╢≤┐∞└·┐í░╘┤┬
  1031.           ├╓└· ╣÷└ⁿ└╗, │¬╕╙┴÷ ║Ω╢≤┐∞└·┐í┤┬ ╞≥▒╒└√└╬ ╣÷└ⁿ└╗
  1032.           ┴ª░°╟╤┤┘.</p>
  1033.         </dd>
  1034.  
  1035.         <dt>╟╪░ß├Ñ:</dt>
  1036.  
  1037.         <dd>
  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> ╞Σ└╠┴÷╕ª ╣▐┤┬┤┘. ╛╞╖í ▒╘─ó└╠
  1047.           └╠ └█╛≈└╗ ╟╤┤┘:</p>
  1048.  
  1049. <example><pre>
  1050. RewriteCond %{HTTP_USER_AGENT}  ^<strong>Mozilla/3</strong>.*
  1051. RewriteRule ^foo\.html$         foo.<strong>NS</strong>.html          [<strong>L</strong>]
  1052.  
  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>]
  1056.  
  1057. RewriteRule ^foo\.html$         foo.<strong>32</strong>.html          [<strong>L</strong>]
  1058. </pre></example>
  1059.         </dd>
  1060.       </dl>
  1061.  
  1062.     </section>
  1063.  
  1064.     <section>
  1065.  
  1066.       <title>╡┐└√ ╣╠╖»</title>
  1067.  
  1068.       <dl>
  1069.         <dt>╗≤╚▓╝│╕φ:</dt>
  1070.  
  1071.         <dd>
  1072.           <p>┐▄║╬ ╚ú╜║╞«┐í ┐∞╕« ╗τ└╠╞«╖╬ ░í┴«┐└░φ ╜═└║ ┴┴└║
  1073.           └Ñ╞Σ└╠┴÷░í └╓┤┘░φ ░í┴ñ╟╧└┌. FTP ╝¡╣÷└╟ ░µ┐∞ ┴≈┴ó ┐▄║╬
  1074.           └┌╖ß└╟ ├╓╜┼║╣╗τ║╗└╗ └»┴÷╟╧┤┬ <code>mirror</code> ╟┴╖╬▒╫╖Ñ└╗
  1075.           ╗τ┐δ╟╥ ╝÷ └╓░φ, └Ñ╝¡╣÷╢≤╕Θ HTTP╖╬ ║±╜┴╟╤ └█╛≈└╗ ╟╧┤┬
  1076.           <code>webcopy</code> ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╥ ╝÷ └╓┤┘. ▒╫╖»│¬
  1077.           ╡╬ ╣µ╣² ╕≡╡╬ ┤▄┴í└╠ └╓┤┘: ║╣╗τ║╗└║ ░í▓√╛┐ ╟┴╖╬▒╫╖Ñ└╗
  1078.           ╜╟╟α╟╪┴┘ ╢º╕╕ ├╓╜┼╞╟└╕╖╬ └»┴÷╡╚┤┘. ┴≈┴ó ▒╕╝║╟╪╛▀╟╧┤┬
  1079.           ┴ñ└√└╬ ╣╠╖»░í ╛╞┤╧╢≤╕Θ ┴┴░┌┤┘. ┤δ╜┼ (┐▄║╬ ╚ú╜║╞«┐í╝¡
  1080.           └┌╖ß░í ░╗╜┼╡╟╕Θ) ╟╩┐Σ╟╥╢º └┌╡┐└╕╖╬ └┌╖ß╕ª ░╗╜┼╟╧┤┬
  1081.           ╡┐└√ ╣╠╖»░í ╟╩┐Σ╟╧┤┘.</p>
  1082.         </dd>
  1083.  
  1084.         <dt>╟╪░ß├Ñ:</dt>
  1085.  
  1086.         <dd>
  1087.           <p>└╠╕ª └º╟╪ <dfn>Proxy Throughput</dfn> ▒Γ┤╔└╗ (╟├╖í▒╫
  1088.           <code>[P]</code>) ╗τ┐δ╟╧┐⌐ ┐▄║╬ └Ñ╞Σ└╠┴÷ ╚ñ└║ ┐▄║╬
  1089.           └Ñ░°░ú └ⁿ├╝╕ª ┐∞╕« └╠╕º░°░ú└╕╖╬ ┤δ└└╟╤┤┘:</p>
  1090.  
  1091. <example><pre>
  1092. RewriteEngine  on
  1093. RewriteBase    /~quux/
  1094. RewriteRule    ^<strong>hotsheet/</strong>(.*)$  <strong>http://www.tstimpreso.com/hotsheet/</strong>$1  [<strong>P</strong>]
  1095. </pre></example>
  1096.  
  1097. <example><pre>
  1098. RewriteEngine  on
  1099. RewriteBase    /~quux/
  1100. RewriteRule    ^<strong>usa-news\.html</strong>$   <strong>http://www.quux-corp.com/news/index.html</strong>  [<strong>P</strong>]
  1101. </pre></example>
  1102.         </dd>
  1103.       </dl>
  1104.  
  1105.     </section>
  1106.  
  1107.     <section>
  1108.  
  1109.       <title>╡┐└√ ┐¬╣╠╖»</title>
  1110.  
  1111.       <dl>
  1112.         <dt>╗≤╚▓╝│╕φ:</dt>
  1113.  
  1114.         <dd>...</dd>
  1115.  
  1116.         <dt>╟╪░ß├Ñ:</dt>
  1117.  
  1118.         <dd>
  1119. <example><pre>
  1120. RewriteEngine on
  1121. RewriteCond   /mirror/of/remotesite/$1           -U
  1122. RewriteRule   ^http://www\.remotesite\.com/(.*)$ /mirror/of/remotesite/$1
  1123. </pre></example>
  1124.         </dd>
  1125.       </dl>
  1126.  
  1127.     </section>
  1128.  
  1129.     <section>
  1130.  
  1131.       <title>╛°┤┬ └┌╖ß╕ª └╬╞«╢≤│▌┐í╝¡ ░í┴«┐└▒Γ</title>
  1132.  
  1133.       <dl>
  1134.         <dt>╗≤╚▓╝│╕φ:</dt>
  1135.  
  1136.         <dd>
  1137.           <p>╜╟┴ª └┌╖ß╕ª ╣µ╚¡║«└╠ ║╕╚ú╟╧┤┬ (│╗║╬) └╬╞«╢≤│▌ └Ñ╝¡╣÷┐í
  1138.           (<code>www2.quux-corp.dom</code>) └·└σ╟╧╕Θ╝¡, ▒Γ╛≈└╟
  1139.           (┐▄║╬) └╬┼═│▌ └Ñ╝¡╣÷╕ª (<code>www.quux-corp.dom</code>)
  1140.           ╜╟╟α╟╧┤┬ ░═├│╖│ ║╕└╠░╘ ╟╤┤┘. ┐▄║╬ └Ñ╝¡╣÷┤┬ ┐Σ├╗╟╤
  1141.           └┌╖ß╕ª │╗║╬ └Ñ╝¡╣÷┐í╝¡ ░í┴«┐┬┤┘.</p>
  1142.         </dd>
  1143.  
  1144.         <dt>╟╪░ß├Ñ:</dt>
  1145.  
  1146.         <dd>
  1147.           <p>╕╒└· ╣µ╚¡║«└╠ │╗║╬ └Ñ╝¡╣÷╕ª ║╕╚ú╟╧░φ ┐▄║╬ └Ñ╝¡╣÷╕╕└╠
  1148.           │╗║╬ └Ñ╝¡╣÷┐í╝¡ └┌╖ß╕ª ╛≥└╗ ╝÷ └╓░╘ ╟╤┤┘. ┤┘└╜░· ░░└╠
  1149.           ╞╨┼╢╟╩┼═╕╡ ╣µ╚¡║«└╗ ╝│┴ñ╟╤┤┘:</p>
  1150.  
  1151. <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>
  1154. </pre></example>
  1155.  
  1156.           <p>╜╟┴ª ╝│┴ñ╣«╣²┐í ╛╦╕┬░╘ ░φ├─╢≤. ╛°┤┬ └┌╖ß╕ª │╗║╬└√└╕╖╬
  1157.           proxy throughput ▒Γ┤╔└╗ ┼δ╟╪ ┐Σ├╗╟╧┤┬
  1158.           <module>mod_rewrite</module> ▒╘─ó└╗ └█╝║╟╤┤┘:</p>
  1159.  
  1160. <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>]
  1165. </pre></example>
  1166.         </dd>
  1167.       </dl>
  1168.  
  1169.     </section>
  1170.  
  1171.     <section>
  1172.  
  1173.       <title>╖╬╡σ╣δ╖▒╜╠ (║╬╟╧ ║╨╗Ω╟╧▒Γ)</title>
  1174.  
  1175.       <dl>
  1176.         <dt>╗≤╚▓╝│╕φ:</dt>
  1177.  
  1178.         <dd>
  1179.           <p><code>www.foo.com</code>└╟ ┼δ╜┼╖«└╗
  1180.           <code>www[0-5].foo.com</code> (├╤ ╝¡╣÷ 6┤δ)└╕╖╬ ║╨╗Ω╟╧░φ
  1181.           ╜═┤┘. ╛ε╢╗░╘ ╟╧┤┬░í?</p>
  1182.         </dd>
  1183.  
  1184.         <dt>╟╪░ß├Ñ:</dt>
  1185.  
  1186.         <dd>
  1187.           <p>╕┼┐∞ ┤┘╛τ╟╤ ╣µ╣²└╕╖╬ └╠ ╣«┴ª╕ª ╟╪░ß╟╥ ╝÷ └╓┤┘.
  1188.           ╕╒└· DNS╕ª ╗τ┐δ╟╤ └▀ ╛╦╖┴┴° ╣µ╣²└╗ ╝│╕φ╟╧░φ,
  1189.           <module>mod_rewrite</module>╕ª ╗τ┐δ╟╧┤┬ ░µ┐∞╕ª ╗∞╞∞║╕└┌:</p>
  1190.  
  1191.           <ol>
  1192.             <li>
  1193.               <strong>DNS Round-Robin</strong>
  1194.  
  1195.               <p>░í└σ ░ú┤▄╟╤ ╖╬╡σ╣δ╖▒╜╠ ╣µ╣²└║ <code>BIND</code>└╟
  1196.               DNS round-robin ╣µ╜─└╗ ╗τ┐δ╟╧┤┬ ░═└╠┤┘. ┤┘└╜░·
  1197.               ░░└╠ DNS A(address) ╖╣─┌╡σ┐í
  1198.               <code>www[0-9].foo.com</code>└╗ ╝│┴ñ╟╤┤┘.</p>
  1199.  
  1200. <example><pre>
  1201. www0   IN  A       1.2.3.1
  1202. www1   IN  A       1.2.3.2
  1203. www2   IN  A       1.2.3.3
  1204. www3   IN  A       1.2.3.4
  1205. www4   IN  A       1.2.3.5
  1206. www5   IN  A       1.2.3.6
  1207. </pre></example>
  1208.  
  1209.               <p>▒╫╕«░φ ┤┘└╜ ╟╫╕±└╗ ├▀░í╟╤┤┘:</p>
  1210.  
  1211. <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.
  1219. </pre></example>
  1220.  
  1221.               <p>└▀╕°╡╚ ░═├│╖│ ║╕└╠┴÷╕╕, ╜╟┴ª╖╬ <code>BIND</code>└╟
  1222.               └╟╡╡╡╚ ▒Γ┤╔└╠┤┘. └╠┴ª <code>www.foo.com</code>└╗
  1223.               ├ú└╕╕Θ, <code>BIND</code>┤┬ ╕┼╣° ╝°╝¡╕ª ┴╢▒▌╛┐
  1224.               ╣┘▓π░í╕τ <code>www0-www6</code>└╗ ╣▌╚»╟╤┤┘. ▒╫╖í╝¡
  1225.               ┼¼╢≤└╠╛≡╞«╡Θ└╗ ┐⌐╖» ╝¡╣÷╖╬ ║╨╗Ω╟╤┤┘. ▒╫╖»│¬ DNS
  1226.               ░╦╗÷ ░ß░·░í │╫╞«┐≈└╟ ┤┘╕Ñ │╫└╙╝¡╣÷┐í ─│╜¼╡╟┐⌐
  1227.               <code>www.foo.com</code>└╗ ├ú└║ ░ß░·░í ╞»┴ñ
  1228.               <code>wwwN.foo.com</code>└╠╕Θ ┼¼╢≤└╠╛≡╞«└╟ ┤┘└╜
  1229.               ┐Σ├╗╡Θ╡╡ ░░└║ <code>wwwN.foo.com</code>└╕╖╬
  1230.               ║╕│╗┴÷▒Γ╢º╣«┐í ┐╧║«╟╤ ╖╬╡σ╣δ╖▒╜╠ ▒Γ╣²└╠ ╛╞┤╘└╗
  1231.               ┴╓└╟╟╧╢≤. ▒╫╖»│¬ ┼⌐░╘ ║╕╕Θ ┐Σ├╗└╠ ┐⌐╖» └Ñ╝¡╣÷┐í
  1232.               ║╨╗Ω╡╟╣╟╖╬ ╚┐░·░í ┴┴┤┘.</p>
  1233.             </li>
  1234.  
  1235.             <li>
  1236.               <strong>DNS ╖╬╡σ╣δ╖▒╜╠</strong>
  1237.  
  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
  1242.               5 ╟┴╖╬▒╫╖Ñ└╠┤┘.</p>
  1243.             </li>
  1244.  
  1245.             <li>
  1246.               <strong>Proxy Throughput Round-Robin</strong>
  1247.  
  1248.               <p>└╠ ╣µ╣²└║ <module>mod_rewrite</module>┐═ proxy
  1249.               throughput ▒Γ┤╔└╗ ╗τ┐δ╟╤┤┘. ╕╒└· DNS┐í ┤┘└╜ ╟╫╕±└╗
  1250.               ╗τ┐δ╟╧┐⌐ <code>www0.foo.com</code>└╠ ╜╟┴ª
  1251.               <code>www.foo.com</code>└╗ └ⁿ┤π╟╧░╘ ╟╤┤┘</p>
  1252.  
  1253. <example><pre>
  1254. www    IN  CNAME   www0.foo.com.
  1255. </pre></example>
  1256.  
  1257.               <p>▒╫╕«░φ <code>www0.foo.com</code>└╗ ╟┴╖╧╜├└ⁿ┐δ
  1258.               ╝¡╣÷╖╬ ║»░µ╟╤┤┘. ┴∩, URL└╗ ╣▐└╕╕Θ ╝¡╣÷┤┬ │╗║╬
  1259.               ╟┴╖╧╜├╕ª ┼δ╟╪ ┤┘╕Ñ 5┤δ ╝¡╣÷┴▀ (<code>www1-www5</code>)
  1260.               ╟╤┤δ╖╬ ║╕│╗▒Γ╕╕ ╟╤┤┘. └╠╕ª └º╟╪ ╕╒└· ╕≡╡τ URL└╗
  1261.               ╖╬╡σ╣δ╖▒╜╠ ╜║┼⌐╕│╞« <code>lb.pl</code>╖╬ ║╕│╗┤┬
  1262.               ▒╘─ó└╗ ╕╕╡τ┤┘.</p>
  1263.  
  1264. <example><pre>
  1265. RewriteEngine on
  1266. RewriteMap    lb      prg:/path/to/lb.pl
  1267. RewriteRule   ^/(.+)$ ${lb:$1}           [P,L]
  1268. </pre></example>
  1269.  
  1270.               <p><code>lb.pl</code>└╗ └█╝║╟╤┤┘:</p>
  1271.  
  1272. <example><pre>
  1273. #!/path/to/perl
  1274. ##
  1275. ##  lb.pl -- ╖╬╡σ╣δ╖▒╜╠ ╜║┼⌐╕│╞«
  1276. ##
  1277.  
  1278. $| = 1;
  1279.  
  1280. $name   = "www";     # ▒Γ║╗ ╚ú╜║╞«╕φ
  1281. $first  = 1;         # ├╣╣°┬░ ╝¡╣÷ (└┌╜┼└╠ 0└╠▒Γ ╢º╣«┐í, 0└╗ ╗τ┐δ╟╧┴÷ ╛╩┤┬┤┘)
  1282. $last   = 5;         # round-robin┐í╝¡ ╕╢┴÷╕╖ ╝¡╣÷
  1283. $domain = "foo.dom"; # ╡╡╕▐└╬╕φ
  1284.  
  1285. $cnt = 0;
  1286. while (<STDIN>) {
  1287.     $cnt = (($cnt+1) % ($last+1-$first));
  1288.     $server = sprintf("%s%d.%s", $name, $cnt+$first, $domain);
  1289.     print "http://$server/$_";
  1290. }
  1291.  
  1292. ##EOF##
  1293. </pre></example>
  1294.  
  1295.               <note>╕╢┴÷╕╖ ┴╓└╟: ┐╓ └╠ ╣µ╣²└╠ └»┐δ╟╤░í?
  1296.               <code>www0.foo.com</code>┐í ║╬┤π└╠ ░í┴÷╛╩┤┬░í?
  1297.               ╣░╖╨, ║╬┤π└╠ ╡╚┤┘. ▒╫╖»│¬ ┤▄╝°╟╤ proxy throughput
  1298.               ┐Σ├╗╕╕ ╟╧▒Γ╢º╣«┐í ▒ª┬·┤┘! ╕≡╡τ SSI, CGI, ePerl
  1299.               ╡ε└║ └ⁿ└√└╕╖╬ ┤┘╕Ñ ╝¡╣÷░í ├│╕«╟╤┤┘. └╠░═└╠ ╟┘╜╔└╠┤┘.</note>
  1300.             </li>
  1301.  
  1302.             <li>
  1303.               <strong>╟╧╡σ┐■╛ε/TCP Round-Robin</strong>
  1304.  
  1305.               <p>╟╧╡σ┐■╛ε╕ª ╗τ┐δ╟╤ ╟╪░ß├Ñ╡╡ └╓┤┘. Cisco┤┬ TCP/IP
  1306.               ╝÷┴╪┐í╝¡ ╖╬╡σ╣δ╖▒╜╠└╗ ╟╧┤┬ LocalDirector╢≤┤┬ ▒½╣░└╗
  1307.               ╞╟┤┘. ╜╟┴ª╖╬┤┬ └Ñ╝¡╣÷▒║ ╛╒┤▄┐í └º─í╟╧┤┬ └╧┴╛└╟
  1308.               ╚╕╖╬╝÷┴╪ ░╘└╠╞«┐■└╠┤┘. └┌▒▌└╠ ├µ║╨╟╧░φ ░φ╝║┤╔
  1309.               ╟╪░ß├Ñ└╠ ╟╩┐Σ╟╧┤┘╕Θ └╠░═└╗ ╗τ┐δ╟╧╢≤.</p>
  1310.             </li>
  1311.           </ol>
  1312.         </dd>
  1313.       </dl>
  1314.  
  1315.     </section>
  1316.  
  1317.     <section>
  1318.  
  1319.       <title>╗⌡╖╬┐ε MIME-type, ╗⌡╖╬┐ε ╝¡║±╜║</title>
  1320.  
  1321.       <dl>
  1322.         <dt>╗≤╚▓╝│╕φ:</dt>
  1323.  
  1324.         <dd>
  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>
  1338.  
  1339. <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>]
  1342. </pre></example>
  1343.  
  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>
  1352.  
  1353. <example><pre>
  1354. /internal/cgi/user/swwidx?i=/u/user/foo/
  1355. </pre></example>
  1356.  
  1357.           <p>▒≥▓√╟╧┴÷ ╛╩┤┘. ╕╡┼⌐┐í ┐╡┐¬└╟ └º─í<strong>┐═</strong>
  1358.           CGI └º─í╕ª <strong>╕≡╡╬</strong> └√╛ε╛▀ ╟╧▒Γ╢º╣«└╠┤┘.
  1359.           ┐╡┐¬└╗ └τ▒╕╝║╟╤┤┘╕Θ ┐⌐╖» ╟╧└╠╞█╕╡┼⌐╕ª ╝÷┴ñ╟╧┤┬╡Ñ ╕╣└║
  1360.           ╜├░ú└╠ ░╔╕▒ ░═└╠┤┘.</p>
  1361.         </dd>
  1362.  
  1363.         <dt>╟╪░ß├Ñ:</dt>
  1364.  
  1365.         <dd>
  1366.           <p>╟╪░ß├Ñ└║ └┌╡┐└╕╖╬ └√└²╟╤ CGI╕ª ╜╟╟α╟╧┤┬ ╗⌡╖╬┐ε
  1367.           ╞»║░╟╤ URL ╟ⁿ╜─└╗ ╕╕╡σ┤┬ ░═└╠┤┘. ┤┘└╜░· ░░└╠ ╝│┴ñ╟╤┤┘:</p>
  1368.  
  1369. <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
  1372. </pre></example>
  1373.  
  1374.           <p>└╠┴ª <code>/u/user/foo/</code>└╗ ░╦╗÷╟╧┤┬ ╕╡┼⌐┤┬
  1375.           ┤┘└╜░· ░░┤┘</p>
  1376.  
  1377. <example><pre>
  1378. HREF="*"
  1379. /u/user/foo/* (???)
  1380. </pre></example>
  1381.  
  1382.           <p>│╗║╬└√└╕╖╬ ┤┘└╜░· ░░└╠ └┌╡┐║»╚»╡╚┤┘</p>
  1383.  
  1384. <example><pre>
  1385. /internal/cgi/user/wwwidx?i=/u/user/foo/
  1386. </pre></example>
  1387.  
  1388.           <p>░░└║ ╣µ╣²└╕╖╬ ╕╡┼⌐ ╡┌┐í <code>:log</code>╕ª ╗τ┐δ╟╧┐⌐
  1389.           ┴ó▒┘ ╖╬▒╫ CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╥ ╝÷ └╓┤┘.</p>
  1390.         </dd>
  1391.       </dl>
  1392.  
  1393.     </section>
  1394.  
  1395.     <section>
  1396.  
  1397.       <title>┴ñ└√┐í╝¡ ╡┐└√└╕╖╬</title>
  1398.  
  1399.       <dl>
  1400.         <dt>╗≤╚▓╝│╕φ:</dt>
  1401.  
  1402.         <dd>
  1403.           <p>╛ε╢╗░╘ ║Ω╢≤┐∞└·┐═ ╗τ┐δ└┌░í ╕≡╕ú░╘ └┌┐¼╜║╖┤░╘ ┴ñ└√
  1404.           ╞Σ└╠┴÷ <code>foo.html</code>└╗ ╡┐└√└╬ <code>foo.cgi</code>╖╬
  1405.           ║»░µ╟╥ ╝÷ └╓│¬.</p>
  1406.         </dd>
  1407.  
  1408.         <dt>╟╪░ß├Ñ:</dt>
  1409.  
  1410.         <dd>
  1411.           <p>URL└╗ CGI ╜║┼⌐╕│╞«╖╬ └τ└█╝║╟╧░φ, MIME-type└╗ ╝÷┴ñ╟╧┐⌐
  1412.           CGI ╜║┼⌐╕│╞«╖╬ ╜╟╟α╟╧░╘ ╟╤┤┘. ▒╫╖í╝¡
  1413.           <code>/~quux/foo.html</code>╕ª ┐Σ├╗╟╧╕Θ │╗║╬└√└╕╖╬
  1414.           <code>/~quux/foo.cgi</code>╕ª ╜╟╟α╟╧░╘ ╡╚┤┘.</p>
  1415.  
  1416. <example><pre>
  1417. RewriteEngine  on
  1418. RewriteBase    /~quux/
  1419. RewriteRule    ^foo\.<strong>html</strong>$  foo.<strong>cgi</strong>  [T=<strong>application/x-httpd-cgi</strong>]
  1420. </pre></example>
  1421.         </dd>
  1422.       </dl>
  1423.  
  1424.     </section>
  1425.  
  1426.     <section>
  1427.  
  1428.       <title>┴∩╝« ─┴┼┘├≈ └τ╗²╝║</title>
  1429.  
  1430.       <dl>
  1431.         <dt>╗≤╚▓╝│╕φ:</dt>
  1432.  
  1433.         <dd>
  1434.           <p>└╠ ╣µ╣²└║ ╜╟╖╬ ║±▒Γ└╠┤┘: ╡┐└√└╕╖╬ ╞Σ└╠┴÷╕ª ╗²╝║╟╧┴÷╕╕,
  1435.           ┴ñ└√└╕╖╬ ╞Σ└╠┴÷╕ª ╝¡║±╜║╟╤┤┘. ┴∩, ╞Σ└╠┴÷┤┬ ╝°╝÷╟╧░╘
  1436.           (╞─└╧╜├╜║┼█┐í╝¡ └╨└║ │╗┐δ└╗ ▒╫┤δ╖╬) ┴ñ└√ ╞Σ└╠┴÷╖╬
  1437.           └ⁿ┤▐╡╟┴÷╕╕, ╛°└╗ ░µ┐∞ └Ñ╝¡╣÷░í ╡┐└√└╕╖╬ ╗²╝║╟╤┤┘.
  1438.           ▒╫╖»╕Θ ┤⌐░í (╚ñ└║ cron └█╛≈└╠) ┴ñ└√ ─┴┼┘├≈╕ª ┴÷┐∞┴÷╛╩┤┬
  1439.           ╟╤ CGI░í ╗²╝║╟╤ ╞Σ└╠┴÷╕ª ┴ñ└√└╕╖╬ ╝¡║±╜║╟╤┤┘. ─┴┼┘├≈╕ª
  1440.           ┴÷┐∞╕Θ │╗┐δ└╗ ░╗╜┼╟╤┤┘.</p>
  1441.         </dd>
  1442.  
  1443.         <dt>╟╪░ß├Ñ:</dt>
  1444.  
  1445.         <dd>
  1446.           ┤┘└╜ ▒╘─ó└╗ ╗τ┐δ╟╤┤┘:
  1447.  
  1448. <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]
  1451. </pre></example>
  1452.  
  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>
  1462.         </dd>
  1463.       </dl>
  1464.  
  1465.     </section>
  1466.  
  1467.     <section>
  1468.  
  1469.       <title>└┌╡┐└╕╖╬ ╗⌡╖╬ ░φ─º╟╧┤┬ ╣«╝¡</title>
  1470.  
  1471.       <dl>
  1472.         <dt>╗≤╚▓╝│╕φ:</dt>
  1473.  
  1474.         <dd>
  1475.           <p>║╣└Γ╟╤ └Ñ╞Σ└╠┴÷╕ª ╕╕╡Θ╢º ╞φ┴²└┌░í │╗┐δ└╗ ╝÷┴ñ╟╥
  1476.           ╢º╕╢┤┘ └┌╡┐└╕╖╬ ╞Σ└╠┴÷╕ª ╗⌡╖╬ ░φ─º╟╧┤┬ └Ñ║Ω╢≤┐∞└·░í
  1477.           └╓└╕╕Θ ╛≤╕╢│¬ ┴┴└╗▒ε? ║╥░í┤╔╟╤░í?</p>
  1478.         </dd>
  1479.  
  1480.         <dt>╟╪░ß├Ñ:</dt>
  1481.  
  1482.         <dd>
  1483.           <p>░í┤╔╟╧┤┘! MIME multipart ▒Γ┤╔░· └Ñ╝¡╣÷ NPH ▒Γ┤╔,
  1484.           <module>mod_rewrite</module>└╟ URL ┴╢└█ ┤╔╖┬└╗ ░ß╟╒╟╧╕Θ
  1485.           ╡╚┤┘. ╕╒└·, ╗⌡╖╬┐ε URL ▒Γ┤╔└╗ ╕╕╡τ┤┘: URL┐í
  1486.           <code>:refresh</code>╕ª ├▀░í╟╧▒Γ╕╕ ╟╧╕Θ ╞─└╧╜├╜║┼█┐í╝¡
  1487.           ╝÷┴ñ╡╔ ╢º╕╢┤┘ ╗⌡╖╬ ░φ─º╟╤┤┘.</p>
  1488.  
  1489. <example><pre>
  1490. RewriteRule   ^(/[uge]/[^/]+/?.*):refresh  /internal/cgi/apache/nph-refresh?f=$1
  1491. </pre></example>
  1492.  
  1493.           <p>└╠┴ª ┤┘└╜ URL┐í ┴ó▒┘╟╧╕Θ</p>
  1494.  
  1495. <example><pre>
  1496. /u/foo/bar/page.html:refresh
  1497. </pre></example>
  1498.  
  1499.           <p>┤┘└╜ URL└╗ │╗║╬└√└╕╖╬ ║╬╕Ñ┤┘</p>
  1500.  
  1501. <example><pre>
  1502. /internal/cgi/apache/nph-refresh?f=/u/foo/bar/page.html
  1503. </pre></example>
  1504.  
  1505.           <p>└╠┴ª NPH-CGI ╜║┼⌐╕│╞«╕╕ │▓╛╥┤┘. ║╕┼δ "╡╢└┌┐í░╘
  1506.           ┐¼╜└└╕╖╬ │▓░▄╡╥"└╠╢≤░φ ╕╗╟╧┴÷╕╕ ;-) │¬┤┬ └╠░═╡╡ ┴ª░°╟╤┤┘.</p>
  1507.  
  1508. <example><pre>
  1509. #!/sw/bin/perl
  1510. ##
  1511. ##  nph-refresh -- NPH/CGI script for auto refreshing pages
  1512. ##  Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
  1513. ##
  1514. $| = 1;
  1515.  
  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\"";
  1524. }
  1525. $QS_s = 1 if ($QS_s eq '');
  1526. $QS_n = 3600 if ($QS_n eq '');
  1527. if ($QS_f 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";
  1531.     exit(0);
  1532. }
  1533. if (! -f $QS_f) {
  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";
  1537.     exit(0);
  1538. }
  1539.  
  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;
  1545. }
  1546.  
  1547. sub print_http_headers_multipart_next {
  1548.     print "\n--$bound\n";
  1549. }
  1550.  
  1551. sub print_http_headers_multipart_end {
  1552.     print "\n--$bound--\n";
  1553. }
  1554.  
  1555. sub displayhtml {
  1556.     local($buffer) = @_;
  1557.     $len = length($buffer);
  1558.     print "Content-type: text/html\n";
  1559.     print "Content-length: $len\n\n";
  1560.     print $buffer;
  1561. }
  1562.  
  1563. sub readfile {
  1564.     local($file) = @_;
  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);
  1570.     close(FP);
  1571.     return $buffer;
  1572. }
  1573.  
  1574. $buffer = &readfile($QS_f);
  1575. &print_http_headers_multipart_begin;
  1576. &displayhtml($buffer);
  1577.  
  1578. sub mystat {
  1579.     local($file) = $_[0];
  1580.     local($time);
  1581.  
  1582.     ($x, $x, $x, $x, $x, $x, $x, $x, $x, $mtime) = stat($file);
  1583.     return $mtime;
  1584. }
  1585.  
  1586. $mtimeL = &mystat($QS_f);
  1587. $mtime = $mtime;
  1588. for ($n = 0; $n &lt; $QS_n; $n++) {
  1589.     while (1) {
  1590.         $mtime = &mystat($QS_f);
  1591.         if ($mtime ne $mtimeL) {
  1592.             $mtimeL = $mtime;
  1593.             sleep(2);
  1594.             $buffer = &readfile($QS_f);
  1595.             &print_http_headers_multipart_next;
  1596.             &displayhtml($buffer);
  1597.             sleep(5);
  1598.             $mtimeL = &mystat($QS_f);
  1599.             last;
  1600.         }
  1601.         sleep($QS_s);
  1602.     }
  1603. }
  1604.  
  1605. &print_http_headers_multipart_end;
  1606.  
  1607. exit(0);
  1608.  
  1609. ##EOF##
  1610. </pre></example>
  1611.         </dd>
  1612.       </dl>
  1613.  
  1614.     </section>
  1615.  
  1616.     <section>
  1617.  
  1618.       <title>┤δ╖«└╟ ░í╗≤╚ú╜║╞«</title>
  1619.  
  1620.       <dl>
  1621.         <dt>╗≤╚▓╝│╕φ:</dt>
  1622.  
  1623.         <dd>
  1624.           <p>░í╗≤╚ú╜║╞«░í ╕ε░│╕╕ └╓┤┘╕Θ ╛╞╞──í└╟ <directive
  1625.           type="section" module="core">VirtualHost</directive>
  1626.           ▒Γ┤╔└╠ └▀ ╡┐└█╟╤┤┘. ▒╫╖»│¬ ░í╗≤╚ú╜║╞«░í ╝÷╣Θ░│ └╓┤┬
  1627.           ISP╢≤╕Θ └╠ ▒Γ┤╔└╠ ├╓╝▒└║ ╛╞┤╧┤┘.</p>
  1628.         </dd>
  1629.  
  1630.         <dt>╟╪░ß├Ñ:</dt>
  1631.  
  1632.         <dd>
  1633.           <p>└╠ ▒Γ┤╔└╗ ┴ª░°╟╧╖┴╕Θ <dfn>Proxy Throughput</dfn>
  1634.           ▒Γ┤╔└╗ (╟├╖í▒╫ <code>[P]</code>) ╗τ┐δ╟╧┐⌐ ┐▄║╬ └Ñ╞Σ└╠┴÷
  1635.           ╚ñ└║ └ⁿ├╝ ┐▄║╬ └Ñ┐╡┐¬└╗ ┐∞╕«└╟ └╠╕º░°░ú┐í ┤δ└└╟╤┤┘:</p>
  1636.  
  1637. <example><pre>
  1638. ##
  1639. ##  vhost.map
  1640. ##
  1641. www.vhost1.dom:80  /path/to/docroot/vhost1
  1642. www.vhost2.dom:80  /path/to/docroot/vhost2
  1643.      :
  1644. www.vhostN.dom:80  /path/to/docroot/vhostN
  1645. </pre></example>
  1646.  
  1647. <example><pre>
  1648. ##
  1649. ##  httpd.conf
  1650. ##
  1651.     :
  1652. #   ╕«┤┘└╠╖║╞«╟╥╢º ┴ñ▒╘ ╚ú╜║╞«╕φ└╗ ╗τ┐δ╟╤┤┘.
  1653. UseCanonicalName on
  1654.  
  1655.     :
  1656. #   ░í╗≤╚ú╜║╞«╕ª CLF ╟ⁿ╜─ ╛╒┐í ├▀░í╟╤┤┘
  1657. CustomLog  /path/to/access_log  "%{VHOST}e %h %l %u %t \"%r\" %>s %b"
  1658.     :
  1659.  
  1660. #   ┴╓╝¡╣÷┐í╝¡ └τ└█╝║ ┐ú┴°└╗ ╗τ┐δ╟╤┤┘
  1661. RewriteEngine on
  1662.  
  1663. #   ╡╬ ╕╩└╗ ┴ñ└╟╟╤┤┘: ╟╧│¬┤┬ URL└╗ ░φ─í░φ,
  1664. #   ┤┘╕Ñ ╟╧│¬┤┬ ░í╗≤╚ú╜║╞«║░ DocumentRoot╕ª
  1665. #   ┴ñ└╟╟╤┤┘.
  1666. RewriteMap    lowercase    int:tolower
  1667. RewriteMap    vhost        txt:/path/to/vhost.map
  1668.  
  1669. #   └╠┴ª ┼⌐░φ ║╣└Γ╟╤ ▒╘─ó ╟╤░│╕ª ╗τ┐δ╟╧┐⌐
  1670. #   ░í╗≤╚ú╜║╞«╖╬ ┤δ└└╟╤┤┘.
  1671. #
  1672. #   1. ░í╗≤╚ú╜║╞«╡Θ└╠ ░░└╠ ╗τ┐δ╟╧┤┬ └º─í┤┬ ┤δ└└╟╧┴÷ ╛╩┤┬┤┘
  1673. RewriteCond   %{REQUEST_URI}  !^/commonurl1/.*
  1674. RewriteCond   %{REQUEST_URI}  !^/commonurl2/.*
  1675.     :
  1676. RewriteCond   %{REQUEST_URI}  !^/commonurlN/.*
  1677. #
  1678. #   2. ┐∞╕«░í ╟÷└τ ╗τ┐δ╟╧┤┬ ╣µ╣²└╠ Host ╟∞┤⌡╕ª
  1679. #      ░í╗≤╚ú╜║╞«╕ª ┴÷┐°╟╧╣╟╖╬
  1680. #      Host ╟∞┤⌡░í └╓┤┬┴÷ ╚«└╬╟╤┤┘
  1681. RewriteCond   %{HTTP_HOST}  !^$
  1682. #
  1683. #   3. ╚ú╜║╞«╕φ└╗ ╝╥╣«└┌╖╬ ╕╕╡τ┤┘
  1684. RewriteCond   ${lowercase:%{HTTP_HOST}|NONE}  ^(.+)$
  1685. #
  1686. #   4. vhost.map┐í╝¡ ╚ú╜║╞«╕φ└╗ ├ú░φ
  1687. #      ░µ╖╬└╧╢º╕╕ ▒Γ╛∩╟╤┤┘
  1688. #      (└º┐í╝¡ "NONE"└║ ╛╞┤╧┤┘)
  1689. RewriteCond   ${vhost:%1}  ^(/.*)$
  1690. #
  1691. #   5. ╕╢┴÷╕╖└╕╖╬ URL└╗ ╣«╝¡ └º─í╖╬ ┤δ└└╟╧░φ
  1692. #      ╖╬▒╫┐í │▓▒Γ▒Γ└º╟╪ ░í╗≤╚ú╜║╞«╕ª ▒Γ╛∩╟╪ ╡╨┤┘
  1693. RewriteRule   ^/(.*)$   %1/$1  [E=VHOST:${lowercase:%{HTTP_HOST}}]
  1694.     :
  1695. </pre></example>
  1696.         </dd>
  1697.       </dl>
  1698.  
  1699.     </section>
  1700.  
  1701.   </section>
  1702.  
  1703.   <section id="access">
  1704.  
  1705.     <title>┴ó▒┘ ┴ª╟╤</title>
  1706.  
  1707.     <section>
  1708.  
  1709.       <title>╖╬║┐ ╕╖▒Γ</title>
  1710.  
  1711.       <dl>
  1712.         <dt>╗≤╚▓╝│╕φ:</dt>
  1713.  
  1714.         <dd>
  1715.           <p>╛ε╢╗░╘ ╟╧╕Θ ╞»┴ñ └Ñ░°░ú└╟ ╞Σ└╠┴÷╕ª ▒▄╛ε╕≡└╕┤┬ ▒═┬·└║
  1716.           ╖╬║┐└╗ ╕╖└╗ ╝÷ └╓│¬? "Robot Exclusion Protocol" ╟╫╕±└╗
  1717.           └·└σ╟╤ <code>/robots.txt</code> ╞─└╧└║ ║╕┼δ └╠╖▒ ╖╬║┐└╗
  1718.           ╕╖┤┬╡Ñ ├µ║╨╟╧┴÷ ╛╩┤┘.</p>
  1719.         </dd>
  1720.  
  1721.         <dt>╟╪░ß├Ñ:</dt>
  1722.  
  1723.         <dd>
  1724.           <p>(╛╞╕╢╡╡ ╡≡╖║┼Σ╕«░í ▒φ╛ε╝¡ ╖╬║┐└╠ ╡╣╛╞┤┘┤╧╕Θ ╝¡╣÷┐í
  1725.           ║╬┤π└╠ ┼½ ░µ┐∞) └Ñ░°░ú <code>/~quux/foo/arc/</code>┐í
  1726.           └╓┤┬ URL╡Θ└╗ ░┼║╬╟╧┤┬ ▒╘─ó└╗ ╗τ┐δ╟╤┤┘. ┐∞╕«┤┬ ╞»┴ñ
  1727.           ╖╬║┐└╟ ┴ó▒┘└╗ ╕╖╛╞╛▀ ╟╤┤┘. ┴∩, ╖╬║┐└╗ ╜╟╟α╟╧┤┬ ╚ú╜║╞«╕ª
  1728.           ╕╖┤┬ ░═└╕╖╬┤┬ ║╥├µ║╨╟╧╕τ, ▒╫ ╚ú╜║╞«└╟ ╗τ┐δ└┌╡╡ ╕╖╛╞╣÷╕«░╘
  1729.           ╡╚┤┘. User-Agent HTTP ╟∞┤⌡ ┴ñ║╕╡╡ ║±▒│╟╤┤┘.</p>
  1730.  
  1731. <example><pre>
  1732. RewriteCond %{HTTP_USER_AGENT}   ^<strong>NameOfBadRobot</strong>.*
  1733. RewriteCond %{REMOTE_ADDR}       ^<strong>123\.45\.67\.[8-9]</strong>$
  1734. RewriteRule ^<strong>/~quux/foo/arc/</strong>.+   -   [<strong>F</strong>]
  1735. </pre></example>
  1736.         </dd>
  1737.       </dl>
  1738.  
  1739.     </section>
  1740.  
  1741.     <section>
  1742.  
  1743.       <title>▒╫╕▓ ╞█░í▒Γ ╣µ┴÷</title>
  1744.  
  1745.       <dl>
  1746.         <dt>╗≤╚▓╝│╕φ:</dt>
  1747.  
  1748.         <dd>
  1749.           <p><code>http://www.quux-corp.de/~quux/</code>┐í └╓┤┬
  1750.           ╞Σ└╠┴÷╡Θ└╠ GIF ▒╫╕▓└╗ ╞≈╟╘╟╤┤┘░φ ░í┴ñ╟╧└┌. └╠ ▒╫╕▓└╠
  1751.           ╕┌└╓╛ε╝¡, ┤┘╕Ñ ╗τ╢≈╡Θ└╠ └┌╜┼└╟ ╞Σ└╠┴÷┐í ┴≈┴ó ╕╡┼⌐╕ª
  1752.           ░╟┤┘. ╝¡╣÷┐í ║╥╟╩┐Σ╟╤ ║╬┤π└╠ ╡╟╣╟╖╬ ╕╖░φ ╜═┤┘.</p>
  1753.         </dd>
  1754.  
  1755.         <dt>╟╪░ß├Ñ:</dt>
  1756.  
  1757.         <dd>
  1758.           <p>▒╫╕▓└╗ 100% ║╕╚ú╟╥ ╝÷┤┬ ╛°┴÷╕╕, ├╓╝╥╟╤ ║Ω╢≤┐∞└·░í
  1759.           HTTP Referer ╟∞┤⌡╕ª ║╕│╗┤┬ ░µ┐∞ ┴ª╟╤╟╥ ╝÷ └╓┤┘.</p>
  1760.  
  1761. <example><pre>
  1762. RewriteCond %{HTTP_REFERER} <strong>!^$</strong>
  1763. RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC]
  1764. RewriteRule <strong>.*\.gif$</strong>        -                                    [F]
  1765. </pre></example>
  1766.  
  1767. <example><pre>
  1768. RewriteCond %{HTTP_REFERER}         !^$
  1769. RewriteCond %{HTTP_REFERER}         !.*/foo-with-gif\.html$
  1770. RewriteRule <strong>^inlined-in-foo\.gif$</strong>   -                        [F]
  1771. </pre></example>
  1772.         </dd>
  1773.       </dl>
  1774.  
  1775.     </section>
  1776.  
  1777.     <section>
  1778.  
  1779.       <title>╚ú╜║╞« ░┼║╬</title>
  1780.  
  1781.       <dl>
  1782.         <dt>╗≤╚▓╝│╕φ:</dt>
  1783.  
  1784.         <dd>
  1785.           <p>╛ε╢╗░╘ ┐▄║╬┐í╝¡ ╝¡╣÷┐í ┴ó▒┘╟╥ ╝÷ ╛°┤┬ ╚ú╜║╞« ╕±╖╧└╗
  1786.           ╝│┴ñ╟╥ ╝÷ └╓│¬?</p>
  1787.         </dd>
  1788.  
  1789.         <dt>╟╪░ß├Ñ:</dt>
  1790.  
  1791.         <dd>
  1792.           <p>╛╞╞──í >= 1.3b6┐í╝¡:</p>
  1793.  
  1794. <example><pre>
  1795. RewriteEngine on
  1796. RewriteMap    hosts-deny  txt:/path/to/hosts.deny
  1797. RewriteCond   ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND [OR]
  1798. RewriteCond   ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND
  1799. RewriteRule   ^/.*  -  [F]
  1800. </pre></example>
  1801.  
  1802.           <p>╛╞╞──í <= 1.3b6┐í╝¡:</p>
  1803.  
  1804. <example><pre>
  1805. RewriteEngine on
  1806. RewriteMap    hosts-deny  txt:/path/to/hosts.deny
  1807. RewriteRule   ^/(.*)$ ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}/$1
  1808. RewriteRule   !^NOT-FOUND/.* - [F]
  1809. RewriteRule   ^NOT-FOUND/(.*)$ ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}/$1
  1810. RewriteRule   !^NOT-FOUND/.* - [F]
  1811. RewriteRule   ^NOT-FOUND/(.*)$ /$1
  1812. </pre></example>
  1813.  
  1814. <example><pre>
  1815. ##
  1816. ##  hosts.deny
  1817. ##
  1818. ##  ┴╓└╟! └╠░═└║ ╕±╖╧├│╖│ ║╕└╠┴÷╕╕ ╕±╖╧└╠ ╛╞┤╧╢≤ ╕╩└╠┤┘.
  1819. ##        mod_rewrite┤┬ └╠ ┴ñ║╕╕ª ┼░/░¬ ╜╓└╕╖╬ ╟╪╝«╟╧▒Γ╢º╣«┐í,
  1820. ##        ░ó ╟╫╕±└╟ ░¬ └┌╕«┐í ├╓╝╥╟╤ "-"░í ╟╩┐Σ╟╧┤┘.
  1821. ##
  1822.  
  1823. 193.102.180.41 -
  1824. bsdti1.sdm.de  -
  1825. 192.76.162.40  -
  1826. </pre></example>
  1827.         </dd>
  1828.       </dl>
  1829.  
  1830.     </section>
  1831.  
  1832.     <section>
  1833.  
  1834.       <title>╟┴╖╧╜├ ░┼║╬</title>
  1835.  
  1836.       <dl>
  1837.         <dt>╗≤╚▓╝│╕φ:</dt>
  1838.  
  1839.         <dd>
  1840.           <p>╛ε╢╗░╘ ╞»┴ñ ╚ú╜║╞« ╚ñ└║ ╞»┴ñ ╚ú╜║╞«└╟ ╗τ┐δ└┌░í
  1841.           ╛╞╞──í ╟┴╖╧╜├╕ª ╗τ┐δ╟╥ ╝÷ ╛°╡╡╖╧ ╟╧│¬?</p>
  1842.         </dd>
  1843.  
  1844.         <dt>╟╪░ß├Ñ:</dt>
  1845.  
  1846.         <dd>
  1847.           <p>╕╒└· ╛╞╞──í └Ñ╝¡╣÷╕ª ──╞─└╧╟╥╢º ▒╕╝║╞─└╧┐í╝¡
  1848.           <module>mod_rewrite</module>░í <module>mod_proxy</module>
  1849.           ╛╞╖í┐í(!) └╓╛ε╛▀ ╟╤┤┘. ▒╫╖»╕Θ <module>mod_rewrite</module>┤┬
  1850.           <module>mod_proxy</module> <em>└╠└ⁿ┐í</em> ║╥╕░┤┘.
  1851.           └╠┴ª ┤┘└╜░· ░░└╠ ╞»┴ñ ╚ú╜║╞«╕ª ░┼║╬╟╧╡╡╖╧ ╝│┴ñ╟╤┤┘...</p>
  1852.  
  1853. <example><pre>
  1854. RewriteCond %{REMOTE_HOST} <strong>^badhost\.mydomain\.com$</strong>
  1855. RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
  1856. </pre></example>
  1857.  
  1858.           <p>...▒╫╕«░φ ┤┘└╜└║ user@host┐í ╡√╢≤ ░┼║╬╟╤┤┘:</p>
  1859.  
  1860. <example><pre>
  1861. RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST}  <strong>^badguy@badhost\.mydomain\.com$</strong>
  1862. RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
  1863. </pre></example>
  1864.         </dd>
  1865.       </dl>
  1866.  
  1867.     </section>
  1868.  
  1869.     <section>
  1870.  
  1871.       <title>╞»║░╟╤ └╬┴⌡ ╣µ╜─</title>
  1872.  
  1873.       <dl>
  1874.         <dt>╗≤╚░╝│╕φ:</dt>
  1875.  
  1876.         <dd>
  1877.           <p>░í▓√ ╕┼┐∞ ╞»║░╟╤ └╬┴⌡└╠ ╟╩┐Σ╟╥ ╢º░í └╓┤┘. ┐╣╕ª
  1878.           ╡Θ╛ε, ╣╠╕« ╝│┴ñ╟╪╡╨ ╗τ┐δ└┌└╬┴÷ ░╦╗τ╟╤┤┘. └╠╡Θ┐í░╘╕╕
  1879.           (<module>mod_auth</module>└╟ Basic Auth╕ª ╗τ┐δ╟╤
  1880.           ░µ┐∞┐═ ┤▐╕«) ║░┤┘╕Ñ ╣░└╜╛°└╠ ┴ó▒┘└╗ ╟π┐δ╟╤┤┘.</p>
  1881.         </dd>
  1882.  
  1883.         <dt>╟╪░ß├Ñ:</dt>
  1884.  
  1885.         <dd>
  1886.           <p>─ú▒╕╕╕ ┴ó▒┘└╠ ░í┤╔╟╧╡╡╖╧ └τ└█╝║ ▒╘─ó╡Θ└╗ ╗τ┐δ╟╤┤┘:</p>
  1887.  
  1888. <example><pre>
  1889. RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>!^friend1@client1.quux-corp\.com$</strong>
  1890. RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>!^friend2</strong>@client2.quux-corp\.com$
  1891. RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>!^friend3</strong>@client3.quux-corp\.com$
  1892. RewriteRule ^/~quux/only-for-friends/      -                                 [F]
  1893. </pre></example>
  1894.         </dd>
  1895.       </dl>
  1896.  
  1897.     </section>
  1898.  
  1899.     <section>
  1900.  
  1901.       <title>Referer▒Γ╣▌ ║»╚»▒Γ(deflector)</title>
  1902.  
  1903.       <dl>
  1904.         <dt>╗≤╚▓╝│╕φ:</dt>
  1905.  
  1906.         <dd>
  1907.           <p>"Referer" HTTP ╟∞┤⌡┐í ╡√╢≤ ┐°╟╧┤┬┤δ╖╬ ┬ⁿ┴╢╞Σ└╠┴÷╕ª
  1908.           ╝│┴ñ╟╥ ╝÷ └╓┤┬ └»┐¼╟╤ URL ║»╚»▒Γ╕ª ╕╕╡Θ ╝÷ └╓┤┬░í?</p>
  1909.         </dd>
  1910.  
  1911.         <dt>╟╪░ß├Ñ:</dt>
  1912.  
  1913.         <dd>
  1914.           <p>┤┘└╜░· ░░└╠ ║╣└Γ╟╤ ▒╘─ó└╗...</p>
  1915.  
  1916. <example><pre>
  1917. RewriteMap  deflector txt:/path/to/deflector.map
  1918.  
  1919. RewriteCond %{HTTP_REFERER} !=""
  1920. RewriteCond ${deflector:%{HTTP_REFERER}} ^-$
  1921. RewriteRule ^.* %{HTTP_REFERER} [R,L]
  1922.  
  1923. RewriteCond %{HTTP_REFERER} !=""
  1924. RewriteCond ${deflector:%{HTTP_REFERER}|NOT-FOUND} !=NOT-FOUND
  1925. RewriteRule ^.* ${deflector:%{HTTP_REFERER}} [R,L]
  1926. </pre></example>
  1927.  
  1928.           <p>... └τ└█╝║ ╕╩░· ░░└╠ ╗τ┐δ╟╤┤┘:</p>
  1929.  
  1930. <example><pre>
  1931. ##
  1932. ##  deflector.map
  1933. ##
  1934.  
  1935. http://www.badguys.com/bad/index.html    -
  1936. http://www.badguys.com/bad/index2.html   -
  1937. http://www.badguys.com/bad/index3.html   http://somewhere.com/
  1938. </pre></example>
  1939.  
  1940.           <p>▒╫╖»╕Θ ┐Σ├╗└╗ └┌╡┐└╕╖╬ (╕╩┐í╝¡ ░¬└╕╖╬ "<code>-</code>"╕ª
  1941.           ╗τ┐δ╟╤ ░µ┐∞) ┬ⁿ┴╢╞Σ└╠┴÷│¬ (URL└╠ ╕╩┐í └╓┤┬ ░µ┐∞ ╡╬╣°┬░
  1942.           ╛╞▒╘╕╒╞«╖╬) ╞»┴ñ URL╖╬ ╕«┤┘└╠╖║╝╟╟╤┤┘.</p>
  1943.         </dd>
  1944.       </dl>
  1945.  
  1946.     </section>
  1947.  
  1948.   </section>
  1949.  
  1950.   <section id="other">
  1951.  
  1952.     <title>▒Γ┼╕</title>
  1953.  
  1954.     <section>
  1955.  
  1956.       <title>┐▄║╬ └τ└█╝║ ┐ú┴°</title>
  1957.  
  1958.       <dl>
  1959.         <dt>╗≤╚▓╝│╕φ:</dt>
  1960.  
  1961.         <dd>
  1962.           <p>FAQ: ╛ε╢╗░╘ └╠╖▒└·╖▒ └Γ┤┘╟╤ ╣«┴ª╕ª ╟« ╝÷ └╓┤┬░í?
  1963.           <module>mod_rewrite</module>╖╬┤┬ ╟╪░ß├Ñ└╠ ╛╚║╕└╬┤┘...</p>
  1964.         </dd>
  1965.  
  1966.         <dt>╟╪░ß├Ñ:</dt>
  1967.  
  1968.         <dd>
  1969.           <p>┐▄║╬ <directive
  1970.           module="mod_rewrite">RewriteMap</directive>└╗ ╗τ┐δ╟╧╢≤.
  1971.           ┴∩, ╟┴╖╬▒╫╖Ñ└╠ <directive
  1972.           module="mod_rewrite">RewriteMap</directive> ┐¬╟╥└╗
  1973.           ╟╤┤┘. ╟┴╖╬▒╫╖Ñ└║ ╛╞╞──í░í ╜├└█╟╥╢º ╜├└█╟╧┐⌐
  1974.           <code>STDIN</code>┐í╝¡ ┐Σ├╗╟╤ URL└╗ ╣▐░φ, (░░└║ ╝°╝¡╖╬!)
  1975.           ░ß░· (║╕┼δ └τ└█╝║╡╚) URL└╗ <code>STDOUT</code>┐í ├Γ╖┬╟╤┤┘.</p>
  1976.  
  1977. <example><pre>
  1978. RewriteEngine on
  1979. RewriteMap    quux-map       <strong>prg:</strong>/path/to/map.quux.pl
  1980. RewriteRule   ^/~quux/(.*)$  /~quux/<strong>${quux-map:$1}</strong>
  1981. </pre></example>
  1982.  
  1983. <example><pre>
  1984. #!/path/to/perl
  1985.  
  1986. #   ╛╞╞──í ╝¡╣÷░í ╕╪├▀┴÷ ╛╩╡╡╖╧
  1987. #   └╘├Γ╖┬ ╣÷╞█╕ª ╗τ┐δ╟╧┴÷ ╛╩┤┬┤┘
  1988. $| = 1;
  1989.  
  1990. #   stdin┐í╝¡ ╟╤┴┘╛┐ URL└╗ └╨░φ
  1991. #   stdout┐í ║»╚»╟╤ URL└╗ ├Γ╖┬╟╤┤┘
  1992. while (<>) {
  1993.     s|^foo/|bar/|;
  1994.     print $_;
  1995. }
  1996. </pre></example>
  1997.  
  1998.           <p>╝│╕φ╟╧▒Γ└º╟╪ ╕≡╡τ <code>/~quux/foo/...</code> URL└╗
  1999.           <code>/~quux/bar/...</code>╖╬ └τ└█╝║╟╧┤┬ ╜║┼⌐╕│╞«╕ª
  2000.           ┐╣╖╬ ╡Θ╛·┤┘. ╜╟┴ª╖╬ ╕╢└╜┤δ╖╬ ╟┴╖╬▒╫╖í╣╓╟╥ ╝÷ └╓┤┘.
  2001.           ▒╫╖»│¬ └╧╣▌ ╗τ┐δ└┌░í └╠╖▒ ╕╩└╗ <strong>╗τ┐δ╟╥</strong>
  2002.           ╝÷ └╓┤┘░φ ╟╧┤⌡╢≤░φ, ┐└┴≈ ╜├╜║┼█ ░ⁿ╕«└┌╕╕└╠ ╕╩└╗
  2003.           <strong>┴ñ└╟╟╪╛▀</strong> ╟╘└╗ ┴╓└╟╟╧╢≤.</p>
  2004.         </dd>
  2005.       </dl>
  2006.  
  2007.     </section>
  2008.  
  2009.   </section>
  2010.  
  2011. </manualpage>
  2012.  
  2013.