diff options
author | Justin Erenkrantz <jerenkrantz@apache.org> | 2005-01-05 23:08:27 +0000 |
---|---|---|
committer | Justin Erenkrantz <jerenkrantz@apache.org> | 2005-01-05 23:08:27 +0000 |
commit | 4d88d4dbec7dbda9442564fa49b2772cfa5b73a2 (patch) | |
tree | 4a6f7e47cedf439990c586f4330d804b6e410731 /htdocs | |
parent | a9a465e5a27a606b642d144ab0c352b69360e773 (diff) | |
download | httpd-4d88d4dbec7dbda9442564fa49b2772cfa5b73a2.tar.gz |
The return of the htdocs for Apache 1.3 sans history.
Imported from tip of the httpd-docs-1.3 CVS repository. (just the htdocs dir)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@124296 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'htdocs')
333 files changed, 85216 insertions, 0 deletions
diff --git a/htdocs/README.rus b/htdocs/README.rus new file mode 100644 index 0000000000..b33f25657d --- /dev/null +++ b/htdocs/README.rus @@ -0,0 +1,18 @@ +Apache test page, russian translation by Pavel Polischouk <pavelp@iil.intel.com> +Different russian encodings provided: + + Name iconv's codepage + ++index.html.dos - CP-866 aka ibm866; used by DOS and OS/2. +*index.html.iso - ISO-8859-5 +*index.html.koi - KOI8-R; used by UNIX flavours and Mac. + index.html.ucs2 - UCS-2 aka UNICODE aka UNICODEBIG aka UTF-16 + index.html.ucs4 - UCS-4 +*index.html.utf8 - UTF-8 +*index.html.win - CP-1251 aka windows-1251 aka MS-CYRILLIC; used by Windows + +* - supported by Netscape 4.72. ++ - Netscape is supposed to support this encoding, but fails to +read this page on Linux. Should be OK on systems like DOS and OS/2 where this +encoding is the default. +Does anyone need the UCS-2 and UCS-4?
\ No newline at end of file diff --git a/htdocs/apache_pb.gif b/htdocs/apache_pb.gif Binary files differnew file mode 100644 index 0000000000..3a1c139fc4 --- /dev/null +++ b/htdocs/apache_pb.gif diff --git a/htdocs/index.html.ca b/htdocs/index.html.ca new file mode 100644 index 0000000000..002cec2222 --- /dev/null +++ b/htdocs/index.html.ca @@ -0,0 +1,51 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Pàgina de prova de l'instal·lació d'Apache</title> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + <h1 align="CENTER"> + Funciona ! El servidor web Apache està instal·lat + en aquest lloc ! + </h1> + <p> + Si veu aquesta pàgina, es que els propietaris d'aquest domini + acaben d'instal·lar satisfactòriament el + <a href="http://www.apache.org/foundation/preFAQ.html">servidor web Apache</a>. + Ara han d'afegir contingut en aquest directori i substituir aquesta pàgina, + o bè dirigir aquest servidor cap al contingut real. + </p> + <hr> + <blockquote> + Si està veien aquesta pàgina i no es la que esperava, posis en + contacte amb + <strong>l'administrador web d'aquest lloc.</strong> + (Provi d'enviar un correu electrònic a <samp><Webmaster@<em>domain</em>></samp>.) + Encara que aquest lloc està utilitzant el programari Apache, es gairebé segur + que no tè res a veure amb el Grup Apache, per tant + no enviï cap correu electrònic als autors d'Apache referent a aquest lloc o al seu contingut. + Si es que ho fa, el seu missatge serà <strong><big>ignorat</big></strong>. + </blockquote> + <hr> + <p> + La + <a href="manual/">documentació</a> + d'Apache ha estat inclosa en aquesta distribució. + </p> + <p> + L'administrador de web pot utilitzar lliurement la imatge d'aquí sota + en el servidor web equipat amb el programari Apache. + Gràcies per utilitzar Apache ! + </p> + <div align="CENTER"> + <img src="apache_pb.gif" alt=""> + </div> + </body> +</html> diff --git a/htdocs/index.html.cz b/htdocs/index.html.cz new file mode 100644 index 0000000000..edadd7b3b4 --- /dev/null +++ b/htdocs/index.html.cz @@ -0,0 +1,51 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> + <title>Testovac strnka instalace web serveru Apache</title> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + <h1 align="CENTER"> + Funguje to! Na tomto serveru b Apache! + </h1> + <p> + Pokud vidte tuto zprvu, sprvce tohoto potae prv spn + nainstaloval Apache web server. + Te jet mus doplnit obsah a nahradit tuto standardn uvtac + strnku, nebo pesmrovat server na skutenou domovskou strnku. + </p> + <hr> + <blockquote> + Pokud vidte tuto zprvu msto oekvan domovsk strnky, + <strong>kontaktujte, prosm, sprvce pslunho web + serveru.</strong> (Zkuste poslat e-mail na adresu + <samp><Webmaster@<em>domain</em>></samp>.) + Pestoe tento server pouv program Apache, tm jist nem nic + spolenho s Apache Group, proto prosm neposlejte e-maily o tomto + serveru nebo jeho obsahu autorm Apache. Pokud to udlte, budeme + vae zprvy <strong><big>ignorovat</big></strong>. + </blockquote> + <hr> + <p> + Zde najdete + <a + href="manual/" + >dokumentaci</a> + Apache (anglicky) obsaenou v tto distribuci. + </p> + <p> + Nsledujc logo me bt pouito bez omezen na web serveru s + programem Apache. Dkujeme za pouit Apache! + </p> + <div align="CENTER"> + <img src="apache_pb.gif" alt=""> + </div> + </body> +</html> diff --git a/htdocs/index.html.de b/htdocs/index.html.de new file mode 100644 index 0000000000..7d2d4e860a --- /dev/null +++ b/htdocs/index.html.de @@ -0,0 +1,61 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Testseite fuer die Apache-Installation auf dieser Web Site</title> + <!-- Translated Wed Aug 18 11:04:02 GMT 1999 - Martin.Kraemer@Fujitsu-Siemens.com --> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + <h1 align="CENTER"> + Es klappt! Der Apache Web-Server ist auf dieser Web-Site installiert! + </h1> + <p> + Wenn Sie diese Seite sehen, dann bedeutet das, dass die + Eigentümer dieser Domäne soeben einen neuen + <a href="http://www.apache.org/foundation/preFAQ.html">Apache Web-Server</a> + erfolgreich installiert haben. Jetzt muss noch der + richtige Web-Inhalt zugefügt und diese Platzhalter-Seite + ersetzt werden (oder der Web-Server für den Zugriff auf den + richtigen Inhalt umkonfiguriert werden). + </P> + <hr> + <blockquote> + Wenn Sie diese Seite an Stelle einer anderen erwarteten Web-Site + sehen sollten, dann <strong>nehmen Sie bitte Kontakt mit dem + Eigentümer dieser Site auf</strong> (Versuchen Sie, eine EMail + an <samp><Webmaster@<em>domänenname</em>></samp> + zu senden)!<br> + <p> + Obwohl der Eigentümer dieser Domäne die Apache + Web-Server Software verwendet, hat diese Web-Site ziemlich sicher + keinerlei Verbindung mit der <em>Apache Software Foundation</em> + (die diese Software kostenlos vertreibt). Es besteht also + <big><strong>keinerlei Veranlassung</strong></big>, eine EMail an + die Entwickler der Software zu senden. Sollten Sie das dennoch + tun, wird Ihre Mail stillschweigend + <strong><big>ignoriert</big></strong>. + </blockquote> + <hr> + <p> + Die englische <a + href="manual/">Online-Dokumentation</a> für die + Apache Web-Server Software ist Bestandteil dieser + Software-Distribution. + </p> + <p> + Dem <i>WebMaster</i> dieser Web-Site steht es frei, das + untenstehende "Powered by Apache"-Logo auf einem Apache-basierten + Web-Server zu verwenden.<br> + Vielen Dank, dass Sie Apache gewählt haben! + </p> + <div align="CENTER"> + <img src="apache_pb.gif" alt="Powered by Apache!"> + </div> + </body> +</html> diff --git a/htdocs/index.html.dk b/htdocs/index.html.dk new file mode 100644 index 0000000000..273277268c --- /dev/null +++ b/htdocs/index.html.dk @@ -0,0 +1,47 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Prøveside for Apache installationen</title> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + <h1 align="CENTER"> + Det virkede! Apache Webserveren er installeret på denne maskine! + </h1> + <p> + Hvis du kan se denne side, så har dem som ejer dette domæne lige + installeret <a href="http://www.apache.org/foundation/preFAQ.html">Apache Webserveren</a>. + Du må nu placere web sider i dette directory og fjerne denne side, eller + konfigurere serveren til at anvende et andet directory. + </p> + <hr> + <blockquote> + Hvis du ser denne side istedet for en anden forventet side, <strong>kontakt + venligst administratoren for den server du prøver at kontakte.</strong> + (Prøv at sende mail til <samp><Webmaster@<em>domain</em>></samp>.) + Apachegruppen har ikke noget at gøre med denne site, så det vil ikke + hjælpe at sende mail to Apache udviklerne angående denne site. + </blockquote> + <hr> + <p> + Apache- + <a + href="manual/" + >documentationen</a> + er inkluderet med denne distribution. + </p> + <p> + Webmasteren af denne site må gerne bruge den følgende grafik + på en Apache-drevet webserver. Mange tak for at bruge Apache! + </p> + <div align="CENTER"> + <img src="apache_pb.gif" alt=""> + </div> + </body> +</html> diff --git a/htdocs/index.html.ee b/htdocs/index.html.ee new file mode 100644 index 0000000000..7208921650 --- /dev/null +++ b/htdocs/index.html.ee @@ -0,0 +1,53 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Apache veebiserveri installatsiooni testlehekülg</title> + <!-- Original translation: Ahti Heinla, ahti@ahti.bluemoon.ee, Thu Aug 19 12:57:48 GMT 1999 --> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + <h1 align="CENTER"> + Kujuta pilti, käima läks! Apache veebiserver on installeeritud! + </h1> + <p> + Kui Sa näed seda lehekülge, siis selle domeeni omanikud on + edukalt hakkama saanud <a href="http://www.apache.org/foundation/preFAQ.html">Apache veebiserveri</a> + installeerimisega. Järgmiseks peaks nad selle lehekülje asendama + misiganes materjaliga, mida nad oma veebisaidis näidata tahavad, + või siis juhatama veebiserverile kätte tegeliku materjali + asukoha. + </p> + <hr> + <blockquote> + Kui Sa ootasid siin leheküljel näha hoopis midagi muud, + siis palun <strong>võta ühendust selle veebisaidi + administraatoriga.</strong> (Võid näiteks kirjutada aadressil + <samp><Webmaster@<em>domain</em>></samp>.) Kuigi see veebisait + kasutab Apache tarkvara, pole ta peaaegu kindlasti mitte Apache Group'iga + mingil muul moel seotud. Seega, palun ära kirjuta selle saidi + asjus Apache autoritele. Kui sa seda teed, siis sinu kirja + <strong><big>ignoreeritakse</big></strong>. + </blockquote> + <hr> + <p> + Ka Apache + <a + href="manual/" + >dokumentatsioon</a> + on selles distributsioonis olemas. + </p> + <p> + Kohalik veebmeister võib vabalt kasutada allpool olevat + pilti oma Apache veebiserveril. Aitäh Apachet kasutamast! + </p> + <div align="CENTER"> + <img src="apache_pb.gif" alt=""> + </div> + </body> +</html> diff --git a/htdocs/index.html.el b/htdocs/index.html.el new file mode 100644 index 0000000000..b194dc565e --- /dev/null +++ b/htdocs/index.html.el @@ -0,0 +1,37 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EL"> +<html> + <head> + <title> Apache</title> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + + +<p> + , <a href="http://www.apache.org/foundation/preFAQ.html"> WWW Apache</a> . . + +<p><hr width="50%" size="8"> + +<h2 align="CENTER"> ;</h2> + +<p> + Apache. <strong> .</strong> Apache (The Apache Software Foundation) WWW . . + +<p><hr width="50%" size="8"> + + +<p> + <a href="manual/"></a> Apache . + +<p> + / WWW Apache. Apache! + +<div align="CENTER"><img src="apache_pb.gif" alt=""></div> +</body> +</html> diff --git a/htdocs/index.html.en b/htdocs/index.html.en new file mode 100644 index 0000000000..dc4c5182e5 --- /dev/null +++ b/htdocs/index.html.en @@ -0,0 +1,38 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title>Test Page for Apache Installation</title> +</head> +<!-- Background white, links blue (unvisited), navy (visited), red +(active) --> +<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" +vlink="#000080" alink="#FF0000"> +<p>If you can see this, it means that the installation of the <a +href="http://www.apache.org/foundation/preFAQ.html">Apache web +server</a> software on this system was successful. You may now add +content to this directory and replace this page.</p> + +<hr width="50%" size="8" /> +<h2 align="center">Seeing this instead of the website you +expected?</h2> + +<p>This page is here because the site administrator has changed the +configuration of this web server. Please <strong>contact the person +responsible for maintaining this server with questions.</strong> +The Apache Software Foundation, which wrote the web server software +this site administrator is using, has nothing to do with +maintaining this site and cannot help resolve configuration +issues.</p> + +<hr width="50%" size="8" /> +<p>The Apache <a href="manual/">documentation</a> has been included +with this distribution.</p> + +<p>You are free to use the image below on an Apache-powered web +server. Thanks for using Apache!</p> + +<div align="center"><img src="apache_pb.gif" alt="" /></div> +</body> +</html> + diff --git a/htdocs/index.html.es b/htdocs/index.html.es new file mode 100644 index 0000000000..b67fbb3dae --- /dev/null +++ b/htdocs/index.html.es @@ -0,0 +1,53 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//ES"> +<html> + <head> + <title>Pagína para probar la instalación de Apache</title> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + <h1 align="CENTER"> + ¡Funcionó! ¡El Servidor de Red Apache ha sido instalado en ese sitio! + </h1> + <p> + Si usted puede ver esta pagína, entonces los dueños de esta + maquína han instalado el + <a href="http://www.apache.org/foundation/preFAQ.html" + >Servidor de Red Apache</a> con exíto. Ahora deben + añadir contenido a este directorio + y reemplazar esta pagína, ó apuntar este servidor al contenido real. + </p> + <hr> + <blockquote> + Si usted esta leyendo esta pagína y no es lo que esperaba, por favor + <strong>contacte el administrador de este sitio.</strong> + (Trate de enviar correo electrónico a <samp><Webmaster@<em>domain</em>></samp>.) + Aunque este sitio esta utilizando el programa Apache es casi seguro + que no tiene ninguna conexión con el Apache Group, por eso favor de + no enviar correo sobre este sitio o su contenido a los autores de + Apache. Si lo hace, su mensaje sera + <strong><big>ignorado</big></strong>. + </blockquote> + <hr> + <p> + La + <a + href="manual/index.html" + >documentación</a> + de Apache ha sido incluida en esta distribución. + </p> + <p> + El administrador del sitio esta invitado a usar la siguiente + imagen para indicar que su sitio es servido por Apache. + ¡Gracias por usar Apache! + </p> + <div align="CENTER"> + <img src="apache_pb.gif" alt=""> + </div> + </body> +</html> diff --git a/htdocs/index.html.fr b/htdocs/index.html.fr new file mode 100644 index 0000000000..f8949b2d98 --- /dev/null +++ b/htdocs/index.html.fr @@ -0,0 +1,47 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <title>Page de test de l'installation d'Apache</title> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red +(active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + + +<p>Si vous lisez cette page, c'est que les propritaires de ce +domaine viennent d'installer le +serveur web Apache +avec succs. Ils doivent maintenant ajouter du contenu ce +rpertoire et remplacer cette page, ou bien faire pointer le serveur +vers l'endroit o se trouve le contenu rel du site.</p> + +<hr width="50%" size="8"> + +<h2 align="CENTER">Vous voyez cette page au lieu du site attendu ?</h2> + +<p>Vous voyez cette page parce que l'administrateur du site a modifi +la configuration de ce serveur Web. Veuillez contacter +<strong>l'administrateur du site concern</strong>. La Fondation +Apache (Apache Software Foundation), qui produit le logiciel Apache +utilis par ce site, n'a rien voir avec la maintenance de ce +site et ne peut intervenir sur sa configuration.</p> + +<hr width="50%" size="8"> + +<p>La <a href="manual/">documentation</a> Apache est incluse dans cette +distribution.</p> + +<p>Le webmaster de ce site peut librement utiliser l'image ci-dessous sur un +site web utilisant le logiciel Apache. Merci d'avoir choisi Apache !</p> + +<div align="CENTER"><img src="apache_pb.gif" alt=""></div> + +</body> +</html> diff --git a/htdocs/index.html.he.iso8859-8 b/htdocs/index.html.he.iso8859-8 new file mode 100644 index 0000000000..b3ca1558c5 --- /dev/null +++ b/htdocs/index.html.he.iso8859-8 @@ -0,0 +1,54 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-8"> + <title>Apache- </title> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + +<div align="CENTER"> + <p> + + <br> +<br>Apache + <br>!!! + <br> + <br>. + + +<p><hr width="50%" size="8"> + + <h2 align="CENTER">? </h2> + <p> + <br> , + <br>. + <br>.<strong> </strong> + <br> Apache Software Foundation + <br> , + <br> + . + +<p><hr width="50%" size="8"> + + <p> + <br> <a href="manual/index.html"> </a> + . + + + <p> + <br> + <br>.Apache '' + + !!!Apache- + + </div> +<div align="CENTER"><img src="apache_pb.gif" alt=""></div> +</body> +</html> diff --git a/htdocs/index.html.hu b/htdocs/index.html.hu new file mode 100644 index 0000000000..d92e7a2343 --- /dev/null +++ b/htdocs/index.html.hu @@ -0,0 +1,65 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Ezen a web oldalon az Apache-webszerver van teleptve!</title> + <!-- Translated Wed Jan 7 09:22:01 2004 - Lacza Vilmos at siemens dot com --> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red + (active) --> + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <h1 align="center">Talált! Ezen a web oldalon az + Apache-webszerver van telepítve!</h1> + <p> + Ha Ön ezt az oldalt látja, az azt jelenti, hogy + ennek a domain-nek a tulajdonosa éppen egy új + Apache webszervert telepített sikeresen. Most + még ezt a lapot a valós web tartalommal ki kell + egészíteni és a lapot + átalakítani (vagy a webszervert a valós + tartalmak eléréséhez át kell + konfigurálni). + </p> + <hr /> + <blockquote> + <p> + Ha Ön ezt a lapot egy másik várt weblap + helyett látná, <strong>vegye fel a kapcsolatot + ennek a lapnak a tulajdonosával!</strong> + (Kísérelje meg e-mail üzenet + küldését a + <samp><webmaster@<em>domain-név</em>></samp> + címre).<br /> + </p> + <p> + Annak ellenére, hogy ennek a domain-nek a tulajdonosa + az Apache webszerver szoftvert használja, ennek az + oldalnak semminemü kapcsolata nincs az <em>Apache + Software Foundation</em> szervezettel (amely ezt a szoftvert + ingyenesen terjeszti). <strong>Ebbõl kifolyólag + nem áll fenn semmilyen indok e-mail üzenet + küldésére a szoftver fejlesztõinek + címezve.</strong> Ha Ön mégis ezt + tenné, az Ön e-mail <strong><big>üzenete + törölve lesz</big></strong>. + </p> + </blockquote> + <hr /> + <p> + Az Apache-webszerver szoftver angol nyelvû <a + href="manual/">online dokumentációja</a> + része ennek a szoftvercsomagnak. + </p> + <p> + Ezen weblap webmesterének joga van az alul + elhelyezkedõ "Powered by Apache"-logót Apache + szoftveren alapuló webszerveren használni. + <br /> + Köszönet, hogy Ön az Apache szoftvert + választotta! + </p> + <div align="center"> + <img src="apache_pb.gif" alt="Powered by the Apache HTTP Server!"> + </div> + </body> +</html> diff --git a/htdocs/index.html.it b/htdocs/index.html.it new file mode 100644 index 0000000000..b18315542a --- /dev/null +++ b/htdocs/index.html.it @@ -0,0 +1,38 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <title>Pagina di prova dell'installazione di un sito Web con Apache</title> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#000080" alink="#FF0000"> + +<center> +<h1> +Funziona! Il Server Web Apache è stato installato su questo sito Web!</h1></center> +Se riuscite a vedere questa pagina, allora vuol dire che coloro che gestiscono +questo dominio hanno appena installato il software <a href="http://httpd.apache.org/">Web Server +Apache</a> correttamente. Ora è necessario aggiungere il vostro materiale +in questa directory e sostituire questa pagina di prova, oppure configurare +il server per far riferimento al vostro materiale se collocato altrove. +<p> +<hr> +<blockquote>Se state vedendo questa pagina invece del sito che pensavate, +vi preghiamo di <b>contattare l'amministratore del sito in questione.</b> +(Provate ad inviare un email a <tt><Webmaster@<i>domain</i>></tt>.) +Nonostante questo sito stia utilizzando il software Apache, questo non +vi garantisce nessun tipo di contatto diretto al Gruppo Apache, quindi +vi preghiamo di non inviare email riguardanti questo sito o il materiale +in esso contenuto agli autori di Apache. Ogni messaggio del genere verrà +<b><font size="+1">ignorato</font></b>.</blockquote> + +<hr> +<br>La <a href="manual/">documentazione</a> relativa di Apache +è inclusa nella distribuzione. +<p>Il Webmaster di questo sito è libero di utilizzare l'immagine qui sotto +su qualsiasi Web server potenziato con Apache. Grazie per aver scelto Apache! +<center> +<p><img src="apache_pb.gif" alt="" ></center> + +</body> +</html> diff --git a/htdocs/index.html.ja.jis b/htdocs/index.html.ja.jis new file mode 100644 index 0000000000..78e19376a3 --- /dev/null +++ b/htdocs/index.html.ja.jis @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + <title>Apache インスト・踉札觧離謄好肇據ジ</title> + </head> + <!-- English revision: 1.10 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + + <p>もしこのペ・踉札犬匹瓩燭里任△譴弌蓿繙就蔗痕鞜竏絎闥膀肬籬闔鱚徳儁蔗迪⊆蝟昭粡竚癈鷭п粐Ь苳餐鞜竏ぢウ瘢雹ェブサ・踉札のインスト・踉札襪海侶彁撒,婆技暴擦靴燭海箸魄嫐靴泙后鹿粡寂蝟赱齠洲痲筵娼あなたは、このディレクトリに文書を加えたり、このペ・踉札犬鮹屬┐襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿蜆就軌ア蝴綵苳纂蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆あなたの予想に反して、このペ・踉札犬┐討い襪任靴腓逅擦職踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのペ・踉札犬蓮▲汽ぅ抜浜踉市がこの web サ・踉札个寮瀋蠅鯤儿垢靴燭燭瓩妨┐討い泙后鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑このサ・踉札个魎浜垢訐嫻い鮖辰討い詈墨⇒蹐鬚箸辰闔胼苳ぢください。 + このサイト管理圓僂靴討い繧ぢサ・踉札个魍靴蒹鞜竏囂胄鱚阨鈔癆蜿郤蝟昭粡竚癈鷭п粐Ьぢは、このサイトの web サ・踉札个隆浜箸牢愀犬覆鹿粡寂蝟赱齠洲痲筵娼サ・踉札个寮瀋蠅亡悗垢詭簑蠅魏魴茲垢襪海箸呂任泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿蜆就軌ア蝴綵苳纂蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢに関する<a href="manual/index.html">文書</a>は、この web + サ・踉札佛柯枴涼罎亡泙泙譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ以王踉擦硫菫蓮草痺蒹ぢを利用している web サ・踉札个忍踉捌由に使う瘢雹ことができます。 + Apache をご利用いただき、ありがとう瘢雹ございます!</p> + + <div align="center"><img src="apache_pb.gif" alt="" /></div> + </body> +</html> diff --git a/htdocs/index.html.kr.iso-kr b/htdocs/index.html.kr.iso-kr new file mode 100644 index 0000000000..f9c8b5d64e --- /dev/null +++ b/htdocs/index.html.kr.iso-kr @@ -0,0 +1,40 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//KR"> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=eucKR"> + <title> </title> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + + +<p> + <a href="http://www.apache.org/foundation/preFAQ.html">Apache </a> . . + +<p><hr width="50%" size="8"> + +<h2 align="CENTER"> ?</h2> + +<p> + . +<strong> .</strong> Apache Software Foundation + . + +<p><hr width="50%" size="8"> + + +<p> + <a href="manual/index.html"></a> . + +<p> + Apache . ! + +<div align="CENTER"><img src="apache_pb.gif" alt=""></div> +</body> +</html> diff --git a/htdocs/index.html.lb.utf8 b/htdocs/index.html.lb.utf8 new file mode 100644 index 0000000000..58b959789f --- /dev/null +++ b/htdocs/index.html.lb.utf8 @@ -0,0 +1,39 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <!-- Originally translated by Jean-Luc Widlowski, jean-luc.widlowski@jrc.it Thu Aug 19 13:00:18 GMT 1999 --> + <title>Test Page for Apache Installation on Web Site</title> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#000080" alink="#FF0000"> + +<center> +<h1> +Et huet geklappt! Den Apache Web Server as op dëser 'Web Site' installeiert!</h1></center> +Wann Dir die heiten Sait gesit, dann hun d'Proprietairen vun dëser 'domain' +elo just d'<a href="http://www.apache.org/foundation/preFAQ.html">Apache Web server</a> software +mat succés installeiert. Sie mussen allerdengs nach des Decksait +remplaceieren oder awer de Server op eng aner Sait mat dem richtigen contenu +em-dirigeieren. +<br> +<hr> +<blockquote>Wann Dir die heiten Sait anstell vun der site die Dir erwârt +hut gesitt, da contacteiert wannechglift den <b>administrator vun dem betraffener +site.</b> (Versicht én email no <tt><Webmaster@<i>domain</i>> +</tt><font face="Times New Roman,Times">ze +schecken.) Obwuel den heiten site </font>Apache software benotzt, as et +ball secher datt keng Verbindung mat der Apache Group existeiert, also scheckt +wannechglift keng email iwert desen site oder sein contenu zu den Apache +Autoren. Falls Dir dëst awer macht, get ären message +<b><font size="+2">ignoreiert.</font></b></blockquote> + +<hr> +<p>D'Apache <a href="manual/">documentation</a> ass dëser Ausgab +beigefücht. +<p>Dem Webmaster vun dem heitenen site steht et zou dest Bild ob engem +Apache-powered Web server ze presenteieren. Merci dat Dir Apache benotzt! +<center><img src="apache_pb.gif" alt="" ></center> + +</body> +</html> diff --git a/htdocs/index.html.nl b/htdocs/index.html.nl new file mode 100644 index 0000000000..88267d9cad --- /dev/null +++ b/htdocs/index.html.nl @@ -0,0 +1,54 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Test Pagina voor de Apache Installatie op deze Web Site</title> + <!-- Translated Tue Aug 17 20:57:17 GMT 1999 - dirkx@webweaving.org --> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + <h1 align="CENTER"> + Alles Werkt! De Apache Web Server is geinstalleerd op deze Web Site + </h1> + <p> + Mocht u deze pagina zien, dan betekent dat, dat de eigenaren van dit + domein zojuist een nieuwe <a href="http://httpd.apache.org/">Apache Web + Server</a> hebben geinstalleerd. Nu moet men nog de echte inhoud gaan + toevoegen, en moet men deze pagina gaan vervangen door de echte web + site. + </p> + <hr> + <blockquote> + Mocht u deze pagina zien, in plaats van de pagina of web site die u + verwachtte, neem dan <strong>contact op met de beheerder van + deze site</strong>. Bijvoorbeeld door een berichtje te sturen naar + <samp><Webmaster@<em>dit-domain</em>></samp>. + <p> + Alhoewel deze web site gebruik maakt van de Apache Software is er + verder geen enkele relatie tussen de beheerders van deze web site en + de Apache Groep (die de web software geschreven heeft). Het heeft dus + <big><strong>absoluut</strong></big> + geen zin de web software auteurs een emailtje te sturen. Mocht u dat + toch doen, dan wordt uw bericht gewoon <strong><big>genegeerd</big></strong>. + </blockquote> + <hr> + <p> + De + <a href="manual/index.html" >handleiding</a> voor de apache web + server software maakt deel uit van deze distributie. + </p> + <p> + Als beheerder of <i>webmaster</i> is het u toegestaan het onderstaande + plaatje vrijelijk te gebruiken op uw 'Apache Powered' web site. Bedankt + voor het kiezen voor, en gebruiken van, Apache! + </p> + <div align="CENTER"> + <img src="apache_pb.gif" alt="Klein 'Powered by Apache' Logotje"> + </div> + </body> +</html> diff --git a/htdocs/index.html.nn b/htdocs/index.html.nn new file mode 100644 index 0000000000..67db9570b0 --- /dev/null +++ b/htdocs/index.html.nn @@ -0,0 +1,48 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<HTML> + <HEAD> + <TITLE>Testside Apache-installasjon</TITLE> + </HEAD> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <BODY + BGCOLOR="#FFFFFF" + TEXT="#000000" + LINK="#0000FF" + VLINK="#000080" + ALINK="#FF0000" + > + <H1 ALIGN="CENTER"> + Det gjekk bra! Apache er no installert p denne maskina! + </H1> + <P> + Dersom du kan sj denne sida, har den eller dei som driv denne nettstaden + installert <A href="http://www.apache.org/foundation/preFAQ.html">Apache vevtenar</a>. + No m denne testsida erstattast med verkeleg innhald. + </P> + <HR> + <BLOCKQUOTE> + Dersom du hadde venta sj ei anna side enn denne, br du + <strong>ta kontakt med den som er ansvarleg for denne nettstaden</strong> + (Prv sende e-post til <SAMP><webmaster@<EM>domene</EM>></SAMP>.) + Sjlv om denne nettstaden vert kjrt p Apache, har den ingen annan + tilknytning til Apache-gruppa, som har utvikla programvaren. + Ver snill og ikkje send e-post om denne nettstaden eller + innhaldet du finn her til utviklarane i Apache-gruppa. + I s tilfelle vil frespurnaden <strong><BIG>ignorerast</BIG></strong>. + </BLOCKQUOTE> + <HR> + <P> + <A + HREF="manual/index.html" + >Dokumentasjon</A> + for Apache er inkludert i denne pakka. + </P> + <P> + Logoen under kan brukast p kva som helst av maskiner som kyrer Apache. + Takk for at du nyttar Apache! + </P> + <DIV ALIGN="CENTER"> + <IMG SRC="apache_pb.gif" ALT=""> + </DIV> + </BODY> +</HTML> diff --git a/htdocs/index.html.no b/htdocs/index.html.no new file mode 100644 index 0000000000..0432f84997 --- /dev/null +++ b/htdocs/index.html.no @@ -0,0 +1,48 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Testside Apache-installasjon</title> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + <h1 align="CENTER"> + Det gikk bra! Apache er n installert p denne maskinen! + </h1> + <p> + Hvis du kan se denne siden har den eller de som driver dette nettstedet + installert <a href="http://www.apache.org/foundation/preFAQ.html">Apache Web server</a>. + N m denne testsiden erstattes med virkelig innhold. + </p> + <hr> + <blockquote> + Hvis du hadde ventet se en annen side enn denne br du + <strong>ta kontakt med den som har ansvaret for nettstedet.</strong> + (Prv sende e-post til <samp><webmaster@<em>domene</em>></samp>.) + Selv om dette nettstedet kjres p Apache, har det ingen annen + tilknytning til Apache-gruppen som har utviklet programvaren. + Vennligst ikke send post angende dette nettstedet eller dets + innhold til Apache-gruppens programmerere. I s fall vil din henvendelse + bli <strong><big>ignorert</big></strong>. + </blockquote> + <hr> + <p> + <a + href="manual/index.html" + >Dokumentasjon</a> + for Apache er inkludert i denne pakken. + </p> + <p> + Logoen under kan benyttes p en hvilken som helst maskin som kjrer Apache. + Takk for at du benytter Apache! + </p> + <div align="CENTER"> + <img src="apache_pb.gif" alt=""> + </div> + </body> +</html> diff --git a/htdocs/index.html.po.iso-pl b/htdocs/index.html.po.iso-pl new file mode 100644 index 0000000000..471a69572e --- /dev/null +++ b/htdocs/index.html.po.iso-pl @@ -0,0 +1,40 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Strona testowa instalacji serwera Apache</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> + <!-- translated by Bart Grzybicki, bgrzybicki@morliny.pl - http://www.bgrzybicki.morliny.pl on 19th of December 2000 --> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + + +<p> +Jeeli strona ta jest widoczna, oznacza to poprawn instalacj serwera <a href="http://www.apache.org/foundation/preFAQ.html">Apache</a>. Mona ju zamieni zawarto tej witryny. + +<p><hr width="50%" size="8"> + +<h2 align="CENTER">Czy zamiast spodziewanej witryny WWW widoczna jest ta?</h2> + +<p> +Strona ta jest widoczna, poniewa administrator serwera WWW zmieni jego konfiguracj. +Prosz <strong>skontaktowa si z osob odpowiedzialn za zarzdzanie tym serwerem.</strong> Apache Software Foundation, producent oprogramowania serwerowego Apache, nie administruje t witryn i nie jest w stanie pomc w sprawach zwizanych z jej konfiguracj. + +<p><hr width="50%" size="8"> + + +<p> +Do niniejszej dystrybucji serwera Apache doczono anglojzyczn <a href="manual/index.html">dokumentacj</a>. + +<p> +Ponisze logo, "Powered by Apache", mona stosowa bez ogranicze. Dzikujemy za wybranie Apache'a! + +<div align="CENTER"><img src="apache_pb.gif" alt=""></div> +</body> +</html> diff --git a/htdocs/index.html.pt b/htdocs/index.html.pt new file mode 100644 index 0000000000..671042bc54 --- /dev/null +++ b/htdocs/index.html.pt @@ -0,0 +1,42 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Pgina de teste da instalao do Apache Web Server</title> +<!-- original translation for portuguese by Hugo Ramos, ramos@pop3r.com, Sat Jan 29 05:30:00 GMT 2000 --> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + + +<p> Se está a ver esta página significa que a instalação + do <a href="http://www.apache.org/foundation/preFAQ.html">Apache Web Server</a> foi efectuada + com sucesso. Pode agora adicionar conteúdo a esta directoria e substituir + esta página. +<p><hr width="50%" size="8"> + +<h2 align="CENTER">Está a ver esta página em vez do website que + esperava?</h2> + +<p> Esta página está neste momento activa porque o administrador + deste site alterou a configuração do web server. Por favor <strong>contacte + a pessoa responsável pela manutenção deste servidor.</strong> + A Fundação Apache Software (Apache Software Foundation), apesar + de ter produzido o web server que o administrador deste site está a usar, + não tem qualquer tipo de responsabilidade pela manutenção + deste nem pode ajudar a resolver problemas de configuração. +<p><hr width="50%" size="8"> + + +<p> A <a href="manual/index.html">documentação</a> foi incluída + juntamente com esta distribuição. +<p> A imagem abaixo pode ser usada livremente em qualquer site presente num servidor + com o Apache Web Server instalado. Obrigado por usar o Apache Web Server! +<div align="CENTER"><img src="apache_pb.gif" alt=""></div> +</body> +</html> diff --git a/htdocs/index.html.pt-br b/htdocs/index.html.pt-br new file mode 100644 index 0000000000..009e2a137a --- /dev/null +++ b/htdocs/index.html.pt-br @@ -0,0 +1,46 @@ +<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="GENERATOR" content="Mozilla/4.73 [en] (X11; I; Linux 2.2.15-4mdk i586) [Netscape]"> + <title>Página teste para a instalação do Apache no +Web Site</title> +<!-- original translation Ricardo Oliva, rfoliva@writeme.com, Thu Dec 07 +19:51:00 PST 2000 --> +<!-- Background white, links blue (unvisited), navy (visited), red + (active) --> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#000080" alink="#FF0000"> + +<center> +<h1> +Funcionou! O Apache Web Server foi instalado corretamente neste Web Site!</h1></center> +Se você está vendo esta página, isso quer dizer que o software +Apache +Web server foi instalado com sucesso. Agora, basta adicionar o conteúdo +ao diretório raiz e substituir esta página temporaria, ou apontar o servidor +para o seu conteúdo real. +<br> +<hr> +<blockquote> +<center> +<h3> +<b>Está vendo esta página em vez do site que esperava?</b></h3></center> +Esta página está sendo carregada, pois o administrador modificou as +configurações +deste servidor. Por favor, <b>contacte o administrador do site para esclarecimentos.</b> +(Tente enviar um e-mail para <tt><Webmaster@dominio></tt>.) A Apache +Server Foundation, que desenvolveu o software (web server) utilizado pelo +administrador, não tem nenhuma responsabilidade sobre a manutenção desta +página e não poderá ajudar a resolução de problemas de +configuração.</blockquote> + +<hr> +<p>O Apache <a href="manual/index.html">documentation</a> foi incluído +com esta distribuição. +<p>O Webmaster deste site é livre para utilizar a imagem abaixo num web +server utilizando o Apache. Obrigado por utilizar o Apache! +<center><img SRC="apache_pb.gif" ALT="" ></center> + +</body> +</html> diff --git a/htdocs/index.html.ru.cp-1251 b/htdocs/index.html.ru.cp-1251 new file mode 100644 index 0000000000..82ad768dd3 --- /dev/null +++ b/htdocs/index.html.ru.cp-1251 @@ -0,0 +1,34 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> + <meta name="GENERATOR" content="Mozilla/4.72 [koi8-r] (X11; U; Linux 2.2.12-20smp i686) [Netscape]"> + <title> Apache</title> +<!-- , : (), - (), () --> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#000080" alink="#FF0000"> + , , + <a href="http://www.apache.org/foundation/preFAQ.html">- Apache</a> + . + . +<p> +<hr width="50%" size="8"> +<center> +<h2> + ?</h2></center> + , + -. , <b> , + .</b> Apache Software +Foundation, -, +, + . +<p> +<hr width="50%" size="8"> +<p><a href="manual/index.html"></a> - Apache + . +<p> , , -, + Apache. Apache! +<center><img src="apache_pb.gif" alt="" ></center> + +</body> +</html> diff --git a/htdocs/index.html.ru.cp866 b/htdocs/index.html.ru.cp866 new file mode 100644 index 0000000000..f3335d6518 --- /dev/null +++ b/htdocs/index.html.ru.cp866 @@ -0,0 +1,34 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=ibm866"> + <meta name="GENERATOR" content="Mozilla/4.72 [koi8-r] (X11; U; Linux 2.2.12-20smp i686) [Netscape]"> + <title> Apache</title> +<!-- , : (), - (), () --> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#000080" alink="#FF0000"> + , , + <a href="http://www.apache.org/foundation/preFAQ.html">- Apache</a> + . + . +<p> +<hr width="50%" size="8"> +<center> +<h2> + ?</h2></center> + , + -. , <b> , + .</b> Apache Software +Foundation, -, +, + . +<p> +<hr width="50%" size="8"> +<p><a href="manual/index.html"></a> - Apache + . +<p> , , -, + Apache. Apache! +<center><img src="apache_pb.gif" alt="" ></center> + +</body> +</html> diff --git a/htdocs/index.html.ru.iso-ru b/htdocs/index.html.ru.iso-ru new file mode 100644 index 0000000000..4c758fea98 --- /dev/null +++ b/htdocs/index.html.ru.iso-ru @@ -0,0 +1,34 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-5"> + <meta name="GENERATOR" content="Mozilla/4.72 [koi8-r] (X11; U; Linux 2.2.12-20smp i686) [Netscape]"> + <title> Apache</title> +<!-- , : (), - (), () --> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#000080" alink="#FF0000"> + , , + <a href="http://www.apache.org/foundation/preFAQ.html">- Apache</a> + . + . +<p> +<hr width="50%" size="8"> +<center> +<h2> + ?</h2></center> + , + -. , <b> , + .</b> Apache Software +Foundation, -, +, + . +<p> +<hr width="50%" size="8"> +<p><a href="manual/index.html"></a> - Apache + . +<p> , , -, + Apache. Apache! +<center><img src="apache_pb.gif" alt="" ></center> + +</body> +</html> diff --git a/htdocs/index.html.ru.koi8-r b/htdocs/index.html.ru.koi8-r new file mode 100644 index 0000000000..344729424a --- /dev/null +++ b/htdocs/index.html.ru.koi8-r @@ -0,0 +1,34 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=koi8-r"> + <meta name="GENERATOR" content="Mozilla/4.72 [koi8-r] (X11; U; Linux 2.2.12-20smp i686) [Netscape]"> + <title> Apache</title> +<!-- , : (), - (), () --> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#000080" alink="#FF0000"> + , , + <a href="http://www.apache.org/foundation/preFAQ.html">- Apache</a> + . + . +<p> +<hr width="50%" size="8"> +<center> +<h2> + ?</h2></center> + , + -. , <b> , + .</b> Apache Software +Foundation, -, +, + . +<p> +<hr width="50%" size="8"> +<p><a href="manual/index.html"></a> - Apache + . +<p> , , -, + Apache. Apache! +<center><img src="apache_pb.gif" alt="" ></center> + +</body> +</html> diff --git a/htdocs/index.html.ru.ucs2 b/htdocs/index.html.ru.ucs2 Binary files differnew file mode 100644 index 0000000000..4d22a70a05 --- /dev/null +++ b/htdocs/index.html.ru.ucs2 diff --git a/htdocs/index.html.ru.ucs4 b/htdocs/index.html.ru.ucs4 Binary files differnew file mode 100644 index 0000000000..8db773e6a6 --- /dev/null +++ b/htdocs/index.html.ru.ucs4 diff --git a/htdocs/index.html.ru.utf8 b/htdocs/index.html.ru.utf8 new file mode 100644 index 0000000000..9889df4116 --- /dev/null +++ b/htdocs/index.html.ru.utf8 @@ -0,0 +1,34 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <meta name="GENERATOR" content="Mozilla/4.72 [koi8-r] (X11; U; Linux 2.2.12-20smp i686) [Netscape]"> + <title> Apache</title> +<!-- , : (), - (), () --> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#000080" alink="#FF0000"> + , , + <a href="http://www.apache.org/foundation/preFAQ.html">- Apache</a> + . + . +<p> +<hr width="50%" size="8"> +<center> +<h2> + ?</h2></center> + , + -. , <b> , + .</b> Apache Software +Foundation, -, +, + . +<p> +<hr width="50%" size="8"> +<p><a href="manual/index.html"></a> - Apache + . +<p> , , -, + Apache. Apache! +<center><img src="apache_pb.gif" alt="" ></center> + +</body> +</html> diff --git a/htdocs/index.html.se b/htdocs/index.html.se new file mode 100644 index 0000000000..532b3a49c3 --- /dev/null +++ b/htdocs/index.html.se @@ -0,0 +1,43 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Testsida för Apache-installationen</title> + </head> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + <h1 align="CENTER"> + Det fungerade! Apache är installerad på denna maskin! + </h1> + <p> + Om du kan se denna sida så har ägaren till denna maskin installerat + webbserverprogramvaran <a href="http://www.apache.org/foundation/preFAQ.html">Apache</a>.<br> + Denne måste nu placera webbsidor i detta bibliotek och ändra på denna sida, eller + peka servern mot ett annat bibliotek. + </p> + <hr> + <blockquote> + Om du förväntat dig att se något helt annat här än denna sida, <strong>kontakta + vänligen administratören för den webbserver du försöker komma i kontakt med.</strong> + (Försök att skicka ett brev till <samp><webmaster@<em>domain</em>></samp>.) + Apache Software Foundation har inget med denna webbplats att göra, så det är ingen idé + att skicka mail till författarna av Apache rörande denna webbplats. + </blockquote> + <hr> + <p> + Apache-<a href="manual/index.html">dokumentationen</a> är inkluderad i denna distribution. + </p> + <p> + Administratören av denna webbplats får gärna använda följande bild till en webbplats som använder Apache.<br> + Tack för att ni använder Apache! + </p> + <div align="CENTER"> + <img src="apache_pb.gif" alt=""> + </div> + </body> +</html> diff --git a/htdocs/index.html.zh-tw.big5 b/htdocs/index.html.zh-tw.big5 new file mode 100644 index 0000000000..78a3a55818 --- /dev/null +++ b/htdocs/index.html.zh-tw.big5 @@ -0,0 +1,46 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>w Apache </title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active)--> + <body + bgcolor="#FFFFFF" + text="#000000" + link="#0000FF" + vlink="#000080" + alink="#FF0000" + > + + +<p> +pGAiHAoA +<a href="http://www.apache.org/foundation/preFAQ.html">Apache Web Server</a> +wgw\C +AiHW[eoAoC<p> + +<p><hr width="50%" size="8"> + +<h2 align="CENTER">SAQ ?</h2> + +<p> +oH|boAO]zwgo]wC +YD, P <strong>@oAHp</strong>C +Apache n|A]NO}ooMnAPLYA +B]LkAM]wWDC + +<p><hr width="50%" size="8"> + +<p> +Apache +<a href="manual/index.html"></a> +wg]tbC + +<p> +AiHb Apache AWAUA +Pz ApacheI +<br><br> +<div align="CENTER"><img src="apache_pb.gif" alt=""></div> + +</body> +</html> diff --git a/htdocs/manual/LICENSE b/htdocs/manual/LICENSE new file mode 100644 index 0000000000..57bc88a15a --- /dev/null +++ b/htdocs/manual/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/htdocs/manual/bind.html.en b/htdocs/manual/bind.html.en new file mode 100644 index 0000000000..8ea715b512 --- /dev/null +++ b/htdocs/manual/bind.html.en @@ -0,0 +1,130 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Setting which addresses and ports Apache uses</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Setting which addresses and ports Apache + uses</h1> + <hr /> + When Apache starts, it connects to some port and address on the + local machine and waits for incoming requests. By default, it + listens to all addresses on the machine, and to the port as + specified by the <tt>Port</tt> directive in the server + configuration. However, it can be told to listen to more the + one port, or to listen to only selected addresses, or a + combination. This is often combined with the Virtual Host + feature which determines how Apache responds to different IP + addresses, hostnames and ports. + + <p>There are two directives used to restrict or specify which + addresses and ports Apache listens to.</p> + + <ul> + <li><a href="#bindaddress">BindAddress</a> is used to + restrict the server to listening to a single address, and can + be used to permit multiple Apache servers on the same machine + listening to different IP addresses.</li> + + <li><a href="#listen">Listen</a> can be used to make a single + Apache server listen to more than one address and/or + port.</li> + </ul> + + <h3><a id="bindaddress" name="bindaddress">BindAddress</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BindAddress <em>[ * | + IP-address | hostname ]</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>BindAddress + *</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p>Makes the server bind to just the specified address. If the + argument is * (an asterisk), the server binds to all interfaces + currently marked as up on the server. The port bound to is set + with the <tt>Port</tt> directive. Only one BindAddress should + be used.</p> + + <h3><a id="listen" name="listen">Listen</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Listen <em>[ port | + IP-address:port ]</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>none</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p><tt>Listen</tt> can be used instead of <tt>BindAddress</tt> + and <tt>Port</tt>. It tells the server to accept incoming + requests (to listen) on the specified port or address-and-port + combination. If the first format is used, with a port number + only, the server listens on the given port on all interfaces + marked as up, instead of the port given by the <tt>Port</tt> + directive. If an IP address is given as well as a port, the + server will listen on the given port and interface.</p> + + <p>Multiple Listen directives may be used to specify a number + of addresses and ports to listen to. The server will respond to + requests from any of the listed addresses and ports.</p> + + <p>For example, to make the server accept connections on both + port 80 and port 8000, use:</p> +<pre> + Listen 80 + Listen 8000 +</pre> + To make the server accept connections on two specified + interfaces and port numbers, use +<pre> + Listen 192.170.2.1:80 + Listen 192.170.2.5:8000 +</pre> + + <h2>How this works with Virtual Hosts</h2> + <tt>BindAddress</tt> and <tt>Listen</tt> do not implement + Virtual Hosts. They tell the main Apache daemon process what + addresses and ports to bind and listen on. If no + <VirtualHost> directives are used, the server will behave + the same for all accepted requests. However, + <VirtualHost> can be used to specify a different behavior + for one or more of the addresses and ports. To implement a + VirtualHost, the server must: + + <ul> + <li>Be told to <tt>Listen</tt> to the desired address and + port</li> + + <li>Have a <VirtualHost> section created for the + specified address and port to set the behavior of this + virtual host</li> + </ul> + Note that if the <VirtualHost> is set for an address and + port that the server is not listening to, it cannot be + accessed. + + <h2>See also</h2> + See also the documentation on <a href="vhosts/">Virtual + Hosts</a>, <a href="mod/core.html#bindaddress">BindAddress + directive</a>, <a href="mod/core.html#port">Port directive</a>, + <a href="dns-caveats.html">DNS Issues</a> and <a + href="mod/core.html#virtualhost"><VirtualHost> + section</a>. <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/bind.html.fr b/htdocs/manual/bind.html.fr new file mode 100644 index 0000000000..8e9bd21423 --- /dev/null +++ b/htdocs/manual/bind.html.fr @@ -0,0 +1,145 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.15 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Définir quelles adresses et quels ports Apache + utilise</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Définir quelles adresses et quels + ports Apache utilise</h1> + <hr /> + Quand Apache démarre, il se connecte à des ports + et adresses donnés de la machine et attend les + requêtes. Par défaut il écoute sur toutes + les adresses de la machines, et sur le port défini par + la directive <tt>Port</tt> du fichier de configuration. + Cependant, on peut lui indiquer d'écouter sur d'autres + ports, ou d'écouter à partir de certaines + adresses seulement, ou une combinaison de ces + paramètres. Ceci est généralement + combiné avec la fonction d'hôte virtuel qui + définit comment répond aux différentes + adresses IP, nom d'hôte et de ports. + + <p>Il existe deux directives pour resteindre ou + spécifier sur quels adresses et ports Apache doit + écouter.</p> + + <ul> + <li><a href="#bindaddress">BindAddress</a> est employé + pour resteindre le serveur à n'écouter qu'une + seule adresse, et peut permettre plusieurs serveurs Apache + sur la même machine d'écouter différentes + adresses IP.</li> + + <li><a href="#listen">Listen</a> peut être + employé pour permettre à un serveur Apache + d'écouter plusieurs adresses et ports.</li> + </ul> + + <h3><a id="bindaddress" name="bindaddress">BindAddress</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntaxe :</strong></a> BindAddress <em>[ * | + IP-address | hostname ]</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>BindAddress *</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration du + serveur<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Statut :</strong></a> base + + <p>Cette directive force le serveur à n'écouter + que d'une adresse spécifique. Si l'argument est *, le + serveur écoute sur toutes les adresses. Le port + d'écoute est défini par la directive + <tt>Port</tt> directive. Il ne doit y avoir qu'au plus une + seule directive <tt>BindAddress</tt>.</p> + + <h3><a id="listen" name="listen">Listen</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntaxe :</strong></a> Listen <em>[ port | + IP-address:port ]</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>aucun</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration du + serveur<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Statut :</strong></a> base + + <p><tt>Listen</tt> peut être utilisé à la + place de <tt>BindAddress</tt> et <tt>Port</tt>. Il indique au + serveur d'accepter des requêtes venant d'un port + spécifique ou d'une combinaison d'adresse et de port. Si + le premier format est employé, avec uniquement un + numéro de port, le serveur écoute sur ce port, + à la place du port spécifié dans la + directive <tt>Port</tt>, sur l'ensemble des interfaces + réseau. Si une adresse est donnée en plus du + port, le serveur n'écoutera que sur le port de + l'interface spécifiée.</p> + + <p>Plusieurs directives <tt>Listen</tt> peuvent être + utilisées pour spécifier un ensemble d'adresses + et de ports d'écoute. Le serveur répondra aux + requêtes provenant de n'importe quels de ces adresses et + ports.</p> + + <p>Par exemple pour autoriser les requêtes sur les ports + 80 et 8000, il suffit d'écrire :</p> +<pre> + Listen 80 + Listen 8000 +</pre> + Pour que le serveur acccepte des requêtes provenant de + deux adresses et ports spécifiques, écrivez : +<pre> + Listen 192.170.2.1:80 + Listen 192.170.2.5:8000 +</pre> + + <h2>Comment cela fonctionne avec les hôtes virtuels</h2> + <tt>BindAddress</tt> et <tt>Listen</tt> n'implémentent + pas les hôtes virtuels. Ils indiquent au serveur + principal sur quelles adresses et ports écouter. Si + aucune directive <tt><VirtualHost></tt> n'est + employée, le serveur se comportera de la même + manière pour toutes les requêtes. + <tt><VirtualHost></tt> peut être employé + pour définir un comportement différent pour un ou + plusieurs de ces ports et adresses. Pour implémenter un + hôte virtuel, le serveur doit connaître quels ports + et quelles adresses employer. Une section + <tt><VirtualHost></tt> doit être + créée pour une adresse et un port + spécifique afin de définir le comportement de cet + hôte virtuel. Il faut noter que si un hôte virtuel + est configuré pour une adresse ou un port sur lequel le + serveur n'écoute pas, il est inaccessible. + + <h2>Voir également</h2> + Voir également la documentation sur les <a + href="vhosts/">hôtes virtuels</a>, la <a + href="mod/core.html#bindaddress">directive BindAddress</a>, la + <a href="mod/core.html#port">directive Port</a>, les <a + href="dns-caveats.html">questions sur le DNS</a> et la <a + href="mod/core.html#virtualhost">section + <VirtualHost></a>. <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/bind.html.html b/htdocs/manual/bind.html.html new file mode 100644 index 0000000000..2ba9299ba4 --- /dev/null +++ b/htdocs/manual/bind.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="bind.html.en" --> + diff --git a/htdocs/manual/bind.html.ja.jis b/htdocs/manual/bind.html.ja.jis new file mode 100644 index 0000000000..67f7baeed3 --- /dev/null +++ b/htdocs/manual/bind.html.ja.jis @@ -0,0 +1,131 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache が使用するアドレスとポ・踉札箸寮瀋蜚跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察鈑跚鼈纐蜩蜿邵鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■聿聿聿就0旭旭唖蜴觸■旭旭聿⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就f羂旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳餐鞜竏が使用するアドレスとポ・踉札箸寮瀋右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь鞜竏は起動時に、ロ・踉札襪淵泪轡鵑里△襯檗トおよびアドレス + に対して接続し、リクエストが来るのを待ちます。 + デフォルトでは、マシン紊里垢戮討離▲疋譽后△茲咼機バ設定ファイルの + <tt>Port</tt> ディレクティブで設定されたポ・踉札箸紡个靴蜩します。 + しかし、複数のポ・踉札箸蜩する、指定されたアドレスに限って + listen する、あるいはそれらを組み合わせて設定することも可能です。 + これは、異なる IP アドレス、ホスト巳苳察▲檗トに対する Apache + の応答方法を決定するバ・踉札船礇襯曠好筏’修帆箸濆腓錣擦道箸錣譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏が listen するアドレスおよびポ・踉札箸鮓堕蠅垢襪燭瓩忙箸錣譴鹿粡寂蝟赱齠洲痲筵娼ディレクティブが二つあります。</p> + + <ul> + <li><a href="#bindaddress">BindAddress</a> + は、サ・踉札个碓譴離▲疋譽垢蜩するよう瘢雹に限定します。 + 異なる IP アドレスを listen させた複数の Apache + を同一マシン紊覇虻遒気擦襪海箸任襪茲逅擦砲垢襪燭瓩忙藩僂任泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■跚齡緕▽苳嗣蜩遉踉晒瓲苳は単一の Apache + サ・踉札个瑤離▲疋譽ぢポ・踉札箸蜩するために使われます。 + </li> + </ul> + + <h3><a id="bindaddress" name="bindaddress">BindAddress</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> BindAddress <em>[ * | + IP アドレス | ホスト巳苳蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑デフォルト:</strong></a><code>BindAddress + *</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a>サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑コア + + <p>サ・踉札个髻団蠅離▲疋譽垢世韻縫丱ぅ鵐匹靴泙后鹿粡寂蝟赱齠洲痲筵娼引数が * (アスタリスク) の豺腓蓮什潺機バ紊罵覆垢戮討鹿粡寂蝟赱齠洲痲筵娼インタフェ・踉札垢縫丱ぅ鵐匹靴泙后檗トは <tt>Port</tt> + ディレクティブでの設定が使われます。BindAddress は一つだけ使えます。 + </p> + + <h3><a id="listen" name="listen">Listen</a></h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a>Listen <em>[ポ・踉札鹿粡寂蝟赱齠洲痲筵娼賓ぢアドレス:ポ・踉札蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑デフォルト:</strong></a> + <code>none</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a>サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑コア + + <p><tt>Listen</tt> ディレクティブは <tt>BindAddress</tt> および + <tt>Port</tt> ディレクティブの代わりとして使う瘢雹こともできます。 + これにより特定のポ・踉札箸泙燭魯▲疋譽垢肇檗トの組合わせに対しての + リクエストをサ・踉札个踉歯け付ける (listen する) よう瘢雹にします。 + ポ・踉札犯峭罎世韻痢∈能蕕僚颱踉三を使った豺隋倆鶯熙苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブで設定されたポ・踉札箸任呂覆機バ紊罵覆垢戮討鹿粡寂蝟赱齠洲痲筵娼インタフェ・踉札垢紡个靴董△海海農瀋蠅気譴織檗トを listen します。 + ポ・踉札箸閥逅擦アドレスを指定した豺腓蓮∋慊蠅気譴織檗トと + インタフェ・踉札垢紡个靴蜩します。</p> + + <p>複数の Listen ディレクティブにより、listen するアドレスとポ・踉札箸鹿粡寂蝟赱齠洲痲筵娼いくつも指定することも出来ます。 + リストされたアドレスとポ・踉札箸垢戮討紡个靴同靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢたとえば、ポ・踉札と 8000 の陸苳司紡个靴討寮楝海鬢踉歯け付けるには</p> +<pre> + Listen 80 + Listen 8000 +</pre> + とします。 + 二つの指定されたインタフェ・踉札垢肇檗ト番号に対しての接続を栄佞韻襪砲鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь也齡緕慌薫左絢蝟昭粡竚癈鷭п粐Ь也齡緕慌薫左旭絢蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ьぢとします。 + + <h2>バ・踉札船礇襯曠好箸紡个靴討匹逅仔里王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼熙苳斬蜴篩粐鱚齠熙苳と <tt>Listen</tt> はバ・踉札船礇襯曠好箸鮃圓覆逅鹿粡寂蝟赱齠洲痲筵娼わけではありません。それらはメインの Apache デ・踉札皀鵐廛蹈札垢匹離▲疋譽鹿粡寂蝟赱齠洲痲筵娼をバインドし、どのポ・踉札箸蜩するのかという瘢雹ことを指定します。 + <VirtualHost> + ディレクティブが全く使われない豺腓蓮▽踉歯け付けたリクエストすべてに対して + 同じ動作をします。しかし、<VirtualHost> を使って一つあるいは複数の + アドレスおよびポ・踉札箸紡个靴動曚覆詁虻遒鬚気擦襪海箸盻侏茲泙后鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好箸鮃圓覆逅擦砲蓮▲機バには,里海箸廚任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚目的のアドレスとポ・踉札箸踉飼熙苳嗣蜩遉踉晒ぢするよう瘢雹に指┐気譴討い薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢ指定されたポ・踉札箸肇▲疋譽垢紡个靴董鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好箸凌兇詆颪い鮴瀋蠅垢襪燭瓩鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢熙瘢雹苳セクションが作られている</li> + </ul> + + サ・踉札个蜩していないアドレスおよびポ・踉札箸瘢雹踉志蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼で指定した豺隋▲▲札垢任覆い海箸肪躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢関連項目</h2> + <a href="vhosts/">バ・踉札船礇襯曠好、<a + href="mod/core.html#bindaddress">BindAddress + ディレクティブ</a>、<a href="mod/core.html#port">Port + ディレクティブ</a>、<a href="dns-caveats.html">DNS + の問題</a>、および<a href="mod/core.html#virtualhost"><VirtualHost> + セクション</a>の文書も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁竢鈕蜃蜴膊蔗迪皴蔗粹笂瘤豁竢鈕蜃蜴膊蔗迪郤碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握甞羃袈禊絢碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡闔肅苺鱸鈑谺緕粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁竢鈕蜃蜴膊蔗迪郤昭蝟昭粡竚癈鷭ц襷樟卯乙誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳暫闔肅苺鱇闔蛹纉蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬衷鈕蜃癆蜿鍋跂鵙踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就m瘟遐浴蜴闔肅苺鱇闔蛹纉薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■齷銓癢▽苳屍閹蒹闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼鍋跂鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就m閼纉▽苳四閼纉薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黹關紜噬關閹蜥繝鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就h窿纉鵞窿纉鍋跂鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏瘟遐瘢綵瘟遐浴蜴闔肅苺鱇闔蛹纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑吶赱酪糒跂鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖迚辣譬迴籖迚辣碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳子繻癆繖蜥繝鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪a窿纉黹闔肅腆巣竇齠衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯蜀粤肅鈬▽苳殺瘢雹踉刺翊繙蜴絋瘢雹苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯蜴竚紜侮竚絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪r纉阨鱆繝闔肅腆吶齒竇衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖迚辣譯鞳黹闔肅腆奘鞳鹵闔肅胼踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏蜩闔肅苺鱚磔赱竕鈑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝粡鱚笏蝟纉譬粡鱚笏蝟纉韭瘟鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿肅跂鶤蒹瘟竢鈕蜃癆蜿肅跂跛蝟昭粡竚癈鷭п粐Ь瘡跂竢粤蔗筮竢鈕閼絋苳皿蒹閭癆蜿閹蓍肅跂鷦蝟昭粡竚癈鷭п粐Ь續竢逅蛹絖辣碯轣矼鴪蜆粤蒹鹿粡寂蝟赱齠洲痲筵娼竢粤閼絋苳竢迯瘤跚鈬赱膊闕皷瘡齒癘綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳雌鴉闔网踉晒竢粤鈔踉祉閼絋苳氏窿纉鶤竢鈕閼絋苳肅跂肬畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕蔗筮瘰痺蒹鱧鈕鎭鱚絖竢鈕蜃蛹纉譬蓍齡闥蜒瘡鹿粡寂蝟赱齠洲痲筵娼鱚癈闔鵙踉晒瓲苳皿痲粡闔阡蒹竢鈕蜃癆蜿肅跂轣矼鹿粡寂蝟赱齠洲痲筵娼痲粤蜴竢粤畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪i釿跿粤▽苳刺釿跿粤閼絋苳粡鱚笏蝟絎銷鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟轣矼赱竇蜴銷纉竢鈕蜃癆蜿肅跂鶤鹿粡寂蝟赱齠洲痲筵娼宙瘤艱蒹瘟竢鈕蜃癆蜿肅跂癇闔踟繝閾鉗磔鹿粡寂蝟赱齠洲痲筵娼草痺蒹蒹蜚齡癇闥纉鶯繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮励鞜竏窺凱嘘聽癆纈蜀銷鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿肅跂痺瘡踟蜥繝鴒草痺蒹蛹緕鮗蝟昭粡竚癈鷭п粐Ь葹粡鱚笏闥瘤鞜鴦瘤肅跂鈔粡鱚笏闥蜈鶇阨鈔鹿粡寂蝟赱齠洲痲筵娼纈癈闔肅苺鱇闔蛹纉竟齠蛯跂黼闥蓍篌蝟昭粡竚癈鷭п粐Ь粐蜥瘡被齡磔鱚癆蜴鼾瘡竢鈕蜃癆蜿肅跂鷦蝟昭粡竚癈鷭п粐Ь闥痺蓖齡瘤韭痺蜴纃齦竏闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥蔘鵺阨瘤粐鱚迴蜥瘡被齡阨蝟昭粡竚癈鷭п粐Ь粡鈑銷蛹纉瘡讙蜊韭痲粡鈑粤跂鈑蒹蹼蓍鷦蝟昭粡竚癈鷭п粐Ь瘠纉闕癆蜴齦竏鳫竇齠纉縺皷纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽黼鴟纈踈鱚痲肅跂闔蜴蜴迚辣閭緕鞳鷸鹿粡寂蝟赱齠洲痲筵娼肅跂釶辣黼磔蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖迚辣譯鞳黹闔肅腆奘鞳鹵闔肅胼踉晒瓲苳粡鱚笏蝟絳鹿粡寂蝟赱齠洲痲筵娼瘤蜩踉祉閼絋苳詩蜊絎鞳鵙踉晒竢粤粤聲鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就齷銓癢釶辣就齷銓癢▽苳屍閹蒹闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼鍋跂鵙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏竢鈕蜃癆蜿肅跂竢銓瘟闔粡鱚笏蝟鞳跚鈬蝟昭粡竚癈鷭п粐Ь蒹痺覘鼬癈∠轣矼黼癈蒹癈竏癇痺闔蜴綣蝟昭粡竚癈鷭п粐Ь蜴粡竅葹粡鱚笏蝟竢銓蜴闔蒹纔跚鈬蝟昭粡竚癈鷭п粐Ь蒹鱚矼阡蒹竏癇痺鴦蜚齔痺矼繞綣蝟昭粡竚癈鷭п粐Ь痺覘鼬癈瘤緕閹蒹蜴絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳残蜥繝蜴蒹闔肅苺鱇闔蛹纉鱚癈絖蜴黼銖蜚蝟絳鹿粡寂蝟赱齠洲痲筵娼碯癇苺辣銓蜥繝癇閹竅黼緕皷也鈬鷦蝟昭粡竚癈鷭п粐Ь蓍竏繚蜴蜚葹鼈葹鱇笏纈鱚闔皷粤鱚篌蝟昭粡竚癈鷭п粐Ь闕辣銓鵺鈔鱚芬闥繖衷迯緕癨踉雌闔胼苳試阡闔胼苳矼鹿粡寂蝟赱齠洲痲筵娼蜴竚繖跚鈬胄纈闔肅苺鱇闔蜥繝滝瘤跚鈬鷦蝟昭粡竚癈鷭п粐Ь鈔蓍鞜竇窿鱸鈑繙闥粡鱚笏蝟癇蜃鈿鱚筱鐚蝟昭粡竚癈鷭п粐Ь阨癨鈔緕粡鱚笏蝟纉闥赱鱸踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮搶竅竏繝闔肅苺鱇闔蛹纉闥纈鳫鴦鹿粡寂蝟赱齠洲痲筵娼阨齡癇鈑蒹纈磔皷鈑踉祉閼絋苳氏鞜竏繝鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃齡閼絋苳闥蒹踉祉閼絋苳鮫熙踉晒竢粤闕轣鈔蜴綣蝟昭粡竚癈鷭п粐Ь頸蜿隨鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就迴糒跂鵞瘢綵閼纉▽苳四閼纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑吶赱酪糒跂鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖齒譬迴籖齒碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳子繻癆繖蜥繝鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯痲粱閼紜槍簍閼絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪c跂癇迴糒跂跚齡▽苳暫跂癇酪糒跂也齡碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯蜀迴糒跂▽苳殺瘢雹踉刺耆閼絋瘢雹苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖齒譯跫痲迴糒跂▽苳嗣閨簍閼絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏蜩閼癇纈鬯蓍蜊韭蜈癆鉤迴齡鹿粡寂蝟赱齠洲痲筵娼矚皷胚釿闔瘡蜚蜩釿跿粤蜴蒹闥黼鴟纈祷鈔繖鹿粡寂蝟赱齠洲痲筵娼聽癆纉鱚蛹痰跂蓿阨艾踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝蜴粤磔鞳譬迴糒跂鵙踉晒瓲苳蜒竅矼閨粤篌蝟昭粡竚癈鷭п粐Ь銓草痺蒹濁繙癜踉畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼絖粡笏譯囈癆▽苳獅癈絋踉晒瓲苳黼閹閼纉鷦蝟昭粡竚癈鷭п粐Ь釿跿粤蜴蒹纈癆闕韈跂蜊絎黼鴟纈鷦蝟昭粡竚癈鷭п粐Ь闕韈跂黼踉氏鱚羹≫齒譬糯釶迚竅跛跫痲繖鹿粡寂蝟赱齠洲痲筵娼迴糒跂鵺蒹迴糒跂竅矼闕韈跂黼鞜鱇踟鈔粐繖蝟昭粡竚癈鷭п粐Ь銷蜊蜴畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼燗鎬蔗迪l閨粱閼紜弥痲酪糒跂蜥繝蝟昭粡竚癈鷭п粐Ь纈黼草痺蒹矼繝闕韈跂粐鱚迴閼纉蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔蜥繝轣矼釿跿粤竢鈔蜚蜿釶闔鹿粡寂蝟赱齠洲痲筵娼頏纉緕竇鞜鶯蜒癇閼磔釿跫皷鈑蒹蜴畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪i肭閼紜逅詞膚酪糒跂逅紫跫站踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮夬繞蓍竏閼纉鱚鱚銓踟闕韈跂蜴蒹纈鬪鹿粡寂蝟赱齠洲痲筵娼竅竢粤閼絋苳竢迯瘤跚鈬頸蜿隨鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黹關紜瘢綵‰竢鞳▽苳屍竢鞳堤鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑吶赱堤鱚笏蝟纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯粡鱚笏闥逅詞堤鱚笏闥瘢雹苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪d蜥繝鴒轣茴逅詞堤鱚笏闥癆竏逅紫碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪f蛹纉▽苳殺瘢雹踉仔蛹纉逅紫碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯肅跂鼾癆竏▽苳殺瘢雹踉仔蛹纉浴荀瘢雹苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪l閭癆蜿遐逅詞弥竅闔逅紫碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跫竅闔轣茴逅詞弥竅闔浴荀瘢雹苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪v蜥瘡蓖齡▽苳殺瘢雹踉志蜥瘡被齡逅紫碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮堤鱚笏蝟纉赱竇蜴蒹瘟竢鈕蜃癆蜿肅跂瘰韭鹿粡寂蝟赱齠洲痲筵娼緕鱚纈鬯鼈竏瘤艱蒹闔肅苺鱇闔闥鹿粡寂蝟赱齠洲痲筵娼闔踟癇閹蒹纈鬪阨瘤竢鞳阨粡鱚笏蝟纉蝟昭粡竚癈鷭п粐Ь赱竕鈑蒹蜴踉祉閼絋苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯粡鱚笏闥逅詞堤鱚笏闥瘢雹苳殺踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯粡鱚笏闥癆竏▽苳殺瘢雹踉残蜥繝鴒浴荀瘢雹苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯肅跂鵞逅詞鍋跂鵙瘢雹苳殺踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯肅跂鼾癆竏▽苳殺瘢雹踉仔蛹纉浴荀瘢雹苳殺踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跫竅闔▽苳殺瘢雹踉嗣閭癆蜿遉瘢雹苳殺踉晒瓲苳錆閼絋苳瘤篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跫竅闔轣茴逅詞弥竅闔浴荀瘢雹苳殺踉晒瓲苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼黼笏蜿銖壽纉黼笏蜿銖蜊蜚蒹韶跚竅闔綣蝟昭粡竚癈鷭п粐Ь蜥繝蜒纖釿跫黼鞜鶯蜒癇蛹纉躰蝟昭粡竚癈鷭п粐Ь閭癆蜿銖孀約壽纖瘤踈矼纉筱跛阯蜴肬鴒鹿粡寂蝟赱齠洲痲筵娼肅鈬鱇蜴繖闔肅苺鱇闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹癈蒹瘰痰蛹蜚纈瘤粡聿纈緕碵蜚纉鹿粡寂蝟赱齠洲痲筵娼皷逡踉瘤繽踟壽蜩竅跛繖踉氏鱚羹♪蓖齡鶩▽苳志蜥瘡鹿粡寂蝟赱齠洲痲筵娼被齡蜴胼踉晒瓲苳皿蜥繝竅瘡齒黹關繖韭痺蜴纃鹿粡寂蝟赱齠洲痲筵娼蜴皷粤踉祉閼絋苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯鶯跏闢槇逅詞帷鶯貳闢熙瘢雹苳殺踉晒瓲苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼黼笏蜿銖齒葹纖蛹闔踟韶踟鱚髟纉闥鹿粡寂蝟赱齠洲痲筵娼鞜鶯蜒癇繧皷踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮糟阨艾闢粡鱚笏蝟纉瘤韭痺繖瘤閹蒹黼鹿粡寂蝟赱齠洲痲筵娼黼笏蜿銖齒辣蜥繝粹阡瘠黼銖蜴闕竢銓纔蝟昭粡竚癈鷭п粐Ь闥逅跂粡鱚笏蝟纉闔闌跚鈑鳫竇齠鱚癆蜿竅闔踟鹿粡寂蝟赱齠洲痲筵娼矼赱竇蜴蒹瘟黼鴟纈闔夬蜴蜒粡鱚笏蝟纉鹿粡寂蝟赱齠洲痲筵娼竅矼赱竇蜴蓍竏繝闔鵺蒹站蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝粡鱚笏蝟絖粡笏譯衷銓纔槇衷銓纔熙踉晒瓲苳閹蒹鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絎闥纈鈕闥轣闔鳫粤續瘟踈畆蝟昭粡竚癈鷭п粐Ь鱚羹‰繝闔鶤蔗迪▽苳使阯蜥繝鴒弥竅闔鈔蛹纉繝闔鷦蝟昭粡竚癈鷭п粐Ь闥襴踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蔗痺竇齠釶辣就蔗痺竇齠▽苳皿蔗痺竇齠蛹纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑吶赱堤鱚笏蝟纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯痺竇齠肅跂釶辣▽苳餐窿纉麁蛹緡瘢絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪a跛阯阮纈鱸粤▽苳餐跛阯纈鱸粤碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹跛阯肬粤竇銓鱇跚轣釶艱辣銓竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь蛛鞳竕瘡蛹纉赱竇蜴皷粤蒹繧鱚絎蒹鞳竕瘡蛹纉鹿粡寂蝟赱齠洲痲筵娼癇跛竅跛繖踉祉閼絋苳皿蔗痺竇齠閼絋苳錆銷瘢竅矼鹿粡寂蝟赱齠洲痲筵娼齔繝蜀蜈蜴蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯痺竇齠肅跂釶辣▽苳殺踉祉閼絋苳餐窿纉麁蛹緡瘢絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絎蜥繝韭痺繖竢粤窿纉鵙踉晒竢粤蛹纉鹿粡寂蝟赱齠洲痲筵娼瘰韭蒹蜥繝鴒蒹鱚阨赱竇蒹蛹絳鈔跛鹿粡寂蝟赱齠洲痲筵娼齦皚粡鱚笏闥蜈鶤蒹踉祉閼絋苳皿蔗痺竇齠閼絋苳肅跂肬跛阯蒹鹿粡寂蝟赱齠洲痲筵娼黶辣癈蒹瘟竢鈕蜃癆蜿肅跂鶤蜴竇鹿粡寂蝟赱齠洲痲筵娼竢粤窿纉鵙踉晒竢粤蛹纉鱚縺闔鴒繿齡竏瘤艱鷦蝟昭粡竚癈鷭п粐Ь痲蜴蒹黼蛹纉瘠蜊辣粡癆繙聽笏踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮夬蜴蜒粡鱚笏蝟纉瘤韭痺繖郤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳皿蔗痺竇齠閼絋苳肅跂鵺蒹站蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝粡鱚笏蝟絖粡笏譯衷銓纔槇衷銓纔熙踉晒瓲苳閹蒹鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絎蒹纈痲迚鉗齡鱇胚鶯蒹竢銓鳫踈葹蝟昭粡竚癈鷭п粐Ь蜥繝轣矼赱竇蜴踉祉閼絋苳皿蔗痺竇齠閼絋苳肅跂磔鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃蜴畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪a跛阯阮纈鱸粤▽苳殺踉祉閼絋苳餐跛阯纈鱸粤閼絋苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝轣蜴闔肅苺鱇闔蛹纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮楠迴鱚鈕闥轣闔竢粤窿纉鵙踉晒竢粤蛹纉黼綣蝟昭粡竚癈鷭п粐Ь緕閨鬣鱸瘡畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕瘰痺蒹纈鬯竢躁鱸瘡鶩壮蜴膈蔗痺竇齠譬鹿粡寂蝟赱齠洲痲筵娼專蜴窿纉鍋跂鞜竏絋踉晒瓲苳錆畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕蔗筮瘰痺蒹鱧閭鶩蓖鎭蔗痺竇齠譬窿纉鷦蝟昭粡竚癈鷭п粐Ь闥蛛讀踉晒瓲苳蜴蒹鞜竏粹笂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁竢鈕蜃蜴膊蔗迪皴蔗粹笂瘤豁竢鈕蜃蜴膊蔗迪鮗碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握箋甍幹恭羲碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡闔肅苺鱸鈑谺胙粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁竢鈕蜃蜴膊蔗迪鮗昭蝟昭粡竚癈鷭ц襷樟卯慨誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉察鱇糒笏蜿瘤芟瘟窺鰻苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼辣隲繿闔銓紜鹿粡寂蝟赱齠洲痲筵娼竢銓緕♯纔蔗迪竏癇黼蜩鎰幻宜苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂鍋竏蜈鴦竢鈕蜃癆蜿遉踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳仔蜒蓍纈粤闔肅苺鱇闔右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■轣蜴▽苳姉鱸釿蜷癜肅竏蜈鴦綣蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■齷銓癢▽苳屍纉蜒蓍纈粤鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿遉踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就m閼纉▽苳四閼纉薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黹關紜倆鶯逅糸痺綮粤粡鱚笏蝟纉薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蔗痺竇齠▽苳仔蜒蓍纈窿纉鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就l閾鵞鍋竏蜈鴦痺絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏瘟遐瘢綵瘟遐會蜴竕鞜蜒蓍纈粤鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿遉踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳四閼纉薤瘢雹縺笊雌闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼熏蜊絎蔗迪▽苳詩閼熏蜊絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑堤鱚笏蝟纉鹿粡寂蝟赱齠洲痲筵娼跚逅糸痺綮纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯痺竇齠竢鈕蜃▽苳餐窿纉鹵闔肅胼踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪i聹繙蜴紜逅詞膚偵肅鈬逅紫碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪i釿跿粤▽苳刺釿跿粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯鱚齒竇竢鈕蜃▽苳子纉阨鱆綯闔肅胼踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼熏蜊絎蔗迪t纉竢鈕蜃▽苳市纉衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹竢鈕蜃緕赱逅祉竇粡貉瘤粤畆蝟昭粡竚癈鷭п粐Ь鱚羹閼蜥繝鶤蔗迪▽苳私蜥繝鵙踉晒瓲苳籬銖纉蜒蓍纈鷦蝟昭粡竚癈鷭п粐Ь纔粤闔肅苺鱇闔悶蜒蓍纈竢鈕蜃癆蜿頏蜴竕鞜貅蝟昭粡竚癈鷭п粐Ь齡逅糸痺綮遉瘢雹縺笊賜瘡纃緕瘰鞳讀瘢雹縺笊纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳肢鞣闔网踉晒竢粤箕纃韭痺纃緕粤肅竏蜈纉蝟昭粡竚癈鷭п粐Ь蝌逅糸痺綮瘢雹瘍鱇赱闕韈赱闔轣蜩纒逅糸竕鱆飼鱚鹿粡寂蝟赱齠洲痲筵娼鱚筅瘢雹縺笊紙蜴緕跚黶銓э頸蜿粤蜃鈬竢迯瘤粤鹿粡寂蝟赱齠洲痲筵娼竢粤閼絋苳皿纈蜴皷竟齠逅糸苒癘綮粤銓鹿粡寂蝟赱齠洲痲筵娼逅糸痺綮艨跂辣銓纉蜒蓍纈竢粤齟蹼竢鈕閼絋苳續鹿粡寂蝟赱齠洲痲筵娼竢粤痺竇齠闔网踉晒竢粤阨粤畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕蔗筮瘰痺蒹鱧鈕鎭鱚絖竢鈕蜃蛹纉譬鱇蜩闔鷦蝟昭粡竚癈鷭п粐Ь蜩鱸髟纉偵跿鵺п鱚肅竏蜈鴦竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь纒銓瘢雹繝蜥禹瘧阨熙瘢雹縺笊雌蛹蜩瘤赱蜥繝鹿粡寂蝟赱齠洲痲筵娼竢粤蓿繙就迴箝竢鱚譯蜴竚紜侮竚絋踉晒瓲苳殺踉晒竢粤悶鷦蝟昭粡竚癈鷭п粐Ь蜥繝鞳緕逅糸竕鱆飼鱚赱礒瘢雹縺笊糸籬銖ч逅闥鹿粡寂蝟赱齠洲痲筵娼髟繻蜒蓍纈悶迴粡肅竅闔籬銖肅竏蜈粤鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿頏蜴竕鞜鈬闔頏蜩纉竢逅癜鹿粡寂蝟赱齠洲痲筵娼筅瘢雹縺笊詩癇鱇艱癜繖逅糸痺綮轣鴪瘍筵草痺蒹踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮寰鈿縺逅糸痺綮赱纈皷闔筵草痺蒹齡畆蝟昭粡竚癈鷭п粐Ь闢皷砠跚熙瘢雹縺笊髟肅竏蜈粤闔肅苺鱇闔濶緕瘟蝟昭粡竚癈鷭п粐Ь鬢瘢雹縺笊諮纈蜥絎瘤竇癈草痺蒹蜥纉鹿粡寂蝟赱齠洲痲筵娼肅竏蜈鴦齒逅糸痺綮鞳鶯濶鱚續纉鱇蜚纈竢迯綣蝟昭粡竚癈鷭п粐Ь蜒蓍纈粤闔肅苺鱇闔寰蛹蜩癆蜿竟齠蛯跂竇綣蝟昭粡竚癈鷭п粐Ь闔笏蜿銕瘡蜚逅糸痺綮齡竟濶瘧阨粤荀瘢雹閭蜥禹鷦蝟昭粡竚癈鷭п粐Ь蜥繻緕鬢瘢雹縺笊氏銓纉蜒蓍纈粤闔肅苺鱇闔阨鮗蝟昭粡竚癈鷭п粐Ь葹髟荀瘢雹閭蜥禹續跂韭痺纈瘤跂逅糸痺綮鞳鶯濶鱚鹿粡寂蝟赱齠洲痲筵娼粤闔肅苺鱇闔痩銖薔阨竟纎褊纈鱚鱚粤鷦蝟昭粡竚癈鷭п粐Ь逅誌竕鱆飼纉蜥繻黶銖蜥瘢雹瘍鱇逅糸痺綮粡粤鹿粡寂蝟赱齠洲痲筵娼肅竏蜈鴦轣蜩蜊韭纃緕緕褊瘤阨頏蜊瘤蜒蓍纈蝟昭粡竚癈鷭п粐Ь繻逅氏苒癘綮纈辣筵癜轣黼韭痺蛹纃緕竇緕鱚綣蝟昭粡竚癈鷭п粐Ь鱇蜚纃緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳嗣黼鴟纒跚逅糸痺綮艨跂辣銓肅竏蜈筅瘢雹縺笊祉鱸銓鹿粡寂蝟赱齠洲痲筵娼跂鞳粤闔銛浜纏鈿粤肅竏蜈纉蝟昭粡竚癈鷭п粐Ь逅糸痺綮肅鉗癇粡鱚笏蝟畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼熏蜊絎蔗迪t纉竢鈕蜃▽苳市纉衷鈕蜃纉鞜鮗蝟昭粡竚癈鷭п粐Ь逅糸痺綮聲踉祉閼絋苳詩蜊絎鞳鵙踉晒竢粤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏‰瘢綵‰囮銓癢粤肅竏蜈鴦綣蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮悶肅竏蜈鴦竢鈕蜃癆蜿銖闔緕鈬銓韭鈬鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟鞜跚芬絎竅鱇笏逅糸苒癘綮鱚棧纒逅糸竕鱆飼鱚鹿粡寂蝟赱齠洲痲筵娼蛹蜩逅糸痺綮瘢雹瘍鱇赱蜴鈬蜃鈬阨蜴粡髟纈畆蝟昭粡竚癈鷭п粐Ь蜥繝竟齦蜚跚芬齦蝟瘤阜粹蜚癈鹿粡寂蝟赱齠洲痲筵娼癘濶筵癜纉癇痺熙瘢雹繚鱇賜阨у齔痺緕跂鹿粡寂蝟赱齠洲痲筵娼竅鱇笏逅糸苒癘綮鱚棧赱蜴赱蜃鈬踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鶴銖纉蜒蓍纈粤闔肅苺鱇闔讌逅糸痺綮竰蜚粤鷦蝟昭粡竚癈鷭п粐Ь闕粤粡鱚笏蝟纉у齡癈緕皷碎逅氏苒癘綮竅齠絳瘟鷦蝟昭粡竚癈鷭п粐Ь纉鱧緕纉蜥繝跂闔蝟昭粡竚癈鷭п粐Ь逅糸痺綮遉瘢雹縺笊賜瘡纃緕纉蜃鈬碎瘤竏纉跂纉鞜竇鷦蝟昭粡竚癈鷭п粐Ь鬢瘢雹縺笊祉逅糸痺綮籬銓鈬蜥繝闔蜃鈿鬢瘢雹縺笊雌悶鷦蝟昭粡竚癈鷭п粐Ь闕辣銓瘟鱚齡鳫鈑鈬濶銓癈闔胼苳逅糸竕鱆飼鱚釿跿鷦蝟昭粡竚癈鷭п粐Ь蹙瘢雹繝蜥禹辣蜃鈬粡鱚笏蝟絎纉蜃鈬鷦蝟昭粡竚癈鷭п粐Ь闕辣遉瘢雹窿繖蛹氏銓癇竅鱇笏逅糸苒癘綮鱚薤瘢雹繚鱇雌■齒銓鹿粡寂蝟赱齠洲痲筵娼瘟熙瘢雹縺笊糸竢迯粤竢迯緕蜥纉齒銓芬闥逅糸痺綮鷸鹿粡寂蝟赱齠洲痲筵娼阨跂蛹蜩纈阨蜴粤銓纈纉蜥繝續緕糅綣蝟昭粡竚癈鷭п粐Ь纒跂笏韭痺蛹絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳志阨竟纎逅糸痺綮鱸肅纈齷銓癢粤闢蜒蓍纈粤鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿緕跚黶銓濶竢粤瘰痺蒹笏貅蝟昭粡竚癈鷭п粐Ь闔肅苳纉熙踉晒竢粤濶讌關闔跚芬粤闕轣鈔綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳鮫熙踉晒竢粤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏閼纉釶辣就迴糒跂鵞酪糒跂鵙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳四閼纉薤瘢雹縺笊雌闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼燗鎬蔗迪▽苳詩閼燗錵踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑堤鱚笏蝟纉鹿粡寂蝟赱齠洲痲筵娼跚逅糸痺綮纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪a粐迴糒跂▽苳餐粐酪糒跂碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯竚縺鴉閼繻蜩槇柱縺鰺閼緻蜩熙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪i肭閼紜逅詞膚酪糒跂逅紫碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼燗鎬蔗迪l閨粱閼紜弥痲酪糒跂碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹齡黼鴟纒迴糒赱蜥絎繻逅氏苒癘綮逅跚髟髟綣蝟昭粡竚癈鷭п粐Ь纒跂跂肬釿闔粤癈齒銓釿跿黼籬銖鈿糒鹿粡寂蝟赱齠洲痲筵娼黼鴟纒鬯纉闔笏蜿銕瘡蜚逅糸痺綮韭釿逅糸痺綮纉闔蝟昭粡竚癈鷭п粐Ь蜩竟鉗碎纉鬢瘢雹痺蜥禹竇踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝蜴粤磔鞳譬迴糒跂鵙踉晒瓲苳髟鞳緕逅糸竕鱆飼鱚鹿粡寂蝟赱齠洲痲筵娼竏癇胼瘢雹縺笊雌瘤草痺蒹倚筅瘢雹縺笊紙癜緕黼轤跂綣蝟昭粡竚癈鷭п粐Ь閼纉蓿繙就迴箝迴糒跂蜒蔗迪S鵞矚黼闔蝟昭粡竚癈鷭п粐Ь釿跿逅氏苒癘綮竢逅蛹癆蜿隨跂纈齡鹿粡寂蝟赱齠洲痲筵娼竢逅蛹逅糸痺綮阨蛹蜩纈纉閼纉踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就糂鎬蔗迪▽苳私瘢蜻辣銓葹鱧逅糸痺綮鵙踉晒瓲苳錆跫鴦纉鹿粡寂蝟赱齠洲痲筵娼迴糒跂鞳緕逅糸竕鱆飼鱚闕韈讀瘢雹縺笊雌鹿粡寂蝟赱齠洲痲筵娼鵙瘢雹縺笊諮癇逅糸痺綮辣銓瘧阨熙瘢雹縺笊逅氏苒癘綮ч逅闥鹿粡寂蝟赱齠洲痲筵娼髟繻闕緕緕跚黶銓粡鱚笏蝟畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼燗鎬蔗迪l閨粱閼紜弥痲酪糒跂嚔鈿遯鞜竏綣蝟昭粡竚癈鷭п粐Ь濶逅糸竕鱆飼鱚繝闕韈讀瘢雹縺笊竟褊纈齦韶鱸辣粤鷦蝟昭粡竚癈鷭п粐Ь閼纉偵粡鱚笏蝟纉竢鈕蜃癆蜿鞳緕逅糸竕鱆飼鱚鹿粡寂蝟赱齠洲痲筵娼蜴竚纉轣鉗逅糸苒癘綮鱚闔粡闔鈬跛緕闔笏蜿粤畆蝟昭粡竚癈鷭п粐Ь鬢瘢雹縺笊雌緕竇迴糒跂癇笊跚纈跂緕瘤鞜鹿粡寂蝟赱齠洲痲筵娼碎閭踉氏鱚羹閼闥絎蔗迪i肭閼紜逅詞膚酪糒跂逅紫踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮倆癘濶髟繻迴糒跂闔逅糸痺綮熙瘢雹縺笊纂蝟昭粡竚癈鷭п粐Ь闕韈讀瘢雹縺笊雌瘤跂纈阨蛹蜩纈э頸蜿郤蝟昭粡竚癈鷭п粐Ь跚芬粤闕轣鈔竢粤閼絋苳皿鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黹關紜瘢綵‰竢鞳▽苳姉闥熙瘢雹縺笊糸纉鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑堤鱚笏蝟纉鹿粡寂蝟赱齠洲痲筵娼跚逅糸痺綮纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯粡鱚笏闥逅詞堤鱚笏闥瘢雹苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪d蜥繝鴒轣茴逅詞堤鱚笏闥癆竏逅紫碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪f蛹纉▽苳殺瘢雹踉仔蛹纉逅紫碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯肅跂鼾癆竏▽苳殺瘢雹踉仔蛹纉浴荀瘢雹苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪l閭癆蜿遐逅詞弥竅闔逅紫碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跫竅闔轣茴逅詞弥竅闔浴荀瘢雹苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪v蜥瘡蓖齡▽苳殺瘢雹踉志蜥瘡被齡逅紫碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮悶粡鱚笏蝟纉赱礒瘢雹縺笊糸籬銖纉鱸釿蜷癜肅竏蜈鴦鹿粡寂蝟赱齠洲痲筵娼粤闔肅苺鱇闔п韶跚髟緕逅氏苒癘綮у銖纃碎糒纈蝟昭粡竚癈鷭п粐Ь阨葹蜚纎閼蜀蜈赱闔肅苺鱇闔阨鞜鶯蜈鹿粡寂蝟赱齠洲痲筵娼黼纃緕糒纈阨辣鱚竢銓纔闢鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉跂韭瓲瘢雹窿繖蛹氏銓瘤粤黼笏蜿銖踉祉閼絋苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯粡鱚笏闥逅詞堤鱚笏闥瘢雹苳殺踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯粡鱚笏闥癆竏▽苳殺瘢雹踉残蜥繝鴒浴荀瘢雹苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯肅跂鵞逅詞鍋跂鵙瘢雹苳殺踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯肅跂鼾癆竏▽苳殺瘢雹踉仔蛹纉浴荀瘢雹苳殺踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跫竅闔▽苳殺瘢雹踉嗣閭癆蜿遉瘢雹苳殺踉晒瓲苳錆閼絋苳續鹿粡寂蝟赱齠洲痲筵娼竢粤畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪l閭癆蜿鉈癆竏▽苳殺瘢雹踉嗣閭癆蜿醉癆竏逅紫閼絋苳纂蝟昭粡竚癈鷭п粐Ь纉繝闔跚迚銓竟鶯逅糸痺綮筵瘰韭蜒癆蜿粤鷦蝟昭粡竚癈鷭п粐Ь蜥繝髟у跛纉闔緕鈬銓瘢雹瘍鱇逅赱竇辣銓纉鹿粡寂蝟赱齠洲痲筵娼肅竏蜈鴦逅氏苒癘綮纈蜴纉厂東跂鞳緕逅糸竕鱆飼鱚鹿粡寂蝟赱齠洲痲筵娼蜊碣蜻瘢雹縺笊糸鵺纈辣瘤瘟銖竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь鬢瘢雹繚鱇雌蜴絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏赱闢皷砠跚熙瘢雹縺笊粤纈韭蜈皷蘯蝟昭粡竚癈鷭п粐Ь蜊遉瘢雹縺笊詩緕續闢皷砠跚熙瘢雹縺笊纉蝟昭粡竚癈鷭п粐Ь韶繻逅糸痺綮蓿繙就闢荀瘢雹縺笊獅纈艱辣銓鹿粡寂蝟赱齠洲痲筵娼鶯讀踉晒瓲苳皿纉蜥繝鞳緕逅糸痺綮艨跂辣銓瘢雹繝蜥禹綣蝟昭粡竚癈鷭п粐Ь蜊蜚逅糸痺綮纉蛹蜩瘤粤黼笏蜿銖踉祉閼絋苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯鶯跏闢槇逅詞帷鶯貳闢熙瘢雹苳殺踉晒瓲苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼瘋蜴繻跂鈬п韶跚髟緕髟Е瘢雹瘍鱇竇鶯瘟銖蜚纉鹿粡寂蝟赱齠洲痲筵娼皰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳斬蜈髟赱跿鞜鶯纉蜥繝鞳緕逅糸竕鱆飼鱚鹿粡寂蝟赱齠洲痲筵娼韭痺逅糸痺綮纉瘢雹瘍鱇讌蜴熙瘢雹縺笊賜蜈逾蜊竟鶯髟繻跂鹿粡寂蝟赱齠洲痲筵娼黼笏蜿遯纈蜴纉蜥繝逾闔鞜粤緕籬銖纈蜴鷦蝟昭粡竚癈鷭п粐Ь闔纉倚纔纃韭絳纉蜥繝竢銓鬢瘢雹閭蜥禹赱銓畆蝟昭粡竚癈鷭п粐Ь鬢瘢雹縺笊氏闔纉鳫竇齠鞳緕逅糸竕鱆飼鱚鹿粡寂蝟赱齠洲痲筵娼韭痺逅糸痺綮纉瘤跂闔頏蜒蜷瘡黼鴟纒鬯阨鮗蝟昭粡竚癈鷭п粐Ь癘濶髟繻跂粡鱚笏蝟纉纒銓瘢雹繝蜥禹韭痺逅糸痺綮纉鹿粡寂蝟赱齠洲痲筵娼籬銖跛纉繝闔鵺逅糸痺綮鱸肅纎畆蝟昭粡竚癈鷭п粐Ь鱚羹閼蜥繝蜒蔗迪C闔▽苳祉闔絋踉晒瓲苳粤畆蝟昭粡竚癈鷭п粐Ь蜥繝倆跿筵蜴肬鴉癆蜿銖蜥踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就黼笏蜿銖譬竢迯緕跂黼笏蜿銖蜥繝鴒弥竅闔鹿粡寂蝟赱齠洲痲筵娼續蛹纉闔笏蜿銕緕熙踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蔗痺竇齠釶辣就蔗痺竇齠▽苳仔蜒蓍纈鷦蝟昭粡竚癈鷭п粐Ь蔗痺竇齠王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑堤鱚笏蝟纉鹿粡寂蝟赱齠洲痲筵娼跚逅糸痺綮纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯痺竇齠肅跂釶辣▽苳餐窿纉麁蛹緡瘢絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪a跛阯阮纈鱸粤▽苳餐跛阯纈鱸粤碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹纈辣艱齡蜿筅瘢雹縺笊祉緕瘡蜩逅糸痺綮粤畆蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔癇跚黶闔肅竏蜈鴦隍瘢雹縺笊祉蛛鹿粡寂蝟赱齠洲痲筵娼逅氏苒癘綮ч銓逅糸痺綮鱸纒粤п鰲闥纉竇釿皰纉蜒蓍纈鷦蝟昭粡竚癈鷭п粐Ь隍瘢雹縺笊祉蛛闔胼瘢雹縺笊試逅糸痺綮鱇跂辣銓韶繻逅糸痺綮鷦蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳皿蔗痺竇齠閼絋苳錆瘟逾蜊竟鶯髟繻闕纒逅糸竕鱆飼鱚鹿粡寂蝟赱齠洲痲筵娼筅瘢雹縺笊紙蜴鞜赱蜥繝踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯痺竇齠肅跂釶辣▽苳殺踉祉閼絋苳餐窿纉麁蛹緡瘢絋踉晒竢粤蝟昭粡竚癈鷭п粐Ь纉蜥繝韭痺逅糸痺綮纉瘤跂肅竏蜈鴦鹿粡寂蝟赱齠洲痲筵娼竢粤窿纉鵙踉晒竢粤п韶跚髟緕癜逅糸痺綮鞳鶯濶鱚鹿粡寂蝟赱齠洲痲筵娼錵瘢雹鱇黼鳫跂蜒蓍纈蜴皷癜齒鹿粡寂蝟赱齠洲痲筵娼鬢瘢雹縺笊諮纈蜥纉悶肅竏蜈鴦踉祉閼絋苳皿蔗痺竇齠閼絋苳纂蝟昭粡竚癈鷭п粐Ь纉鞳笏緕赱逅糸竕鱆詩齷銓癢髟跂肅竏蜈鴦鱸釿蜷癜粤鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿隨闕辣纉蜒蓍纈竢粤窿纉鵙踉晒竢粤闔蝟昭粡竚癈鷭п粐Ь瘢雹瘍鱇竏瘻繿瘢雹繝蜥禹悶迴粡肅竅闔鷦蝟昭粡竚癈鷭п粐Ь聿繝逅糸痺綮纉瘤竇肅竏蜈鴦鱚銕緕繙聽蝟昭粡竚癈鷭п粐Ь迯逅糸痺綮粡癆纃緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳姉阨黶蜥粡鱚笏蝟鞳瘢雹繝蜥禹韭痺逅糸痺綮綣蝟昭粡竚癈鷭п粐Ь瘤跂肅竏蜈鴦踉祉閼絋苳皿蔗痺竇齠閼絋苳錆逅糸痺綮鱸肅纎畆蝟昭粡竚癈鷭п粐Ь鱚羹閼蜥繝蜒蔗迪C闔▽苳祉闔絋踉晒瓲苳粤畆蝟昭粡竚癈鷭п粐Ь蜥繝箕痲迚鉗齡鱇纒竢銓逅誌竕鱆詞纈跛纉鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉纒銓瘢雹繝蜥禹韭痺逅糸痺綮纉瘤跂肅竏蜈鴦鹿粡寂蝟赱齠洲痲筵娼竢粤窿纉鵙踉晒竢粤迴粡肅瘤赱蜥繝踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯瘡跫鴪蜆紜竢粤糟跫鴪蜆絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼糒蜒蓍纈鱸釿蜷瘡竢鈕蜃癆蜿隨鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就跫苴釶辣就跫苴▽苳仔蜒蓍纈粤鱇竇王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳餐鶯蜩黼辣銓鵙瘢雹縺笊祉蜚逅糸痺綮界苳纂蝟昭粡竚癈鷭п粐Ь阨纈齒銕竟瘤逅糸痺綮竰蜥籬銖鬢瘢雹縺笊諮纈蜥綣蝟昭粡竚癈鷭п粐Ь逅歯苒癘綮鞜竏逅糸痺綮竰蜚肅竏蜈粤鱇竇纒癘濶鮗蝟昭粡竚癈鷭п粐Ь窿逅糸苒癘綮逅氏苒癘綮蜆阨跂髟繻黼鴟纒纉蝟昭粡竚癈鷭п粐Ь瘤礒瘢雹縺笊錆逅糸痺綮遉瘢雹縺笊賜瘡纃緕鳫阡纃励闔鈬蝟昭粡竚癈鷭п粐Ь癈蹙苳痺礒瘢雹繚鱇雌逅糸痺綮竰蜚癜逅糸痺綮鞳鶯濶鱚鹿粡寂蝟赱齠洲痲筵娼錵瘢雹鱇跂肅竏蜈鴦痺齒銓站逅糸痺綮黶銖鹿粡寂蝟赱齠洲痲筵娼逅糸竕鱆飼鱚赱蜥纃緕竢銖竕緕粤竢銖逅糸痺綮髟緕竇鷸濶鮗蝟昭粡竚癈鷭п粐Ь粹笊辣銓踉氏鱚羹蜩祚黼笊鱸熹蜷鶤蔗迪▽苳飼鴣笂畆蝟昭粡竚癈鷭п粐Ь逅糸痺綮笊鱸熙瘢雹縺笊殺踉晒瓲苳竟跿粤逅糸痺綮蛹鶤蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳仔蜒蓍纈蜆界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮装瘤竇辣銓草痺蒹瘢雹縺笊祉鱸跂逅糸痺綮鳫綣蝟昭粡竚癈鷭п粐Ь鳫竇齠頏閭纉齦隍瘢雹繚鱇賜蔗籬銖肅竏蜈鮗蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳詞閾鶩蔗筮韈筅踉晒竢粤悶闕肅竏蜈鞳瘢雹繝蜥禹綣蝟昭粡竚癈鷭п粐Ь葹鈑逅糸痺綮迴粡肅瘤赱蜥繝踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯韈粭蛹紜倡籠蛹絋踉晒瓲苳皿銛蹙瘢雹縺笊賜粤鹿粡寂蝟赱齠洲痲筵娼頏閭纉齦纉蛹蜩逅糸痺綮癇п粱蜴蜩癆纒竟繻瘤竇鮗蝟昭粡竚癈鷭п粐Ь癇鬢瘢雹繝蜥禹跂逅糸痺綮迴隨鉗皷芬瘡孃蝟昭粡竚癈鷭п粐Ь嘔竟聿續聲蜥鱚跚鱚癇筅瘢雹縺笊詩闔纉鹿粡寂蝟赱齠洲痲筵娼肅竏蜈鴦竢鈕蜃癆蜿遯蜃釶堙厖聲蜚纈迚鈬鮗蝟昭粡竚癈鷭п粐Ь轣鉗逅糸苒癘綮鱚阨竇囎怏鈔阯鵺聲逅跫讌關闔鹿粡寂蝟赱齠洲痲筵娼倆跿筵蜴肬鴉癆蜿蜥鞜艱踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就齡關韈鈑譬葬鬢瘢雹繝蜥禹續繖逅糸痺綮轣鴪瘍絋踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍跂鳫竇齠纒鶯阨齡瘢雹縺笊皐轣鉗逅糸苒癘綮鱚鹿粡寂蝟赱齠洲痲筵娼瘤闥轣跂蛹纒瘡闥逅糸竕鱆飼鱚逅糸痺綮竇齠瘟鱚纈鹿粡寂蝟赱齠洲痲筵娼跂頏閭纉齦肅踈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳市鱇竇纉鴪纒鴦界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮悶纈鱇竇纉纉黶艱筵纈鱚籬銖肅竏蜈鬪癇鹿粡寂蝟赱齠洲痲筵娼筅瘢雹縺笊紙癜竢粤跫苴鴪闥煬閾閼絋苳齦寰蝌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳詞閾鶩纈鳫鬯跫胼踉晒竢粤蜴粹鈔哢荻鈿糒鹿粡寂蝟赱齠洲痲筵娼肅竏蜈鞳瘢雹繝蜥禹筅瘢雹縺笊紙蜴緕跚黶銓粡鱚笏蝟綣蝟昭粡竚癈鷭п粐Ь踉氏鱚羹閼闥絎蔗迪e鴪闥跫腆湯鳫鯡閾п鱚痺纉鹿粡寂蝟赱齠洲痲筵娼鞳緕逅糸竕鱆飼鱚逅糸痺綮肅鉗纉阨粡聿逅糸痺綮鱚銓畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪v蜥瘡蓖齡▽苳肢逅誌竕鱆飼纉蜥繻鵙踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖夸痺粤鱚髟逅糸竕鱆飼纉界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮悶纈鱇竇逅糸痺綮遉瘢雹縺笊賜瘡纃緕竏瘻鹿粡寂蝟赱齠洲痲筵娼鱚髟逅糸竕鱆飼籬銖肅竏蜈粤鱇銖聽鶯鞜筅瘢雹縺笊紙癜蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳詞閾鶩痺竇齠煬閾閼絋苳齦寰蝌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳詞閾鶩痺竇齠閾閼絋苳齦怏鈔阯瘤腕悶闕蝟昭粡竚癈鷭п粐Ь蜒蓍纈纒逅糸竕鱆飼鱚逅糸痺綮肅鉗蛹蜩瘤赱蜥繝鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖跫艤竢鈕蜃譯笊齡闕跫腆瀦齡闕弥胼踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼徴癜纉鱇竇鞳緕逅糸竕鱆飼鱚逅糸痺綮肅鉗纉阨鮗蝟昭粡竚癈鷭п粐Ь蜀网瘢雹縺笊賜緕踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯鶯跏闢槇荀瘢雹閭蜥禹鶯踈鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡闔肅苺鱸鈑谺蔗迪閭鶩轣銛瘡闔肅苺鱸鈑谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭宴厩粤拘聹錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁竢鈕蜃蜴膊蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡闔肅苺鱸鈑谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就竢鈕蜃蜴膊蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁竢鈕蜃蜴膊蔗迪甌裼皴蔗粹笂瘤豁竢鈕蜃蜴膊蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握験彊号咳下碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡闔肅苺鱸鈑谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁竢鈕蜃蜴膊蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯乙誓鹿粡寂蝟赱齠洲痲筵娼据迪纈皷闔就窺唖釿閼蜴臀∫齒芦沖褓⊃鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪貂赱鈑就裃赱鈑就裃▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂設定ファイル</title> + </head> + <!-- English Revision: 1.12 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">設定ファイル</h1> + + <ul> + <li><a href="#main">メインの設定ファイル</a></li> + + <li><a href="#syntax">設定ファイルの構文</a></li> + + <li><a href="#modules">モジュ・踉札薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黹關紜ディレクティブの適用範囲</a></li> + + <li><a href="#htaccess">.htaccess ファイル</a></li> + + </ul> + <hr /> + + <h2><a id="main" name="main">メインの設定ファイル</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>関連モジュ・踉札闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼熏蜊絎蔗迪▽苳詩閼熏蜊絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑関連ディレクティブ</strong><br /> + <br /> + <a + href="mod/core.html#accessconfig">AccessConfig</a><br /> + <a + href="mod/core.html#ifdefine"><IfDefine></a><br /> + <a href="mod/core.html#include">Include</a><br /> + <a + href="mod/core.html#resourceconfig">ResourceConfig</a><br /> + <a + href="mod/mod_mime.html#typesconfig">TypesConfig</a><br /> + </td> + </tr> + </table> + + <p>Apache は <a href="mod/directives.html" + >ディレクティブ</a> を設定ファイルに平文で書くことにより設定します。 + メインの設定ファイルは普通は <code>httpd.conf</code> という瘢雹巳苳餐阿任后鹿粡寂蝟赱齠洲痲筵娼このファイルの位置はコンパイル時に設定されますが、コマンドラインの + <code>-f</code> フラグにより綵颪任泙后汽ぅ箸砲茲辰討踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕鞣鞜竏絎闥膀蜴肬蓿繞闔肅膈肅跂鶤蔗迪⊆蝟昭粡竚癈鷭п粐Ь苳ぢ歴史的理由</a> により <code>srm.conf</code> と <code>access.conf</code> + がある豺腓發△蠅泙后修陸苳糸、側苳擦寮瀋螢侫.ぅ襪踉祉閼絋苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯蜴竚紜侮竚絋踉晒瓲苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブによって追加されているかもしれません。 + どのディレクティブもこれらの設定ファイルのどれにでも入れられます。 + Apache は起動時か再起動時のみメイン設定ファイルの変更を認韻靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏窺凱嘘ぢの新しい機能として、設定ファイルが尊櫃魯妊譽肇蠅鹿粡寂蝟赱齠洲痲筵娼あるときにはそのディレクトリで見つかったすべてのファイル(とサブディレクトリ) + を解析するという瘢雹ものがあります。利用法としては、 + バ・踉札船礇襯曠好箸鯆媛辰垢襪箸法△修譴れのホストに対して気弊瀋鹿粡寂蝟赱齠洲痲筵娼ファイルを作り、設定ディレクトリに置くという瘢雹ものが挙げられます。 + こう瘢雹すると、単にファイルの追加、削除をすることにより全くファイルを + 編集することなくバ・踉札船礇襯曠好箸猟媛叩∈鐔任泙后鹿粡寂蝟赱齠洲痲筵娼これは芦修鬚困辰抜蔽韻砲靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢサ・踉札个蜊ドキュメントタイプを含んでいるファイルも読み込みます。 + ファイル巳苳擦踉氏鱚羹閼閼熏蜊絎蔗迪t纉竢鈕蜃▽苳市纉衷鈕蜃鹿粡寂蝟赱齠洲痲筵娼で設定され、デフォルトで <code>mime.types</code>になっています。</p> + + <hr /> + + <h2><a id="syntax" name="syntax">設定ファイルの構文</a></h2> + + + <p>Apache の設定ファイルは 1 行に 1 つのディレクティブからなります。 + バックスラッシュ "\" はディレクティブが,旅圓坊兮海靴討い襪海箸鹿粡寂蝟赱齠洲痲筵娼┐垢燭瓩帽圓虜埜紊諒源箸靴道箸錣譴討い襪發靴譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼行の最後とバックスラッシュの間に側苳擦諒源箒鬚△辰討呂い韻泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ設定ファイルのディレクティブは大文字源魘菠未靴泙擦鵑鹿粡寂蝟赱齠洲痲筵娼引数にはしばしば区別するものがあります。ハッシュ文字 "#" + で始まる行はコメントと見なされて無視されます。 + 設定ディレクティブの後の行ではコメントが含まれていては<strong + >いけません</strong>。ディレクティブの前の空行と空白は無視されますので、 + わかりやすくするためにディレクティブをインデントすることができます。 + </p> + + <p>設定ファイルの構文エラ・踉擦踉祉閼絋苳氏鞜竏繝闔肅苳纉熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ぢかコマンドラインオプション <code>-t</code> を使って調べられます。 + </p> + + <hr /> + + <h2><a id="modules" name="modules">モジュ・踉札王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑関連モジュ・踉札闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼燗鎬蔗迪▽苳詩閼燗錵踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑関連ディレクティブ</strong><br /> + <br /> + <a href="mod/core.html#addmodule">AddModule</a><br /> + <a + href="mod/core.html#clearmodulelist">ClearModuleList</a><br /> + <a + href="mod/core.html#ifmodule"><IfModule></a><br /> + <a href="mod/mod_so.html#loadmodule">LoadModule</a><br /> + </td> + </tr> + </table> + + <p>Apache はモジュ・踉札覯修気譴織機バです。 + コアサ・踉札个砲郎任盍靄榲糞’修世韻泙泙譴討い泙后3板サ’修鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢにロ・踉札匹気譴蓿繙就迴箝蜴粤磔鞳譬モジュ・踉札鹿粡寂蝟赱齠洲痲筵娼として利用可能です。デフォルトではコンパイル時にモジュ・踉札襪畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼絖粡笏譯齡癆▽苳ぢ基本</a>セットが + サ・踉札个亡泙泙譴泙后機バが<a href="dso.html">動的ロ・踉札鹿粡寂蝟赱齠洲痲筵娼モジュ・踉札襪鮖箸逅擦茲逅擦縫灰鵐僖ぅ襪気譴討い襴苳詞合は、 + モジュ・踉札襪鯤未縫灰鵐僖ぅ襪靴董△い弔任踉氏鱚羹閼閼燗鎬蔗迪l閨粱閼紜鹿粡寂蝟赱齠洲痲筵娼弥痲酪糒跂ぢディレクティブを使って追加できます。 + そう瘢雹でない豺腓蓮▲皀献紂ルの追加や削除をするためには Apache + を再コンパイルする必要があります。設定ディレクティブは <a + href="mod/core.html#ifmodule"><IfModule></a> + ブロックに入れることで特定のモジュ・踉札襪減澆垢襪箸世鹿粡寂蝟赱齠洲痲筵娼設定ファイルに含まれるよう瘢雹にすることができます。</p> + + + <p>コマンドラインオプション <code>-l</code> を使って現時点で + どのモジュ・踉札襪機バにコンパイルされているかを知ることができます。</p> + <hr /> + + <h2><a id="scope" name="scope">ディレクティブの適用範囲</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>関連ディレクティブ</strong><br /> + <br /> + <a + href="mod/core.html#directory"><Directory></a><br /> + <a + href="mod/core.html#directorymatch"><DirectoryMatch></a><br /> + <a href="mod/core.html#files"><Files></a><br /> + <a + href="mod/core.html#filesmatch"><FilesMatch></a><br /> + <a + href="mod/core.html#location"><Location></a><br /> + <a + href="mod/core.html#locationmatch"><LocationMatch></a><br /> + <a + href="mod/core.html#virtualhost"><VirtualHost></a><br /> + </td> + </tr> + </table> + + <p>メイン設定ファイルにあるディレクティブはサ・踉札仭澗里謀僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼サ・踉札个琉貮寮瀋蠅世韻鯤儿垢靴燭う苳詞合は <code><a + href="mod/core.html#directory"><Directory></a>,<a + href="mod/core.html#directorymatch"><DirectoryMatch></a>,<a + href="mod/core.html#files"><Files></a>,<a + href="mod/core.html#filesmatch"><FilesMatch></a>,<a + href="mod/core.html#location"><Location></a>,<a + href="mod/core.html#locationmatch"><LocationMatch></a> + </code> + セクションの中に置くことで適用範囲を決められます。 + これらのセクションはその中にあるディレクティブの適用範囲を + 特定のファイルシステムの位置や URL に限定します。 + 非錣忘拯嚇戮寮瀋蠅魏椎修砲垢襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼セクションを入れ子にすることもできます。 + </p> + + <p>Apache は同時に多くの違う瘢雹ウ瘢雹ェブサイトを扱う瘢雹能力があります。 + これは <a href="vhosts/">バ・踉札船礇襯曠好ぢと呼ばれています。 + 特定のウ瘢雹ェブサイトにのみ適用されるよう瘢雹にするために、 + ディレクティブは <code><a href="mod/core.html#virtualhost" + ><VirtualHost></a></code> + セクションの中に置くことでも適用範囲を変えることができます。 + </p> + + <p>ほとんどのディレクティブはどのセクションにでも書けますが、 + 中にはコンテキストによっては意味をなさないものもあります。 + 例えば、プロセスの作成を制御しているディレクティブはメインサ・踉札个鹿粡寂蝟赱齠洲痲筵娼コンテキストにのみ書くことができます。 + どのディレクティブをどのセクションに書くことができるかを知るためには + ディレクティブの <a href="mod/directive-dict.html#context" + >コンテキスト</a> を調べてください。椶靴う苳諮報は、<a href="sections.html" + >Directory, Location, Files セクションの動作法</a>にあります。 + </p> + <hr /> + + <h2><a id="htaccess" name="htaccess">.htaccess ファイル</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>関連ディレクティブ</strong><br /> + <br /> + <a + href="mod/core.html#accessfilename">AccessFileName</a><br /> + <a + href="mod/core.html#allowoverride">AllowOverride</a><br /> + </td> + </tr> + </table> + + <p>Apache ではウ瘢雹ェブツリ・踉擦涼罎肪屬譴親段未淵侫.ぅ襪鮖箸辰鹿粡寂蝟赱齠洲痲筵娼非中央集権的な設定管理をできます。 + その特別なファイルは普通は <code>.htaccess</code> という瘢雹巳苳餐阿如鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯痺竇齠肅跂釶辣▽苳殺踉祉閼絋苳餐窿纉麁蛹緡瘢絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブでどんな巳苳餐阿任盪慊蠅任泙后鹿粡寂蝟赱齠洲痲筵娼竢粤窿纉鵙踉晒竢粤ぢファイルに書かれたディレクティブはファイルを + 置いたディレクトリとその全てのサブディレクトリに適用されます。 + <code>.htaccess</code> ファイルはすべてのリクエストで読み込まれるため、 + 変更はすぐに反映されます。 + </p> + + + <p>どのディレクティブが <code>.htaccess</code> + ファイルに書けるかを調べるには、ディレクティブの<a + href="mod/directive-dict.html#context">コンテキスト</a> を調べてください。 + サ・踉札亟浜踉市はさらにメイン設定ファイルの <a + href="mod/core.html#allowoverride"><code>AllowOverride</code></a> + を設定することでどのディレクティブを <code>.htaccess</code> + ファイルに書けるよう瘢雹にするかを制御することができます。 + </p> + + <p><code>.htaccess</code> ファイルに関する椶靴う苳諮報は + <a href="http://apache-server.com/tutorials/ATusing-htaccess.html" + >Using .htaccess Files with Apache</a> の Ken Coar's tutorial + か Apache のドキュメンテ・踉札轡腑鵑砲△踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕鞣鞜竏絎闥膀粹笂阯窿纉鶤蔗迪▽苳皿蔗痺竇齠鹿粡寂蝟赱齠洲痲筵娼チュ・踉札肇螢▲ぢを参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡闔銓繚阡蛛闔谺緕閭鶩轣銛瘡闔銓繚阡蛛闔谺緕錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭狂香盍抗弘錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁竢銓緕鈬苡癆蜿隨蔗迪鄂莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡闔銓繚阡蛛闔谺緕鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐況声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹闔銓繚阡蛛闔蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬衷銓緕励苡癆蜿遉踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏紮齦韶闥肬竢銓緕鈬苡癆蜿葹矼緕鞣癆繖鐚蝟昭粡竚癈鷭п粐Ь繞挽墅鞳竕肅竅闔部瘤蓖闢矼齡鹿粡寂蝟赱齠洲痲筵娼鱚頏纉緕闔鱚齒竇癈繖碣阯黼鬮齦韶跚繖鹿粡寂蝟赱齠洲痲筵娼頏繙纈緕竇肬辣粡鞳赱鈑艱鵺葹鱇笏纈續鈔鹿粡寂蝟赱齠洲痲筵娼緕竢粡鈑部瘡齒逅跂辣銓竢跂聽癆纉芍鹿粡寂蝟赱齠洲痲筵娼迴鱚銓繻跚艱銓瘤粲蜴閹繿齡胙闕鳫纈蜒黼鈔鹿粡寂蝟赱齠洲痲筵娼蜴竢逅跂繚阡蛛闔鈕闥轣闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮衷銓緕鈬苡癆蜿蜩鳫粤磔蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖鈬苡癆蜿隨蔗迪▽苳詩閼燻繚阡蛛闔閼絳鹿粡寂蝟赱齠洲痲筵娼蜒蜩闕韈跂蜴粤聲鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢曹阨衷銓緕励苡癆蜿遉踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐纉阨鱆轣矼蛹痰跂黼鱇粡聿纈緕蝟昭粡竚癈鷭п粐Ь辮鱚黼銓癆蜿銖楠纔瘢韭絳迚艾矼蛹痰跂郤蝟昭粡竚癈鷭п粐Ь蜀聽鱚銓瘤苺瘍纉粡聿纈緕辣粡鞳鵺竢轤蜴癆蜿隨鹿粡寂蝟赱齠洲痲筵娼閹繻繝鈑蒹闢瘰頏關鱸癆竏濶竇蝟綣蝟昭粡竚癈鷭п粐Ь黼瘤鈔纔瘍絳鈔續蒹黼跂笏被蜚閹郤蝟昭粡竚癈鷭п粐Ь闢皷碎肬黼鴟纈竏闖黼闕癆蜒瘡踟壽蜩闥謫鹿粡寂蝟赱齠洲痲筵娼矼竅碣阯黼鴦瘤緕癈癇閹痺鱚髟纉蜴肬鴉癆蜿郤蝟昭粡竚癈鷭п粐Ь硼葹鱚頏纉緕闔纖鱚聽鬯闥逅跂碣阯黼鮗蝟昭粡竚癈鷭п粐Ь阨趙鈔蜒癆癆跚諷黼蜴肬鴉癆蜿蜴鱚釿茗鹿粡寂蝟赱齠洲痲筵娼蜀闢皷碎絳踈梼芟蜩跛鎬鳫纈蜴粡竅蒹蜥鹿粡寂蝟赱齠洲痲筵娼頏繙纈緕竇磔縺粤鴦鱚髟纉鱚髟纉闔踟鱚釿莠蝟昭粡竚癈鷭п粐Ь辮鱚黼銓癆蜿銖碣阯黼黼鈔鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь窿辮戻鈑艱胙鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳士阡癆蓍頏繙纈緕竇蛹闔踟瘰韭蜈緕蒹鱚鷦蝟昭粡竚癈鷭п粐Ь蓖蜒閹辮鱚黼銓癆蜿銖鈔蒹鴒赱鈑艱踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蒼纔瘢韭閹闥竢逅跂鱚髟纉蓍碣阯黼葹鷦蝟昭粡竚癈鷭п粐Ь繞竢鈕蜃繖痺竇頸鱚釿瘤梼芟蜩茗鱚聽鮗蝟昭粡竚癈鷭п粐Ь鱚釿茗鈔痺竇頸癇蜿繖蛛纉頏繙纈鱸鈑塒阮纈鹿粡寂蝟赱齠洲痲筵娼韭瘟阡蒹纉瘤頏繙纈鱸鈑鋲偏吐鮗蝟昭粡竚癈鷭п粐Ь纈繖蛛纉碯瘡齒跛阯蜴瘤阡蒹辣粡鞳畆蝟昭粡竚癈鷭п粐Ь癈鱚齒鶯墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼巣竇頸瘤苺瘍綺鮖襲緕饅握擬蝟昭粡竚癈鷭п粐Ь窿辮纔蔗迪饅窺穐纔衆蜊瘍絲芍羯衆蝟昭粡竚癈鷭п粐Ь轣艱鞳膸衆蜊瘍絲衆衆鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼草痺蒹竟鶯纈糅蝟緕竢銓緕鈬苡癆蜿遯鷦蝟昭粡竚癈鷭п粐Ь繙蜴繖挽墅鞳竕肅竅闔部踟竟鶯綣蝟昭粡竚癈鷭п粐Ь窿辮窿辮戻鈑艱巣竇頸葹鴦續鈔窿辮梼竢粡鈑鹿粡寂蝟赱齠洲痲筵娼鱚髟纉蒹痲纈鶤鞜竏窺凱瘡齒竟鶯鱇銖鞜鱚銓Ъ蝟昭粡竚癈鷭п粐Ь闔銓繚阡蛛闔蜒蜩纔鞳鱸辣銓瘡繚阡蛛闔鹿粡寂蝟赱齠洲痲筵娼頏阡閭闌繙蜴繖卞臆控鈔特温峡粹纉阡聿纈鹿粡寂蝟赱齠洲痲筵娼齦韶闥肬ф縺鱚繚阡蛛闔癈繙蜴繖纉卞駐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐踉雌闔胼苳賜纉阨鱆絋踉晒齡鳫鈑竢釿辮瘡銓蜚蝟昭粡竚癈鷭п粐Ь粤銓蜀蜈磔夘卞桶攻挽墅纈跚諷鞜竏綣蝟昭粡竚癈鷭п粐Ь鳫粤痺竇齠齡鳫鈑鱚頏纉緕闔鵙踉晒齡鳫鈑綣蝟昭粡竚癈鷭п粐Ь纉阨鱆紲鶇蜚蓍蜚釶辣齔痺絳蜚縺竏辮鱚黼銓癆蜿蜴鹿粡寂蝟赱齠洲痲筵娼肬鴉黼髟緕竇磔繙蜴繖繖蛛絳鹿粡寂蝟赱齠洲痲筵娼竏癇痺黼釿閼蜴膃刀竏纉阨鱆轣矼齠閭蛛篌蝟昭粡竚癈鷭п粐Ь蜚鳫闔絳迴鱚葹闔鱚頏纉緕闔瘤芍郤蝟昭粡竚癈鷭п粐Ь蜊絎逡踉蜷跂辮鱚黼銓癆蜿銖鱚蛹痰跂鱚齒竇鹿粡寂蝟赱齠洲痲筵娼蜩繙纈鱚齡鳫鈑鈬苡痰跂闔胼苳瘤縺竏蜚鷦蝟昭粡竚癈鷭п粐Ь辮鱚黼銓癆蜿銖鴉繖踉雌闔胼苳事癇蛛銓闔胼苳皿蒹癨鷦蝟昭粡竚癈鷭п粐Ь蜒鱸瘤闥繚阡蛛碎鱚齒竇癇癇竅跛繖鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑粡辣銖蜿銖闔胼苳閹繚阡蛛闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳士繚阡蛛闔草痺蒹王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮鰾纈鈬苡癆鱚齒竇黼鴟纈繞糂矼鹿粡寂蝟赱齠洲痲筵娼芍蜴肬鴉癆蜿痰阨縺竏鱸瘤壽蜩粹鈬郤蝟昭粡竚癈鷭п粐Ь鈬墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳師皷鈑轣└踉糸蹙苳脂踉晒纃竢粤鬢踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼肅跂蜒釶辣肅跂竢銓瘟鉗鈑蒹癇蛛銓鷦蝟昭粡竚癈鷭п粐Ь跚竕鬢踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚專蜴帷纓鵲縺鱆茗蒹鱚蒹纈粹纉郤蝟昭粡竚癈鷭п粐Ь逅跚竕肅跂釶辣癆鴈癆竏鈔蓖闢纉鳫瘢闔綣蝟昭粡竚癈鷭п粐Ь纉踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳師皷鈑絖轣肅跂界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鞳瘰粹笊辣銓蓍竏癈齒竕癆繖蜚綣蝟昭粡竚癈鷭п粐Ь瘤粲纈瘢繖踉祉閼絋苳飼絖轣隍踉晒竢粤闥肬鮗蝟昭粡竚癈鷭п粐Ь痺譌癇糂闕鞜砠跚蜚闌粤草痺蒹闔肅苺鱇闔鵺蒹鹿粡寂蝟赱齠洲痲筵娼迚辣竢粤瘰韭蜒癆蜿遲鞳瘰閼絋苳皐麗葹鹿粡寂蝟赱齠洲痲筵娼蜩縺鱚逡齡癘葹鈔跂黼蜴蒹鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿癆繙蜴纉蛹齦聿蝌鷦蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳飼絖轣隍踉晒竢粤蜩矼齡闔鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь粐悲鈔跂鞳瘰鮗蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь黼鴟纈闔肅苺鱇闔蛹絎繞蒹闕辣銓蜴蒹鹿粡寂蝟赱齠洲痲筵娼黶逅跂闔肅肅跂闥闥粤蛹鶤蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮奘鞳瘰蛹纉癘瘤銓鴒闥痺癘瘟赱碎鱸瘤鹿粡寂蝟赱齠洲痲筵娼纉緕蜈竢銖蜩閹闔苺阨挽墅闥轣蒹痲纈蜴纉蝟昭粡竚癈鷭п粐Ь銓鱸纉闥蜀聽鱚銓癇蛛銓癇黼鞜鱇磔赱鉉蜴纉蝟昭粡竚癈鷭п粐Ь赱鉉蜴纉鱚跛繚瘡蜚蓍瘤銓鴒部竢鉚緕闔瘡鐚蝟昭粡竚癈鷭п粐Ь繚蜴瘰蛹緕肬竢轤蜴繖銓蜚癈鹿粡寂蝟赱齠洲痲筵娼闌踉蓖蜩鈿鱚髟蜥繖瘤蜀鱚黼銓蛹矼鹿粡寂蝟赱齠洲痲筵娼蜃鈿鱚筴綜逅跂瘰蛹蜩蓖繻阯侮蓍纔瘢韭絳蒹鹿粡寂蝟赱齠洲痲筵娼肅跂阨趙釶辣竢粤肬鎬鬢踉晒竢粤鈔阨趙韭痺繖綣蝟昭粡竚癈鷭п粐Ь瘢粡鱚笏闥蒹癇蜿癇蛛銓閹蒹纉阨鱆綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳紙闖閼絋苳皿鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь夘肬鐚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь夘肬鎬緕貅蝟昭粡竚癈鷭п粐Ь闔銓綺纔蔗迪鹿粡寂蝟赱齠洲痲筵娼衷銓緕赱鈑艱緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼孀漂闖鬯粤貅蝟昭粡竚癈鷭п粐Ь闔銓綺纔蔗迪祉葹鴦續初齒元広下蝟昭粡竚癈鷭п粐Ь闔銓瘤苺瘍綺鬪綣蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь鱸瘤癘粡聿纈緕齒竇跚纉癆癨綣蝟昭粡竚癈鷭п粐Ь鈔蜒癆繖鵞癇瘢續纈辣粡鞳癈蜩鹿粡寂蝟赱齠洲痲筵娼韈笏蛹痰跂褓繚芍罨喪檀畢癇鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь夘肬鐚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь夘肬鎬褓繚鹿粡寂蝟赱齠洲痲筵娼衷銓緕鞳蜊瘍絲褓繚體衆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼孀漂闖蜀鹿粡寂蝟赱齠洲痲筵娼衷銓緕鞳蜊瘍絲芍羯鷭握擬蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь夘肬鎬蝟昭粡竚癈鷭п粐Ь闔銓綺纔韭瘟郢鷭握葦鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳資跿纉瘤癇蜴蒹瘤艱旭窺旭握阡癆鹿粡寂蝟赱齠洲痲筵娼瘤鱸瘤跿閹旭蛹鈬矼蓖黼隨鹿粡寂蝟赱齠洲痲筵娼已鱸瘤蜚鈿體鞜鱇辣跿癇芍體痺閹鹿粡寂蝟赱齠洲痲筵娼窺握蒹鞜鱇辣蜴粡竅鱚赱髟瘡蜚蜩鹿粡寂蝟赱齠洲痲筵娼鱸瘤竢逅癇繖阡蒹癘瘟赱碎鱸瘤蜴粤鞳鈔緕蝟昭粡竚癈鷭п粐Ь竚蜈銓瘰痰蛹蜚蜈鶤闥逅跂褓繚蛹蜩鹿粡寂蝟赱齠洲痲筵娼跛閹蜃蒹齒竇跚葹瘤黹蜑蛹蜀蜩鹿粡寂蝟赱齠洲痲筵娼癆逅鈑鱚頏纉緕韆阡閾鱇韆被鬪鱚齒竇鹿粡寂蝟赱齠洲痲筵娼矼蜴鱚頏纉緕蜩闥蜃蜴瘡黹蜑鶯緕癈竕藜蝟昭粡竚癈鷭п粐Ь辮鱚黼銓癆蜿葹蜃蒹齒竇跚葹褓繚鹿粡寂蝟赱齠洲痲筵娼鱚頏纉緕闔體瘡纈繙闥齔繝蜀蜒芍郤蝟昭粡竚癈鷭п粐Ь癇蛛銓辮緕粡鈑釶鱚鱚齒竇蝟昭粡竚癈鷭п粐Ь辮鱚黼銓鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹跚齡蒹痲纈鱚竢芬蝴繖鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘竢粤孀漂閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐閹蒹蛹竢銓瘟鉗鈑蒹癇蛛銓閹蒹蝟緕鹿粡寂蝟赱齠洲痲筵娼辣粡鞳緕竢粤蒹蝟緕闔銓釿閼蜴腥壽纉綣蝟昭粡竚癈鷭п粐Ь鱚銓纈頏續繖孀約繻癆蝟蒹瘰蛹綮蒹逡齡鹿粡寂蝟赱齠洲痲筵娼矼黶辣纈─鈔蒹逡齡繙纈肅跂鹿粡寂蝟赱齠洲痲筵娼蜒竚蜈銓阨趙苒瘤痺竇齠纖纈綣蝟昭粡竚癈鷭п粐Ь繿齡繖蜥繝筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳暫闔銓綺閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐辣粡鞳葹鴦續跂瘤鵞癇瘢續纈轣矼鹿粡寂蝟赱齠洲痲筵娼芍隨蒹黼鱚胄緕繙纈鱚揺妖纉韈竅貅蝟昭粡竚癈鷭п粐Ь繖蛛纉鱚踉祉閼絋苳脂轣艱蜀閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼竢粤赱蜴閼絋苳錆鮗蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳飼纔蔗迪殺瘢雹鈞齔詞纐繻蹴閼絋苳皿筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳暫闔銓瘤苺瘍綺閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐壽赱鈑艱閹蒹癇蛛銓齔繝蜀蜈癈侮鴈續鹿粡寂蝟赱齠洲痲筵娼齡瘤籬鰾瘤苺瘍胙闕特袈└踉糸蹙苳糸踉晒纃蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳糸遉踉晒竢粤闥鈑跚鼈竢粤謦閼絋苳肬柾鱚瘤蝟昭粡竚癈鷭п粐Ь踉糸蹙苳糸踉晒纃筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳暫闔銓釿閼蜴膾閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐膚蒹蛹蜩闕頏纉黼筱阡蒹鵄蜩緕竢粤筱癆蒹鮗蝟昭粡竚癈鷭п粐Ь葹竢銓瘟鉗鈑蒹笏鱇籬蜩癨蓖癆癈鹿粡寂蝟赱齠洲痲筵娼粹鈬草痺蒹鉤鱚竢芬蝴纉釿閼蜴苴葹癇粤肅鈬磔郤蝟昭粡竚癈鷭п粐Ь踉氏鱚羹閼閼熏蜊絎蔗迪a粐緕竢粡鈑▽苳餐粐梼竢粡鈑鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絎蓍鈿鴉瘡踟釿跿粤緕竢粡鈑鷦蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳侍闕頏纉鵙踉晒竢粤闥闕頏纉鵲肅跂鵺鈔鹿粡寂蝟赱齠洲痲筵娼竢粤苞蜷閼絋苳肬苞蜷т蛹纉壽竢粤閼絋苳纂蝟昭粡竚癈鷭п粐Ь鱚肅蜩芬闥繖闥釿閼蜴竢逅癇蜩闔鶤筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳暫闔銓緕苳荳閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐壽皷肅跂嚼繝蜀鈑闔銓緕苳蓴綣蝟昭粡竚癈鷭п粐Ь絖轣瘡跫蒹纈闕鞜鱚蛹皷阨蝟昭粡竚癈鷭п粐Ь蒹站蜴痺瘡蛹纉踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘竢粤偵黹鱸頸蜿邵閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐蔘轣遶鱚痲痰跂纔瘡纉竰蜷闔鱸瘤羲蝟昭粡竚癈鷭п粐Ь鞜竏竅銕阡蜴瘤瘰頏關鱸癆鱸瘤續遯跛鹿粡寂蝟赱齠洲痲筵娼鱚鴈纈鳫鱚齔闔黼蓍竏蜩跛蛹痰跂癇蛛銓鷦蝟昭粡竚癈鷭п粐Ь銖痲囎竏癇蛛銓蜩跛釿跿粤蒹瘤縺籬碎綣蝟昭粡竚癈鷭п粐Ь癇蛛銓纉竰蜷闔鶤筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖藍踉蝟蜈界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢粤藍踉蛄蜈閼絋苳蜩纈蜥繝鴒頸蜿遯縺鉗鈑鹿粡寂蝟赱齠洲痲筵娼蜚瘤黼竢粤闔鵙踉晒竢粤蜥繝蜚蓍畆蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳殺瘢雹踉残蜥繝鴒逅紫閼絋苳錆踉祉閼絋苳殺瘢雹踉嗣閭癆蜿遉瘢雹苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼闥踉祉閼絋苳殺瘢雹踉仔蛹纉逅紫閼絋苳黼笏蜿蜴鹿粡寂蝟赱齠洲痲筵娼竢粤痺竇齠闔网踉晒竢粤闥蜀踉祉閼絋苳餐跛阯纈鱸粤閼絋苳蜩鹿粡寂蝟赱齠洲痲筵娼頏關纈踟續蜴踉祉閼絋苳皿蔗痺竇齠閼絋苳肅跂鶤阡癆鹿粡寂蝟赱齠洲痲筵娼竢粤闔糟讀踉晒竢粤閻鈿黼竢粤藍踉蛄蜈閼絋苳算鹿粡寂蝟赱齠洲痲筵娼葹癈肬蜚釶辣踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽繙聽笏竢粤藍踉蛄蜈閼絋苳蜩肬跛阯鷓綣蝟昭粡竚癈鷭п粐Ь纈鱚竇蝟纉繿齡闥踉祉閼絋苳晒齒辣蜥闖閼絋苳錆羲蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳晒齒辣蜥閼絋苳葹竢粤藍踉蛄蜈閼絋苳緕痰跂筱鈔鹿粡寂蝟赱齠洲痲筵娼竢粤闕絲粡鬲肬錵踉晒竢粤閻纃鈿熙踉晒纃齡緕蒹鹿粡寂蝟赱齠洲痲筵娼黼鴟纈縺糂蒹蜥繝鴒闖謇鈑闥蛹纉瘢繖闖瘤篌蝟昭粡竚癈鷭п粐Ь聿繝踟瘠纉鞳瘰蓍竏瘢纉跛蓖黼蛹纉蝟昭粡竚癈鷭п粐Ь齠蜃鉗鈑蒹黶辣繖蛛纉鈔闔銓釿閼蜴苴蝟昭粡竚癈鷭п粐Ь阨趙癘蜀蒹跚緕葹癈諷肬闔閹蒹磔瘢絎蝟昭粡竚癈鷭п粐Ь蒹竏闖黼矼齡癆竏竚蜈銓繿鱚辣銓鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳四帷纓鵙踉晒竢粤癨踈瘰韭縺鱆蒹肬綣蝟昭粡竚癈鷭п粐Ь蛹釶辣磔蒹踉祉閼絋苳残蜥繝鴒侮粤踉晒竢粤蜥繝蜀蒹鹿粡寂蝟赱齠洲痲筵娼黼鴟纈鈑蜴粤粡鱚笏闥竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь蛹纉鞳竕胱鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь蜥繝鴒侮粤蜴粤蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蒹黼鴟纈蛹癇砠癆矼繞竢粤蜴粤蔗迪閼絋苳纂蝟昭粡竚癈鷭п粐Ь鈔踉祉閼絋苳脂鈔纔豎閼絋苳蜀阡癇頏纉緕鈬蜚蒹鮗蝟昭粡竚癈鷭п粐Ь鱚鱚黼銓瘤竢粤蜴粤竍薤踉晒竢粤纈絳蒹纈鮗蝟昭粡竚癈鷭п粐Ь蛹鴣蜚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺闔閹蒹蛹纉阨鈔蒹鱚痲蜴粡鱚笏蝟蜩鹿粡寂蝟赱齠洲痲筵娼断黹鱸頸蜚阡磑蜿葹鼈阨趙瘰鞳隨蒹閼芍鷦蝟昭粡竚癈鷭п粐Ь葹竅黼鞳竕瘡鱚癆辣銓鱚髟纉佻嘖闥鹿粡寂蝟赱齠洲痲筵娼播嫖燮濮卩闥壮庇瀕届黹鱸頸芍瘤鹿粡寂蝟赱齠洲痲筵娼纔纃繻蓍艾跚癆蜴膃鈔緕纈瘡踟鉚闍繖阡蒹鵄蜩綣蝟昭粡竚癈鷭п粐Ь蜩蝟緕纔纃繻跫髟瘡蜚鱇鈑蜒艱鈬鱇跛蝟昭粡竚癈鷭п粐Ь癜黼闔閹蒹纈蜈蜀銷鱚蜈筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢壽励苡癆蜿羅閼鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼漕草痺蒹癈碪瘟鈬跚齡鱸瘤闥蝟緕鹿粡寂蝟赱齠洲痲筵娼鱚齒竇繪纈鳫鞳瘰蛹闥鳫肅跂釶辣蜴鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥蜴諷闔閹續蓖糂粤竕粤綣蝟昭粡竚癈鷭п粐Ь矼齡鱸瘤續遯瘤蜩阡繝纉黶鴒謗阯鹿粡寂蝟赱齠洲痲筵娼瘤閹蒹續瘟踈蓖鈬苡癆蜿痺瘡踟瘠纉赱竇郤蝟昭粡竚癈鷭п粐Ь鰾纈草痺蒹闔銓繚阡蛛闔縺鱚鶤阯纐纈蒹鹿粡寂蝟赱齠洲痲筵娼鱚齡蜩閭緕纔韭瘟銖蒹續蓖糂黼肬闢綣蝟昭粡竚癈鷭п粐Ь銓纈纉筮蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纈癇鈬苡癆蜿辣閼鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼闌鹿粡寂蝟赱齠洲痲筵娼跚齡鳫鈑嚆鴟纈鱸鈬苡癆蜿蒹鞜竏綣蝟昭粡竚癈鷭п粐Ь趺闥蜚蓁闔胼苳蜩黼蜴蒹闥轣竅黼壽草痺蒹鹿粡寂蝟赱齠洲痲筵娼瘡苡鱸蜩赱蜴繖迴鱚續瘟矼跫蒹蜩鹿粡寂蝟赱齠洲痲筵娼瘡苡鱸蜩黼筱鞜竏竅齒辣辣ф蜆粲紮蒹跚鹿粡寂蝟赱齠洲痲筵娼聲笏闥鞜鶯蜒癇蜊緕皷闔痺蓍纐矼纈纉鹿粡寂蝟赱齠洲痲筵娼壽鞜竏竅肅粐跂跚痺鴦纔韭瘟鈬蜴鹿粡寂蝟赱齠洲痲筵娼迴鱚續瘟矼跫薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌闔胼苳市鱇銖鞜鱚銓闔銓繚阡蛛闔闔胼苳蜩黼篌蝟昭粡竚癈鷭п粐Ь蒹碣阯黼齔繝蜀蜒瘡踟繿齡蜩蓿阨艾蒹鹿粡寂蝟赱齠洲痲筵娼辣竏瘤蜩粤肅鈬蜴特温貴蓍鈬苡癆蜿辣閼蝟纉鹿粡寂蝟赱齠洲痲筵娼碣阯黼胚跛闔闌粤竕粡鈑р纉癇蛛銓蝟昭粡竚癈鷭п粐Ь蒹纉蜩蒹鱚肬鱚辮緕粤銓齔繝蜀蜒趺闥蜚蓁鷦蝟昭粡竚癈鷭п粐Ь黼磔蒹鳫纈蒼癇閹蒹鱇銖鞜鱚銓繚阡蛛闔鹿粡寂蝟赱齠洲痲筵娼頏閭纉鵺蒹鳫纈瘤鼡鞜竏蒹鱚迴鹿粡寂蝟赱齠洲痲筵娼鱸瘤黼跂笏蜿瘡苡鱸蹤繙蜴繖卞臆攻踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳残蜊緕皷闔閹繚阡蛛闔界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼荀苳残蜊緕皷闔荀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼荀苳士阡纉荀苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳四繖蛛絋踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼択阯黼蜴粡竅頏繙纈緕竇蒹窿辮蒹痲纈鹿粡寂蝟赱齠洲痲筵娼肅繻筮痺蜚纃瘤癘瘤齠閭蛛髟瘡蜚聲笏闥蝟昭粡竚癈鷭п粐Ь癇蛛銓纉竰蜷闔瘤踈葹跚痺蒹鹿粡寂蝟赱齠洲痲筵娼鵞癇瘢續纈筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳嗣瘤苺瘍絋踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼択阯黼蜴粡竅頏繙纈緕竇蒹窿辮戻鈑艱鹿粡寂蝟赱齠洲痲筵娼蒹痲纈蜈趙刀竏竅葹跚痺鬯癇蛛銓鷦蝟昭粡竚癈鷭п粐Ь瘤癈齒竕癆繖蜚鈿鈬闔闥闥瘤鈬鹿粡寂蝟赱齠洲痲筵娼赱鈑艱踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟鹿粡寂蝟赱齠洲痲筵娼梼竢粡鈑筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼筅苳斬鳫纈鈔蜒癆纉鱚聽鱚釿蒹窿辮梼竢粡鈑鹿粡寂蝟赱齠洲痲筵娼蒹痲纈蜈趙刀竏竅葹跚痺鬯筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳暫葹鴦續筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼筅苳斬鳫纈鈔蜒癆纉鱚聽鱚釿蒹窿辮宙癇黼蝟昭粡竚癈鷭п粐Ь縺粤肅繻筮痺蜚纃瘤癘髟瘡蜚聲笏闥已鱸瘤鹿粡寂蝟赱齠洲痲筵娼竅蜴粡竅葹鴦續鞜鱇辣閹蒹繖蛛鹿粡寂蝟赱齠洲痲筵娼鞳踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳餐鞜竏励苡癆蜿糟苡鱸蹙踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏竅肬跛阯蜴瘡苡鱸繻繝р纉鹿粡寂蝟赱齠洲痲筵娼鱸瘤瘤鱚鴈碣阯黼鬯蓍瘡苡鱸蜩鹿粡寂蝟赱齠洲痲筵娼鈿胚鶯蒹竢鈕蜃痰跂部鞳鱇癈闌跫墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉誌讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳仔蜥齡肬縺竏蜊緕皷闔鈬苡癆蜿遯蒹站蒹鹿粡寂蝟赱齠洲痲筵娼瘰頏關鱸癆纃巣竇頸踉晒纃縺粤肅繻瘤癈皷芬鹿粡寂蝟赱齠洲痲筵娼髟瘡蜚痺鱸瘤纃巣竇頸踉晒纃縺粤肬鮗蝟昭粡竚癈鷭п粐Ь銷蜊緕皷闔逅跚纉葹蜩癇蛛銓鈿痺竇頸痰跂蝟昭粡竚癈鷭п粐Ь跚迚釶鈿癇蛛銓鱚轣蜴苡齡辮踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼嚆跂笏蒹矼齡鱸瘤磔鳫竇齠繻蜊蜴癆蜿隨痺莠蝟昭粡竚癈鷭п粐Ь肬跛阯蜴齡蜩韶跚繖闥粤鬯銷癇蛛銓鷦蝟昭粡竚癈鷭п粐Ь阡繻繝癆痺齡鱚跚迚釶筮胄纈痺齡蝟昭粡竚癈鷭п粐Ь闔踟鈬癇蛛銓纃瘟銖黼跂笏癈蒹纉轣莠蝟昭粡竚癈鷭п粐Ь鈔鳫竇繖齡辮膚闥瘤鈬癇蛛銓纃瘟銖蝟昭粡竚癈鷭п粐Ь阮闔鈬纉蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉誌讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳四韭髟瘡蜚聲笏闥鳫巣竇頸縺粤鮗蝟昭粡竚癈鷭п粐Ь蜚髟瘡蜚閹阨鱆聲笏闥闥蓍鱸瘤鷦蝟昭粡竚癈鷭п粐Ь繖蛛絳鈔繻繝鱸瘤蜚蓍艾纉蝟昭粡竚癈鷭п粐Ь瘡踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚嚆跂笏蒹癇蛛銓蒹蜃蒹齡瘤苺瘍髟瘡蜚蝟昭粡竚癈鷭п粐Ь痺鬯薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳屍繻繝鱸瘤蜚矼齡瘤苺瘍轣茗鹿粡寂蝟赱齠洲痲筵娼蜴繪纈蒹鰾纈赱鈑艱蜴蒹鹿粡寂蝟赱齠洲痲筵娼巣竇頸瘤苺瘍蒹痲纈蜀鱚黼銓繻黼蒹鰾纈羲蝟昭粡竚癈鷭п粐Ь瘤苺瘍纉竢粤戻鈑艱會蜿鱸閼絋苳粡鱚笏蝟綣蝟昭粡竚癈鷭п粐Ь蜀鱚黼銓薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳屍繻繝鱸瘤蜚蓍艾纉ъ纐繻辣粡畆蝟昭粡竚癈鷭п粐Ь癇瘢續纈繖芍蒹纈皷闔辣粡畆蝟昭粡竚癈鷭п粐Ь纉薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳屍繻繝鱸瘤蜚矼齡葹鴦續繖蛛鹿粡寂蝟赱齠洲痲筵娼鞜鱇辣鴦癈蝟緕巣竇頸葹鴦續縺粤跚鈬蝟昭粡竚癈鷭п粐Ь葹鴦續嗜元広蜩窿辮碎跂齠跚竕蝟昭粡竚癈鷭п粐Ь跿粤筮癇蛛銓踉祉閼絋苳飼纔踉晒竢粤繖蛛綣蝟昭粡竚癈鷭п粐Ь阡跚竕癈齒竕癆繖蜚鞜鶯蜒癇葹鴦續鹿粡寂蝟赱齠洲痲筵娼癇癈齦辣蜴嗜元広窺薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳屍繻繝闢鱸瘤蓍竏癘癈齒竕癆繖葹鴦續鹿粡寂蝟赱齠洲痲筵娼辣粡鞜鱇辣鴦葹癇纃鈿熙踉晒纃嗜元広窺羲蝟昭粡竚癈鷭п粐Ь蒹鱚鱚齦竏癇蛛銓鵺繻繝瘡鱸瘤鹿粡寂蝟赱齠洲痲筵娼蜴齡縺筮薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳屍繻繝鱸瘤蜚矼齡釿閼蜴膊纈綣蝟昭粡竚癈鷭п粐Ь鱚癇蛛銓緕竢粡鈑葹蜩窿辮碎蒹鹿粡寂蝟赱齠洲痲筵娼纈艱銓黼跂笏鉤纉鱸瘤蒹鵄蜩蜀鹿粡寂蝟赱齠洲痲筵娼纈蜩蝌緕竢粤瘤鈿遶緕竢粤鱸瘤蝟昭粡竚癈鷭п粐Ь繻繝闔踟蒹鈬釿閼繖癇蛛銓鶤繪纈跛鹿粡寂蝟赱齠洲痲筵娼鱸瘤鱚釿閼繖瘡鱸瘤鱚阡釿閼繖蝟昭粡竚癈鷭п粐Ь繻繝瘡鱸瘤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚嚆跂笏蒹癇蛛銓蒹轣跛纉竢銓緕蝟昭粡竚癈鷭п粐Ь緕苳莅薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳屍繻繝肅鴦鱸瘤閹蓖黼纃瘟鉗鈑壽蜩鹿粡寂蝟赱齠洲痲筵娼跛繪纈蒹蜥齡蜩蜴蒹絖轣肅跂闥鹿粡寂蝟赱齠洲痲筵娼緕癇蛛銓癇鱚痲鳫粡鱚笏闥蒹鈬蓖黼鹿粡寂蝟赱齠洲痲筵娼肅跂瘢竢辣肅鴦緕闥蜴喪檀竢粤鹿粡寂蝟赱齠洲痲筵娼闥粤鬯薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒闌鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳市蒹趺闥蜚蓁癈阯繻繝闔р纉癇蛛銓齒鹿粡寂蝟赱齠洲痲筵娼鱚鴈癈蒹纉竟銖絎蒹墺鱚齔闔黼縺粤已鴒鷦蝟昭粡竚癈鷭п粐Ь續蜴粡竅蒹蜊緕皷闔閹繚阡蛛闔碣阯黼鴦鈔鹿粡寂蝟赱齠洲痲筵娼竅竏纉瘤黼蓍蜴肬鴉癆蜿緕痺蓍鈑蒹纉阨鱆紿蝟昭粡竚癈鷭п粐Ь鈔踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚隍苳市艱蒹鱚縺銖鱸瘤黼跂笏繖矼竅鈿鈬鹿粡寂蝟赱齠洲痲筵娼癇痺竇頸痰跂碣阯黼鬧吶鴈斡縺鉗鈑鹿粡寂蝟赱齠洲痲筵娼⇔痺竇頸痰跂辮鱚黼銓癆蜿遐纉竟銖硼糯鹿粡寂蝟赱齠洲痲筵娼竢銖蜩鈑瘤塒粹笊辣銓蜩鈑蒹蛹痰跂鹿粡寂蝟赱齠洲痲筵娼鱸瘤糟齒續蒹墺已鴒縺粤鈔蜒癆綣蝟昭粡竚癈鷭п粐Ь蜊緕皷闔閹癇蛛釿絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳支阨蓖矼鱚葹纈鳫辣齠瘍鱚鴈繖草痺蒹鷦蝟昭粡竚癈鷭п粐Ь繝纉黶鱸踟癆蒹鴦瘤迚艾竢鈕齒辣黼鴦纐緕蓖蜚鹿粡寂蝟赱齠洲痲筵娼跚齡癘瘟赱碎瘡鴈癆蝟纉銓癘濶纈黼繪鈑蓍鷦蝟昭粡竚癈鷭п粐Ь鴪闥瘍絳阨蓖闥艨鉗阨粹笊辣銓齦竏葹粹笊辣銓畆蝟昭粡竚癈鷭п粐Ь繙癜踉瘤苺瘍繙癜踉釿閼蜴續祟蜩踞癨鱚鴈繖畆蝟昭粡竚癈鷭п粐Ь閭緕蜩阡蛹痰跂瘤閹蒹瘤苺瘍纉緕竢粡鈑續祟蒹鹿粡寂蝟赱齠洲痲筵娼碣阯黼癈諷肬鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺鞜鶯蜒癇蜀阨瘤粹笊辣銓粤聲赱鈑艱鐚蝟昭粡竚癈鷭п粐Ь鱚鴈繖粹笊辣銓鈿癘瘟赱碎蜴銷赱鈑艱鷦蝟昭粡竚癈鷭п粐Ь鳫纈鼡繖闥鼈阨趙鱚癆粹笊辣銓蜚鈿瘤苺瘍綣蝟昭粡竚癈鷭п粐Ь鱸碯續繞踉氏鱚羹■鈿赱鈑艱▽苳志癇蛛銓鐚蝟昭粡竚癈鷭п粐Ь瘤苺瘍絋踉晒瓲苳矼跫肬粤蛹鶤薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒闌鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就矼纈釶辣就矼纈▽苳仔蜆粲蜴跚鹿粡寂蝟赱齠洲痲筵娼已跿纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹闕續蜊纉葹鈑纉蒹跚瘡胙闕葹篌蝟昭粡竚癈鷭п粐Ь纔鞳笏繖齡鱸笏銓纈頏續癆蜿閹蒹鞜竏綣蝟昭粡竚癈鷭п粐Ь繚阡蛛闔趺闥蜚蓁硼壽蜩續續鱚齦踉鹿粡寂蝟赱齠洲痲筵娼胙闕蒹趺闥蜚蓁闥鳫纈蜒粹阡緕胚跛鮗蝟昭粡竚癈鷭п粐Ь窿癆蜴肬鴉癆蜿隨闕閹蒹闢竟頤赱碣阯黼鴦緕篌蝟昭粡竚癈鷭п粐Ь窿辮蒹痲纈鈕闥轣闔蓍竏阨趙纈黼纉蜴蒹鹿粡寂蝟赱齠洲痲筵娼黼跂笏蜿閹蒹鳫鈑癇蛛銓轣銷癈纉膚鳫纈鹿粡寂蝟赱齠洲痲筵娼黼鈔胚跛鈔闥鱚笏鈕闥轣闔蒹黼蜆粲纉蛹鈿矼鹿粡寂蝟赱齠洲痲筵娼瘰韭蜈筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖羅粡奘鞳瘤怏趙竅鰾鵙踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹窿辮繿齡縺粤蜴粡竅頏繙纈緕竇肬辣粡畆蝟昭粡竚癈鷭п粐Ь纉部瘤踈蜴竚蛹粃癇筵繖蛛纉齦竏鷦蝟昭粡竚癈鷭п粐Ь蜊瘍絲→纈轣蒹瘤齡鱸鈑囂繿齡鹿粡寂蝟赱齠洲痲筵娼蜴竚蜴膾鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь窿辮轣艱蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь阨趙鈔蜒癆癆銷齡癇鈑蜊瘍絲蜩窿辮碎絳鹿粡寂蝟赱齠洲痲筵娼癈瘤阡蒹鞳齒蒹蜥齡蜊瘍絲鱚糒鈔瘤蝟昭粡竚癈鷭п粐Ь闕碣阯黼鴦阨鈬踟緕趙竅鰾蜴粐蜚蜿跚竕蝟昭粡竚癈鷭п粐Ь纉蒹竅葹鈔跂楠纔瘢韭綺蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼巣竇頸讙纔韭瘟遯轣艱蜀蜊瘍絲褓繚蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蒹銓緕闔蜩鈔蜒癆癆蒹跚竕跚齡繖鹿粡寂蝟赱齠洲痲筵娼鞳癇頏繙纈鱚筱粡聿纈緕鱚頏纉緕闔鷦蝟昭粡竚癈鷭п粐Ь蛹痰跂癆闍闖被粤矚皷瘡苡鱸蹶鹿粡寂蝟赱齠洲痲筵娼癈蝟緕硼趙竅鰾癈笏踟髟瘡鱚聽鱚釿綣蝟昭粡竚癈鷭п粐Ь瘡阡蒹鞳鵺纖鱚阡繪鈑鱚聽鴪繖壽綣蝟昭粡竚癈鷭п粐Ь鳫纈蓖鱚瘡踟癘黼銓繿齡蜚跫髟瘡蜚蝟昭粡竚癈鷭п粐Ь頏繙纈緕竇跿肬癈鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь窿辮纔蔗迪赱蜴蜊瘍絲芍罨轣艱鞳膃饅握葦鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼壽纔韭蜒蜚纉癘鈿跚痺鬪纖繙癜踉畆蝟昭粡竚癈鷭п粐Ь鱚聽鱚釿閹蓍艾纉壽趙竅鰾芍畆蝟昭粡竚癈鷭п粐Ь阯鱚聽鱚釿閹卯阡蒹鞳跛鉤矼續鈬蜀鹿粡寂蝟赱齠洲痲筵娼鈿癇蛛銓癆竏纉纔韭蜒蜚踟蜩鞳鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺巣竇頸蒹痲纈闔蜴纃鈿蹙苳聲笏闥癆跛蝟昭粡竚癈鷭п粐Ь鞜竏黼蒹瘡→↑頏纉緕握葦鐚蝟昭粡竚癈鷭п粐Ь逡赱蒹纉蜥繖繹癘蜿部踈黼蒹瘡羲蝟昭粡竚癈鷭п粐Ь蛹粃癇糂肬鴉癆鞳纉癇綣蝟昭粡竚癈鷭п粐Ь鱚聽鴪繖轣蒹瘍瘟銖→〓瘤辣粡鞳綣蝟昭粡竚癈鷭п粐Ь窿辮縺粤竢銓瘟銖痺鬪蒹黼鞳竕瘡瘡癇綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳試阡蹙苳瘰韭蜈筱鱚髟纉鳫碣阯黼鴦蓍竏緕綣蝟昭粡竚癈鷭п粐Ь闥鱚笏鈕闥轣闔齡癇闥癈繝筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就鈿赱鈑艱釶辣就鈿赱鈑艱▽苳志癇蛛銓戻鈑艱界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚闕閹蒹癇蛛銓肬鞜鶯蜒癇纉阨鱆葹鹿粡寂蝟赱齠洲痲筵娼赱鈑艱鱸碯瘤齒辣鈿蓖黼癇蛛銓鐚蝟昭粡竚癈鷭п粐Ь瘤苺瘍癇芍鴒阯瘤苺瘍髟瘡蜚聲笏闥羲蝟昭粡竚癈鷭п粐Ь葦踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽鱚癈闔闥續鈑蓍赱鈑艱跚痺肬鱸瘤蝟昭粡竚癈鷭п粐Ь蜚鈿瘤苺瘍纈跫跿蜩瘡跫肬粤聲蝟昭粡竚癈鷭п粐Ь癇蛛銓蓍竏瘤齦韶跚繖鈿鈬阡蒹鱸瘤癆竏鹿粡寂蝟赱齠洲痲筵娼碣阯黼鬣赱鈑艱鱚聽鱚釿纉壽蜩跛阯蜆黼鴦鹿粡寂蝟赱齠洲痲筵娼黼繪鈑完侠鴪闥瘍蜀蒹蜥鳫纈黼鉤痺竇頸鹿粡寂蝟赱齠洲痲筵娼赱鈑艱蜒粹阡聿纈闥蒹纉阨鱆癆癈鹿粡寂蝟赱齠洲痲筵娼鱚髟纉筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥逅跂竢銖蜆纈蒹蜚闔蜚藍踉蝟蜈釶碎繖鈔鹿粡寂蝟赱齠洲痲筵娼鱚鱸瘤墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳紙闖隨蔗迪赱鈑艱遉踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚肬鎬胙讙瘤苺瘍胙薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳紙闖讙赱鈑艱薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹縺鉗鈑鱸瘤赱鈑艱癆蜩踞癨鷦蝟昭粡竚癈鷭п粐Ь窿辮碎蒹鳫纈膚蒹繿齡肬竢粤肬錵踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼瘤巣竇頸瘤苺瘍蒹痲纈釿跿粤繪纈闥硼蝟昭粡竚癈鷭п粐Ь鈬肬鎬緕闥闖鬯蔗迪蛹矼續鈬筮碣阯黼鮗蝟昭粡竚癈鷭п粐Ь閻鈿跚齡蜚蒹緕胙痺竇頸痰跂肬鎬蔗迪蛹矼鹿粡寂蝟赱齠洲痲筵娼鱚鴈繖銖痲竚蜈銓繿齡竢粤肬鎬蔗迪閼絋苳纂蝟昭粡竚癈鷭п粐Ь銖痲緕鈬苡癆蜿跛窿蜴竇蒹笏癆竏鹿粡寂蝟赱齠洲痲筵娼跛鱚鴈繖癘濶蜩鳫碎纃蜚齒辣辣蒹跟胚貅蝟昭粡竚癈鷭п粐Ь釶辣蒹鈿瘤苺瘍紜癇蛛銓踉祉閼絋苳紙闖谺蔗迪閼絋苳齠綣蝟昭粡竚癈鷭п粐Ь葹藍踉蝟蜈鈔瘤苺瘍鈬苡癆蜿跛闕蜴赱鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢祷銖蜿銖夸瘤齔癇緕衷銓緕励苡癆蜿遉踉晒莢鹿粡寂蝟赱齠洲痲筵娼草痺蒹緕糂蒹鱇銖鞜鱚銓闔銓繚阡蛛闔鳫竢貅蝟昭粡竚癈鷭п粐Ь卞臆控癈闌跫鈬竢粤釿閼蜴踉晒竢粤跂辣銓鹿粡寂蝟赱齠洲痲筵娼蜩黼蜴癇蛛銓蜩赱矼鱸瘤蓍竏鱚蛹痰跂鹿粡寂蝟赱齠洲痲筵娼鞳竕肅竢銓緕緕竢粡鈑鉤蒹逅跂辣銓癆蜿閹鹿粡寂蝟赱齠洲痲筵娼雙啻趺闥蜚蓁卞臆攻蜩緕粤繝閾鉗鹿粡寂蝟赱齠洲痲筵娼緕竢粤鱸瘤跚齡瘤黼蒹癈瘤粡籬鹿粡寂蝟赱齠洲痲筵娼鱸瘤蒹鈬繪緕竢粡鈑癇痺竇頸痰跂窿闥粡鈑鐚蝟昭粡竚癈鷭п粐Ь蒹窿辮梼竢粡鈑繿齡縺粤鬯蒹嶝鮮窺蜊韭纃緕闔鹿粡寂蝟赱齠洲痲筵娼粹纉阡阨鈔闕頤髟瘡蜚聲笏闥繝蜊瘡赱竇鷦蝟昭粡竚癈鷭п粐Ь繙闥竏闖皷鈑蒹纉鱸瘤蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳士阡闔纈跚鉉瘤釶迚鈑闔銓蜿銖王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚阨鱚皷鈑瘤苺瘍鈬苡癆蜿竅竏闖黼續緕鹿粡寂蝟赱齠洲痲筵娼粡聿纈緕釶迚鈑闔銓蜿銖矼竅肅跂竅葹闥瘤鹿粡寂蝟赱齠洲痲筵娼闔纔銖蜿遯鈔蒹鰾纈纔銖蜿銖鈿鴉瘡踟鹿粡寂蝟赱齠洲痲筵娼蜥鱚跂銓黼蓿繙就迴箝迴籖迚辣譬迴籖迚辣鹿粡寂蝟赱齠洲痲筵娼粹笊辣銓癆蜿肬粤蛹鶇踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮韈竅肅跂癈浜鏑鞳緕皷闔纃絎膊蹙苳錆鹿粡寂蝟赱齠洲痲筵娼黶逅蔗迪瘢隍苳皐轣瘤釿閼蜴纔銖蜿└踉糸蹙苳糸踉晒纃蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳紫踉晒黶逅鈔竢黼瘤苺瘍纔銖蜿郤蝟昭粡竚癈鷭п粐Ь纃絎膊蹙苳錆踉雌瘢隍苳糸遉踉晒黶逅緕葹蜀聽鱚銓鹿粡寂蝟赱齠洲痲筵娼赱鈑艱癇蛛銓閹蓍肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮祷瘢韭纉墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳紙闖隨蔗迪薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳紙闖谺緕薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳紙闖隨蔗迪踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮斐鱚闕迴鱚逅跂閹蛹緕瘢纉閾續蒹瘡蜆鈔鹿粡寂蝟赱齠洲痲筵娼蜴跚蔔鞳鳰蜴謫墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟竇跛鞜粐蜴臀竇跛齔痺蜴臀▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼荀苳仔蛹緕瘢絋踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼已跚蔔鞳鳰蜴襴踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼侮跚蔔鞳鳰蜴襴踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉糸蹙苳紙闖谺緕蹙苳殺踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼肬錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь肬鎬蔗迪筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼筅苳鮫筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼纃肬鎬緕讀踉晒纃筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼筅苳紙闖筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼筅苳紙闖讀踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉糸蹙苳紙闖谺緕踉晒纃筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼筅苳紙闖碣鹿粡寂蝟赱齠洲痲筵娼闖讀踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼肬鎬苞碣鹿粡寂蝟赱齠洲痲筵娼闖谺苞筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼纃肬鎬緕谺苞蹙苳殺踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼肬錵踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼肬鎬蔗迪碣鹿粡寂蝟赱齠洲痲筵娼闖谺苞碣鹿粡寂蝟赱齠洲痲筵娼闖踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉糸蹙苳紙闖蔗迪遉踉晒纃筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼筅苳紙闖碣鹿粡寂蝟赱齠洲痲筵娼闖踉獅苳纂蝟昭粡竚癈鷭п粐Ь肬鎬苞讀踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼肬鎬蔗迪筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼纃肬鎬蔗迪緕蹙苳殺踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼肬錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь肬鎬蔗迪碣鹿粡寂蝟赱齠洲痲筵娼闖谺苞筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼筅苳紙闖踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮弥闍蜴癆蒹痰跂硼阨蛹鈿竇葹蜚瘡鹿粡寂蝟赱齠洲痲筵娼竟齠蛯跂釶辣蜚蓖銷緕皷闔蜴纈跚鉉鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳糸踉晒纃黶逅肬錵踉晒黶逅蒹糜瘤艱癆阨鹿粡寂蝟赱齠洲痲筵娼竅蓍粤蒹笏鞳粹笊辣銓齔肅跂鈔瘤葹鈑綣蝟昭粡竚癈鷭п粐Ь赱鬪踉糸蹙苳糸踉晒纃胙闕踉雌瘢隍苳肢讀踉晒黶逅鐚蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳雌蔗迪瘢隍苳闥踉雌瘢隍苳祉芍瘢隍苳阨竏瘤芍鈑銷鹿粡寂蝟赱齠洲痲筵娼蔔鞳鳰蜴鱚聽鱚釿纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚阨瘤闔銛黼浜鏑鞳鹿粡寂蝟赱齠洲痲筵娼蔔鞳鳰蜴謫纃絎膊蹙苳黶逅肬鎬蔗迪瘢隍苳皐蒹瘤苺瘍綣蝟昭粡竚癈鷭п粐Ь緕皷闔蜴竚蜴瘤釿閼蜴纔銖蜿蜀蒹鱚闔紿鹿粡寂蝟赱齠洲痲筵娼逡齡闔蒹蜃蔗瘤皷粤揺妖纔銖蜿郤蝟昭粡竚癈鷭п粐Ь纃絎膊蹙苳錆踉雌瘢隍苳紙闖谺緕瘢隍苳皐踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳士阡闔痺蓍鈑王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦緕痺蒹鱚鱚頏纉緕闔蜚齠閭蛛蜚蜚莠蝟昭粡竚癈鷭п粐Ь蒹繿齡厂壽鈬蜊癆厂鱚髟纉筱蒹痺蒹鹿粡寂蝟赱齠洲痲筵娼竅齡闥繖辮鱚黼銓癆蜿隨蜀蒹纉阨鱆蜩鹿粡寂蝟赱齠洲痲筵娼鈬苡痰跂黼鴟纈蜩蜃蔗纉蜴鉤肅鴦蝟昭粡竚癈鷭п粐Ь繿齡繖癇蛛銓繪鈑痺蒹瘤齦碵繿銓痺蒹蜚迚艾蝟昭粡竚癈鷭п粐Ь續闔鱚齔闔黼夬鱚銓蓍鵺鞜竏鈿鴉瘡踟鹿粡寂蝟赱齠洲痲筵娼轣鳬瘡鱚齔闔黼癆鱚續鈬瘋竢銓緕鈬苡癆蜿郤蝟昭粡竚癈鷭п粐Ь鈿遶竅竏縺碎磔墺亊窺竚蜈銓鶤鞜竏瘡齒竟鶯綣蝟昭粡竚癈鷭п粐Ь墺亊窺頏阡閭闌縺鱚跛阯痺蓍鈑鈬苡癆繖鹿粡寂蝟赱齠洲痲筵娼鱚齔闔黼鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥繿齡蜒竢辣鳫挽墅闕韭蛛銓跚緕蝟昭粡竚癈鷭п粐Ь繪纈鳫纈竅竏紿粡鱚笏蝟綣蝟昭粡竚癈鷭п粐Ь踉飼熙苳暫痺蒹励苡癆繖弟笂熙苳竅矼黼跛阯痺蓍鈑羲蝟昭粡竚癈鷭п粐Ь纉竟銖纉蓍竏纈齦礪繝繚阡蛛闔壽蜩蜥繝瘤鹿粡寂蝟赱齠洲痲筵娼矼蝟緕黼鴟纈闔肅闥蜥瘡闢鈔瘠纉鐚蝟昭粡竚癈鷭п粐Ь鱧緕部癈繙聽笏鱚髟纉鳫挽墅跚緕鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡闔銓繚阡蛛闔谺蔗迪閭鶩轣銛瘡闔銓繚阡蛛闔谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭娯慣羞劫挟錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁竢銓緕鈬苡癆蜿隨蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡闔銓繚阡蛛闔谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就竢銓緕鈬苡癆蜿隨蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁竢銓緕鈬苡癆蜿隨蔗迪甌裼皴蔗粹笂瘤豁竢銓緕鈬苡癆蜿隨蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握宛箜劫恰篌碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡闔銓繚阡蛛闔谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁竢銓緕鈬苡癆蜿隨蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯橋誓鹿粡寂蝟赱齠洲痲筵娼据迪纈皷闔就窺唖釿閼蜴臀∫齒芦沖褓⊃鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹闔銓繚阡蛛闔蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察鈑跚鼈纐蜩蜿邵鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■聿聿聿就0旭旭唖蜴觸■旭旭聿⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就f羂旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳ぢコンテントネゴシエ・踉札轡腑右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢのコンテントネゴシエ・踉札轡腑鵑離汽檗トは HTTP/1.1 + の規格に合う瘢雹よう瘢雹に + 更新されました。それにより、ブラウ瘢雹ザにより提供されたメディアタイプ、 + 言語、キャラクタセットと、エンコ・踉札妊鵐阿陵ダ莉膂未鰺僂い謄螢宗スの + 一番良い表現方法を選択できます。また、不完全なネゴシエ・踉札轡腑麝僂陸苳諮報を + 送ってくるブラウ瘢雹ザからのリクエストをより優雅に扱う瘢雹ための機能を + いくつか汰靴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢコンテントネゴシエ・踉札轡腑鵑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖鈬苡癆蜿隨蔗迪▽苳詩閼燻繚阡蛛闔鹿粡寂蝟赱齠洲痲筵娼モジュ・踉札襪砲茲鹿粡寂蝟赱齠洲痲筵娼提供されていて、デフォルトで組み込まれています。</p> + <hr /> + + <h2>コンテントネゴシエ・踉札轡腑鵑砲弔い王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮リソ・踉札垢蓮弔曚覆辰辛集修罵僂任襴苳詞合があります。 + たとえば、異なる言語や異なるメディアタイプ、またはそれらの組み合わせで + 利用できるかも知れません。もっとも適した選択をする方法の一つには、 + インデックスペ・踉札犬鬟罅ザに見せて、ユ・踉札兇冒鵑任發蕕逅司,△蠅泙后鹿粡寂蝟赱齠洲痲筵娼しかし、サ・踉札个踉捌動的に選ぶことができる豺腓燭△蠅泙后鹿粡寂蝟赱齠洲痲筵娼これは、ブラウ瘢雹ザがリクエスト霾麕茲陸苳諮報の一部に、 + どの表現を嗜好するかを送ることで動作しています。 + たとえばブラウ瘢雹ザは、可能ならフランス語で霾鵑鮓燭ぁ鹿粡寂蝟赱齠洲痲筵娼不可能ならその代わりに英語でもよいと、林蝋イ鮹里蕕擦襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼ブラウ瘢雹ザはリクエストのヘッダで陵ダ莊晃鮹里蕕擦泙后鹿粡寂蝟赱齠洲痲筵娼フランス語の表現だけを要求する豺腓蓮▲屮薀逅札兇楼焚を送ります。</p> +<pre> + Accept-Language: fr +</pre> + + <p>この優先傾向は、選択可能な表現が存在して、 + 言語によって様々な表現がある豺腓砲里濺僂気譴鹿粡寂蝟赱齠洲痲筵娼という瘢雹ことに注意してください。</p> + + <p>もっと複雑なリクエストの例を挙げましょう瘢雹。 + このブラウ瘢雹ザはフランス語と英語を栄佞韻襦鹿粡寂蝟赱齠洲痲筵娼しかしフランス語を好む、そして様々なメディアタイプを栄佞韻襪鹿粡寂蝟赱齠洲痲筵娼プレインテキストや側苳擦離織ぅ廚茲蠅塒を好む、 + 側苳擦離瓮妊▲織ぅ廚茲蠅鋲ぢや JPEG を好む、しかし最終蠱覆箸靴鹿粡寂蝟赱齠洲痲筵娼側苳擦離瓮妊▲織ぅ廚皃踉歯け付ける、という瘢雹よう瘢雹に設定されています。 + </p> +<pre> + Accept-Language: fr; q=1.0, en; q=0.5 + Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, + image/jpeg; q=0.6, image/*; q=0.5, */*; q=0.1 +</pre> + + <p>Apache 1.2 は HTTP/1.1 の規格で定義されている 'server driven' + コンテントネゴシエ・踉札轡腑鵑鬟汽檗トしています。 + Accept, Accept-Language, Accept-Charset, Accept-Encoding + リクエストヘッダを完全にサポ・踉札箸靴討い泙后草痺蒹ぢは + RFC 2295 と RFC 2296 + で定義されている存嚇淵優乾轡─ションプロトコルである、 + 'transparent' もサポ・踉札箸靴討い泙后修譴蕕特ぢで定義されている + 'feature negotiation' はサポ・踉札箸靴討い泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢリソ・踉札闔胼苳ぢとは URI + で特定される概念紊里發里里海箸任卞桶攻ぢ。 Apache + のよう瘢雹な HTTP サ・踉札个蓮△修量前空間の中での + リソ・踉札垢齡鳫鈑表現</strong>へのアクセスを提供します。 + それう苳擦譴良集修歪蟲舛気譴織瓮妊▲織ぅ廖∧源札奪函鹿粡寂蝟赱齠洲痲筵娼エンコ・踉札妊鵐暗良嫗阿靴拭▲丱ぅ販鵑侶薦踉三です。 + それう苳擦譴離螢宗スはある時点で 0 個、1 個、それ以紊良集修鹿粡寂蝟赱齠洲痲筵娼関連付けられる可能性があります。複数の表現が利用できる豺腓蓮鹿粡寂蝟赱齠洲痲筵娼リソ・踉札垢齡鳫鈑ネゴシエ・踉札轡腑鷁椎修任△闔胼苳ぢとされ、 + 個々の表現は <strong>variant</strong> と呼ばれます。 + ネゴシエ・踉札轡腑鷁椎修淵螢宗スの variant が異なる、その屬鮖悗靴董鹿粡寂蝟赱齠洲痲筵娼ネゴシエ・踉札轡腑鵑齡鳫鈑仝闔胼苳ぢと呼びます。</p> + + <h2>Apache におけるネゴシエ・踉札轡腑王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮リソ・踉札垢鬟優乾轡─ションするためには、サ・踉札个呂修譴れの + variant についての霾鵑鮹里辰討廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼これは以王踉擦瞭鵑弔諒,里匹舛蕕嚢圓錣譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚タイプマップ (<em>すなわち</em>、<code>*.var</code> ファイル) + を使う瘢雹方法。これは、variant + を明傍鵑欧討い襯侫.ぅ襪鮖慊蠅靴泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳薩藍踉蝟蜈を使って、 + サ・踉札个徒曚瞭發縫侫.ぅ詭にパタ・踉札鵙苳使合を + 行なってその結果から選択する方法。</li> + </ul> + + <h3>type-map ファイルを使う瘢雹</h3> + + <p>タイプマップは <code>type-map</code> ハンドラ (もしくは、古い + Apache の設定に絨霧澳垢箸覆襪燭瓩飽飮気譴討い蜊タイプ + <code>application/x-type-map</code>) + に関連付けられたドキュメントです。 + この機能を使う瘢雹ためには、あるファイルの拡張子を + <code>type-map</code> + として定義するハンドラを設定ファイルで設定する + 必要があることに注意してください。これは</p> +<pre> + AddHandler type-map .var +</pre> + <p> + をサ・踉札个寮瀋蠅暴颪海箸貳嵶匹な,任后鹿粡寂蝟赱齠洲痲筵娼楮戮魯汽鵐廛襪寮瀋螢侫.ぅ襪離灰瓮鵐箸鮖王苳使してください。</p> + + <p>タイプマップファイルにはそれう苳擦譴癇蛛銓鹿粡寂蝟赱齠洲痲筵娼についてのエントリがあります。これらのエントリは連続した HTTP + のヘッダ行から成ります。別の variant のエントリとは空行で + 分けられています。エントリ中に空行があってはいけません。 + マップファイルは全体のエンティティをくっつけた形で始めるのが + 習慣となっています + (これは要求されているわけではなく、もしあった豺腓鰐技襪気譴泙ぢ。 + たとえば、マップファイルは,里茲逅擦砲覆蠅泙后海領磴任蓮鹿粡寂蝟赱齠洲痲筵娼ファイルの巳苳餐阿踉祉閼絋苳紙闖癇閼絋苳で、リソ・踉札踉祉閼絋苳紙闖閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢのいろいろな variant があるディレクトリに配置されることになります。</p> +<pre> + URI: foo + + URI: foo.en.html + Content-type: text/html + Content-language: en + + URI: foo.fr.de.html + Content-type: text/html;charset=iso-8859-2 + Content-language: fr, de +</pre> + + <p>variant の品舛磴逅擦箸蓮△海硫菫里茲逅擦偏吐派頭喘鰭鹿粡寂蝟赱齠洲痲筵娼ア・踉札箸△蠅泙メディアタイプの "qs" + パラメ・踉札燭箸靴道慊蠅気譴泙后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь夘肬鐚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь夘肬鎬褓繚鹿粡寂蝟赱齠洲痲筵娼衷銓緕鞳蜊瘍絲褓繚體衆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼孀漂闖蜀鹿粡寂蝟赱齠洲痲筵娼衷銓緕鞳蜊瘍絲芍羯鷭握擬蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь夘肬鎬蝟昭粡竚癈鷭п粐Ь闔銓綺纔韭瘟郢鷭握葦鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳資値の範囲は 0.000 から 1.000 です。qs 値が 0.000 の variant + は決して選択されないことに注意してください。'qs' 値のない + variant は qs 値 1.0 を 与えられます。qs + パラメ・踉札燭魯薀ぅ▲鵐箸稜塾呂亡愀弧気の variant + と比較したときの variant の相対的な「品繊廚鬢踉雑します。たとえば、 + 命燭鯢集修靴茲逅擦箸靴討い襪箸佚ファイルの方が普通は + ASCII ファイルよりも高い品舛砲覆蠅泙后ぢしかし、リソ・踉札垢機鹿粡寂蝟赱齠洲痲筵娼喪檀ア・踉札箸派集修気譴討い襪箸蓮癈竕ファイルの方が + JPEG ファイルよりも高い品舛砲覆蠅泙后海里茲逅擦法體鹿粡寂蝟赱齠洲痲筵娼は表現されるリソ・踉札垢寮踉餐によって variant + 毎に特有の値を茲蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ認韻気譴襯悒奪世隆袷瓦憤賤楼焚のよう瘢雹になります:</p> + + <dl> + <dt><code>URI:</code></dt> + + <dd>(与えられたメディアタイプのもので、与えられた content + encoding でエンコ・踉札匹気譴鱸瘤のファイルの URI + 。マップファイルからの相対 URL として解瓩気譴泙后鹿粡寂蝟赱齠洲痲筵娼同じサ・踉札丶苳糸にある必要があり、 + 彫苳酸寨弋瓩気譴燭箸縫薀ぅ▲鵐箸▲札垢鹿粡寂蝟赱齠洲痲筵娼認められているファイルを参箸靴討い覆韻譴个覆蠅泙擦鵝筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳暫闔銓綺閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐メディアタイプ --- charset, level, "qs" + パラメ・踉札燭鮖慊蠅垢襪海箸任泙后海譴蕕呂靴个靴浜甜蝟昭粡竚癈鷭п粐Ьぢタイプと呼ばれます。典型的なメディアタイプは + <code>image/gif</code>, <code>text/plain</code>, + <code>text/html; level=3</code> です。</dd> + + <dt><code>Content-Language:</code></dt> + + <dd>RFC 1766 のインタ・踉札優奪班現犖生譽織阿濃慊蠅気譴拭鱸瘤蝟昭粡竚癈鷭п粐Ьぢの言語。 (<em>たとえば</em>、英語は + <code>en</code>、 韓国語は <code>kr</code>, + <em>等</em>)。</dd> + + <dt><code>Content-Encoding:</code></dt> + + <dd>生のデ・踉札燭任呂覆▲侫.ぅ襪欺未気譴討い燭蝓鹿粡寂蝟赱齠洲痲筵娼エンコ・踉札匹気譴燭蠅靴討い襪箸法鹿粡寂蝟赱齠洲痲筵娼どのよう瘢雹にそれがなされているかを指定します。 + Apache は <a href="mod/mod_mime.html#addencoding">AddEncoding</a> + ディレクティブで定義されたエンコ・踉札妊鵐阿里澆鯒Е踉傘します。通錣鹿粡寂蝟赱齠洲痲筵娼竢逅鱚齠ぢされたファイルのための <code>x-compress</code> や + gzip されたファイルのための <code>x-gzip</code> + のよう瘢雹なエンコ・踉札妊鵐阿魎泙澆泙后鹿粡寂蝟赱齠洲痲筵娼エンコ・踉札妊鵐阿糧羈啝砲論榮踉鮫 <code>x-</code> + は無視されます。</dd> + + <dt><code>Content-Length:</code></dt> + + <dd>ファイルのサイズ。タイプマップで content length を指定すると、 + サ・踉札个踉斬際のファイルを調べずに + ファイルのサイズを比較することができます。</dd> + + <dt><code>Description:</code></dt> + + <dd>人間が読める variant を説明した文蓮草痺蒹ぢが適切な variant + を見つけられなかった豺腓蓮△垢戮討硫椎修癇蛛銓鹿粡寂蝟赱齠洲痲筵娼の一覧を挙げるエラ・踉傘鯤屬靴泙后修癇蛛銓鹿粡寂蝟赱齠洲痲筵娼一覧は人間が読める variant の 説明を含みます。</dd> + </dl> + + <h3>Multiviews</h3> + + <p><code>MultiViews</code> はディレクトリ毎のオプションで、 + <code><Directory></code>, <code><Location></code>, + <code><Files></code> や、(<code>AllowOverride</code> + が適切な値に設定されていると) <code>.htaccess</code> + ファイルで <code>Options</code> + ディレクティブによって設定することができます。<code>Options + All</code> は <code>MultiViews</code> + を設定しないことに注意してください。 + 明砲修量前を書く必要があります。</p> + + <p><code>MultiViews</code> の効果は以王踉擦里茲逅擦砲覆蠅泙瑳蝟昭粡竚癈鷭п粐Ьぢサ・踉札个踉祉閼絋苳晒齒辣蜥闖閼絋苳へのリクエストを右踉肢り、 + <code>/some/dir/foo</code> が存在<em>しない</em>豺隋鹿粡寂蝟赱齠洲痲筵娼サ・踉札个魯妊譽肇蠅鯑匹鵑如竢粤肬鎬踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼にあてはまるすべてのファイルを探し、 + 事側苳糸それらのファイルをマップするタイプマップを作ります。 + そのとき、メディアタイプとコンテントエンコ・踉札妊鵐阿蓮鹿粡寂蝟赱齠洲痲筵娼そのファイル巳苳擦鯆接指定したときと同じものが割り当てられます。 + それからクライアントの要求にもっとも合う瘢雹ものを選び、 + そのドキュメントを返します。</p> + + <p>サ・踉札个妊譽肇蠅虜鮑遒蹐逅擦箸靴討い襪函鹿粡寂蝟赱齠洲痲筵娼竢粤藍踉蛄蜈閼絋苳は <code>DirectoryIndex</code> + ディレクティブで指定された巳苳餐阿涼戯砲眦僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼設定ファイルに</p> + +<pre> + DirectoryIndex index +</pre> + + <p>が書かれていて、<code>index.html</code> と + <code>index.html3</code> が陸苳司減澆靴討い襪函鹿粡寂蝟赱齠洲痲筵娼サ・踉札个呂修涼罎號莢鵑匹舛蕕鯏冒咾泙后鹿粡寂蝟赱齠洲痲筵娼もしその陸苳司減澆擦困踉祉閼絋苳脂鈔纔芍閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢが存在していると、サ・踉札个呂修譴鬢踉斬行します。</p> + + <p>ディレクトリを読んでいるときに見つかったファイルに CGI + スクリプトがあった豺腓蓮燭海襪戮櫓踉捌明ではありません。 + そのよう瘢雹な豺腓魯魁ドは特別な扱いをしています。リクエストが + POST か QUERY_ARGS や PATH_INFO のある GET + の豺腓蓮▲好螢廛箸鉾鵙苳誌に高い品舛燭┐蕕譟鹿粡寂蝟赱齠洲痲筵娼通錣修譴阿気譴泙后修梁のリクエストのときは、スクリプトには + 非錣膨磴ど弗踉餐が与えられ、側苳擦里發里ぢもしあれば)萋世気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢ネゴシエ・踉札轡腑麒王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢがタイプマップファイルかディレクトリのファイル巳苳擦鹿粡寂蝟赱齠洲痲筵娼リソ・踉札垢癇蛛銓ぢの一覧を萋世靴燭蕁◆嶌覗院廚癇蛛銓鹿粡寂蝟赱齠洲痲筵娼を選ぶために 二つの方法のどちらかを起動します。Apache + のコンテントネゴシエ・踉札轡腑鵑竜’修鮖箸逅擦燭瓩法鹿粡寂蝟赱齠洲痲筵娼どのよう瘢雹にネゴシエ・踉札轡腑鵑圓覆錣譴襪陸苳施細を知る必要は + ありません。 + しかし、これ以降では関心のある人のためにその方法を説明します。</p> + + <p>ネゴシエ・踉札轡腑麒,脇鵑弔△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼闌鹿粡寂蝟赱齠洲痲筵娼跚通錣踉雌闔胼苳餐鞜竏のアルゴリズムを用いた Server + driven negotiation</strong> が使用されます。Apache + のアルゴリズムは後で楮戮棒睫世気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼このアルゴリズムが使用された豺隋草痺蒹鹿粡寂蝟赱齠洲痲筵娼はより良い結果になるよう瘢雹に、特定の仝気砲い読弗踉餐の値を + 「変える」ことができます。Apache + が品舛涼佑鯤僂┐詈,聾紊忍苳施細に説明されています。</li> + + <li>RFC 2295 + で定義されている機構を用いてブラウ瘢雹ザが特に指定した豺隋鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑瘤齔癇緕竢銓緕鈬苡癆蜿遉踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼が使用されます。このネゴシエ・踉札轡腑麒,任蓮▲屮薀逅札兇嶌覗院廚鹿粡寂蝟赱齠洲痲筵娼鱸瘤の決定を完全に制御することができます。 + ですから、結果はブラウ瘢雹ザが使用しているアルゴリズムに依存します。 + Transparent negotiation の処理の過程で、ブラウ瘢雹ザは RFC 2296 + で定義されている 'remote variant selection algorithm' + を孫圓垢襪茲逅擦僕蠅爐海箸任泙后薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒闌鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖ネゴシエ・踉札轡腑鵑陸踉察元</h3> + + <table> + <tr valign="top"> + <th>Dimension</th> + + <th>Notes</th> + </tr> + + <tr valign="top"> + <td>メディアタイプ</td> + + <td>Accept ヘッダフィ・踉札襯匹妊屮薀逅札兇砲茲螟踉雑される。 + それう苳擦譴旅猝椶鷲弗踉餐係数を持つことが出来ます。 + variant の説明にも品膳舷鵞鹿粡寂蝟赱齠洲痲筵娼要素)を持つことができます</td> + </tr> + + <tr valign="top"> + <td>言語</td> + + <td>Accept-Language ヘッダフィ・踉札襯匹妊屮薀逅札兇砲茲螟踉雑される。 + それう苳擦譴旅猝椶鷲弗踉餐係数を持つことが出来ます。 + variants は 0, 1, またはそれ以紊慮生譴抜慙△鼎韻襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳ぢエンコ・踉札妊鵐筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼筅苳餐窿辮梼竢粡鈑ぢヘッダフィ・踉札襯匹妊屮薀逅札兇砲茲螟踉雑される。 + それう苳擦譴旅猝椶鷲弗踉餐係数を持つことが出来ます。</td> + </tr> + + <tr valign="top"> + <td>キャラクタセット</td> + + <td>Accept-Charset ヘッダフィ・踉札襯匹妊屮薀逅札兇砲茲螟踉雑される。 + それう苳擦譴旅猝椶鷲弗踉餐係数を持つことが出来ます。Variants + でもメディアタイプの要素としてキャラクタセットを┐垢海箸侏茲泙后鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖草痺蒹ぢのネゴシエ・踉札轡腑鵐▲襯乾螢坤界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮ブラウ瘢雹ザに返す「最適な」variant を(もしあれば)選択するよう瘢雹に Apache + は,離▲襯乾螢坤爐鮖箸逅擦海箸任泙后海離▲襯乾螢坤爐鹿粡寂蝟赱齠洲痲筵娼未だ設定可能なものではありません。,里茲逅擦貌虻遒靴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉誌讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢまずはじめに、ネゴシエ・踉札轡腑鵑陸踉察元それう苳擦譴砲弔い禿擇鹿粡寂蝟赱齠洲痲筵娼纃巣竇頸踉晒纃ぢヘッダフィ・踉札襯匹鬟船Д奪靴董鱸瘤蝟昭粡竚癈鷭п粐Ьぢそれう苳擦譴防弗踉餐を割り当てます。もしある仝気踉糸蹙苳餐窿辮蹙苳纂蝟昭粡竚癈鷭п粐Ьぢヘッダでその variant が許容できないと暗┐気譴討い譴弌△修譴鮑鐔靴泙后鹿粡寂蝟赱齠洲痲筵娼鱸瘤ぢが一つも残っていなければ、ステップ 4 に行きます。</li> + + <li>探酲,如嶌播福癇蛛銓ぢを選びます。 + ,離謄好箸臠屬謀気譴泙后謄好箸覗鬚気譴覆辰鹿粡寂蝟赱齠洲痲筵娼鱸瘤は削除されていきます。テスト後 variant + が唯一残っていれば、それを最適なものとしてステップ 3 に進みます。 + variant が複数残っていれば、,離謄好箸某覆澆泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼闌鹿粡寂蝟赱齠洲痲筵娼跚鱸瘤のメディアタイプの品楚佑窿辮蝟昭粡竚癈鷭п粐Ьぢヘッダの品楚佑箸寮僂魴彁擦靴董∈嚢眞佑癇蛛銓鹿粡寂蝟赱齠洲痲筵娼を選びます。</li> + + <li>言語品楚佑嚢發癇蛛銓ぢを選びます。</li> + + <li>(もしあれば) Accept-Language ヘッダの言語順か、 + (もしあれば) <code>LanguagePriority</code> + ディレクティブの言語順で最適な言語の variant を選びます。 + </li> + + <li>最高「レベル」のメディアパラメ・踉札貅蝟昭粡竚癈鷭п粐Ьぢメディアタイプのバ・踉札献腑鵑鰺燭┐襪燭瓩忙箸錣譴泙ぢを持つ + variant を選びます。</li> + + <li>Accept-Charset ヘッダ行で与えられている最高の文字セット + メディアパラメ・踉札燭鮖癇蛛銓ぢを選びます。明暴鹿粡寂蝟赱齠洲痲筵娼されていない限り、ISO-8859-1 が許容されるよう瘢雹になっています。 + <code>text/*</code> メディアタイプであるけれども + 特定の文字セットに明亡慙△鼎韻蕕譴討い襪錣韻任呂覆鹿粡寂蝟赱齠洲痲筵娼鱸瘤は ISO-8859-1 であると王苳残蠅気譴泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳刺嗜元広纃ではない</em>文字セットメディアパラメ・踉札燭鹿粡寂蝟赱齠洲痲筵娼関連づけられている variant を選びます。そのよう瘢雹な variant + がない豺腓蓮紊錣蠅砲垢戮討癇蛛銓ぢを選びます。</li> + + <li>最適なエンコ・踉札妊鵐阿癇蛛銓ぢを選びます。もし user-agent + が許容するエンコ・踉札妊鵐阿△譴弌△修癇蛛銓ぢのみを選びます。 + そう瘢雹ではなく、もしエンコ・踉札匹気譴燭發里箸修逅擦任覆鹿粡寂蝟赱齠洲痲筵娼鱸瘤が混ざって存在していたらエンコ・踉札匹気譴討い覆癇蛛銓鹿粡寂蝟赱齠洲痲筵娼のみを選びます。 variant がすべてエンコ・踉札匹気譴討い襪癇蛛銓鹿粡寂蝟赱齠洲痲筵娼がどれもエンコ・踉札匹気譴討い覆い箸い逅殺苳詞合は、すべての variant + を選びます。</li> + + <li>内容の最も短い variant を選びます。</li> + + <li>残っている variant の最初のものを選びます。 + タイプマップファイルの最初にリストされているか、 + variant がディレクトリから最初に読み込まれる時に ASCII + 順でソ・踉札箸靴謄侫.ぅ詭が先頭になったか、のどちらかです。</li> + </ol> + </li> + + <li>アルゴリズムを使って一つの「最適な」variant + を選びましたので、それを応答として返します。 + ネゴシエ・踉札轡腑鵑陸踉察元を指定するために HTTP レスポンスヘッダ + Vary が設定されます (リソ・踉札垢離礇奪轡紊鬚垢觧法鹿粡寂蝟赱齠洲痲筵娼ブラウ瘢雹ザやキャッシュはこの霾鵑鮖箸逅擦海箸任泙ぢ。 + 以紊能錣蝓薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉諮ここに来たという瘢雹ことは、variant が一つも選択されなかった + (ブラウ瘢雹ザが許容するものがなかったため) という瘢雹ことです。406 ステ・踉札織鹿粡寂蝟赱齠洲痲筵娼│麗窿辮碎鱚頏纉緕闔を意味する) が、利用可能な variant + のリストのついた HTML ドキュメントとともに返されます。 + 変化の仝気鬢踉雑す HTTP Vary ヘッダも設定されます。</p> + + <p>Apacheにより返されるエラ・踉札瓮奪察ジが必要以紊亡別世如鹿粡寂蝟赱齠洲痲筵娼ぢ同等の内容を提┐靴討い襪韻譴匹癲蝟昭粡竚癈鷭п粐Ьぢユ・踉札兇陲垢觚彊砲覆襪海箸卜碓佞垢戮任后鹿粡寂蝟赱齠洲痲筵娼もしユ・踉札兇海離┘蕁ペ・踉札犬鮓襪海箸鯣鬚韻燭う苳詞合は、 + 標準の言語の(また、標準のエンコ・踉札妊鵐暗鯏困┐蝟昭粡竚癈鷭п粐Ьぢ文書を置いておくことで、もしブラウ瘢雹ザから要求された言語や + エンコ・踉札妊鵐暗箸┐覆辰職苳詞合は錣砲修譴屬気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢブラウ瘢雹ザから要求された言語の文書がどれも得られない時に + デフォルト言語の文書を返したい豺腓蓮鹿粡寂蝟赱齠洲痲筵娼言語属性セットなしの文書を作成してください。楮戮聾紊鹿粡寂蝟赱齠洲痲筵娼蓿繙就n闌瘤苺瘍紜已鱸瘤蜚鈿瘤苺瘍絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢ参函薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒闌鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就矼纈釶辣就矼纈▽苳ぢ品舛涼佑鯤僂┐王苳纂蝟昭粡竚癈鷭п粐Ь踉察ぢ訳注:betterは修正予定?英語版に追拾苳擦垢戮苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮綉鞜竏綣蝟昭粡竚癈鷭п粐Ьぢネゴシエ・踉札轡腑鵐▲襯乾螢坤爐慮軍覆焚鬢踉氏で得られるであろう瘢雹値から、 + Apache は品楚佑鮖絞僂┐泙后4袷瓦任呂覆ぁ鹿粡寂蝟赱齠洲痲筵娼あるいは正確でない霾鵑鯀襯屮薀逅札狂韻離▲襯乾螢坤爐如鹿粡寂蝟赱齠洲痲筵娼よりよい結果を得るために行われます。かなりポピュラ・踉擦淵屮薀逅札兇如鹿粡寂蝟赱齠洲痲筵娼もしないと間違った variant を選択する結果になってしまう瘢雹よう瘢雹な + Accept ヘッダ霾鵑鯀襪發里發△蠅泙后鹿粡寂蝟赱齠洲痲筵娼ブラウ瘢雹ザが完全で正しい霾鵑鯀辰討い譴弌鹿粡寂蝟赱齠洲痲筵娼この数値変化は適用されません。</p> + + <h3>メディアタイプとワイルドカ・踉札界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮巣竇頸リクエストヘッダはメディアタイプの優先傾向を指定します。 + これはまた、"image/*" や "*/*" + といった「ワイルドカ・踉札鼻廛瓮妊▲織ぅ廚魎泙爐海箸任泙后鹿粡寂蝟赱齠洲痲筵娼ここで * は任意の文字列にマッチします。ですから、,墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼巣竇頸蜊瘍絲鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼を含むリクエストは、"image/" ではじまるタイプすべてが許容できる、 + そして側苳擦里匹鵑淵織ぅ廚盖討任この豺腓呂犬瓩蜊瘍絲鹿粡寂蝟赱齠洲痲筵娼は蘢垢砲覆蠅泙ことを┐靴泙后鹿粡寂蝟赱齠洲痲筵娼扱う瘢雹ことのできる明淵織ぅ廚鵬辰┐董鹿粡寂蝟赱齠洲痲筵娼ル・踉札船鵑里茲逅擦縫錺ぅ襯疋ドを送るブラウ瘢雹ザもあります。たとえば: +<pre> + Accept: text/html, text/plain, image/gif, image/jpeg, */* +</pre> + こう瘢雹することの狙いは、明縫螢好箸靴討い襯織ぅ廚ダ茲気譴襪韻譴匹癲鹿粡寂蝟赱齠洲痲筵娼異なる表現が利用可能であればそれでも良い、という瘢雹ことです。 + しかしながら基本的なアルゴリズムでは、紊胞踉雑したよう瘢雹に、*/* + ワイルドカ・踉札匹のすべてのタイプと全く同等なので優先されません。 + ブラウ瘢雹ザは */* にもっと低い品優先) + 値を付けてリクエストを送るべきなのです。たとえば: +<pre> + Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 +</pre> + 明淵織ぅ廚砲鷲弗踉餐数値が付けられていませんので、デフォルトの + 1.0 (最高値) の優先になります。ワイルドカ・踉札ぢは低い優先度 + 0.01 を与えられているので、明縫螢好箸気譴討い襯織ぅ廚帽臙廚垢鹿粡寂蝟赱齠洲痲筵娼鱸瘤がない豺腓砲里漾のタイプが返されます。 + + <p>もし Accept: ヘッダが q 値を全く含んで<em>いなければ</em>、 + 胞苳擦澆竜麁阿鬚垢襪燭瓩法草痺蒹ぢは "*/*" があれば 0.01 の q + 値を設定します。また、"type/*" の形のワイルドカ・踉札匹砲の q + 値を設定します (ですからこれらは "*/*" のマッチよりも優先されます)。 + もし Accept: ヘッダ中のメディアタイプのどれかが q 値を含んでいれば、 + これらの特譴蔽佑賄纃されず</em>、正しい霾鵑鯀襯屮薀逅札兇蕕鹿粡寂蝟赱齠洲痲筵娼リクエストは期待通りに動作しはじめます。</p> + + <h3><a id="nolanguage" name="nolanguage">言語属性のない variant</a></h3> + + <p>もし特定のリソ・踉札垢癇蛛銓ぢのう瘢雹ちのいくつかが言語属性を持っていて + いくつかは持っていない豺腓蓮△修譴蕕慮生貘粟鮖燭覆癇蛛銓鹿粡寂蝟赱齠洲痲筵娼には 0.001 という瘢雹非錣膨磴ど弗踉餐係数が与えられます</p> + + <p>この言語属性を持たない variant に 0.001 + という瘢雹非錣膨磴ど弗踉餐係数が与えられるという瘢雹設定の理由は + ブラウ瘢雹ザの言語設定に合う瘢雹 variant が一つもなかったときに標準の + variant を適用することを可能にするためです。これにより、 + リクエストされたリソ・踉札垢紡个靴董⇒儖佞靴討い覆じ生譴世韻窿辮蝟昭粡竚癈鷭п粐Ьぢするよう瘢雹に設定されたブラウ瘢雹ザのユ・踉札兇完侠鹿粡寂蝟赱齠洲痲筵娼エラ・踉札據ジを見るのを避けることが可能になります。</p> + + <p>たとえば Multiviews が有効で variants + が三つある靴鮃佑┐泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚肬鎬緕讙瘤苺瘍緕薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳紙闖鬯蔗迪赱鈑艱鬢踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚肬鎬蔗迪鈿瘤苺瘍絋踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮言語属性のない variant の意味は錣縫屮薀逅札兇謀垢襪海箸任后鹿粡寂蝟赱齠洲痲筵娼リクエストが <code>foo</code> で Accept-Language ヘッダに en + または fr (またはその陸苳司が含まれる豺隋肬鎬緕か + foo.fr.html のどちらかが返されます。ブラウ瘢雹ザが許容するものとして + en と fr のどちらも挙げられていない豺腓和紊錣蠅闖鹿粡寂蝟赱齠洲痲筵娼が返されます。クライアントが <code>foo.html</code> + をリクエストした豺腓牢袷瓦飽戝廚垢襪里妊優乾轡─ションは発生せず、 + それ里屬気譴泙后海量簑蠅鯣鬚韻襪砲蓮◆峺生譴里覆ぁ癇蛛銓鹿粡寂蝟赱齠洲痲筵娼として <code>foo.html.html</code> という瘢雹巳苳餐阿鯢佞韻襪海箸纓鷦蝟昭粡竚癈鷭п粐Ьぢそして言語ネゴシエ・踉札轡腑鵑虻遒垢襪燭瓩諒欷韻箸靴鹿粡寂蝟赱齠洲痲筵娼役立つことが時々あります。</p> + + <h2>Transparent Content Negotiation の拡張</h2> + Apache は transparent content negotiation プロトコル (RFC 2295) + を,里茲逅擦乏板イ靴討い泙后F団蠅離灰鵐謄鵐肇┘鵐魁ディング + のみが利用可能である variant に印を付けるために、新たに + <code>{encoding ..}</code> 要素を variant リスト中に使う瘢雹ことができます。 + リスト中のエンコ・踉札匹気譴癇蛛銓ぢを認韻任董巣竇頸釿閼蜴膽蝟昭粡竚癈鷭п粐Ьぢリクエストヘッダに拾苳擦辰撞討気譴襯┘鵐魁ドをもった variant + は、どれでも候補 variant として使用できるよう瘢雹にするために、 + RVSA/1.0 アルゴリズム (RFC 2296) の汰板イ気譴泙靴拭鹿粡寂蝟赱齠洲痲筵娼雙啻ぢの汰任蓮∈播癇蛛銓ぢが見つかるまで、 + 計算した品楚佑櫓苳皿数点以王踉ぢ桁まで丸めません。 + + <h2>リンクと巳苳餐阿諒儡垢亡悗垢訝躇嫖王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮言語ネゴシエ・踉札轡腑鵑鮖箸辰討い襴苳詞合は、ファイルが一つ以紊粒板セ劼鮖討董鹿粡寂蝟赱齠洲痲筵娼拡張子の順番には関連性が通錣呂覆楮戮鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖迚辣譯逡踉蜷跂纔槇迴籖迚辣ぢを参蝟昭粡竚癈鷭п粐Ьぢので、幾つかの異なる巳苳餐阿諒儡垢鯀戮襪海箸砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ典型的なファイルでは、MIME タイプ拡張子 (<em>たとえば</em> + <samp>html</samp>) を持っていて、エンコ・踉札妊鵐鯵板セ鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳ぢたとえば</em> <samp>gz</samp>) を持っているかもしれないし、 + このファイルに異なる言語 variant を用意していれば、もちろん言語拡張子 + (<em>たとえば</em> <samp>en</samp>) を持っているでしょう瘢雹。</p> + + <p>例:</p> + + <ul> + <li>foo.en.html</li> + + <li>foo.html.en</li> + + <li>foo.en.html.gz</li> + </ul> + + <p>正しいリンク、不正なリンクの陸苳司離侫.ぅ詭の例を挙げます:</p> + + <table border="1" cellpadding="8" cellspacing="0"> + <tr> + <th>ファイル巳苳荀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼荀苳ぢ正解のリンク</th> + + <th>不正解のリンク</th> + </tr> + + <tr> + <td><em>foo.html.en</em></td> + + <td>foo<br /> + foo.html</td> + + <td>-</td> + </tr> + + <tr> + <td><em>foo.en.html</em></td> + + <td>foo</td> + + <td>foo.html</td> + </tr> + + <tr> + <td><em>foo.html.en.gz</em></td> + + <td>foo<br /> + foo.html</td> + + <td>foo.gz<br /> + foo.html.gz</td> + </tr> + + <tr> + <td><em>foo.en.html.gz</em></td> + + <td>foo</td> + + <td>foo.html<br /> + foo.html.gz<br /> + foo.gz</td> + </tr> + + <tr> + <td><em>foo.gz.html.en</em></td> + + <td>foo<br /> + foo.gz<br /> + foo.gz.html</td> + + <td>foo.html</td> + </tr> + + <tr> + <td><em>foo.html.gz.en</em></td> + + <td>foo<br /> + foo.html<br /> + foo.html.gz</td> + + <td>foo.gz</td> + </tr> + </table> + + <p>紊良修鮓董板セ劼覆靴離螢鵐纃たとえば</em> <samp>foo</samp>) + がいつでも使えることに気が付くでしょう瘢雹。この利点は、 + ドキュメントとして応答するファイルの尊櫃離侫.ぅ襯織ぅ廚魃J辰靴董鹿粡寂蝟赱齠洲痲筵娼リンクの参箸鯤儿垢垢襪海箸覆紊薀侫.ぅ襪鯤儿垢任襦鹿粡寂蝟赱齠洲痲筵娼纃たとえば</em> <samp>html</samp> から <samp>shtml</samp> + に、あるいは <samp>cgi</samp> に変更できる点です。</p> + + <p>リンクに MIME タイプを使い続けたい (<em>たとえば</em> + <samp>foo.html</samp>)時は、言語拡張子は + (エンコ・踉札妊鵐鯵板セ劼發△譴个修譴盍泙瓩蝟昭粡竚癈鷭п粐Ь浜タイプ拡張子の右瘢雹側瘢雹になければなりません + (<em>たとえば</em> <samp>foo.html.en</samp>)。</p> + + <h2>キャッシュに関する注意事項</h2> + + <p>キャッシュがある表現を保存しているときは、リクエスト URL + と関連づけられています。,砲修厂ぢがリクエストされた時に、 + キャッシュは保存されている表現を使用できます。しかし、リソ・踉札垢鹿粡寂蝟赱齠洲痲筵娼サ・踉札个妊優乾轡─ション可能であれば、最初のリクエストでキャッシュされて続く + キャッシュヒットでは間違った応答を返してしまう瘢雹という瘢雹ことになりかねません。 + これを防ぐために、Apache はコンテントネゴシエ・踉札轡腑鵑鹿粡寂蝟赱齠洲痲筵娼後に返された応答すべてに、HTTP/1.0 クライアントでの + non-cacheable とマ・踉札靴泙后泙拭▲優乾轡─ションされた応答のキャッシュ + を可能にする HTTP/1.1 プロトコルの機能も Apache はサポ・踉札箸靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳使墺亊窺準拠のクライアントからのリクエストに対しては、 + (ブラウ瘢雹ザであろう瘢雹とキャッシュであろう瘢雹と) ネゴシエ・踉札轡腑鹿粡寂蝟赱齠洲痲筵娼を韻娠離礇奪轡紊魑垢燭瓩法竢粤秩竏緡繚阡蛛篦閭鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブを使用できます。このディレクティブは、 + 腑機バ設定やバ・踉札船礇襯曠好箸罵燭┐蕕譴董瑤鬚箸蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼挽墅ぢクライアントからのリクエストには効力を持ちません。</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/custom-error.html.en b/htdocs/manual/custom-error.html.en new file mode 100644 index 0000000000..3cbb570436 --- /dev/null +++ b/htdocs/manual/custom-error.html.en @@ -0,0 +1,182 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Custom error responses</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Custom error responses</h1> + + <dl> + <dt>Purpose</dt> + + <dd> + Additional functionality. Allows webmasters to configure + the response of Apache to some error or problem. + + <p>Customizable responses can be defined to be activated in + the event of a server detected error or problem.</p> + + <p>e.g. if a script crashes and produces a "500 Server + Error" response, then this response can be replaced with + either some friendlier text or by a redirection to another + URL (local or external).</p> + </dd> + + <dt>Old behavior</dt> + + <dd>NCSA httpd 1.3 would return some boring old error/problem + message which would often be meaningless to the user, and + would provide no means of logging the symptoms which caused + it.<br /> + </dd> + + <dt>New behavior</dt> + + <dd> + The server can be asked to; + + <ol> + <li>Display some other text, instead of the NCSA hard + coded messages, or</li> + + <li>redirect to a local URL, or</li> + + <li>redirect to an external URL.</li> + </ol> + + <p>Redirecting to another URL can be useful, but only if + some information can be passed which can then be used to + explain and/or log the error/problem more clearly.</p> + + <p>To achieve this, Apache will define new CGI-like + environment variables, <em>e.g.</em></p> + + <blockquote> + <code>REDIRECT_HTTP_ACCEPT=*/*, image/gif, + image/x-xbitmap, image/jpeg<br /> + REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX + A.09.05 9000/712)<br /> + REDIRECT_PATH=.:/bin:/usr/local/bin:/etc<br /> + REDIRECT_QUERY_STRING=<br /> + REDIRECT_REMOTE_ADDR=121.345.78.123<br /> + REDIRECT_REMOTE_HOST=ooh.ahhh.com<br /> + REDIRECT_SERVER_NAME=crash.bang.edu<br /> + REDIRECT_SERVER_PORT=80<br /> + REDIRECT_SERVER_SOFTWARE=Apache/0.8.15<br /> + REDIRECT_URL=/cgi-bin/buggy.pl<br /> + </code> + </blockquote> + + <p>note the <code>REDIRECT_</code> prefix.</p> + + <p>At least <code>REDIRECT_URL</code> and + <code>REDIRECT_QUERY_STRING</code> will be passed to the + new URL (assuming it's a cgi-script or a cgi-include). The + other variables will exist only if they existed prior to + the error/problem. <strong>None</strong> of these will be + set if your ErrorDocument is an <em>external</em> redirect + (<em>i.e.</em>, anything starting with a scheme name like + <code>http:</code>, even if it refers to the same host as + the server).</p> + </dd> + + <dt>Configuration</dt> + + <dd> + Use of "ErrorDocument" is enabled for .htaccess files when + the <a href="mod/core.html#allowoverride">"FileInfo" + override</a> is allowed. + + <p>Here are some examples...</p> + + <blockquote> + <code>ErrorDocument 500 /cgi-bin/crash-recover<br /> + ErrorDocument 500 "Sorry, our script crashed. Oh + dear<br /> + ErrorDocument 500 http://xxx/<br /> + ErrorDocument 404 /Lame_excuses/not_found.html<br /> + ErrorDocument 401 + /Subscription/how_to_subscribe.html</code> + </blockquote> + + <p>The syntax is,</p> + + <p><code><a + href="mod/core.html#errordocument">ErrorDocument</a></code> + <3-digit-code> action</p> + + <p>where the action can be,</p> + + <ol> + <li>Text to be displayed. Prefix the text with a quote + ("). Whatever follows the quote is displayed. <em>Note: + the (") prefix isn't displayed.</em></li> + + <li>An external URL to redirect to.</li> + + <li>A local URL to redirect to.</li> + </ol> + </dd> + </dl> + <hr /> + + <h2>Custom error responses and redirects</h2> + + <dl> + <dt>Purpose</dt> + + <dd>Apache's behavior to redirected URLs has been modified so + that additional environment variables are available to a + script/server-include.</dd> + + <dt>Old behavior</dt> + + <dd>Standard CGI vars were made available to a script which + has been redirected to. No indication of where the + redirection came from was provided.</dd> + + <dt>New behavior</dt> + + <dd>A new batch of environment variables will be initialized + for use by a script which has been redirected to. Each new + variable will have the prefix <code>REDIRECT_</code>. + <code>REDIRECT_</code> environment variables are created from + the CGI environment variables which existed prior to the + redirect, they are renamed with a <code>REDIRECT_</code> + prefix, <em>i.e.</em>, <code>HTTP_USER_AGENT</code> becomes + <code>REDIRECT_HTTP_USER_AGENT</code>. In addition to these + new variables, Apache will define <code>REDIRECT_URL</code> + and <code>REDIRECT_STATUS</code> to help the script trace its + origin. Both the original URL and the URL being redirected to + can be logged in the access log.</dd> + </dl> + + <p>If the ErrorDocument specifies a local redirect to a CGI + script, the script should include a "<samp>Status:</samp>" + header field in its output in order to ensure the propagation + all the way back to the client of the error condition that + caused it to be invoked. For instance, a Perl ErrorDocument + script might include the following:</p> +<pre> + : + print "Content-type: text/html\n"; + printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"}; + : +</pre> + + <p>If the script is dedicated to handling a particular error + condition, such as <samp>404 Not Found</samp>, it can + use the specific code and error text instead.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/custom-error.html.fr b/htdocs/manual/custom-error.html.fr new file mode 100644 index 0000000000..c522b92194 --- /dev/null +++ b/htdocs/manual/custom-error.html.fr @@ -0,0 +1,221 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.14 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Messages d'erreur personnalisés</title> + </head> + + <body text="#000000" link="#0000ff" vlink="#000080" + bgcolor="#ffffff"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Messages d'erreur personnalisés</h1> + + <h3>But</h3> + + <p>Fonctionnalité additionnelle. Permet aux + administrateurs Web de personnaliser les réponses + données par Apache en cas de problèmes. Les + réponses personnalisées définies peuvent + être activables lorsque le serveur est à + même de détecter la cause du problème.</p> + + <p>ex. si un script termine en faute, produisant une + réponse "500 Server Error", alors cette réponse + peut être remplacée soit par un texte quelque peu + plus explicatif soit par une redirection vers une autre URL + (locale ou externe).</p> + + <h3>Ancien comportement</h3> + + <p>La version 1.3 d'httpd du NCSA répondait souvent avec + des messages d'erreur ennuyeux et peu amènes qui + étaient sans signification pour l'utilisateur, et ne + donnait pas les symptômes qui pouvaient causer la + faute.</p> + + <h3>Nouveau comportement</h3> + + <p>On pourra désormais demander au serveur :</p> + + <ol> + <li>D'afficher un autre texte, plutôt que les messages + standard NCSA, ou</li> + + <li>rediriger l'utilisateur vers une URL locale, ou + encore</li> + + <li>rediriger l'utilisateur vers une URL sur un autre + serveur.</li> + </ol> + + <p>La redirection vers une autre URL peut être utile, + mais seulement si certaines informations peuvent être + passées et qui serviront à produire un affichage + ou un enregistrement du problème plus clair et + explicite.</p> + + <p>Pour ce faire, Apache définira de nouvelles variables + d'environnement ( à la mode CGI), ex.</p> + + <blockquote> + <code>REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, + image/jpeg<br /> + REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX + A.09.05 9000/712)<br /> + REDIRECT_PATH=.:/bin:/usr/local/bin:/etc<br /> + REDIRECT_QUERY_STRING=<br /> + REDIRECT_REMOTE_ADDR=121.345.78.123<br /> + REDIRECT_REMOTE_HOST=ooh.ahhh.com<br /> + REDIRECT_SERVER_NAME=crash.bang.edu<br /> + REDIRECT_SERVER_PORT=80<br /> + REDIRECT_SERVER_SOFTWARE=Apache/0.8.15<br /> + REDIRECT_URL=/cgi-bin/buggy.pl</code> + </blockquote> + + <p>notez le préfixe <code>REDIRECT_</code>.</p> + + <p>Seront au moins passés à la nouvelle URL les + variables <code>REDIRECT_URL</code> et + <code>REDIRECT_QUERY_STRING</code> (en supposant que l'URL de + redirection est un script CGI ou un Include CGI). Les autres + variables n'existeront que si elles existaient + déjà avant l'apparition du problème. + <b>Aucune de ces deux variables</b> ne sera initialisée + si votre Document d'erreur est le résultat d'une + redirection <i>externe</i> (c-à-d. toute adresse + commençant par le nom d'un plan de protocole comme + <code>http:</code>, même si le protocole invoqué + aboutit sur le même hôte que le serveur à + l'origine de la redirection).</p> + + <h3>Configuration</h3> + + <dl> + <dd>L'utilisation des documents "ErrorDocument" est + autorisée dans les fichiers .htaccess lorsque la + surcharge <a + href="mod/core.html#allowoverride">"FileInfo"</a> est + active.</dd> + + <dd>En voici quelques exemples...</dd> + </dl> + + <div style="margin-left: 2em"> + <blockquote> + <code>ErrorDocument 500 /cgi-bin/crash-recover<br /> + ErrorDocument 500 "Désolé, votre script + s'est vautré. Fichtre"<br /> + ErrorDocument 500 http://xxx/<br /> + ErrorDocument 404 /Lame_excuses/not_found.html<br /> + ErrorDocument 401 + /Subscription/how_to_subscribe.html</code> + </blockquote> + + <dl> + <dd>La syntaxe admise est :</dd> + + <dd><a href="mod/core.html#errordocument"><font + face="Courier New" size="2">ErrorDocument</font></a> + <code à trois chiffres> action</dd> + + <dd>dans laquelle l'action peut être :</dd> + </dl> + </div> + + <div style="margin-left: 4em"> + <ol> + <li>Le texte devant être affiché. Le texte + devra être préfixé par un guillemet + ("). Tout ce qui suit le guillemet sur la ligne est + affiché. <em>Notez : le préfixe (") + lui-même n'est pas affiché.</em></li> + + <li>Une URL externe de redirection.</li> + + <li>Une URL locale de redirection.</li> + </ol> + </div> + <hr /> + <br /> + <br /> + + + <div style="margin-left: 2em"> + <h2>Redirections et affichage d'erreurs + personnalisées</h2> + + <h3>But</h3> + + <dl> + <dd>Le comportement d'Apache lorsqu'il redirige des URL a + été modifié afin que d'autres + variables d'environnement additionnelles puissent + être rendues accessibles par un + script/server-include.</dd> + </dl> + + <h3>Ancien comportement</h3> + + <dl> + <dd>Les variables CGI standard étaient transmises au + script vers lequel était redirigé le client. + Aucune indication n'était transmise quant à + qui redirigeait le message.</dd> + </dl> + + <h3>Nouveau comportement</h3> + + <dl> + <dd>Un nouvel ensemble de variables d'environnement sera + initialisé, à l'intention du script vers + lequel le client a été redirigé. + Chaque nouvelle variable de cet ensemble est + préfixée par <code>REDIRECT_</code>. Les + variables d'environnement de type <code>REDIRECT_</code> + sont créées à partir des variables + d'environnement CGI qui existaient avant que n'intervienne + la redirection, en leur rajoutant le préfixe. Par + exemple <code>HTTP_USER_AGENT</code> devient + <code>REDIRECT_HTTP_USER_AGENT</code>. En plus de ces + variables, Apache définit les variables + <code>REDIRECT_URL</code> et <code>REDIRECT_STATUS</code> + pour aider le script à identifier l'origine de la + redirection. Dans la trace d'accès déduite + peuvent apparaître l'URL initiale ainsi que l'URL + vers laquelle est redirigée la requête.</dd> + </dl> + </div> + <hr /> + <br /> + <br /> + + + <p>Si la directive ErrorDocument spécifie une + redirection local vers un script CGI, le script devra inclure + un champ "<samp>Status:</samp>" dans l'en-tête de sa + sortie afin de garantir la retransmiison complète vers + le client des conditions d'erreurs qui ont causé son + invocation. Par exemple un script Perl devrait inclure les + lignes suivantes :</p> +<pre> + : + print "Content-type: text/html\n"; + printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"}; + : +</pre> + + <p>Si le script est dédié pour traité une + condition d'erreur particulière telle que + <samp>404 Not Found</samp>, il peut utiliser le code + spécifique et le message d'erreur à la place.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/custom-error.html.html b/htdocs/manual/custom-error.html.html new file mode 100644 index 0000000000..ff8a00c232 --- /dev/null +++ b/htdocs/manual/custom-error.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="custom-error.html.en" --> + diff --git a/htdocs/manual/custom-error.html.ja.jis b/htdocs/manual/custom-error.html.ja.jis new file mode 100644 index 0000000000..b4610c51b1 --- /dev/null +++ b/htdocs/manual/custom-error.html.ja.jis @@ -0,0 +1,183 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>カスタムエラ・踉札譽好櫂鵐蜚跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察鈑跚鼈纐蜩蜿邵鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■聿聿聿就0旭旭唖蜴觸■旭旭聿⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就f羂旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳ぢカスタムエラ・踉札譽好櫂鵐右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳ぢ目的</dt> + + <dd> + 追加機能の提供。ウ瘢雹ェブマスタ・踉擦燭蕕離┘蕁や問題に対する + Apache の反応を設定できるよう瘢雹にします。 + + <p>サ・踉札个┘蕁や問題を発見した豺腓糧娠髻鹿粡寂蝟赱齠洲痲筵娼カスタマイズして定義することができます。</p> + + <p>例えば、スクリプトの孫圓踉産敗して "500 Server Error" + を発生させたとします。この豺腓糧娠髻△茲蟾イ泙靴ぅ謄好箸筺∧未鹿粡寂蝟赱齠洲痲筵娼孀ぢ内部及び外部) へのリダイレクションに置き換えることができます。 + </p> + </dd> + + <dt>古い動作</dt> + + <dd>NCSA httpd 1.3 は、古くて退屈なエラ・踉ぢ問題メッセ・踉札犬鹿粡寂蝟赱齠洲痲筵娼返していました。それはしばしばユ・踉札兇砲鰐軌嫐任△蝓鹿粡寂蝟赱齠洲痲筵娼またそれを発生させた原因を記録する方法も提供していませんでした。 + <br /> + </dd> + + <dt>新しい動作</dt> + + <dd> + + + <ol> + <li>NCSA のハ・踉札疋魁ドされたメッセ・踉札犬梁紊錣蠅鹿粡寂蝟赱齠洲痲筵娼側苳擦離謄好箸鯢拾踉雑</li> + + <li>ロ・踉札襪厂ぢにリダイレクト</li> + + <li>外部の URL にリダイレクト</li> + </ol> + するよう瘢雹にサ・踉札个鮴瀋蠅任泙后鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ別の URL にリダイレクトすることは役に立ちますが、 + それは説明をしたり、より明確に誤り/問題を記録したりするために + 何か霾鵑鯏舛┐蕕譴襪箸妨造蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこれを存修垢襪燭瓩法鞜竏は新しく CGI のよう瘢雹な環境変数を定義します。 + <em>例えば</em>以王踉擦里茲逅擦覆發里△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤凖追凖痴瀏墺俤礎壇來終蜊瘍絲芍罨鹿粡寂蝟赱齠洲痲筵娼蜊瘍絲蜚轣隱轣艱鞳胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь凖追凖痴瀏墺俤孑賭濮播淋粛陏蛹赱皺惘瓜釆惻蝟昭粡竚癈鷭п粐Ь庚圧旭渥訓鴬碣鹿粡寂蝟赱齠洲痲筵娼田敏澱壥仭堡舟痕砠邵齟閭瘡蜴痕續礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь凖追凖痴瀾嫖燮灑墟瀕能碣鹿粡寂蝟赱齠洲痲筵娼田敏澱壥凖溶堙濮陳匳渦窺慨貴係桶碣鹿粡寂蝟赱齠洲痲筵娼田敏澱壥凖溶堙瀏腕埆闖莅瘉蓙闕碣鹿粡寂蝟赱齠洲痲筵娼田敏澱壥單雙賭瀘鼠貼竰癈莅矚鈑糒碣鹿粡寂蝟赱齠洲痲筵娼田敏澱壥單雙賭瀰碗埆鍵碣鹿粡寂蝟赱齠洲痲筵娼田敏澱壥單雙賭灑脇墸倉貼草痺蒹畿踉獅苳纂蝟昭粡竚癈鷭п粐Ь凖追凖痴炙厂蒐竍薛砠遲碯艸韭碣鹿粡寂蝟赱齠洲痲筵娼閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ頭に付く <code>REDIRECT_</code> に注目してください。</p> + + <p>覆箸踉祉閼絋苳子田敏澱壥孀巳踉晒竢粤ぢと + <code>REDIRECT_QUERY_STRING</code> は新しい URL (CGI スクリプトか + CGI インクル・踉札匹任△襪伐定されます) に渡されます。 + 側苳擦諒竸瑤蓮▲┘蕁や問題が起きる前に存在した豺腓砲世餌減澆靴泙后鹿粡寂蝟赱齠洲痲筵娼もしあなたの設定した ErrorDocument が <em>外部</em>リダイレクト + (<em>すなわち</em>、<code>http:</code> + のよう瘢雹な体系巳苳擦藥呂泙襪垢戮討里發痢燭箸韻献曠好箸鮖悗靴討い討蝟昭粡竚癈鷭п粐Ьぢならば、これらは<strong>まったく</strong>設定されません。 + </p> + </dd> + + <dt>設定</dt> + + <dd> + <a href="mod/core.html#allowoverride">"FileInfo" オ・踉札弌ライド</a> + が許可されていれば、.htaccess ファイルで "ErrorDocument" + を使用することができます。 + + <p>ここに、いくつかの例を挙げます。</p> + + <blockquote> + <code>ErrorDocument 500 /cgi-bin/crash-recover<br /> + ErrorDocument 500 "Sorry, our script crashed. Oh + dear<br /> + ErrorDocument 500 http://xxx/<br /> + ErrorDocument 404 /Lame_excuses/not_found.html<br /> + ErrorDocument 401 + /Subscription/how_to_subscribe.html</code> + </blockquote> + + <p>構文</p> + + <p><code><a + href="mod/core.html#errordocument">ErrorDocument</a></code> + <3 桁コ・踉札逅紫ぢ動作</p> + + <p>動作は、</p> + + <ol> + <li>表┐気譴襪戮謄好函謄好箸砲楼冑〒ぢをつけます。 + 引用符の後に続くものが何でも表┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼纃注意 : (") は表┐気譴泙擦蹙苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚リダイレクト先の外部 URL </li> + + <li>リダイレクト先のロ・踉札厂踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉晒粐鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳ぢカスタムエラ・踉札譽好櫂鵐垢肇螢瀬ぅ譽王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳ぢ目的 </dt> + + <dd>スクリプト/SSI に追加の環境変数が利用可能になるよう瘢雹に、 + リダイレクトされた URL に対する Apache の動作が変更されました。 + </dd> + + <dt>古い動作</dt> + + <dd>リダイレクトされたスクリプトは標準の CGI + 環境変数を利用可能でした。しかし、どこからリダイレクト + されたかの霾鵑歪鷆,気譴討い泙擦鵑任靴拭筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳ぢ新しい動作 </dt> + + <dd>リダイレクトされた先のスクリプトが使用可能なよう瘢雹に、 + 新しいたくさんの環境変数が初期化されます。新しい変数は、それう苳擦鹿粡寂蝟赱齠洲痲筵娼竢粤凖追凖痴潸踉晒竢粤ぢで始まります。 + <code>REDIRECT_</code> で始まる環境変数はリダイレクトされる前に存在していた + CGI 環境変数の頭に <code>REDIRECT_</code> を付けて作成されます。 + <em>すなわち</em>、<code>HTTP_USER_AGENT</code> は + <code>REDIRECT_HTTP_USER_AGENT</code> になります。 + これらの新しい変数に加えて、Apache は、 + スクリプトがリダイレクト元のトレ・踉札垢鮟韻襪燭瓩鹿粡寂蝟赱齠洲痲筵娼竢粤凖追凖痴炙厂閼絋苳と <code>REDIRECT_STATUS</code> + を定義します。アクセスログには元の URL とリダイレクトされた URL + の陸苳司燭気譴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕鴪闥弟笊辣銓ぢが CGI スクリプトへのロ・踉札襯螢瀬ぅ譽箸鹿粡寂蝟赱齠洲痲筵娼指定している豺腓蓮△修譴魑阿垢襪海箸砲覆辰織┘蕁の屬鹿粡寂蝟赱齠洲痲筵娼クライアントまで確造謀舛┐襪燭瓩踉雌瘢隍苳拶囈癆頃踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼ヘッダを含むべきです。例えば、ErrorDocument 用の Perl + スクリプトは以王踉擦里茲逅擦覆發里魎泙爐發靴譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼頏蜴衷銓緕鞳賍遐纂蝟昭粡竚癈鷭п粐Ь鱸銓鷓衷鈔蜚蜿侮鱆辮籘遐づ琳凖追凖痴灑堊壞哂鹿粡寂蝟赱齠洲痲筵娼瑳蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮スクリプトが <samp>404 Not Found</samp> のよう瘢雹な + 特定のエラ・踉札灰鵐妊轡腑鵑魄靴逅擦燭瓩世韻忙箸錣譴襴苳詞合は、 + 代わりに特定のコ・踉札匹肇┘蕁テキストを使用することができます。 + </p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/cygwin.html b/htdocs/manual/cygwin.html new file mode 100644 index 0000000000..ff0bda4401 --- /dev/null +++ b/htdocs/manual/cygwin.html @@ -0,0 +1,567 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Using Apache with Cygwin</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER"><a id="help" name="help">Using Apache with + Cygwin</a></h1> + + <p>This document explains how to install, configure and run + Apache 1.3 under the <a href="http://www.cygwin.com">Cygwin</a> + layer for Microsoft Windows. Cygwin is a POSIX.1 emulation + layer for 32-bit Microsoft Windows operating systems.</p> + + <p>The Apache Group does not guarantee that this software will + work as documented, or even at all. If you find any bugs, + please document them on our <a + href="http://httpd.apache.org/bug_report.html">bug reporting + page.</a></p> + + <p>Latest development news, pre-compiled distribution binaries, + and third-party modules as DLLs, may be found at <a + href="http://apache.dev.wapme.net/">http://apache.dev.wapme.net/</a>. + Contributions are highly welcome (please see <a + href="http://apache.dev.wapme.net/TODO.cygwin">TODO</a> list); + please submit your code or suggestions to the bug report page, + or join the dev@httpd.apache.org mailing list.</p> + + <p>The <a href="windows.html">Win32 port</a> of Apache is built + on its own, custom code within Apache to assure + interoperability with Windows operating systems. While it is + considered release quality, it is slower and less thoroughly + tested than the Unix ports. The Cygwin alternative uses the + well tested Unix code by using the Cygwin portability layer for + POSIX.1 emulation. The Cygwin port may suffer from gaps in + security or reliability due to the interaction of the Cygwin + compatibility layer with the native Windows API.</p> + + <p>The <a href="windows.html">Win32 port</a> will be more + familiar to most Windows users. The Cygwin port (including the + build environment) will be more familiar to Unix admins and + developers. Due to these two different code bases, the security + and reliability of the two ports are unrelated to each other. + The Win32 port should be considered the more secure of the two + at this time. The Win32 port is recommended for most Windows + users, however the Cygwin port offers an extra layer of + compatibility for Unix developers.</p> + + <p>Apache still performs best, and is most reliable, on Unix + platforms. First benchmarks have shown that the same Apache + setup on Cygwin performs about 30% slower than the + corresponding native Windows version.</p> + + <p>Most of this document assumes that you have a working Cygwin + installation and want to compile Apache yourself from the + original distribution sources.</p> + <hr /> + + <ul> + <li><a href="#hist">History of Apache for Cygwin</a></li> + + <li><a href="#diff">Differences from Apache for Windows + (native)</a></li> + + <li><a href="#req">Requirements</a></li> + + <li><a href="#down">Downloading Apache for Cygwin</a></li> + + <li><a href="#inst">Configuring and Installing Apache for + Cygwin</a></li> + + <li><a href="#winsock">Using Win32 native socket implementation + instead</a></li> + + <li><a href="#run">Running Apache for Cygwin</a></li> + + <li><a href="#serv">Running Apache for Cygwin as a + Service</a></li> + </ul> + <hr /> + + <h2><a id="hist" name="hist">History of Apache for + Cygwin</a></h2> + + <p>Cygwin support for Apache began with Apache 1.2.6 and Cygwin + b18.</p> + + <p>Due to licensing issues there has not been an official + binary distribution until Red Hat Inc. (who merged with Cygnus + Solutions Inc.) changed their Cygwin license to ensure compiled + executables do not fall under GPL license if the distributed + software is considered as open source.</p> + + <p>Cygwin is supported in the official source distributions + from Apache 1.3.20 and later. Pre-compiled binaries for the + Cygwin platform (without the <code>cygwin1.dll</code>) will be + supplied at <a + href="http://httpd.apache.org/">http://httpd.apache.org/</a> + for each released version.</p> + + <h2><a id="diff" name="diff">Differences from Apache for + Windows (native)</a></h2> + + <p>Both versions, Apache for Windows and Apache for Cygwin, are + designed to run on the same operating systems, the Windows NT + and Windows 2000 family. But there are considerable differences + between the two flavors.</p> + + <p>While Apache for Windows is a native Windows port, Apache + for Cygwin relies on the Cygwin POSIX.1 emulation layer + provided by the <code>cygwin1.dll</code> dynamic library to + create a Unix compatible environment. Therefore we consider + Apache for Cygwin closer to the Unix side then to the Windows + side, even while it runs on Windows.</p> + + <p>Most significant differences are the amount of changes to + the source code needed to compile and run Apache on the Cygwin + platform. While the native Windows port needs major changes and + platform specific additions, the Cygwin based port changes are + very small and most of the Unix source code can be used without + major changes on the Cygwin platform.</p> + + <p><strong>When to use Apache for Cygwin and/or Apache versus + Windows?</strong><br /> + Apache for Cygwin is intended to be most useful if you want a + seamless transition from Unix systems to Windows systems for + your HTTP services.</p> + + <p>If you are using Windows NT or Windows 2000 for development + and office purposes, but your productive HTTP server + environments are Unix based systems, you may use Apache for + Cygwin to develop on Windows and simply copy whole Apache + configurations (<em>i.e.,</em> <code>httpd.conf</code>) and + Perl (<code>mod_perl</code>), PHP (<code>mod_php</code>) or + Python (<code>mod_snake</code>) applications to your productive + Unix systems.</p> + + <p><strong>What about modules (<code>mod_foo</code>) for Apache + for Cygwin?</strong><br /> + Apache for Cygwin can be built with most of the available + Apache modules with no or minimal changes. Many popular modules + have been compiled and tested with Apache for Cygwin, including + <code>mod_dav</code>, <code>mod_ssl</code>, + <code>mod_php</code>, <code>mod_perl</code>, + <code>mod_gzip</code>, and <code>mod_jserv</code>.</p> + + <p>While there are developers who directly support the Windows + native port of Apache, very few module developers do. That is + why it is can be difficult to make a Unix-based Apache + installation with third-party modules work the same way on the + Windows side using the native port. Apache for Cygwin makes + this much easier.</p> + + <p><strong>What are the differences in the configuration + files?</strong><br /> + While the Apache for Windows port uses Windows native path + names to refer files and directories, like</p> +<pre> + # httpd.conf (for Windows) + DocumentRoot "c:/apache/htdocs" +</pre> + Apache for Cygwin can use unmodified POSIX style path names + like +<pre> + # httpd.conf (for Cygwin) + DocumentRoot "/usr/local/apache/htdocs" +</pre> + + <p><strong>What about performance?</strong><br /> + Apache for Cygwin is not as high-performance as Apache for + Windows on the same hardware.</p> + + <p>This is to be expected, because Cygwin emulates a Unix + environment on a "foreign" operating system, while Apache for + Windows uses Windows code in its own native environment. First + benchmark results have shown that Apache for Cygwin is about + 30% slower than native Apache for Windows counterpart.</p> + + <h2><a id="req" name="req">Requirements</a></h2> + + <p>This Apache 1.3 port for Cygwin is designed to run on + Windows NT 4.0 and Windows 2000, <strong>NOT</strong> on + Windows 95 or 98. Windows NT 4.0 and Windows 2000 have both + been successfully tested and approved. In all cases TCP/IP + networking must be installed.</p> + + <p>Cygwin 1.x is required to compile and run this version. + Cygwin 1.3.9 and 1.3.10 have been tested and approved on both + supported OSes. We suggest using Cygwin 1.3.9-2 and higher.</p> + + <p><strong>Note:</strong>If you want to compile shared DLL + modules using <a + href="programs/apxs.html"><code>apxs</code></a> you will need + Cygwin 1.3.9-2 or higher version, which includes a version of + <code>ld.exe</code> with <code>--auto-import</code> support. + </p> + + + <h2><a id="down" name="down">Downloading Apache for + Cygwin</a></h2> + + <p>The Cygwin platform is supported out of the box by Apache + 1.3.20 and later. This means there is no extra download + required for the Cygwin platform. The latest version of Apache + can be found on the Apache httpd web site at <a + href="http://httpd.apache.org/">http://httpd.apache.org/</a>. + The site lists the current release, any more recent development + versions, and information on any mirror sites.</p> + + <p><strong>What about Cygwin Net Distribution binaries?</strong><br /> + Apache for Cygwin is also available as pre-compiled binary + package for the Cygwin Net Distribution available at + <a href="http://www.cygwin.com/">http://www.cygwin.com/</a> and it's + <a href="http://www.cygwin.com/setup.exe"><code>setup.exe</code></a> + installation process.</p> + + + <h2><a id="inst" name="inst">Configuring and Installing Apache + for Cygwin</a></h2> + + <p>Apache on Cygwin is configured and compiled the same way as + on most Unix systems. Refer to the general <a + href="configuring.html">configuration</a> and <a + href="install.html">installation</a> documents for details.</p> + + <p>There are three ways to configure and build Apache for + Cygwin, depending on how additional Apache modules should be + used:</p> + + <ul> + <li> + <strong>Static linked version</strong> + + <p>To build a static linked version of <code>httpd</code> + including additional modules, use the following commands in + the shell:</p> +<pre> + $ cd apache_1.3.x + $ ./configure [--enable-module=<i>module</i>|--add-module=<i>/path/to/module</i>] + $ make +</pre> + + <p>This will produce the required extra libraries or object + files for <i>module</i> and link everything to + <code>src/httpd.exe</code>.</p> + </li> + + <li> + <strong>Shared core, DLL linked version ('one-for-all' + version)</strong> + + <p>To build a DLL version of <code>httpd</code> including + additional modules, use the following commands:</p> +<pre> + $ cd apache_1.3.x + $ ./configure --enable-rule=SHARED_CORE \ + [--enable-module=<i>module</i>|--add-module=<i>/path/to/module</i>] + $ make + $ make install +</pre> + + <p>This will produce the required extra libraries or object + files that hold all static linked code. Then + <code>dllwrap</code> and <code>dlltool</code> will export + all of those (including any additional module code) to the + shared <code>cyghttpd.dll</code> and create the + <code>libhttpd.a</code> import library which is required + for linking <code>httpd.exe</code>.</p> + + <p><strong>Note:</strong> After <code>make install</code> + is performed you will find the resulting core DLL module + <code>cyghttpd.dll</code> within + <code>/usr/local/apache/libexec</code>. This is due to the + installation process. Please move the file to Apache's + <code>bin</code> directory, i.e.</p> +<pre> + $ mv /usr/local/apache/libexec/cyghttpd.dll /usr/local/apache/bin +</pre> + <p>or to an other place inside your <code>$PATH</code>, i.e. + <code>/usr/bin</code> is used in the Cygwin Net Distribution + layout. The core DLL module <code>cyghttpd.dll</code> is the + <i>only</i> file that should reside in + <code>/usr/local/apache/bin</code> directory. All other + shared DLL modules <code>mod_foo.dll</code> should be + located in <code>/usr/local/apache/libexec</code>.</p> + </li> + + <li> + <strong>Shared DLL modules linked version</strong> + + <p>This method is <strong>ONLY</strong> supported using a + version of <code>ld.exe</code> which supports the + <code>--auto-import</code> option. Please see the + <a href="#req">requirements</a> section for more + information.</p> + + <p>To build a dynamic loadable DLL version of + <code>httpd</code> which can load DLL modules on the fly + (at runtime), proceed as follows:</p> + + <ul> + <li> + <p>First build Apache's shared core as follows:</p> +<pre> + $ cd apache_1.3.x + $ ./configure --enable-rule=SHARED_CORE --enable-module=so \ + [--enable-module=<i>module</i>|--add-module=<i>/path/to/module</i>] \ + [--enable-shared=<i>module</i>] + $ make +</pre> + + <p>You will notice that there is a warning message + shown which lets you know that the shared core DLL + library <code>src/cyghttpd.dll</code> is missing while + trying to link the shared DLL modules + <code>mod_foo.dll</code>.</p> + + <p>Unfortunately, during Apache's build process, the shared + modules are linked before the shared core import + library <code>src/cyghttpd.dll</code> has been made. + The shared modules depend on this import library, so + they cannot link for the first time you run + <code>make</code>.</p> + </li> + + <li> + Re-run <code>make</code> to build the shared module + DLLs and install the whole package to the installation + directory: +<pre> + $ make + $ make install +</pre> + + <p>All shared modules are placed into + <code>libexec</code>, including the shared core DLL + <code>cyghttpd.dll</code>. When Apache's + <code>/bin/httpd</code> is started, it has to dynamically + link <code>cyghttpd.dll</code> during runtime; that is + why you have to place the shared core DLL + <code>cyghttpd.dll</code> to the same directory where + <code>httpd.exe</code> resides, i.e. + <code>/usr/local/apache/bin</code> or an other place + in your <code>$PATH</code>.</p> + </li> + + <li> + Add configuration directives to + <code>conf/httpd.conf</code> to load and activate + shared DLL modules at runtime: +<pre> + # httpd.conf + [...] + LoadModule foo_module libexec/mod_foo.dll + AddModule mod_foo.c + [...] +</pre> + </li> + </ul> + </li> + + <li> + <strong>Using <code>apxs</code> to create shared DLL modules</strong> + + <p>To make the extending <code>httpd</code> with shared DLL + modules easier, you can use <a + href="programs/apxs.html"><code>apxs</code></a>.</p> + + <p>Make sure you have configured + <code>$CFG_LDFLAGS_SHLIB</code> within <code>apxs</code> to + include the <code>--shared</code> directive and the path to + the shared code DLL <code>cyghttpd.dll</code>.</p> + + <p>After performing <code>make install</code> you will + probably have the following lines within your + <code>apxs</code>:</p> +<pre> + # apxs + [...] + my $CFG_LD_SHLIB = q(dllwrap --export-all --output-def libhttpd.def --implib libhttpd.a --driver-name gcc); # substituted via Makefile.tmpl + my $CFG_LDFLAGS_SHLIB = q(-g); # substituted via Makefile.tmpl + my $CFG_LIBS_SHLIB = q(); # substituted via Makefile.tmpl + [...] +</pre> + Change these to reflect the new compile options needed for + shared DLL modules as follows: +<pre> + # apxs + [...] + my $CFG_LD_SHLIB = q(gcc); # substituted via Makefile.tmpl + my $CFG_LDFLAGS_SHLIB = q(-g --shared); # substituted via Makefile.tmpl + my $CFG_LIBS_SHLIB = q(<i>/path/to/cyghttpd.dll</i>); # substituted via Makefile.tmpl + [...] +</pre> + + <p>Now you should be able to create a shared DLL module + from a <code>mod_foo.c</code> source file with:</p> +<pre> + $ apxs -c mod_foo.c -o mod_foo.dll +</pre> + Place the resulting DLL in Apache's <code>libexec</code> + directory, so the <code>dlopen()</code> function within the + compiled in <code>mod_so.c</code> module can find and load + it at runtime. + </li> + </ul> + + + <h2><a id="winsock" name="winsock">Using Win32 native socket + implementation instead</a></h2> + + <p>Apache for Cygwin supports an option to use the Win32 native + socket calls instead of Cygwin's POSIX wrappers internally. To + use the Win32 native socket calls configure Apache for Cygwin + with the <code>CYGWIN_WINSOCK</code> configuration rule flag + as follows:</p> +<pre> + $ cd apache_1.3.x + $ ./configure --enable-rule=CYGWIN_WINSOCK [...] + $ make +</pre> + <p>Using Win32 native socket calls is intended for performance + reasons and as a hybrid way to interact with the underlying + native socket implementation.</p> + + + + <h2><a id="run" name="run">Running Apache for Cygwin</a></h2> + + <p>Apache on Cygwin can be started and stopped in the same + manner as on Unix systems. You may also use the <a + href="programs/apachectl.html"><code>apachectl</code></a> tool + for starting and stopping Apache.</p> + + <ul> + <li> + <strong>Starting Apache</strong> + + <p>If installed with the default Apache directory layout, + you can start <code>httpd</code> as follows:</p> +<pre> + $ /usr/local/apache/bin/httpd +</pre> + + <p>An explicit background indicator (<code>&</code>) is + not required. The parent process is automatically detached + from the current terminal. Check the global + <code>error_log</code> to see if Apache started cleanly + without any major problems.</p> + </li> + + <li> + <strong>Stopping Apache</strong> + + <p>To stop Apache send at least a <code>SIGTERM</code> + signal to the parent <code>httpd</code> process:</p> +<pre> + $ kill -TERM `cat /usr/local/apache/logs/httpd.pid` +</pre> + </li> + + <li> + <strong>Gracefully Restarting Apache</strong> + + <p>In order to update configuration directives and reload + the <code>httpd.conf</code> configuration file, send a + <code>SIGHUP</code> to the parent <code>httpd</code> + process:</p> +<pre> + $ kill -HUP `cat /usr/local/apache/logs/httpd.pid` +</pre> + </li> + </ul> + + <h2><a id="serv" name="serv">Running Apache for Cygwin as a + Service</a></h2> + + <p>Apache on Cygwin can be invoked as a Windows NT or Windows + 2000 service. Cygwin has its own <code>cygrunsrv.exe</code> + facility to define, remove, start, and stop services as + follows:</p> + + <ul> + <li> + <strong>Installing Apache as a new Service</strong> + + <p>Use the following statement to install + <code>httpd.exe</code> as a new service:</p> +<pre> + $ cygrunsrv -I <i>service_name</i>-p /usr/local/apache/bin/httpd.exe [-a <i>arguments</i>] \ + [-e <i>VAR=VALUE</i>] [-t auto|manual] [-u <i>user</i>] [-w <i>passwd</i>] +</pre> + + <p>Where <code>-a</code> is used to pass command line + arguments (such as <code>-DFOO</code> defines) to + <code>httpd.exe</code>, and <code>-e</code> is used to pass + environment variables. If necessary you may use the + <code>-t</code> options to set the autostart configuration + for the service. If you want the new service to run under a + different userid, you will have to supply the + <code>-u</code> and <code>-w</code> options.</p> + </li> + + <li> + <strong>Starting Apache as a Service</strong> + + <p>After the new service is installed it can be started + using the following command:</p> +<pre> + $ cygrunsrv -S <i>service_name</i> +</pre> + + <p>Check your process table and global + <code>error_log</code> file to ensure Apache has started + without any major problems.</p> + </li> + + <li> + <strong>Stopping an Apache Service</strong> + + <p>A running Apache service may be stopped using the + following command:</p> +<pre> + $ cygrunsrv -E <i>service_name</i> +</pre> + + <p>This will stop all running <code>httpd.exe</code> + processes and shutdown the HTTP service for the + machine.</p> + </li> + + <li> + <strong>Removing an Apache Service</strong> + + <p>An installed Apache service may be removed from Windows + NT or Windows 2000 using the following command:</p> +<pre> + $ cygrunsrv -R <i>service_name</i> +</pre> + + <p>This will remove your previously defined and installed + service from the machine.</p> + </li> + </ul> + + <p>Please refer to the <code>man</code> page for + <code>cygrunsrv</code> and the Cygwin mailing list for further + details of how services are invoked.</p> + + <p>Any additional contributions to this document and the Cygwin + support for Apache are highly welcome. Please send them to + Stipe Tolj <a + href="mailto:tolj@wapme-systems.de"><tolj@wapme-systems.de></a>.</p> + + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/dns-caveats.html.en b/htdocs/manual/dns-caveats.html.en new file mode 100644 index 0000000000..dd0be45f55 --- /dev/null +++ b/htdocs/manual/dns-caveats.html.en @@ -0,0 +1,217 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Issues Regarding DNS and Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Issues Regarding DNS and Apache</h1> + + <p>This page could be summarized with the statement: <em>don't + require Apache to use DNS for any parsing of the configuration + files</em>. If Apache has to use DNS to parse the configuration + files then your server may be subject to reliability problems + (it might not boot), or denial and theft of service attacks + (including users able to steal hits from other users).</p> + + <h3>A Simple Example</h3> + Consider this configuration snippet: + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <p>In order for Apache to function properly it absolutely needs + to have two pieces of information about each virtual host: the + <a href="mod/core.html#servername"><code>ServerName</code></a> + and at least one IP address that the server responds to. This + example does not include the IP address, so Apache must use DNS + to find the address of <code>www.abc.dom</code>. If for some + reason DNS is not available at the time your server is parsing + its config file, then this virtual host <strong>will not be + configured</strong>. It won't be able to respond to any hits to + this virtual host (prior to Apache version 1.2 the server would + not even boot).</p> + + <p>Suppose that <code>www.abc.dom</code> has address 10.0.0.1. + Then consider this configuration snippet:</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <p>Now Apache needs to use reverse DNS to find the + <code>ServerName</code> for this virtualhost. If that reverse + lookup fails then it will partially disable the virtualhost + (prior to Apache version 1.2 the server would not even boot). + If the virtual host is name-based then it will effectively be + totally disabled, but if it is IP-based then it will mostly + work. However if Apache should ever have to generate a full URL + for the server which includes the server name then it will fail + to generate a valid URL.</p> + + <p>Here is a snippet that avoids both of these problems.</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerName www.abc.dom + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <h3>Denial of Service</h3> + + <p>There are (at least) two forms that denial of service can + come in. If you are running a version of Apache prior to + version 1.2 then your server will not even boot if one of the + two DNS lookups mentioned above fails for any of your virtual + hosts. In some cases this DNS lookup may not even be under your + control. For example, if <code>abc.dom</code> is one of your + customers and they control their own DNS then they can force + your (pre-1.2) server to fail while booting simply by deleting + the <code>www.abc.dom</code> record.</p> + + <p>Another form is far more insidious. Consider this + configuration snippet:</p> + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <blockquote> +<pre> + <VirtualHost www.def.dom> + ServerAdmin webguy@def.dom + DocumentRoot /www/def + </VirtualHost> +</pre> + </blockquote> + + <p>Suppose that you've assigned 10.0.0.1 to + <code>www.abc.dom</code> and 10.0.0.2 to + <code>www.def.dom</code>. Furthermore, suppose that + <code>def.com</code> has control of their own DNS. With this + config you have put <code>def.com</code> into a position where + they can steal all traffic destined to <code>abc.com</code>. To + do so, all they have to do is set <code>www.def.dom</code> to + 10.0.0.1. Since they control their own DNS you can't stop them + from pointing the <code>www.def.com</code> record wherever they + wish.</p> + + <p>Requests coming in to 10.0.0.1 (including all those where + users typed in URLs of the form + <code>http://www.abc.dom/whatever</code>) will all be served by + the <code>def.com</code> virtual host. To better understand why + this happens requires a more in-depth discussion of how Apache + matches up incoming requests with the virtual host that will + serve it. A rough document describing this <a + href="vhosts/details.html">is available</a>.</p> + + <h3>The "main server" Address</h3> + + <p>The addition of <a href="vhosts/name-based.html">name-based + virtual host support</a> in Apache 1.1 requires Apache to know + the IP address(es) of the host that httpd is running on. To get + this address it uses either the global <code>ServerName</code> + (if present) or calls the C function <code>gethostname</code> + (which should return the same as typing "hostname" at the + command prompt). Then it performs a DNS lookup on this address. + At present there is no way to avoid this lookup.</p> + + <p>If you fear that this lookup might fail because your DNS + server is down then you can insert the hostname in + <code>/etc/hosts</code> (where you probably already have it so + that the machine can boot properly). Then ensure that your + machine is configured to use <code>/etc/hosts</code> in the + event that DNS fails. Depending on what OS you are using this + might be accomplished by editing <code>/etc/resolv.conf</code>, + or maybe <code>/etc/nsswitch.conf</code>.</p> + + <p>If your server doesn't have to perform DNS for any other + reason then you might be able to get away with running Apache + with the <code>HOSTRESORDER</code> environment variable set to + "local". This all depends on what OS and resolver libraries you + are using. It also affects CGIs unless you use <a + href="mod/mod_env.html"><code>mod_env</code></a> to control the + environment. It's best to consult the man pages or FAQs for + your OS.</p> + + <h3><a id="tips" name="tips">Tips to Avoid these + problems</a></h3> + + <ul> + <li>use IP addresses in <code><VirtualHost></code></li> + + <li>use IP addresses in <code>Listen</code></li> + + <li>use IP addresses in <code>BindAddress</code></li> + + <li>ensure all virtual hosts have an explicit + <code>ServerName</code></li> + + <li>create a <code><VirtualHost _default_:*></code> + server that has no pages to serve</li> + </ul> + + <h3>Appendix: Future Directions</h3> + + <p>The situation regarding DNS is highly undesirable. For + Apache 1.2 we've attempted to make the server at least continue + booting in the event of failed DNS, but it might not be the + best we can do. In any event requiring the use of explicit IP + addresses in configuration files is highly undesirable in + today's Internet where renumbering is a necessity.</p> + + <p>A possible work around to the theft of service attack + described above would be to perform a reverse DNS lookup on the + IP address returned by the forward lookup and compare the two + names. In the event of a mismatch the virtualhost would be + disabled. This would require reverse DNS to be configured + properly (which is something that most admins are familiar with + because of the common use of "double-reverse" DNS lookups by + FTP servers and TCP wrappers).</p> + + <p>In any event it doesn't seem possible to reliably boot a + virtual-hosted web server when DNS has failed unless IP + addresses are used. Partial solutions such as disabling + portions of the configuration might be worse than not booting + at all depending on what the webserver is supposed to + accomplish.</p> + + <p>As HTTP/1.1 is deployed and browsers and proxies start + issuing the <code>Host</code> header it will become possible to + avoid the use of IP-based virtual hosts entirely. In this event + a webserver has no requirement to do DNS lookups during + configuration. But as of March 1997 these features have not + been deployed widely enough to be put into use on critical + webservers. <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/dns-caveats.html.fr b/htdocs/manual/dns-caveats.html.fr new file mode 100644 index 0000000000..2def7c59d7 --- /dev/null +++ b/htdocs/manual/dns-caveats.html.fr @@ -0,0 +1,269 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.4 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Apache et le DNS</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache et le DNS</h1> + + <p>Cette page aurait pu être résumée par la + phrase : <i>ne demandez pas à Apache d'utiliser le DNS + pour la lecture des fichiers de configuration</i>. Si Apache + doit utiliser le DNS pour récupérer ses fichiers + de configuration, alors votre serveur peut être sujet + à des problèmes de fiabilité (il peut tout + simplement ne pas démarrer), ou s'ouvrir à des + attaques et des vols d'information (y compris des utilisateurs + qui pourraient "voler" des hits d'autres utilisateurs).</p> + + <h3>Un exemple simple</h3> + Considérez ce court extrait de code de configuration : + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <p>Pour qu'Apache fonctionne correctement, il a absolument + besoin d'au moins deux informations pour chaque hôte + virtuel : le <a + href="mod/core.html#servername"><code>ServerName</code></a> et + au moins une adresse IP à laquelle ce serveur doit + répondre. Cet exemple ne fait pas apparaître + d'adresse IP ; Apache doit donc utiliser le DNS pour trouver + l'adresse correspondant à <code>www.abc.dom</code>. Si + pour telle ou telle raison, le service de noms de domaines + n'est pas accessible au moment ou le serveur interprète + ses fichiers de configuration, alors cet hôte virtuel + <b>ne pourra pas être configuré</b>. Il ne pourra + donc pas répondre aux requêtes émises vers + cet hôte virtuel (les versions d'Apache + antérieures à la 1.2 n'auraient même pas pu + démarrer).</p> + + <p>Supposons que le doamine <code>www.abc.dom</code> ait pour + adresse 10.0.0.1. Considérez alors ce nouvel extrait de + code de configuration :</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <p>Apache doit alors effectuer une résolution DNS + inverse pour trouver le nom <code>ServerName</code> pour cet + hôte virtuel. Si cette résolution échoue, + alors il devra partiellement désactiver cet hôte + virtuel (les versions d'Apache antérieures à la + 1.2 n'auraient même pas démarré). Si + l'hôte virtuel est basé sur un nom de domaine + alors il sera totalement inhibé, si par contre il se + base sur une adresse IP, alors il tournera probablement. + Cependant, si Apache devait générer une URL + complète pour ce serveur, incluant le nom de domaine, + l'URL produite ne pourrait être correctement + constituée.</p> + + <p>Voici un extrait qui élimine ces deux + problèmes.</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerName www.abc.dom + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <h3>Refus de service</h3> + + <p>Il existe (au moins) deux situations où Apache refuse + de fournir le service. Si vous exécutez une version + antérieure à la version 1.2 d'Apache, votre + serveur ne démarrera même pas si l'une des deux + résolutions DNS mentionnées ci-avant + échoue pour au moins un hôte virtuel. Dans + certains cas, cette résolution peut ne même pas + être sous votre contrôle. Par exemple, si + <code>abc.dom</code> est l'un de vos clients, lequel + contrôle son propre serveur DNS, ce dernier peut forcer + votre serveur Apache (en version antérieure à + 1.2) à s'arrêter au démarrage en supprimant + simplement l'enregistrement du nom + <code>www.abc.dom</code>.</p> + + <p>Une autre situation est beaucoup plus pernicieuse. + Considérez cet extrait de code de configuration :</p> + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <blockquote> +<pre> + <VirtualHost www.def.dom> + ServerAdmin webguy@def.dom + DocumentRoot /www/def + </VirtualHost> +</pre> + </blockquote> + + <p>Supposez que vous avez assigné 10.0.0.1 au domaine + <code>www.abc.dom</code> et 10.0.0.2 au domaine + <code>www.def.dom</code>. De plus, supposez que + <code>def.com</code> contrôle son propre service DNS. + Avec la précédente configuration, vous permettez + à <code>def.com</code> de "voler" tout le trafic + destiné à <code>abc.com</code>. Tout ce qu'ils + auraient à faire pour y parvenir est d'assigner + <code>www.def.dom</code> à l'adresse 10.0.0.1. Dans la + mesure où ils contrôlent leur propre DNS, vous ne + pouvez les empêcher de piéger leur enregistrement + de <code>www.def.com</code>.</p> + + <p>Les requêtes arrivant pour 10.0.0.1 (y compris toutes + celles où les utilisateurs auront tapé une URL de + la forme <code>http://www.abc.dom/qqchose</code>) seront toutes + servies par l'hôte virtuel <code>def.com</code>. Mieux + comprendre comment cela est possible demande une discussion + plus détaillée sur la manière dont Apache + traite des requêtes arrivant pour des hôtes + virtuels. Un premier document descrivant ceci est <a + href="vhosts/details.html">disponible</a>.</p> + + <h3>L'adresse du "serveur principal"</h3> + + <p>L'addition du <a href="vhosts/name-based.html">support + d'hôtes virtuels basés sur les noms</a> dans + Apache 1.1 nécessite qu'Apache connaisse les adresses IP + de l'hôte sur lequel est exécuté httpd. + Pour obtenir cette adresse, il utilise soit le + <code>ServerName</code> global (si défini) ou appelle la + fonction C <code>gethostname</code> (qui renvoie une + information similaire à celle donnée par la + commande interactive "hostname"). Puis il procède + à une résolution DNS pour cette adresse. + Jusqu'à présent, il n'y a aucun moyen + d'éviter cette résolution.</p> + + <p>Si vous craignez que cette résolution échoue + parceque votre serveur DNS est arrêté, alors vous + popuvez ajouter le nom d'hôte dans le fichier + <code>/etc/hosts</code> (où il devrait normalement + déjà figurer, ne serait-ce que pour assurer un + démarrage correct de la machine). Vous devrez en outre + vous assurer que votre machine est configurée pour + exploiter le fichier <code>/etc/hosts</code> en cas + d'échec d'une résolution dynamique. Suivant l'OS + que vous utilisez, ceci peut être fait en éditant + le code <code>/etc/resolv.conf</code>, ou peut être + <code>/etc/nsswitch.conf</code>.</p> + + <p>Si votre machine n'a pas de résolution DNS à + effectuer pour toute autre raison (par exemple parce qu'elle + est isolée), alors vous pourrez néanmoins faire + tourner Apache en initialisant la variable d'environnement + <code>HOSTRESORDER</code> à "local". Tout ceci + dépend de l'OS et des librairies de résolveur que + vous utilisez. Les CGI sont également affectés + sauf si vous utilisez la fonctionnalité <a + href="mod/mod_env.html"><code>mod_env</code></a> pour + contrôler l'environnement. Il est prudent de consulter + les pages de manuel ou les FAQ spécifiques à + votre OS.</p> + + <h3><a id="tips" name="tips">Astuces pour éviter ces + problèmes</a></h3> + + <ul> + <li>utilisez des adresses IP dans les sections + <code><VirtualHost></code></li> + + <li>utilisez des adresses IP dans la clause + <code>Listen</code></li> + + <li>utilisez des adresses IP dans la clause + <code>BindAddress</code></li> + + <li>assurez vous que tous les hôtes virtuels on un + <code>ServerName</code></li> + + <li>créez un serveur <code><VirtualHost + _default_:*></code> qui ne sert aucune page.</li> + </ul> + + <h3>Annexe: Directions futures</h3> + + <p>Cette situation vis-à-vis du DNS est largement + insatisfaisante. Pour Apache 1.2, nous avons travaillé + pour que le serveur puisse continuer à démarrer + dans le cas de l'échec d'une résolution DNS, mais + il est possible que nous puissions en faire plus. Toute + écriture nécessitant l'usage d'adresses IP + explicites dans le fichier de configuration n'est pas + souhaitable dans le contexte Internet actuel où la <a + href="http://www.ietf.org/html.charters/pier-charter.html">rotation + d'adresses</a> est une nécessité.</p> + + <p>Une parade au vol de service serait d'effectuer une + résolution DNS inverse sur l'adresse IP renvoyée + par la résolution directe, et comparer les deux noms. En + cas de non concordance, cet hôte virtuel serait + désactivé. Ceci impliquerait que la + résolution DNS inverse soit correctement + configurée (ce qui reste assez connu des administrateurs + du fait de l'usage commun de la résolution inverse + double par les serveurs FTP et les transposeurs TCP).</p> + + <p>Dans tous les cas, il ne semble pas possible de garantir la + fiabilité du démarrage d'un serveur web + gérant des hôtes virtuels lorsque la + résolution DNS a échoué, sauf si la + définition de ces hôtes utilise des adresses IP + explicites. Une solution partielle consistant à ignorer + certaines portions du fichier de configuration serait encore + pire que ne pas démarrer du tout, dans certains cas + d'exploitation.</p> + + <p>Par l'extension de l'usage de HTTP/1.1, les navigateurs et + proxies fournissent de plus en plus souvent l'en-tête + <code>Host</code>, et il deviendra possible d'éviter + totalement la définition d'hôtes virtuels + basés sur des adresses IP. Dans ce cas, un serveur Web + n'aura plus de résolution DNS à effectuer pendant + la configuration. Mais à la date de Mars 1997, ces + fonctionnalités n'ont pas été suffisament + largement déployées pour pouvoir être + exploitées par des serveurs en situation critique. + <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/dns-caveats.html.html b/htdocs/manual/dns-caveats.html.html new file mode 100644 index 0000000000..0fd2b2a410 --- /dev/null +++ b/htdocs/manual/dns-caveats.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="dns-caveats.html.en" --> + diff --git a/htdocs/manual/dns-caveats.html.ja.jis b/htdocs/manual/dns-caveats.html.ja.jis new file mode 100644 index 0000000000..bca7830cd0 --- /dev/null +++ b/htdocs/manual/dns-caveats.html.ja.jis @@ -0,0 +1,220 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>DNSとApacheについての問題</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <!-- English Revision: 1.14 --> + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">DNS と Apache にまつわる注意事項</h1> + + <p>本文書の内容は,琉豸世某圓泙后草痺蒹鹿粡寂蝟赱齠洲痲筵娼が設定ファイルを読み込むときに <em>DNS + を使用する必要がないよう瘢雹にして王踉擦気蹙苳ぢ。Apache + が設定ファイルを読み込むときに DNS + を使用する必要がある豺隋⊃蠕量簑ぢ起動しないかもしれません) + やサ・踉札咼控馮檗靈僖▲織奪ぢ側苳擦離罅ザからヒットを盗むことを含みます) + の問題に彫苳嗣未垢襪發靴譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖簡単な例</h3> + この設定例を考えてみます: + + <blockquote> +<pre> + <VirtualHost www.abc.dom> + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <p>Apache が正錣傍’修垢襪砲蓮▲弌チャルホストごとに必ず二つの + 霾鵑廚砲覆蠅泙后修譴蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯黼鴟纈釶辣▽苳殺踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼と、そのサ・踉札个垢襪燭瓩アドレス(最低一つ) です。 + この例では IP アドレスを含んでいませんので、Apache は DNS + を使用して <code>www.abc.dom</code> を見つけなければなりません。 + 設定ファイルを読み込んでいるときに何らかの理由で DNS + が利用できなかった豺隋鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好箸齡鳫鈑設定されません</strong>。 + そして、そのバ・踉札船礇襯曠好箸紡个垢襯劵奪箸砲榔覆気譴泙擦鹿粡寂蝟赱齠洲痲筵娼鞜竏窺以前では起動すらしません)。</p> + + <p><code>www.abc.dom</code> のアドレスが 10.0.0.1 + だとします。では、,寮瀋蠅砲弔い胴佑┐討澆泙靴腓逅察鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡握握握右瘢雹苳纂蝟昭粡竚癈鷭п粐Ь纈鯀粱蜴繧芍鳰節矣闕鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡痰禺蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ現在 Apache は DNS 逆引きを使用してこのバ・踉札船礇襯曠好箸鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈令辣閼絋苳を見つけます。 + その逆引きが最圓靴職苳詞合は部分的にバ・踉札船礇襯曠好箸鯡妓砲靴泙鹿粡寂蝟赱齠洲痲筵娼鞜竏窺より前では起動すらしません)。 + バ・踉札船礇襯曠好箸前ベ・踉札垢任△譴亟袷瓦北妓砲覆蠅泙垢鹿粡寂蝟赱齠洲痲筵娼賓ぢベ・踉札垢任△譴亞気容虻遒靴泙后靴靴覆蕁▲機バ巳苳擦魎泙犂袷瓦鹿粡寂蝟赱齠洲痲筵娼孀を生成しなければならない豺腓蓮∪気靴厂ぢの生成ができません。 + </p> + + <p>,領磴櫓苳糸記の問題を解決しています。</p> + + <blockquote> +<pre> + <VirtualHost 10.0.0.1> + ServerName www.abc.dom + ServerAdmin webgirl@abc.dom + DocumentRoot /www/abc + </VirtualHost> +</pre> + </blockquote> + + <h3>サ・踉札咼控馮界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮サ・踉札咼控馮櫃海襴苳詞合、(覆箸二つのケ・踉札垢△蠅泙后鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢより前を孫圓靴討い襴苳詞合、バ・踉札船礇襯曠好箸里燭瓩鹿粡寂蝟赱齠洲痲筵娼綉瞭鵑弔林ぢ検索のう瘢雹ち一つでも最圓垢譴亠阿垢蕕靴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼またこの DNS 検索が寮羃にすらない豺腓發△蠅┐泙后鹿粡寂蝟赱齠洲痲筵娼例えば、<code>abc.dom</code> が顧客のサ・踉札个琉譴弔如鹿粡寂蝟赱齠洲痲筵娼栂は顧客箸粘浜靴討い襴苳詞合、顧客は単に + <code>www.abc.dom</code> レコ・踉札匹鮑鐔垢襪世韻如鹿粡寂蝟赱齠洲痲筵娼┗ぢより前の) サ・踉札个魑杏塲修砲垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢもう瘢雹一つのケ・踉札垢蓮△茲蟲ど佞砲い發里任后鹿粡寂蝟赱齠洲痲筵娼,寮瀋蠅砲弔い胴佑┐討澆泙靴腓逅察鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡矣闕逅紫鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈槍迚砒蜥貔痰祟粹躰蝟昭粡竚癈鷭п粐Ь閭緕闖矣鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢粤罧粹蹙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь纈鯀粱蜴繧苺粤罧粹躰蝟昭粡竚癈鷭п粐Ь閭緕闖繙鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮碓ぢを <code>www.abc.dom</code> に、10.0.0.2 を + <code>www.def.dom</code> に割り当てているとします。また、 + <code>def.com</code> は顧客箸林鹿粡寂蝟赱齠洲痲筵娼の制御王踉擦砲△襪箸靴泙后海寮瀋蠅如竢粤痰祟竢蹙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼に向けられたトラフィックすべてを奪う瘢雹ことができる位置に + <code>def.com</code> を設置できています。後は単に + <code>www.def.dom</code> が 10.0.0.1 + を参箸垢襪茲逅擦棒瀋蠅垢襪世韻任后栂喙蝟昭粡竚癈鷭п粐Ьぢは顧客側瘢雹でコントロ・踉札襪気譴討い襪里如竢粤粤罧竢蹙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼レコ・踉札匹イ弗苳詞所を指すよう瘢雹に設定するのを止めることができません。 + </p> + + <p>10.0.0.1 に対するリクエスト + (<code>http://www.abc.dom/whatever</code> 形阿厂蝟昭粡竚癈鷭п粐Ьぢを入力したユ・踉札兇蕕里發里垢戮討魎泙澆泙鹿粡寂蝟赱齠洲痲筵娼は、<code>def.dom</code> バ・踉札船礇襯曠好箸捻気譴泙后鹿粡寂蝟赱齠洲痲筵娼このよう瘢雹なことが何故起こるかもっとよく知るためには、 + 応答の必要なバ・踉札船礇襯曠好箸悗離螢┘好箸紡个靴董鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢがどのよう瘢雹に整合性を確保するかについて、 + 職踉擦さ掴世廚砲覆蠅泙后泙弊睫世畆蝟昭粡竚癈鷭п粐Ь鱚羹♪蓖齡鶩粤蛹鶤蔗迪▽苳ぢこちら</a>に記述されています。</p> + + <h3>「舁廚淵機バ」のアドレス</h3> + + <p>Apache 1.1 で追加された<a href="vhosts/name-based.html"> + 巳苳餐哀戞スのバ・踉札船礇襯曠好箸離汽檗ト</a>により、httpd + が動作しているホストの IP アドレスを、Apache + が知っている必要があります。このアドレスを得るために、 + (もしあれば)グロ・踉札丱襪踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤ぢや C の + <code>gethostname</code> ファンクションコ・踉札鹿粡寂蝟赱齠洲痲筵娼ぢこれはコマンドプロンプトで "hostname" + と打ち込むのと同じ結果を返します。) を使用します。 + それからこのアドレスの DNS 検索を行ないます。 + 現時点では、この検索の回避方法は何もありません。</p> + + <p>DNS サ・踉札个離瀬逅札鵑彊任海離襯奪▲奪廚踉産敗するのを恐れる豺隋鹿粡寂蝟赱齠洲痲筵娼竢粤闢閼絋苳に hostname を挿入することができます。 + (マシンが正錣傍阿任襪茲逅擦法△海譴呂修蕕紡減澆靴泙后蝟昭粡竚癈鷭п粐Ьぢそれから、DNS が最圓靴燭箸乏陸踉斬に <code>/etc/hosts</code> + を使用するよう瘢雹に設定します。どんな OS を使っているかによりますが、 + <code>/etc/resolv.conf</code> や <code>/etc/nsswitch.conf</code> + を編集することによって完成できます。</p> + + <p>もしサ・踉札个の理由により DNS を孫圓垢詆廚燭發覆韻譴弌鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢを <code>HOSTRESORDER</code> 環境変数を "local" に設定して + 孫圓垢襪海箸婆簑蠅鯣鬚韻襪海箸任襪發靴譴泙擦鵝海譴六藩僂靴討い鹿粡寂蝟赱齠洲痲筵娼腕ぢとリウ苳札襯丱薀ぅ屮薀蠅飽預犬靴泙后鹿粡寂蝟赱齠洲痲筵娼これは <a href="mod/mod_env.html"><code>mod_env</code></a> + を使って環境変数を制御していない限り、CGI にも影響します。 + OS の man ペ・踉札犬叢ぢを参箸垢襪茲逅擦砲靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就頌釶辣就頌▽苳ぢこれらの問題を避ける秘訣</a></h3> + + + <ul> + <li><code><VirtualHost></code> 中に IP アドレスを使う瘢雹</li> + + <li><code>Listen</code> 中に IP アドレスを使う瘢雹</li> + + <li><code>BindAddress</code> 中に IP アドレスを使う瘢雹</li> + + <li>すべてのバ・踉札船礇襯曠好箸紡个渓畝踉雑的な <code>ServerName</code> + を確造僕燭┐鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢ応答するペ・踉札犬里覆踉祉閼絋苳殺瘢雹踉志蜥瘡被齡粤聲昏逅紫閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢサ・踉札个鮑鄒垢薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖付録: 菘癖界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮栂に関して、現倭瓦垢靴△蠅泙擦鵝草痺蒹ぢで、 DNS + のイベントが最圓靴討皃苳晒なくとも起動プロセスが続くよう瘢雹にしましたが、 + これが最高の解決方法ではないでしょう瘢雹。アドレスの再割り当てが + 必要不可避 となっている今日のインタ・踉札優奪箸砲い討蓮鹿粡寂蝟赱齠洲痲筵娼設定ファイルの中で明アドレスを要求する仕様は、 + 全く宜しくありません。 + </p> + + <p>紊農睫世靴織機ビス盗用攻撃に対して可能な対策は、 + DNS の正引きにより返された IP アドレスから DNS の逆引きを孫圓掘鹿粡寂蝟赱齠洲痲筵娼その二つの巳苳餐阿鯣羈咾垢襪海箸任后0戝廚靴覆う苳詞合バ・踉札船礇襯曠好箸鰐妓砲気譴泙后鹿粡寂蝟赱齠洲痲筵娼これには、DNS の逆引きが適切に設定されている必要があります。(DNS + の「二重の逆引き」は FTP サ・踉札个弛鹿粡寂蝟赱齠洲痲筵娼ラッパ・踉擦砲茲螳貳姪忙箸錣譴討い襪燭瓠鹿粡寂蝟赱齠洲痲筵娼ほとんどの管理圓砲脇訐澆里△襪發里任靴腓逅ぢ。 + </p> + + <p>IP アドレスが使用されていなくて DNS が最圓靴職苳詞合は、 + どう瘢雹してもバ・踉札船礇襯曠好肇逅札Д屮機バを信頼性を確保して + 起動させることは不可能のよう瘢雹です。設定の一部を無効にするという瘢雹よう瘢雹な + 部分的な解決は、サ・踉札个量榲砲發茲蠅泙垢鹿粡寂蝟赱齠洲痲筵娼起動しないよりも悪いかもしれません。</p> + + <p>HTTP/1.1 が開発され、ブラウ瘢雹ザやプロキシが <code>Host</code> + ヘッダを発行するよう瘢雹になったので、IP ベ・踉札垢離弌チャルホストを + 全く使用しなくても済むよう瘢雹になるかもしれません。 + この豺隋▲逅札Д屮機バは設定中に DNS 参箸鬚靴覆討盧僂澆泙后鹿粡寂蝟赱齠洲痲筵娼しかし 1997 年 3 月時点の靴任蓮鹿粡寂蝟赱齠洲痲筵娼逅四僖譽戰襪離逅札Д屮機バで使用できるほどには、 + これらの機能は広く開発が進んでいません。 + <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/dso.html b/htdocs/manual/dso.html new file mode 100644 index 0000000000..ec7f538b4b --- /dev/null +++ b/htdocs/manual/dso.html @@ -0,0 +1,513 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache 1.3 Dynamic Shared Object (DSO) support</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <blockquote> + <!--#include virtual="header.html" --> + + <div align="CENTER"> + <h1>Apache 1.3<br /> + Dynamic Shared Object (DSO)<br /> + Support</h1> + + <address> + Originally written by<br /> + Ralf S. Engelschall <rse@apache.org>, April 1998 + </address> + </div> + + <h3>Background</h3> + + <p>On modern Unix derivatives there exists a nifty mechanism + usually called dynamic linking/loading of <em>Dynamic Shared + Objects</em> (DSO) which provides a way to build a piece of + program code in a special format for loading it at run-time + into the address space of an executable program.</p> + + <p>This loading can usually be done in two ways: + Automatically by a system program called <code>ld.so</code> + when an executable program is started or manually from within + the executing program via a programmatic system interface to + the Unix loader through the system calls + <code>dlopen()/dlsym()</code>.</p> + + <p>In the first way the DSO's are usually called <em>shared + libraries</em> or <em>DSO libraries</em> and named + <code>libfoo.so</code> or <code>libfoo.so.1.2</code>. They + reside in a system directory (usually <code>/usr/lib</code>) + and the link to the executable program is established at + build-time by specifying <code>-lfoo</code> to the linker + command. This hard-codes library references into the + executable program file so that at start-time the Unix loader + is able to locate <code>libfoo.so</code> in + <code>/usr/lib</code>, in paths hard-coded via linker-options + like <code>-R</code> or in paths configured via the + environment variable <code>LD_LIBRARY_PATH</code>. It then + resolves any (yet unresolved) symbols in the executable + program which are available in the DSO.</p> + + <p>Symbols in the executable program are usually not + referenced by the DSO (because it's a reusable library of + general code) and hence no further resolving has to be done. + The executable program has no need to do anything on its own + to use the symbols from the DSO because the complete + resolving is done by the Unix loader. (In fact, the code to + invoke <code>ld.so</code> is part of the run-time startup + code which is linked into every executable program which has + been bound non-static). The advantage of dynamic loading of + common library code is obvious: the library code needs to be + stored only once, in a system library like + <code>libc.so</code>, saving disk space for every + program.</p> + + <p>In the second way the DSO's are usually called <em>shared + objects</em> or <em>DSO files</em> and can be named with an + arbitrary extension (although the canonical name is + <code>foo.so</code>). These files usually stay inside a + program-specific directory and there is no automatically + established link to the executable program where they are + used. Instead the executable program manually loads the DSO + at run-time into its address space via <code>dlopen()</code>. + At this time no resolving of symbols from the DSO for the + executable program is done. But instead the Unix loader + automatically resolves any (yet unresolved) symbols in the + DSO from the set of symbols exported by the executable + program and its already loaded DSO libraries (especially all + symbols from the ubiquitous <code>libc.so</code>). This way + the DSO gets knowledge of the executable program's symbol set + as if it had been statically linked with it in the first + place.</p> + + <p>Finally, to take advantage of the DSO's API the executable + program has to resolve particular symbols from the DSO via + <code>dlsym()</code> for later use inside dispatch tables + <em>etc.</em> In other words: The executable program has to + manually resolve every symbol it needs to be able to use it. + The advantage of such a mechanism is that optional program + parts need not be loaded (and thus do not spend memory) until + they are needed by the program in question. When required, + these program parts can be loaded dynamically to extend the + base program's functionality.</p> + + <p>Although this DSO mechanism sounds straightforward there + is at least one difficult step here: The resolving of symbols + from the executable program for the DSO when using a DSO to + extend a program (the second way). Why? Because "reverse + resolving" DSO symbols from the executable program's symbol + set is against the library design (where the library has no + knowledge about the programs it is used by) and is neither + available under all platforms nor standardized. In practice + the executable program's global symbols are often not + re-exported and thus not available for use in a DSO. Finding + a way to force the linker to export all global symbols is the + main problem one has to solve when using DSO for extending a + program at run-time.</p> + + <p>Windows and NetWare provide similar facilities, although + they are implemented somewhat differently than the + description of Unix DSO throughout this document. In + particular, DSO modules (DLL's and NLM's, respectively) are + built quite differently than their Unix cousins. This + document does not attempt to explore the topic of building + DSO modules on these platforms. The description of mod_so and + its configuration, however, are similar.</p> + + <h3>Practical Usage</h3> + + <p>The shared library approach is the typical one, because it + is what the DSO mechanism was designed for, hence it is used + for nearly all types of libraries the operating system + provides. On the other hand using shared objects for + extending a program is not used by a lot of programs.</p> + + <p>As of 1998 there are only a few software packages + available which use the DSO mechanism to actually extend + their functionality at run-time: Perl 5 (via its XS mechanism + and the DynaLoader module), Netscape Server, <em>etc.</em> + Starting with version 1.3, Apache joined the crew, because + Apache already uses a module concept to extend its + functionality and internally uses a dispatch-list-based + approach to link external modules into the Apache core + functionality. So, Apache is really predestined for using DSO + to load its modules at run-time.</p> + + <p>As of Apache 1.3, the configuration system supports two + optional features for taking advantage of the modular DSO + approach: compilation of the Apache core program into a DSO + library for shared usage and compilation of the Apache + modules into DSO files for explicit loading at run-time.</p> + + <h3>Implementation</h3> + + <p>The DSO support for loading individual Apache modules is + based on a module named <a + href="mod/mod_so.html"><code>mod_so.c</code></a> which has to + be statically compiled into the Apache core. It is the only + module besides <code>http_core.c</code> which cannot be put + into a DSO itself (bootstrapping!). Practically all other + distributed Apache modules can then be placed into a DSO + by individually enabling the DSO build for them via + <code>configure</code>'s <code>--enable-shared</code> option + (see top-level <code>INSTALL</code> file) or by changing the + <code>AddModule</code> command in your + <code>src/Configuration</code> into a + <code>SharedModule</code> command (see + <code>src/INSTALL</code> file). After a module is compiled + into a DSO named <code>mod_foo.so</code> you can use <a + href="mod/mod_so.html"><code>mod_so</code></a>'s <a + href="mod/mod_so.html#loadmodule"><code>LoadModule</code></a> + command in your <code>httpd.conf</code> file to load this + module at server startup or restart.</p> + + <p>To simplify this creation of DSO files for Apache modules + (especially for third-party modules) a new support program + named <a href="programs/apxs.html">apxs</a> (<em>APache + eXtenSion</em>) is available. It can be used to build DSO + based modules <em>outside of</em> the Apache source tree. The + idea is simple: When installing Apache the + <code>configure</code>'s <code>make install</code> procedure + installs the Apache C header files and puts the + platform-dependent compiler and linker flags for building DSO + files into the <code>apxs</code> program. This way the user + can use <code>apxs</code> to compile his Apache module + sources without the Apache distribution source tree and + without having to fiddle with the platform-dependent compiler + and linker flags for DSO support.</p> + + <p>To place the complete Apache core program into a DSO + library (only required on some of the supported platforms to + force the linker to export the apache core symbols -- a + prerequisite for the DSO modularization) the rule + <code>SHARED_CORE</code> has to be enabled via + <code>configure</code>'s + <code>--enable-rule=SHARED_CORE</code> option (see top-level + <code>INSTALL</code> file) or by changing the + <code>Rule</code> command in your <code>Configuration</code> + file to <code>Rule SHARED_CORE=yes</code> (see + <code>src/INSTALL</code> file). The Apache core code is then + placed into a DSO library named <code>libhttpd.so</code>. + Because one cannot link a DSO against static libraries on all + platforms, an additional executable program named + <code>libhttpd.ep</code> is created which both binds this + static code and provides a stub for the <code>main()</code> + function. Finally the <code>httpd</code> executable program + itself is replaced by a bootstrapping code which + automatically makes sure the Unix loader is able to load and + start <code>libhttpd.ep</code> by providing the + <code>LD_LIBRARY_PATH</code> to <code>libhttpd.so</code>.</p> + + <h3>Supported Platforms</h3> + + <p>Apache's <code>src/Configure</code> script currently has + only limited but adequate built-in knowledge on how to + compile DSO files, because as already mentioned this is + heavily platform-dependent. Nevertheless all major Unix + platforms are supported. The definitive current state (May + 1999) is this:</p> + + <ul> + <li> + Out-of-the-box supported platforms:<br /> + (actually tested versions in parenthesis) +<pre> +o FreeBSD (2.1.5, 2.2.x, 3.x, 4.x) +o OpenBSD (2.x) +o NetBSD (1.3.1) +o BSDI (3.x, 4.x) +o Linux (Debian/1.3.1, RedHat/4.2) +o Solaris (2.4, 2.5, 2.6, 2.7) +o SunOS (4.1.3) +o Digital UNIX (4.0) +o IRIX (5.3, 6.2) +o HP/UX (10.20) +o UnixWare (2.01, 2.1.2) +o SCO (5.0.4) +o AIX (3.2, 4.1.5, 4.2, 4.3) +o ReliantUNIX/SINIX (5.43) +o SVR4 (-) +o Mac OS X Server (1.0) +o Mac OS (10.0 preview 1) +o OpenStep/Mach (4.2) +o DGUX (??) +o NetWare (5.1) +o Windows (95, 98, NT 4.0, 2000) +</pre> + </li> + + <li> + Explicitly unsupported platforms: +<pre> +o Ultrix (no dlopen-style interface under this platform) +</pre> + </li> + </ul> + + <h3>Usage Summary</h3> + + <p>To give you an overview of the DSO features of Apache 1.3, + here is a short and concise summary:</p> + + <ol> + <li> + Placing the Apache core code (all the stuff which usually + forms the <code>httpd</code> binary) into a DSO + <code>libhttpd.so</code>, an executable program + <code>libhttpd.ep</code> and a bootstrapping executable + program <code>httpd</code> (Notice: this is only required + on some of the supported platforms to force the linker to + export the Apache core symbols, which in turn is a + prerequisite for the DSO modularization): + + <ul> + <li> + Build and install via <code>configure</code> + (preferred): + + <table bgcolor="#f0f0f0" cellpadding="10"> + <tr> + <td> +<pre> +$ ./configure --prefix=/path/to/install + --enable-rule=SHARED_CORE ... +$ make install +</pre> + </td> + </tr> + </table> + </li> + + <li> + Build and install manually: + + <table bgcolor="#f0f0f0" cellpadding="10"> + <tr> + <td> +<pre> +- Edit src/Configuration: + << Rule SHARED_CORE=default + >> Rule SHARED_CORE=yes + << EXTRA_CFLAGS= + >> EXTRA_CFLAGS= -DSHARED_CORE_DIR=\"/path/to/install/libexec\" +$ make +$ cp src/libhttpd.so* /path/to/install/libexec/ +$ cp src/libhttpd.ep /path/to/install/libexec/ +$ cp src/httpd /path/to/install/bin/ +</pre> + </td> + </tr> + </table> + </li> + </ul> + </li> + + <li> + Build and install a <em>distributed</em> Apache module, + say <code>mod_foo.c</code>, into its own DSO + <code>mod_foo.so</code>: + + <ul> + <li> + Build and install via <code>configure</code> + (preferred): + + <table bgcolor="#f0f0f0" cellpadding="10"> + <tr> + <td> +<pre> +$ ./configure --prefix=/path/to/install + --enable-shared=foo +$ make install +</pre> + </td> + </tr> + </table> + </li> + + <li> + Build and install manually: + + <table bgcolor="#f0f0f0" cellpadding="10"> + <tr> + <td> +<pre> +- Edit src/Configuration: + << AddModule modules/xxxx/mod_foo.o + >> SharedModule modules/xxxx/mod_foo.so +$ make +$ cp src/xxxx/mod_foo.so /path/to/install/libexec +- Edit /path/to/install/etc/httpd.conf + >> LoadModule foo_module /path/to/install/libexec/mod_foo.so +</pre> + </td> + </tr> + </table> + </li> + </ul> + </li> + + <li> + Build and install a <em>third-party</em> Apache module, + say <code>mod_foo.c</code>, into its own DSO + <code>mod_foo.so</code> + + <ul> + <li> + Build and install via <code>configure</code> + (preferred): + + <table bgcolor="#f0f0f0" cellpadding="10"> + <tr> + <td> +<pre> +$ ./configure --add-module=/path/to/3rdparty/mod_foo.c + --enable-shared=foo +$ make install +</pre> + </td> + </tr> + </table> + </li> + + <li> + Build and install manually: + + <table bgcolor="#f0f0f0" cellpadding="10"> + <tr> + <td> +<pre> +$ cp /path/to/3rdparty/mod_foo.c /path/to/apache-1.3/src/modules/extra/ +- Edit src/Configuration: + >> SharedModule modules/extra/mod_foo.so +$ make +$ cp src/xxxx/mod_foo.so /path/to/install/libexec +- Edit /path/to/install/etc/httpd.conf + >> LoadModule foo_module /path/to/install/libexec/mod_foo.so +</pre> + </td> + </tr> + </table> + </li> + </ul> + </li> + + <li> + Build and install a <em>third-party</em> Apache module, + say <code>mod_foo.c</code>, into its own DSO + <code>mod_foo.so</code> <em>outside of</em> the Apache + source tree: + + <ul> + <li> + Build and install via <a + href="programs/apxs.html">apxs</a>: + + <table bgcolor="#f0f0f0" cellpadding="10"> + <tr> + <td> +<pre> +$ cd /path/to/3rdparty +$ apxs -c mod_foo.c +$ apxs -i -a -n foo mod_foo.so +</pre> + </td> + </tr> + </table> + </li> + </ul> + </li> + </ol> + + <h3>Advantages & Disadvantages</h3> + + <p>The above DSO based features of Apache 1.3 have the + following advantages:</p> + + <ul> + <li>The server package is more flexible at run-time because + the actual server process can be assembled at run-time via + <a + href="mod/mod_so.html#loadmodule"><code>LoadModule</code></a> + <code>httpd.conf</code> configuration commands instead of + <code>Configuration</code> <code>AddModule</code> commands + at build-time. For instance this way one is able to run + different server instances (standard & SSL version, + minimalistic & powered up version [mod_perl, PHP3], + <em>etc.</em>) with only one Apache installation.</li> + + <li>The server package can be easily extended with + third-party modules even after installation. This is at + least a great benefit for vendor package maintainers who + can create a Apache core package and additional packages + containing extensions like PHP3, mod_perl, mod_fastcgi, + <em>etc.</em></li> + + <li>Easier Apache module prototyping because with the + DSO/<code>apxs</code> pair you can both work outside the + Apache source tree and only need an <code>apxs -i</code> + command followed by an <code>apachectl restart</code> to + bring a new version of your currently developed module into + the running Apache server.</li> + </ul> + + <p>DSO has the following disadvantages:</p> + + <ul> + <li>The DSO mechanism cannot be used on every platform + because not all operating systems support dynamic loading + of code into the address space of a program.</li> + + <li>The server is approximately 20% slower at startup time + because of the symbol resolving overhead the Unix loader + now has to do.</li> + + <li>The server is approximately 5% slower at execution time + under some platforms because position independent code + (PIC) sometimes needs complicated assembler tricks for + relative addressing which are not necessarily as fast as + absolute addressing.</li> + + <li>Because DSO modules cannot be linked against other + DSO-based libraries (<code>ld -lfoo</code>) on all + platforms (for instance a.out-based platforms usually don't + provide this functionality while ELF-based platforms do) + you cannot use the DSO mechanism for all types of modules. + Or in other words, modules compiled as DSO files are + restricted to only use symbols from the Apache core, from + the C library (<code>libc</code>) and all other dynamic or + static libraries used by the Apache core, or from static + library archives (<code>libfoo.a</code>) containing + position independent code. The only chances to use other + code is to either make sure the Apache core itself already + contains a reference to it, loading the code yourself via + <code>dlopen()</code> or enabling the + <code>SHARED_CHAIN</code> rule while building Apache when + your platform supports linking DSO files against DSO + libraries.</li> + + <li>Under some platforms (many SVR4 systems) there is no + way to force the linker to export all global symbols for + use in DSO's when linking the Apache httpd executable + program. But without the visibility of the Apache core + symbols no standard Apache module could be used as a DSO. + The only chance here is to use the <code>SHARED_CORE</code> + feature because this way the global symbols are forced to + be exported. As a consequence the Apache + <code>src/Configure</code> script automatically enforces + <code>SHARED_CORE</code> on these platforms when DSO + features are used in the <code>Configuration</code> file or + on the configure command line.</li> + </ul> + <!--#include virtual="footer.html" --> + </blockquote> + </body> +</html> + diff --git a/htdocs/manual/ebcdic.html b/htdocs/manual/ebcdic.html new file mode 100644 index 0000000000..7318f9f76a --- /dev/null +++ b/htdocs/manual/ebcdic.html @@ -0,0 +1,364 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>The Apache EBCDIC Port</title> + </head> + <!-- background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Overview of the Apache EBCDIC Port</h1> + + <p>As of Version 1.3, the Apache HTTP Server includes a port to + (non-ASCII) mainframe machines which use the EBCDIC character + set as their native codeset.<br /> + (Initially, that support covered only the Fujitsu-Siemens + family of mainframes running the <a + href="http://www.fujitsu-siemens.com/rl/products/software/bs2000bc.html"> + BS2000/OSD operating system</a>, a mainframe OS which features + a SVR4-derived POSIX subsystem. Later, the two IBM mainframe + operating systems TPF and OS/390 were added).</p> + <hr /> + + <h2 align="center"><a id="ebcdic" name="ebcdic">EBCDIC-related + conversion functions</a></h2> + The EBCDIC related directives <a + href="mod/core.html#ebcdicconvert">EBCDICConvert</a>, <a + href="mod/core.html#ebcdicconvertbytype">EBCDICConvertByType</a>, + and <a href="mod/core.html#ebcdickludge">EBCDICKludge</a> are + available <b>only if the platform's character set is EBCDIC</b> + (This is currently only the case on Fujitsu-Siemens' BS2000/OSD + and IBM's OS/390 and TPF operating systems). EBCDIC stands for + <em>Extended Binary-Coded-Decimal Interchange Code</em> and is + the codeset used on mainframe machines, in contrast to ASCII + which is ubiquitous on almost all micro computers today. ASCII + (or its extension <em>latin1</em>) is the basis for the HTTP + transfer protocol, therefore all EBCDIC-based platforms need a + way to configure the code set conversion rules required between + the EBCDIC based mainframe host and the HTTP socket + protocol.<br /> + + + <p>On an EBCDIC based system, HTML files and other text files + are usually saved encoded in the native EBCDIC code set, while + image files and other binary data are stored with identical + encoding as on ASCII based machines. When the Apache server + accesses documents, it must therefore make a distinction + between text files (to be converted to/from ASCII, depending on + the transfer direction) and binary files (to be delivered + unconverted). Such a distinction can be made based on the + assigned MIME type, or based on the file extension + (<em>i.e.</em>, files sharing a common file suffix).</p> + + <p>By default, the configuration is symmetric for input and + output (<em>i.e.</em>, when a PUT request is executed for a + document which was returned by a previous GET request, then the + resulting uploaded copy should be identical to the original + file). However, the conversion directives allow for specifying + different conversions for input and output.</p> + + <p>The directives <a + href="mod/core.html#ebcdicconvert">EBCDICConvert</a> and <a + href="mod/core.html#ebcdicconvertbytype">EBCDICConvertByType</a> + are used to assign the conversion setting (On or Off) based on + file extensions or MIME types. Each configuration setting can + be defined for input only (<em>e.g.</em>, PUT method), output + only (<em>e.g.</em>, GET method), or both input and output. By + default, the conversion setting is applied for input and + output.</p> + + <p>Note that after modifying the conversion settings for a + group of files, it is not sufficient to restart the server. The + reason for this is the fact that a cached copy of a document + (in a browser or proxy cache) will not get revalidated by + contents, but only by date. Since the modification time of the + document did not change, browsers will assume they can reuse + the cached copy.<br /> + To recover from this situation, you must either clear all + cached copies (browser and proxy cache!), or update the + modification time of the documents (using the + <code>touch</code> command on the server).</p> + + <p>Note also that server-parsed documents (CGI scripts, .shtml + files, and other interpreted files like PHP scripts etc.) are + not subject to any input conversion and must therefore be + stored in EBCDIC form on the server side.</p> + + <p>In absense of any <a + href="mod/core.html#ebcdicconvertbytype">EBCDICConvertByType</a> + directive, and if no matching <a + href="mod/core.html#ebcdicconvert">EBCDICConvert</a> was found, + Apache falls back to an internal heuristic which assumes that + all documents with MIME types starting with + <samp>"text/"</samp>, <samp>"message/"</samp> or + <samp>"multipart/"</samp> as well as the MIME type + <samp>"application/x-www-form-urlencoded"</samp> are text + documents stored in EBCDIC, whereas all other documents are + binary files.</p> + + <p>In order to provide backward compatibility with older + versions of apache, the <a + href="mod/core.html#ebcdickludge">EBCDICKludge</a> directive + allows for a less powerful mechanism to control the conversion + of documents to and from EBCDIC.</p> + + <p><strong>Note</strong>:</p> + + <blockquote> + The EBCDICKludge directive is deprecated, since its + functionality is superseded by the more powerful <a + href="mod/core.html#ebcdicconvert">EBCDICConvert</a> and <a + href="mod/core.html#ebcdicconvertbytype">EBCDICConvertByType</a> + directives. + </blockquote> + <br /> + <br /> + + + <p>The directives are applied in the following order:</p> + + <ol> + <li>First, the configured <a + href="mod/core.html#ebcdicconvert">EBCDICConvert</a> + directives in the current context are evaluated in + configuration file order. As soon as a matching file + extension is found, the search stops and the configured + conversion is applied.<br /> + EBCDICConvert settings inherited from parent directories are + tested after the more specific (deeper) directory + levels.</li> + + <li>If the <a + href="mod/core.html#ebcdickludge">EBCDICKludge</a> is in + effect, the next step tests for a MIME type of the format + <samp><i>type/</i><b>x-ascii-</b><i>subtype</i></samp>. If + the document has such a type, then the + <samp>"<b>x-ascii-</b>"</samp> substring is removed and the + conversion set to <samp>Off</samp>.</li> + + <li>In the next step, the configured <a + href="mod/core.html#ebcdicconvertbytype">EBCDICConvertByType</a> + directives are evaluated in configuration file order. If the + document has a matching MIME type, the search stops and the + configured conversion is applied.<br /> + EBCDICConvertByType settings inherited from parent + directories are tested after the more specific (deeper) + directory levels.<br /> + If no <a + href="mod/core.html#ebcdicconvertbytype">EBCDICConvertByType</a> + directive at all exists in the current context, the server + falls back to the simple heuristics which assume that MIME + types starting with "text/", "message/" or "multipart/" (plus + the special type "application/x-www-form-urlencoded" used in + simple POST requests) imply a conversion, while all the rest + is delivered unconverted (<em>i.e.</em>, binary).</li> + </ol> + <br /> + <br /> + + <hr /> + + <h2 align="center"><a id="tech" name="tech">Technical + Details</a></h2> + + <p>Since all Apache input and output is based upon the BUFF + data type and its methods, the easiest solution was to add the + actual conversion to the BUFF handling routines. The conversion + must be settable at any time, so BUFF flags were added which + define whether a BUFF object has currently enabled conversion + or not. Two such flags exist: one for data read from the client + (ASCII to EBCDIC conversion) and one for data returned to the + client (EBCDIC to ASCII conversion).</p> + + <p>During sending of the header, Apache determines (based on + the returned MIME type for the request) whether conversion + should be used or the document returned unconverted. It uses + this decision to initialize the BUFF flag when the response + output begins. Modules should therefore determine the MIME type + for the current request before initiating the response by + calling ap_send_http_headers().</p> + + <p>The BUFF flag is modified at several points in the HTTP + protocol:</p> + + <ul> + <li><strong>set</strong> (In and Out) before a request is + received (because the request and the request header lines + are always in ASCII format)</li> + + <li><strong>set/unset</strong> (for Input data) when the + request body is received - depending on the content type of + the request body (because the request body may contain ASCII + text or a binary file)</li> + + <li><strong>set</strong> (for returned Output) before a + response header is sent (because the response header lines + are always in ASCII format)</li> + + <li><strong>set/unset</strong> (for returned Output) when the + response body is sent - depending on the content type of the + response body (because the response body may contain text or + a binary file)</li> + </ul> + Additional transparent transitions may occur for + extracting/inserting the HTTP/1.1 chunking information + from/into the input/output body data stream, and for generating + <em>multipart</em> headers for <em>range</em> requests. (See + RFC2616 and src/main/http_protocol.c for details.) + <hr /> + + <h2 align="center"><a id="port" name="port">Porting + Notes</a></h2> + + <ol> + <li> + The relevant changes in the source are #ifdef'ed into two + categories: + + <dl> + <dt><code><strong>#ifdef + CHARSET_EBCDIC</strong></code></dt> + + <dd>Code which is needed for any EBCDIC based machine. + This includes character translations, differences in + contiguity of the two character sets, flags which + indicate which part of the HTTP protocol has to be + converted and which part doesn't <em>etc.</em></dd> + + <dt><code><strong>#ifdef _OSD_POSIX | TPF | + OS390</strong></code></dt> + + <dd>Code which is needed for the Fujitsu-Siemens + BS2000/OSD | IBM TPF | IBM OS390 mainframe platforms + only. This deals with include file differences and socket + and fork implementation topics which are only required on + the respective platform.<br /> + </dd> + </dl> + </li> + + <li>The possibility to translate between ASCII and EBCDIC at + the socket level (on BS2000 POSIX, there is a socket option + which supports this) was intentionally <em>not</em> chosen, + because the byte stream at the HTTP protocol level consists + of a mixture of protocol related strings and non-protocol + related raw file data. HTTP protocol strings are always + encoded in ASCII (the GET request, any Header: lines, the + chunking information <em>etc.</em>) whereas the file transfer + parts (<em>i.e.</em>, GIF images, CGI output <em>etc.</em>) + should usually be just "passed through" by the server. This + separation between "protocol string" and "raw data" is + reflected in the server code by functions like bgets() or + rvputs() for strings, and functions like bwrite() for binary + data. A global translation of everything would therefore be + inadequate.<br /> + (In the case of text files of course, provisions must be + made so that EBCDIC documents are always served in + ASCII)<br /> + This port therefore features a built-in protocol level + conversion for the server-internal strings (which the + compiler translated to EBCDIC strings) and thus for all + server-generated documents.<br /> + </li> + + <li>By examining the call hierarchy for the BUFF management + routines, I added an "ebcdic/ascii conversion layer" which + would be crossed on every puts/write/get/gets, and conversion + flags which allowed enabling/disabling the conversions + on-the-fly. Usually, a document crosses this layer twice from + its origin source (a file or CGI output) to its destination + (the requesting client): <samp>file -> Apache</samp>, and + <samp>Apache -> client</samp>.<br /> + The server can now read the header lines of a CGI-script + output in EBCDIC format, and then find out that the remainder + of the script's output is in ASCII (like in the case of the + output of a WWW Counter program: the document body contains a + GIF image). All header processing is done in the native + EBCDIC format; the server then determines, based on the type + of document being served, whether the document body (except + for the chunking information, of course) is in ASCII already + or must be converted from EBCDIC.<br /> + </li> + + <li> + By default, Apache assumes that documents with the MIME + types "text/*", "message/*", "multipart/*" and + "application/x-www-form-urlencoded" are text documents and + are stored as EBCDIC files, whereas all other files are + binary files (and stored in a byte-identical encoding as on + an ASCII machine).<br /> + These defaults can be overridden on a <a + href="mod/core.html#ebcdicconvertbytype">by-MIME-type</a> + and/or <a + href="mod/core.html#ebcdicconvert">by-file-extension</a> + basis, using the directives +<pre> + <a +href="mod/core.html#ebcdicconvertbytype">EBCDICConvertByType</a> {On|Off}[={In|Out|InOut}] <em>mimetype</em> [...] + <a +href="mod/core.html#ebcdicconvert">EBCDICConvert</a> {On|Off}[={In|Out|InOut}] <em>fileext</em> [...] + +</pre> + where the <em>mimetype</em> argument may contain + wildcards.<br /> + </li> + + <li>Before adding the flexible conversion, non-text documents + were always served "binary" without conversion. This seemed + to be the most sensible choice for, .<em>e.g.</em>, + GIF/ZIP/AU file types (It of course requires the user to copy + them to the mainframe host using the "rcp -b" binary switch), + but proved to be inadequate for MIME types like + <samp>model/vrml</samp>, <samp>application/postscript</samp> + and <samp>application/x-javascript</samp>.<br /> + </li> + + <li>Server parsed files are always assumed to be in native + (<em>i.e.</em>, EBCDIC) format as used on the machine + (because they do not cross the conversion layer when being + read), and are converted after processing.<br /> + </li> + + <li>For CGI output, the CGI script determines whether a + conversion is needed or not: by setting the appropriate + Content-Type, text files can be converted, or GIF output can + be passed through unmodified (depending on the conversion + configured in the script's context).<br /> + </li> + </ol> + <hr /> + + <h2 align="center"><a id="store" name="store">Document Storage + Notes</a></h2> + + <h3 align="center">Binary Files</h3> + + <p>When exchanging binary files between the mainframe host and + a Unix machine or Windows PC, be sure to use the ftp "binary" + (<samp>TYPE I</samp>) command, or use the + <samp>rcp -b</samp> command from the mainframe host (the + -b switch is not supported in unix rcp's).</p> + + <h3 align="center">Text Documents</h3> + + <p>The default assumption of the server is that Text Files + (<em>i.e.</em>, all files whose <samp>Content-Type:</samp> + starts with <samp>text/</samp>) are stored in the native + character set of the host, EBCDIC.</p> + + <h3 align="center">Server Side Included Documents</h3> + + <p>SSI documents must currently be stored in EBCDIC only. No + provision is made to convert them from ASCII before processing. + The same holds for other interpreted languages, like mod_perl + or mod_php.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/env.html.en b/htdocs/manual/env.html.en new file mode 100644 index 0000000000..a96e002c01 --- /dev/null +++ b/htdocs/manual/env.html.en @@ -0,0 +1,347 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Environment Variables in Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Environment Variables in Apache</h1> + + <p>The Apache HTTP Server provides a mechanism for storing + information in named variables that are called <em>environment + variables</em>. This information can be used to control various + operations such as logging or access control. The variables are + also used as a mechanism to communicate with external programs + such as CGI scripts. This document discusses different ways to + manipulate and use these variables.</p> + + <p>Although these variables are referred to as <em>environment + variables</em>, they are not the same as the environment + variables controlled by the underlying operating system. + Instead, these variables are stored and manipulated in an + internal Apache structure. They only become actual operating + system environment variables when they are provided to CGI + scripts and Server Side Include scripts. If you wish to + manipulate the operating system environment under which the + server itself runs, you must use the standard environment + manipulation mechanisms provided by your operating system + shell.</p> + + <ul> + <li><a href="#setting">Setting Environment Variables</a></li> + + <li><a href="#using">Using Environment Variables</a></li> + + <li><a href="#special">Special Purpose Environment + Variables</a></li> + + <li><a href="#examples">Examples</a></li> + </ul> + <hr /> + + <h2><a id="setting" name="setting">Setting Environment + Variables</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="mod/mod_env.html">mod_env</a><br /> + <a href="mod/mod_rewrite.html">mod_rewrite</a><br /> + <a href="mod/mod_setenvif.html">mod_setenvif</a><br /> + <a href="mod/mod_unique_id.html">mod_unique_id</a><br /> + </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a + href="mod/mod_setenvif.html#browsermatch">BrowserMatch</a><br /> + <a + href="mod/mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</a><br /> + <a href="mod/mod_env.html#passenv">PassEnv</a><br /> + <a + href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br /> + <a href="mod/mod_env.html#setenv">SetEnv</a><br /> + <a + href="mod/mod_setenvif.html#setenvif">SetEnvIf</a><br /> + <a + href="mod/mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a><br /> + <a href="mod/mod_env.html#unsetenv">UnsetEnv</a><br /> + </td> + </tr> + </table> + + <h3>Basic Environment Manipulation</h3> + + <p>The most basic way to set an environment variable in Apache + is using the unconditional <code>SetEnv</code> directive. + Variables may also be passed from the environment of the shell + which started the server using the <code>PassEnv</code> + directive.</p> + + <h3>Conditional Per-Request Settings</h3> + + <p>For additional flexibility, the directives provided by + mod_setenvif allow environment variables to be set on a + per-request basis, conditional on characteristics of particular + requests. For example, a variable could be set only when a + specific browser (User-Agent) is making a request, or only when + a specific Referer [sic] header is found. Even more flexibility + is available through the mod_rewrite's <code>RewriteRule</code> + which uses the <code>[E=...]</code> option to set environment + variables.</p> + + <h3>Unique Identifiers</h3> + + <p>Finally, mod_unique_id sets the environment variable + <code>UNIQUE_ID</code> for each request to a value which is + guaranteed to be unique across "all" requests under very + specific conditions.</p> + + <h3>Standard CGI Variables</h3> + + <p>In addition to all environment variables set within the + Apache configuration and passed from the shell, CGI scripts and + SSI pages are provided with a set of environment variables + containing meta-information about the request as required by + the <a href="misc/FAQ.html#cgi-spec">CGI specification</a>.</p> + + <h3>Some Caveats</h3> + + <ul> + <li>It is not possible to override or change the standard CGI + variables using the environment manipulation directives.</li> + + <li>When <a href="suexec.html">suexec</a> is used to launch + CGI scripts, the environment will be cleaned down to a set of + <em>safe</em> variables before CGI scripts are launched. The + list of <em>safe</em> variables is defined at compile-time in + <code>suexec.c</code>.</li> + + <li>For portability reasons, the names of environment + variables may contain only letters, numbers, and the + underscore character. In addition, the first character may + not be a number. Characters which do not match this + restriction will be replaced by an underscore when passed to + CGI scripts and SSI pages.</li> + </ul> + <hr /> + + <h2><a id="using" name="using">Using Environment + Variables</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="mod/mod_access.html">mod_access</a><br /> + <a href="mod/mod_cgi.html">mod_cgi</a><br /> + <a href="mod/mod_include.html">mod_include</a><br /> + <a href="mod/mod_log_config.html">mod_log_config</a><br /> + <a href="mod/mod_rewrite.html">mod_rewrite</a><br /> + </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a href="mod/mod_access.html#allow">Allow</a><br /> + <a + href="mod/mod_log_config.html#customlog">CustomLog</a><br /> + <a href="mod/mod_access.html#deny">Deny</a><br /> + <a + href="mod/mod_log_config.html#logformat">LogFormat</a><br /> + <a + href="mod/mod_rewrite.html#RewriteCond">RewriteCond</a><br /> + <a + href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br /> + </td> + </tr> + </table> + + <h3>CGI Scripts</h3> + + <p>One of the primary uses of environment variables is to + communicate information to CGI scripts. As discussed above, the + environment passed to CGI scripts includes standard + meta-information about the request in addition to any variables + set within the Apache configuration. For more details, see the + <a href="howto/cgi.html">CGI tutorial</a>.</p> + + <h3>SSI Pages</h3> + + <p>Server-parsed (SSI) documents processed by mod_include's + <code>server-parsed</code> handler can print environment + variables using the <code>echo</code> element, and can use + environment variables in flow control elements to makes parts + of a page conditional on characteristics of a request. Apache + also provides SSI pages with the standard CGI environment + variables as discussed above. For more details, see the <a + href="howto/ssi.html">SSI tutorial</a>.</p> + + <h3>Access Control</h3> + + <p>Access to the server can be controlled based on the value of + environment variables using the <code>allow from env=</code> + and <code>deny from env=</code> directives. In combination with + <code>SetEnvIf</code>, this allows for flexible control of + access to the server based on characteristics of the client. + For example, you can use these directives to deny access to a + particular browser (User-Agent).</p> + + <h3>Conditional Logging</h3> + + <p>Environment variables can be logged in the access log using + the <code>LogFormat</code> option <code>%e</code>. In addition, + the decision on whether or not to log requests can be made + based on the status of environment variables using the + conditional form of the <code>CustomLog</code> directive. In + combination with <code>SetEnvIf</code> this allows for flexible + control of which requests are logged. For example, you can + choose not to log requests for filenames ending in + <code>gif</code>, or you can choose to only log requests from + clients which are outside your subnet.</p> + + <h3>URL Rewriting</h3> + + <p>The <code>%{ENV:...}</code> form of <em>TestString</em> in + the <code>RewriteCond</code> allows mod_rewrite's rewrite + engine to make decisions conditional on environment variables. + Note that the variables accessible in mod_rewrite without the + <code>ENV:</code> prefix are not actually environment + variables. Rather, they are variables special to mod_rewrite + which cannot be accessed from other modules.</p> + <hr /> + + <h2><a id="special" name="special">Special Purpose Environment + Variables</a></h2> + + <p>Interoperability problems have led to the introduction of + mechanisms to modify the way Apache behaves when talking to + particular clients. To make these mechanisms as flexible as + possible, they are invoked by defining environment variables, + typically with <a + href="mod/mod_browser.html#browsermatch">BrowserMatch</a>, + though <a href="mod/mod_env.html#setenv">SetEnv</a> and <a + href="mod/mod_env.html#passenv">PassEnv</a> could also be used, + for example.</p> + + <h2>downgrade-1.0</h2> + + <p>This forces the request to be treated as a HTTP/1.0 request + even if it was in a later dialect.</p> + + <h2>force-no-vary</h2> + + <p>This causes any <code>Vary</code> fields to be removed from + the response header before it is sent back to the client. Some + clients don't interpret this field correctly (see the <a + href="misc/known_client_problems.html">known client + problems</a> page); setting this variable can work around this + problem. Setting this variable also implies + <strong>force-response-1.0</strong>.</p> + + <h2>force-response-1.0</h2> + + <p>This forces an HTTP/1.0 response when set. It was originally + implemented as a result of a problem with AOL's proxies. Some + clients may not behave correctly when given an HTTP/1.1 + response, and this can be used to interoperate with them.</p> + + <h2>nokeepalive</h2> + + <p>This disables <a + href="mod/core.html#keepalive">KeepAlive</a> when set.</p> + + <h2>suppress-error-charset</h2> + <p><i>Available in versions after 1.3.26 and 2.0.40</i></p> + <p>When Apache issues a redirect in response to a client request, + the response includes some actual text to be displayed in case + the client can't (or doesn't) automatically follow the redirection. + Apache ordinarily labels this text according to the character set + which it uses, which is ISO-8859-1.</p> + <p> However, if the redirection is to a page that uses a different + character set, some broken browser versions will try to use the + character set from the redirection text rather than the actual page. + This can result in Greek, for instance, being incorrectly rendered.</p> + <p>Setting this environment variable causes Apache to omit the character + set for the redirection text, and these broken browsers will then correctly + use that of the destination page.</p> + <hr /> + + <h2><a id="examples" name="examples">Examples</a></h2> + + <h3>Changing protocol behavior with misbehaving clients</h3> + + <p>We recommend that the following lines be included in + httpd.conf to deal with known client problems.</p> +<pre> +# +# The following directives modify normal HTTP response behavior. +# The first directive disables keepalive for Netscape 2.x and browsers that +# spoof it. There are known problems with these browser implementations. +# The second directive is for Microsoft Internet Explorer 4.0b2 +# which has a broken HTTP/1.1 implementation and does not properly +# support keepalive when it is used on 301 or 302 (redirect) responses. +# +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 + +# +# The following directive disables HTTP/1.1 responses to browsers which +# are in violation of the HTTP/1.0 spec by not being able to grok a +# basic 1.1 response. +# +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0 +</pre> + + <h3>Do not log requests for images in the access log</h3> + + <p>This example keeps requests for images from appearing in the + access log. It can be easily modified to prevent logging of + particular directories, or to prevent logging of requests + coming from particular hosts.</p> +<pre> + SetEnvIf Request_URI \.gif image-request + SetEnvIf Request_URI \.jpg image-request + SetEnvIf Request_URI \.png image-request + CustomLog logs/access_log env=!image-request +</pre> + + <h3>Prevent "Image Theft"</h3> + + <p>This example shows how to keep people not on your server + from using images on your server as inline-images on their + pages. This is not a recommended configuration, but it can work + in limited circumstances. We assume that all your images are in + a directory called /web/images.</p> +<pre> + SetEnvIf Referer "^http://www.example.com/" local_referal + # Allow browsers that do not send Referer info + SetEnvIf Referer "^$" local_referal + <Directory /web/images> + Order Deny,Allow + Deny from all + Allow from env=local_referal + </Directory> +</pre> + + <p><em>Note:</em> spelling of 'referer' and 'referal' is + intentional.</p> + + <p>For more information about this technique, see the + ApacheToday tutorial " <a + href="http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS"> + Keeping Your Images from Adorning Other Sites</a>".</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/env.html.html b/htdocs/manual/env.html.html new file mode 100644 index 0000000000..60f90431db --- /dev/null +++ b/htdocs/manual/env.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="env.html.en" --> + diff --git a/htdocs/manual/env.html.ja.jis b/htdocs/manual/env.html.ja.jis new file mode 100644 index 0000000000..e1d163429e --- /dev/null +++ b/htdocs/manual/env.html.ja.jis @@ -0,0 +1,342 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + + <title>Apache の環境変数</title> + </head> + <!-- English revision: 1.20 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache における環境変数</h1> + + <p>Apache HTTP サ・踉札个纃環境変数</em>と呼ばれる、巳苳餐阿里弔い鹿粡寂蝟赱齠洲痲筵娼変数に霾鵑魑韻垢觧伝箸澆鯆鷆,靴討い泙后海陸苳諮報はログ犬鹿粡寂蝟赱齠洲痲筵娼アクセス制御などのいろいろな操作を制御するために使う瘢雹ことができます。 + これらの変数は CGI スクリプトなどの外部プログラムと通信するためにも + 使われます。この文書はそれらの変数の操作方法と使用方法をいくつか + 匆陲靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこれらの変数は<em>環境変数</em>と呼ばれていますが、オペレ・踉札謄鵐鹿粡寂蝟赱齠洲痲筵娼システムによって制御されている環境変数と同じではありません。 + 尊櫃蓮△海譴蕕諒竸瑤鞜竏の内部構造の中に記憶され、操作されています。 + それらは、CGI や SSI スクリプトに渡されたときだけ、尊櫃鹿粡寂蝟赱齠洲痲筵娼オペレ・踉札謄鵐哀轡好謄爐隆超竸瑤砲覆蠅泙后機バ箸鹿粡寂蝟赱齠洲痲筵娼孫圓気譴討い襯撻譟ティングシステムの環境を操作したい豺腓蓮鹿粡寂蝟赱齠洲痲筵娼オペレ・踉札謄鵐哀轡好謄爐離轡Д襪鷆,靴討い詆現爐隆超竸瑤鹿粡寂蝟赱齠洲痲筵娼操作方法を使わなければなりません。</p> + + <ul> + <li><a href="#setting">環境変数の設定</a></li> + + <li><a href="#using">環境変数の使用</a></li> + + <li><a href="#special">特別な目的の環境変数</a></li> + + <li><a href="#examples">例</a></li> + </ul> + <hr /> + + <h2><a id="setting" name="setting">環境変数の設定</a></h2> + + + <table border="1"> + <tr> + <td valign="top"><strong>関連モジュ・踉札闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼煥鉚譬迴籖緕踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖鱚蜚絎蔗迪▽苳詩閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼燗續緕罧蔗迪▽苳詩閼燗續緕网踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖蜻煢筮蔗迪▽苳詩閼熾鉗髟縷蜆碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳ぢ関連ディレクティブ</strong><br /> + <br /> + <a + href="mod/mod_setenvif.html#browsermatch">BrowserMatch</a><br /> + <a + href="mod/mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</a><br /> + <a href="mod/mod_env.html#passenv">PassEnv</a><br /> + <a + href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br /> + <a href="mod/mod_env.html#setenv">SetEnv</a><br /> + <a + href="mod/mod_setenvif.html#setenvif">SetEnvIf</a><br /> + <a + href="mod/mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a><br /> + <a href="mod/mod_env.html#unsetenv">UnsetEnv</a><br /> + </td> + </tr> + </table> + + <h3>基本的な環境の操作</h3> + + <p>Apache において環境変数を設定する一番基本的な方法は、 + 無魴錣亡超竸瑤鮴瀋蠅垢踉祉閼絋苳屍續梼踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブを使用することです。 <code>PassEnv</code> + ディレクティブにより、Apache が起動されたシェルの + 環境変数を渡すこともできます。</p> + + <h3>リクエスト毎に魴錣亡陲鼎い得瀋蠅垢界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮より柔軟性を高めるために、mod_setenvif + で提供されているディレクティブを使用することで、リクエストの + 特性に基づいて環境変数を設定することができます。例えば、特定のブラウ瘢雹ザ + (User-Agent) のリクエストや特定の Referer [意図的な綴りです] + (訳注: 正しい綴りは referrer ですが、HTTP の仕様では Referer + となっています) ヘッダが見つかったときのみ変数を設定することができます。 + mod_rewrite の <code>RewriteRule</code> ディレクティブにおいて + 環境変数を設定する <code>[E=...]</code> オプションを使用することで、 + より柔軟な設定を行なう瘢雹ことができます。</p> + + <h3>一意な永婿界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮迴籖蜻煢は、非錣妨造蕕譴職苳賜件の王踉擦鹿粡寂蝟赱齠洲痲筵娼「すべて」のリクエストについて、一意であることが保擇気譴討い訝佑魎超竸鹿粡寂蝟赱齠洲痲筵娼竢粤嬶頻嫖濾彫踉晒竢粤ぢに設定します。 + </p> + + <h3>標準 CGI 変数</h3> + + <p>Apache の設定ファイルで設定された環境変数とシェルから渡される + 環境変数に加えて、CGI スクリプトと SSI ペ・踉札犬砲踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹叢譯竍薛齔繝▽苳暫派ぢの仕様</a>で要求されている、 + リクエストのメタ霾鵑鮖辰心超竸瑤料箸鷆,気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖いくつかの注意</h3> + + <ul> + <li>環境を操作するディレクティブを使って標準 CGI + 変数を綵颪靴燭衒儿垢靴燭蠅垢襪海箸呂任泙擦鵝薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳暫派ぢスクリプトを起動するために <a href="suexec.html">suexec</a> + が使用されている豺隋断スクリプトが起動するために、環境変数は<em + >安全</em>な環境変数の組に整理されます。 + この安全な環境変数の集合は、コンパイル時に <code>suexec.c</code> + で定義されます。</li> + + <li>移植性のために、環境変数の巳苳餐阿魯▲襯侫.戰奪函鹿粡寂蝟赱齠洲痲筵娼数字とアンダ・踉札好灰訳注: '_') だけから成ります。 + さらに、最初の文字は数字であってはいけません。 + この制限に合わない文字は CGI スクリプトと SSI + ペ・踉札犬謀呂気譴襪箸縫▲鵐澄スコアに置換されます。 + </li> + </ul> + <hr /> + + <h2><a id="using" name="using">環境変数の使用</a></h2> + + + <table border="1"> + <tr> + <td valign="top"><strong>関連モジュ・踉札闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼焉窿纉鶤蔗迪▽苳詩閼焉窿纉鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖竍藪蔗迪▽苳詩閼焜芍碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼煢釿跿粤譬迴籖蜴竚絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖跫艤竢鈕蜃譬迴籖跫艤竢鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼熬纓鱸譬迴籖鱚蜚絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑関連ディレクティブ</strong><br /> + <br /> + <a href="mod/mod_access.html#allow">Allow</a><br /> + <a + href="mod/mod_log_config.html#customlog">CustomLog</a><br /> + <a href="mod/mod_access.html#deny">Deny</a><br /> + <a + href="mod/mod_log_config.html#logformat">LogFormat</a><br /> + <a + href="mod/mod_rewrite.html#RewriteCond">RewriteCond</a><br /> + <a + href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br /> + </td> + </tr> + </table> + + <h3>CGI スクリプト</h3> + + <p>環境変数の腓瞥冕,琉譴弔蓮断スクリプトに霾鵑鯏舛┐襪海箸任后鹿粡寂蝟赱齠洲痲筵娼紊農睫世気譴討い襪茲逅擦法断スクリプトに渡される環境変数は Apache + の設定により設定される変数に加えて、リクエストの標準のメタ霾鵑魎泙鵑任い泙后鹿粡寂蝟赱齠洲痲筵娼楮戮踉氏鱚羹∵阯芍譬断チュ・踉札肇螢▲ぢを参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖嗷ペ・踉札界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鹿粡寂蝟赱齠洲痲筵娼迴籖蜴竚の <code>server-parsed</code> ハンドラで処理される + server-parsed (SSI) ドキュメントでは、<code>echo</code> + 要素を使用すると環境変数が出力されます。 + また、ペ・踉札犬里△詆螢┘好箸寮踉餐に応じて変更されるよう瘢雹に、 + 環境変数をフロ・踉酸耆彖任濃箸逅擦海箸任泙后苳施細は + <a href="howto/ssi.html">SSI チュ・踉札肇螢▲ぢを参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖アクセス制御</h3> + + <p><code>allow from env=</code> ディレクティブと <code>deny from env=</code> + ディレクティブを使用して、サ・踉札个悗離▲札垢魎超竸瑤涼佑農罎垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鉚膚閼絋苳ディレクティブと組み合わせることで、クライアントの特性に基づいて + サ・踉札个悗離▲札浩罎鮟斉陲帽圓覆逅擦海箸任襪茲逅擦砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼例えば、これらのディレクティブを使用して、特定のブラウ瘢雹ザ (User-Agent) + からのアクセスを拒否することができます。 + </p> + + <h3>魴鑄佞蹈圧界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鹿粡寂蝟赱齠洲痲筵娼竢粤弥臚闥轣熙踉晒竢粤ぢディレクティブのオプション <code>%e</code> + を使用することで、環境変数をアクセスログに記録することができます。さらに、 + <code>CustomLog</code> ディレクティブの魴鑛熙踉三を使用することで、 + 環境変数の値によってリクエストをログに記録するかどう瘢雹かを決めることができます。 + <code>SetEnvIf</code> ディレクティブと組み合わせることで、 + どのリクエストをログに記録するかを柔軟に制御することが可能になります。例えば、 + <code>gif</code> で終わるファイル巳苳擦悗離螢┘好箸魯蹈阿傍燭靴覆ぁ鹿粡寂蝟赱齠洲痲筵娼違う瘢雹サブネットのクライアントからのリクエストだけをログに記録する、という瘢雹選択が可能です。 + </p> + + <h3>URL の書き換え</h3> + + <p><code>RewriteCond</code> ディレクティブで<em>髭苳参訴源蹙苳ぢとして + <code>%{ENV:...}</code> 阿鮖慊蠅垢襪海箸如迴籖鱚蜚綣蝟昭粡竚癈鷭п粐Ьぢの書き換えエンジンが環境変数に基いて魴鑛瑤鮃圓覆逅擦海箸任泙后鹿粡寂蝟赱齠洲痲筵娼迴籖鱚蜚が使用可能な変数で <code>ENV:</code> が前についていない変数は、 + 尊櫃牢超竸瑤任呂覆い箸い逅擦海箸肪躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼それらは側苳擦離皀献紂ルからは使用できない mod_rewrite 用の特別な変数です。 + </p> + <hr /> + + <h2><a id="special" name="special">特別な目的の環境変数</a></h2> + + + <p> + 互換性の問題を解決するために、特定のクライアントと通信しているときは + Apache の動作を変更できる機構が導入されました。できるだけ柔軟にするために、 + これらの機構は環境変数を定義することで呼び出されます。普通は、 + <a href="mod/mod_setenvif.html#browsermatch">BrowserMatch</a> + ディレクティブを使いますが、例えば <a href="mod/mod_env.html#setenv" + >SetEnv</a> ディレクティブや <a href="mod/mod_env.html#passenv" + >PassEnv</a> ディレクティブも使用することができます。 + </p> + + <h2>downgrade-1.0</h2> + + <p>これを指定することで、リクエストが HTTP/1.0 + より新しいプロトコルの豺腓任癲挽墅ぢとして扱われます。</p> + + <h2>force-no-vary</h2> + + <p>応答ヘッダがクライアントに送られる前に <code>Vary</code> + フィ・踉札襯匹鬢踉肢り除きます。 + クライアントの中にはこのフィ・踉札襯匹鮴気靴鬢踉氏しないものがあります + (<a href="misc/known_client_problems.html">クライアントの既知の問題</a> + のペ・踉札犬鮖王苳使してください)。この変数を設定することでその問題を回避 + することができます。この変数を設定すると、<strong>force-response-1.0</strong> + が設定されたことになります。</p> + + <h2>force-response-1.0</h2> + + <p>これが設定されていると、錣墺亊窺での応答になります。この機能は、 + 元々は AOL のプロキシの問題のために汰気譴泙靴拭薀ぅ▲鵐箸涼罎砲蓮鹿粡寂蝟赱齠洲痲筵娼挽墅ぢの応答を返されると正しく動作しないものがあるかもしれません。 + この機能を使用することで、そのよう瘢雹なクライアントとの間の互換性問題を解決できます。</p> + + <h2>nokeepalive</h2> + + <p>これが設定されている豺腓蓮蓿繙就迴箝竢鱚譯諷辮瘡蝟紜鹿粡寂蝟赱齠洲痲筵娼妹辮糟蝟絋踉晒瓲苳を使用しないよう瘢雹にします。</p> + + <h2>suppress-error-charset</h2> + <p><i>1.3.26 と 2.0.40 以降のバ・踉札献腑鵑濃藩儔椎鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏がクライアントのリクエストに応じてリダイレクトを行なう瘢雹とき、 + レスポンスにはクライアントが暗縫螢瀬ぅ譽箸鯆匹┐覆ぢ追わない)ときの + ために表┐気譴襯謄好箸泙泙譴討い泙后草痺蒹ぢは通錣呂海離謄好箸鹿粡寂蝟赱齠洲痲筵娼使われている文字セットである ISO-8859-1 とします。</p> + <p>しかし、リダイレクト先が別の文字セットを使っている豺隋鹿粡寂蝟赱齠洲痲筵娼標準に準拠していないブラウ瘢雹ザでは、リダイレクト先の尊櫃諒源札奪箸鹿粡寂蝟赱齠洲痲筵娼代わりに、リダイレクト元の文字セットを使ってしまう瘢雹ことがあります。 + これは、例えばギリシャ文字が文字化けしたりすることになります。</p> + <p>この環境変数を設定すると、 Apache はリダイレクト元のテキストの文字セット + は蔑垢襪茲逅擦砲覆蝓△修里茲逅擦壁現爐暴犁鬚靴討い覆ぅ屮薀逅札兇任皀螢瀬ぅ譽鹿粡寂蝟赱齠洲痲筵娼先の文字セットを正しく使う瘢雹ことができるよう瘢雹になります。</p> + <hr /> + + <h2><a id="examples" name="examples">例</a></h2> + + <h3>おかしな挙動をするクライアントに対してプロトコルの動作を変更する</h3> + + <p>クライアントに関する既知の問題に対処するために、以王踉擦旅圓鹿粡寂蝟赱齠洲痲筵娼蔗筮竢鈕ぢに入れることを推靴討い泙后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼壽肬跛阯蜴粡鱚笏蝟纉閼蜀鈿鴉瘡墺鱚齔闔黼繹癘蜿鬯鹿粡寂蝟赱齠洲痲筵娼壽肅鴦粡鱚笏蝟粡黶碎纉繞鞜跚闥續黹瘰荻瘤碣阯黼鴦葹蝟昭粡竚癈鷭п粐Ь竟閹蒹鱚鱚鈿鳫碎纃蒹黼鳫纈逅跂辣銓癆蜿銖蝟昭粡竚癈鷭п粐Ь蒹繝闔粡鱚笏蝟蜩闥蜒鳫齒胄銓纈鈬祷韭闥纈皺鹿粡寂蝟赱齠洲痲筵娼蜒葹碣闍緕墺亊窺蜊韭纃緕闔鈔閻鈿頏關纈踟鹿粡寂蝟赱齠洲痲筵娼齦韶闥諷辮瘡蝟緕蜩黼闔葦外繖蜥繝纉竟銖纉蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏酪跛甎旺闍繞鞜跚鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏羊錨椪謂音鈿諷辮瘡蝟粹苒痲絖窺肬鱆絖鱚齔闔黼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь蒹闌跫鈑蜥繝蜩痰跂挽墅纉竟銖纉碣阯黼鴦蓍竏鹿粡寂蝟赱齠洲痲筵娼癇蜴蜿赱闔挽墅鞳磔阡繪鈑碎鳫畆蝟昭粡竚癈鷭п粐Ь癈蜒纉竟銖絎鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь鳫纈浴縺賽赱舘肬鱆絖鱚齔闔黼鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏捕椪唖闥竇纉竟銖絖窺絢蝟昭粡竚癈鷭п粐Ь鳫纈浴∧痛椪唖闥竇纉竟銖絖窺絢蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳ぢ画像へのリクエストをアクセスログに記録しない</h3> + + <p>この例では、画像へのリクエストがアクセスログに現れないよう瘢雹にします。 + これを変更することで、特定のディレクトリのログ犬鬚笋瓩燭蝓鹿粡寂蝟赱齠洲痲筵娼特定のホストからのリクエストのログ犬鬚笋瓩燭蠅垢襪海箸蔽韻砲任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь續梼吶髟纉孀椪芍蜊瘍絖鱚髟纉蝟昭粡竚癈鷭п粐Ь續梼吶髟纉孀椪褓蜊瘍絖鱚髟纉蝟昭粡竚癈鷭п粐Ь續梼吶髟纉孀椪韲蜊瘍絖鱚髟纉蝟昭粡竚癈鷭п粐Ь輒閾閾鶩痺竇齠煬閾鉚宗蜊瘍絖鱚髟纉蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳ぢ「画像の盗用」を防ぐ</h3> + + <p>この例は、別のサ・踉札个砲い訖佑△△覆燭離機バにある画像を + inline 画像として使用することを防ぎます。 + これは推気譴討い訐瀋蠅任呂△蠅泙擦鵑△△觚堕蠅気譴職苳歯況では有効です。 + ここでは、すべての画像は /web/images という瘢雹ディレクトリにあると王苳残蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь續梼吶聽鱚⌒蔗痕逅跂闕閭瘡熬繙纈瘡鹿粡寂蝟赱齠洲痲筵娼糟跫碣阯黼鴦葹粹阡緕吶聽鱚蜴肬鹿粡寂蝟赱齠洲痲筵娼嚆鉚膚繙纈纈泙跫竅赧鱚聽鱇貅蝟昭粡竚癈鷭п粐Ь瘢雹踉残蜥繝鴒皴蜊瘍纉逅紫鹿粡寂蝟赱齠洲痲筵娼鰾纈緕糟跫蝟昭粡竚癈鷭п粐Ь偵銷鳫瘡貅蝟昭粡竚癈鷭п粐Ь糟跫胙闕鉚曙閭瘡熬繙纈瘡鹿粡寂蝟赱齠洲痲筵娼逅詞蜥繝鴒逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉糸蹙苳ぢ注:</em> 'referer' と 'referal' の綴りは意図的なものです (訳注: + 正しい綴りは referrer と referral)。</p> + + <p>この衙,亡悗垢襴苳施しい霾鵑鞜竏縱閼癨ぢのチュ・踉札肇螢▲瘢雹髟阡殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕鞜竏續閼癨闕纓黯齡闥韆雎酔扈屋旭境唄芦鵜頌⊆蝟昭粡竚癈鷭п粐Ь苳史繞韈鈑阨附瘍纉鳫槍闥鉗鈑纈蜚纉逅資鹿粡寂蝟赱齠洲痲筵娼を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡瘤筮韭閭鶩轣銛瘡瘤筮韭錫鬲嬢纓蛹迴粤旭卦擬碣蜴粤旭旭旭旭旭吟矼桶崖恐錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁纔鞜鈔貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡瘤筮韭鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐梓声蝟昭粡竚癈鷭п粐Ь¨鬲跫竅豁砠遲鞳鳰擬蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蓍蜩纈皷逅跂纈黹鱸頸纔鞜鈔纈鬮皷粤釿跿粤鷦蝟昭粡竚癈鷭п粐Ь粡鱚笏闥蜚鴣遯鈔蜥繝齦矮蜥繝鱸纉部蛹貅蝟昭粡竚癈鷭п粐Ь闥闔踟嗷粡鱚笏蝟纉肬鴉鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肅跂釶辣鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь蛹緕瘢逡齡鱚赱粡鱚笏闥肅跂韶縺鴦隨鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь阮穐更糟纔繪闢踉氏謠齦瘰痺蒹鱧鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼十十十十十十十十十十十十十十十十十十十十十十十十十十十十十十十十十十鹿粡寂蝟赱齠洲痲筵娼衷顆鱸艾厩攻旭壽草痺蒹鳫跛蜃蔗鱚黼鴟繖蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼吶粡齡鱸碯闔鈔黼齒竇鈔蜴癇肬鴉鵺蜚闥蜚蓖鹿粡寂蝟赱齠洲痲筵娼迴粡肅竅闔癇鞳鴉蜚頏阮蜆繖葹肬跛阯蜴竢鈔蜚蜿銖鹿粡寂蝟赱齠洲痲筵娼癇辣鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь吶粡齡鱸碯闔閹阨鱆竢粤鱚蜴蒹硼關蜃蔗鹿粡寂蝟赱齠洲痲筵娼阡蜒絳蓍跚齡竢鈔蜚蜿銖鈔蒹闌跫鈑蜩竚瘟辣鬯蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼荻繖蜩蛯蜿銖砠釶鴒闥逡齡辮鳫糒竇蒹硼關蜃蔗鹿粡寂蝟赱齠洲痲筵娼阡蜒絳蓍跚齡竢鈔蜚蜿銖鈔蒹闌跫鈑蜩竚瘟辣蜴鹿粡寂蝟赱齠洲痲筵娼蒹閭緕闔鈔阡蒹轣鱸瘡頏阮蜆繖蜚綣蝟昭粡竚癈鷭п粐Ь粡齡鱸碯闔蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼凱跛糜纈皷鈑癆纈蛛踈緕闔蜴聽癆纉閹蓍鷦蝟昭粡竚癈鷭п粐Ь齒胄鱚粡齔赱肬跛阯蜴痺謗阯跂粢辣銓瑳蝟昭粡竚癈鷭п粐Ь蓍頏閼蜴竚纉閹癇粤跫鞳磔蒹鞜竏白阨霄蝟昭粡竚癈鷭п粐Ь肬蜴蒹鞜竏挽墅纈頏闃繝雕蔗筮瘰痺蒹鱧鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь壽釶辣∩鞜竏嚆鴟纈瘤∩鞜竏白阨陟鈿矼黼鹿粡寂蝟赱齠洲痲筵娼鈔闥黼頏闕阡頏閼纈蝟繖鳫蜩閹癇阨蝟昭粡竚癈鷭п粐Ь頏蜿蜚鞳鴉蜩皷闔蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼貴鳫糒笏粤鱸胙闕蓍齒胄鱚癨阡竅跛繖草痺蒹⊆蝟昭粡竚癈鷭п粐Ь鈿轣∩鞜竏紜韶縺蜴蒹蜥瘢纉蜚蓖鱸闥鱸緕鹿粡寂蝟赱齠洲痲筵娼纈迚齠蜿閹蒹鞜竏白阨隰鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь吶粡齡鱸碯闔閹銷闥癆齒纐纈鱚蜴蒹闌跫鈑鹿粡寂蝟赱齠洲痲筵娼站鈿繖芻緕鹿粡寂蝟赱齠洲痲筵娼壽蜩鳫糒笏釿跿粤齒胄鱚纐繻關繖草痺蒹鳫鹿粡寂蝟赱齠洲痲筵娼闥黼草痺蒹墺黼鴟纈鳫裙笏蔗痕鞣鞜竏絎闥膀⊆蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼堡瓶脇墸倉瓶厦嵒津泰氾仭暖拝玻喪哥僧僧拏蝟昭粡竚癈鷭п粐Ь慚凖嗷田浜侈錨彖厰僧塢途瀕談嫩瀕葱孕浜不田婁氾鹿粡寂蝟赱齠洲痲筵娼浜侈錨彖厰僧塢途妖卉帆淋疎斌不僧読堽途届仭參秒嫐倉鹿粡寂蝟赱齠洲痲筵娼侖厥腕倉追喘盟浜田力崚淋帆面氾仭暖拝碗鹿粡寂蝟赱齠洲痲筵娼不地淋夘怠塹厶棉疎姪碗隣敏澱坎猟敏澱坎涼苗杜堊蓑鹿粡寂蝟赱齠洲痲筵娼嗤澱描蓑愿熔盟燮碗藁單冲杜塢遡鼠素途瀕談嫩瀕葱孕鹿粡寂蝟赱齠洲痲筵娼力棉揺堙塹侑話孀斗杜脇嫗嘖不孕馬歪碗賭嵒壇啝鹿粡寂蝟赱齠洲痲筵娼模嗷孑適壮銭侑脇不啝怠喇療嗷淋賭簒來貧立鹿粡寂蝟赱齠洲痲筵娼範彭崚蛋孑田猟僧堡渡燮棉疎斌不扛氾堡賭地淋卅痴蝟昭粡竚癈鷭п粐Ь墟秒棉疎斌不扛塹參瀕談嫩瀕療婆蒜杜壇氾叟瓶滴鹿粡寂蝟赱齠洲痲筵娼倉瓶瀕瀕隣匝孕堡孑脇班嗜瀞彖凖砥杜祖嵒單勅蝟昭粡竚癈鷭п粐Ь堡佻嗷病斌不脇嫦珍輿播蝟昭粡竚癈鷭п粐Ь十十十十十十十十十十十十十十十十十十十十十十十十十十十十十十十十十充蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼壽蜩閹癇竢銖蜩跿銓癇竢銓鱸碯闔轣粤轣銷鹿粡寂蝟赱齠洲痲筵娼蜴粡糒瘡闔繹瘡閹蒹鞜竏白阨瘤闥蜃蜴瘡踟癈繖鹿粡寂蝟赱齠洲痲筵娼闔跚粹轣蜴閹癇蜚癆蒹癆蜿釶着銓纈闥鹿粡寂蝟赱齠洲痲筵娼囎鞳鱆闕頤鈑韶跚竅闔鵺鉗鴦蜚閹跛蜴濶鵺鰲瘤甅宙瘢鞜蜃隨鹿粡寂蝟赱齠洲痲筵娼楠迴鱚鈕闥轣闔草痺蒹鳫鈔蒹鞜竏挽墅纈鮗蝟昭粡竚癈鷭п粐Ь鳫裙笏韭縺黼繞踉肢雕瘰痺蒹鱧苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼偈跚齡粡鴦纔竇頸銓絶蜥鷦蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鞳鈔蜥敏〓闥蜈衷鈿關緕蜥繝鴒ぁ∋鹿粡寂蝟赱齠洲痲筵娼絶蜥苒辮椪椪く鱚鱚痲粡追勞纂蝟昭粡竚癈鷭п粐Ь跫黼粡追匯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼肬鱚痺や蜥絶蜥鶇鹿粡寂蝟赱齠洲痲筵娼頏蜴銓纈蜴粡鱚笏闥や蜥樌∋鹿粡寂蝟赱齠洲痲筵娼關緕粡嗾堕敏△粡鬆粡阨趙阡鞳齦矮蜥粡鮑、纂蝟昭粡竚癈鷭п粐Ь闥縺竏肅跂苒辮椪蔗迪洳櫟く鱚痲粡嗾堕敏蝟昭粡竚癈鷭п粐Ь頏蜴瘤粡鈑蛹や蜥肅跂樌∋鹿粡寂蝟赱齠洲痲筵娼 鱚釶辣や蜥肅跂↑や蜥蛹缸趙∋鹿粡寂蝟赱齠洲痲筵娼 關緕伝潮や蜥蛹缸趙闥蜈衷粮縺や蜥肅跂ぁ∋鹿粡寂蝟赱齠洲痲筵娼 關緕夘堙▽苳擦粡鬲ゆ蛹紜粡阨趙逾蜚や蜥肅跂ぁ∋鹿粡寂蝟赱齠洲痲筵娼 蛹┐凖祖蝟昭粡竚癈鷭п粐Ь蜀を踉察i釿跿粤蜥瘡就┏鹿粡寂蝟赱齠洲痲筵娼 ┐頏絳蜴竚絳竟齡┐爼卯З纂蝟昭粡竚癈鷭п粐Ь 頏蜴徠不ゐ鱚纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь 關緕涼△粡鬲ら釿跿粤闥鹿粡寂蝟赱齠洲痲筵娼 頏蜴阨趙阡釿跿粤蛹や蜥蜴竚綺、纂蝟昭粡竚癈鷭п粐Ь 頏蜴徠不蛹└踉刺涼鹿粡寂蝟赱齠洲痲筵娼 竚闢瀕短鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼 頏蜴徠不ゐ闢鹿粡寂蝟赱齠洲痲筵娼 蝟昭粡竚癈鷭п粐Ь繻黼鹿粡寂蝟赱齠洲痲筵娼 頏蜴徠不を纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь竚闢凖祖纂蝟昭粡竚癈鷭п粐Ь竚闢徠不纏鹿粡寂蝟赱齠洲痲筵娼 跚鉉や蜥肅跂趙∋鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь跫黼粡嗾堕敏纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡闖鬯蔗迪閭鶩轣銛瘡闖鬯蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭甦痲騎吟俺錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁肬阡纈貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡闖鬯蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬草痺蒹墺嚆鴟纈界苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹〓蜊齟秉∫轣艱鶩蜴粤芍罌踉就侮粤鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡瘤粲纈谺緕閭鶩轣銛瘡瘤粲纈谺緕錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭原恐甼箏甦錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁葹鈔跂鬯蔗迪鄂莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡瘤粲纈谺緕鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐教声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹瘤粲纈黼蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬草痺蒹瘤粲纈黼右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■粤肅鉗闔▽苳思葹蜩瘤粲纈薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■纔瘢韭纉▽苳仕逅跂鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就p鳫苒瘢辣鬆會閾鱇迯纈阡絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≫繙蜴蜚蜿遐瘢綵≫繙蜴蜚蜿遐怦癆畆蝟昭粡竚癈鷭п粐Ь瘤粲纈王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑吶赱酪糒跂鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖痺闔鶤蔗迪▽苳詩閼焉笏蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼焉皷鶤蔗迪▽苳詩閼焉皷鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖竍藪蔗迪▽苳詩閼焜芍碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼煢轣隰蔗迪▽苳詩閼煢轣隍踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖蜴肬譬迴籖蜴肬碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼煢釿跿粤譬迴籖蜴竚絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖迚辣譬迴籖迚辣碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖鈬苡癆蜿隨蔗迪▽苳詩閼燻繚阡蛛闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼燗鶤蔗迪▽苳詩閼燗鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑吶赱堤鱚笏蝟纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼焉笏蜿銖譯痺闔▽苳餐笏蜿遉踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼熏蜊絎蔗迪a粐葹鈔跂鬆槍簇瘤粲纈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖迚辣譯鱚迴葹鈔跂鬆吶迴悲鈔跂鬢踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼熏蜊絎蔗迪s續葹鈔跂鬆嚆瘤粲纈碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮∵瘤粲纈蜩蜴鴈瘡鞜竏鱚頏纉緕闔綣蝟昭粡竚癈鷭п粐Ь笏蜿鞳鱠闥辣緕蛹蜩瘡跂筮緕纈瘡踟肅跂鷦蝟昭粡竚癈鷭п粐Ь癘蜊韭蜒蜚瘤粲纈鵺癈繖肅跂絎闥轣跛跛鹿粡寂蝟赱齠洲痲筵娼肅跂癇皷逅踟纈磔蒹纈鬪纈蜴蛹鞳鷦蝟昭粡竚癈鷭п粐Ь鱚葹鈔跂笄辮癇癆繻鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏窺痲糂蒹砠跚葹鈔跂鴦跚竕鹿粡寂蝟赱齠洲痲筵娼逮黼闔蜚蒹肅跂釶辣緕皷闔闥跫竅闔葹鈔跂鴦鹿粡寂蝟赱齠洲痲筵娼竅矼鞳竕肅繖蜚蓖繻癆蜿蛹鞳壽蜩鷦蝟昭粡竚癈鷭п粐Ь糜瘤艱阨硼繝癜黼蜩闥繻繚瘤齒跿闔瘤篌蝟昭粡竚癈鷭п粐Ь繝癜黼瘡齒跛阯肬硼齡鳫鈑瘤筅踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼葹鈔跂癈齒竕癆繖蜚肅跂繞踈畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼熏蜊絎蔗迪m韭繞▽苳仔蛹纉蜚藍踉蜷跂鹿粡寂蝟赱齠洲痲筵娼祷銖蜿銖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳使瘤粲纈竅繪纈碯蛹蜴蒹纈闥釿跿粤蜴鹿粡寂蝟赱齠洲痲筵娼迴糒跂闥蒹竅矼粐繖蜚畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉笏蜿銖譯痺闔▽苳餐笏蜿遉踉晒瓲苳粡鱚笏蝟絎蒹鹿粡寂蝟赱齠洲痲筵娼碯蛹蜴瘤粲纈蜴蒹鈔癇粡齡鱸碯闔鱚鷦蝟昭粡竚癈鷭п粐Ь闌跫墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌闔胼苳私繙癜踉瘤粲纈闔胼苳産緕肅跂皷鈑蒹鹿粡寂蝟赱齠洲痲筵娼竢粤粤聲葹鈔跂鬥踉晒竢粤蜒蜩蒹瘤粲纈黼磔鹿粡寂蝟赱齠洲痲筵娼粤聲瘤粲齡癆蜒闔銓闥紿薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌闔胼苳雌緕筬癈鵙踉晒齡鳫鈑嚆鈔蛹墺蒹痲纈鷦蝟昭粡竚癈鷭п粐Ь蜩└踉氏鱚羹閼閼焉皷鶤蔗迪▽苳詩閼焉皷鵙踉晒瓲苳皐薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌闔胼苳祉芍竰蜷熙踉晒齡鳫鈑夸縺肅跂断票蝟昭粡竚癈鷭п粐Ь竰蜷蓿繙就迴箝迴籖竍藪蔗迪▽苳詩閼焜芍踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚齡鳫鈑蜊瘰蛹絋踉晒齡鳫鈑倚鴦癈蜊瘍纃瘰綣蝟昭粡竚癈鷭п粐Ь蛹絎蓿繙就迴箝迴籖蜊瘰譬迴籖蜊瘰踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚齡鳫鈑黼鴟纈鈕錵踉晒齡鳫鈑賠黼鴟纈鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿蜴肬鴉癆蜿隨畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼煢鈕鎬蔗迪▽苳詩閼煢鈕錵踉晒瓲苳皐薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌闔胼苳雌纈鬮鞜鴦繖闔胼苳産癇黼闥纈鬮皷粤鹿粡寂蝟赱齠洲痲筵娼蜴竚纉└踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖蜴竚絎蔗迪▽苳詩閼煢釿跿粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚齡鳫鈑黼鴟纈鵙踉晒齡鳫鈑賠黼鴟纈鷦蝟昭粡竚癈鷭п粐Ь辮闥蓿繙就迴箝迴籖齡癆譬迴籖齡癆踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚齡鳫鈑鞳瘰闔胼苳産癇黼鞳瘰蛹肬鮗蝟昭粡竚癈鷭п粐Ь闔銓繚阡蛛闔└踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖鈬苡癆蜿隨蔗迪▽苳詩閼燻繚阡蛛闔踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏√逅跂鵞瘢綵√逅跂鵞祷瘢韭纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳四閼蜀鈑竢銓緕蜴断黹鱸頸界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽肬跛阯蜴粡鱚笏蝟纉蛹竅鱚髟纉闥蛹纉蜚莠蝟昭粡竚癈鷭п粐Ь蒹踉祉閼絋苳肢讀踉晒竢粤緕皷闔蜃艱赱竏綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳紙闖鬯韭閼絋苳断黹鱸頸踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼笏蜿痲筬肬阡纈竍薛砠遲肬阡纈貅蝟昭粡竚癈鷭п粐Ь槍簇瘤粲纈粐闖貅蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽緕蒹派竰蜷蜩纉竟銖蛯跂闥緕粡鈑蒹鹿粡寂蝟赱齠洲痲筵娼闥蜃蜴瘡踟繿齡繖閭緕濶銓繖磔蒹鹿粡寂蝟赱齠洲痲筵娼竢粤仭堡灣卅林盟堙彫踉晒竢粤鉚蜥闔辣銓癇蛛碎紿鈔瘠蜴膽蝟昭粡竚癈鷭п粐Ь葹迴粡肅竅闔闥粐蜚蜿銖鱚纉蜥繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳仔蛹纉蜚挽墅縺粤鴦界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽肬跛阯蜴粡鱚笏蝟纉蛹緕痰跂蒹鹿粡寂蝟赱齠洲痲筵娼竢粤黼鈔鶚蜩閼絋苳葹鈔跂鬪蓍竏繖闥蛹纉蓍竏鹿粡寂蝟赱齠洲痲筵娼竢銓瘟繪阯挽墅縺粤鴦糟肅跂蜴蒹鹿粡寂蝟赱齠洲痲筵娼竢粤繧閭鶩癈蜩踉晒竢粤蜥繝鴒蛹矼鳫竇齠繖蝟昭粡竚癈鷭п粐Ь蒹踉祉閼絋苳雌緕筬癈鵙踉晒竢粤瘤粲纈鱚艨鰾跂齠繪鮗蝟昭粡竚癈鷭п粐Ь蛹緕瘢纔銖蜿銖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼逅詞堤鱚笏闥繧閭鶩癈蜩逅紫鹿粡寂蝟赱齠洲痲筵娼嚆瘤粲纈緕筬癈鷦蝟昭粡竚癈鷭п粐Ь瘢雹踉晒堤鱚笏闥瘢雹苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏鳫苒瘢辣鬆瘢綵鳫苒瘢辣鬆會閾鱇迯纈鹿粡寂蝟赱齠洲痲筵娼麗王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮鰾纈蜊韭纃緕葹鈔跂聽癆纉瘤粐蜚蜿葹鷦蝟昭粡竚癈鷭п粐Ь繞轣粤蓿繙就迚黹佗譬草痺蒹佗葹蝟昭粡竚癈鷭п粐Ь阨癨蜩瘠閹嚼繝蜀蜒瘡踟鈬鱚竢鰾癈鹿粡寂蝟赱齠洲痲筵娼矼緕粐繖竢粤鱚髟纉鱚礒踉晒竢粤鱚墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼竏癇葹鈔跂鮗蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚阨蜩癘閼緕艨艱瘤粲纈鈬繖鹿粡寂蝟赱齠洲痲筵娼闔踟黼竢粤鬮逅紫葹鈔跂鬢踉晒竢粤釶辣綣蝟昭粡竚癈鷭п粐Ь瘤粲纈瘤辣鱸闥竢粤蜴諷煦瘤粲纈閼絋苳纂蝟昭粡竚癈鷭п粐Ь艱鱚髟纉瘤粲纈癇蜊韭纃緕癈蒹鱚鹿粡寂蝟赱齠洲痲筵娼矼肬鱚瘡矼蜚皷鈑蒹瘤粲纈瘢蜴齡縺閹闔銓鹿粡寂蝟赱齠洲痲筵娼鞳怦蛹蜚鈿鈬竇齠癇蒹瘢蜴竢鉚緕闔闥鹿粡寂蝟赱齠洲痲筵娼葹鈔跂鴦黼癈茘黼鞜鱇鰾鼬癈蒹鵺鐚蝟昭粡竚癈鷭п粐Ь阡鉚痲辣粡鞳瘢絖齔痺絎鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡瘤粲纈谺蔗迪閭鶩轣銛瘡瘤粲纈谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭羃痳禧皹慨錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁葹鈔跂鬯蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡瘤粲纈谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就葹鈔跂鬯蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁葹鈔跂鬯蔗迪甌裼皴蔗粹笂瘤豁葹鈔跂鬯蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握慌呉街粭綣碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡瘤粲纈谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁葹鈔跂鬯蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯蔚誓鹿粡寂蝟赱齠洲痲筵娼据迪纈皷闔就窺唖釿閼蜴臀∫齒芦沖褓⊃鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪貂赱鈑就裃赱鈑就裃▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹ぢのハンドラの使用</title> + </head> + <!-- English revision: 1.22 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache のハンドラの使用</h1> + + <ul> + <li><a href="#definition">ハンドラとは</a></li> + + <li><a href="#examples">例</a></li> + + <li><a href="#programmer">プログラマ向けのメモ</a></li> + </ul> + <hr /> + + <h2><a id="definition" name="definition">ハンドラとは</a></h2> + + + <table border="1"> + <tr> + <td valign="top"><strong>関連モジュ・踉札闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼焉笏蜿銖譬迴籖痺闔鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖癈蜩譬迴籖癈蜩碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼焜芍譬迴籖竍薤踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖蜊瘰譬迴籖蜊瘰碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼煢鈕鎬蔗迪▽苳詩閼煢鈕錵踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖蜴竚絎蔗迪▽苳詩閼煢釿跿粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼熏蜊絎蔗迪▽苳詩閼熏蜊絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼燻繚阡蛛闔譬迴籖鈬苡癆蜿遉踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖齡癆譬迴籖齡癆碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳ぢ関連ディレクティブ</strong><br /> + <br /> + <a href="mod/mod_actions.html#action">Action</a><br /> + <a + href="mod/mod_mime.html#addhandler">AddHandler</a><br /> + <a + href="mod/mod_mime.html#removehandler">RemoveHandler</a><br /> + <a + href="mod/mod_mime.html#sethandler">SetHandler</a><br /> + </td> + </tr> + </table> + + <p>「ハンドラ」とは、ファイルが呼ばれたときに孫圓気譴詁虻遒鞜竏綣蝟昭粡竚癈鷭п粐Ьぢにおける内部表現です。通錙▲侫.ぅ襪魯侫.ぅ觀燭亡陲鼎い唇徒曚鹿粡寂蝟赱齠洲痲筵娼ハンドラがあります。普通はすべてのファイルは単にサ・踉札个飽靴錣譴泙垢鹿粡寂蝟赱齠洲痲筵娼ファイルタイプの中には別に「ハンドル」 (訳注: 扱う瘢雹) されるものもあります。 + </p> + + <p>Apache 1.1 では、ハンドラを明忙藩僂垢覽’修媛辰気譴泙靴拭鹿粡寂蝟赱齠洲痲筵娼ファイルの拡張子や置いている貊蠅亡陲鼎い董▲侫.ぅ觀燭抜愀犬覆鹿粡寂蝟赱齠洲痲筵娼ハンドラを指定することができます。これはより優雅な解決法という瘢雹点と、 + ファイルにタイプ<strong>と</strong> + ハンドラの陸苳司魎慙佞韻襪海箸任襪箸い逅仕世罵イ譴討い泙后鹿粡寂蝟赱齠洲痲筵娼└踉氏鱚羹閼閼熏蜊絎蔗迪m韭繞▽苳ぢ複数の拡張子のあるファイル</a> + も参箸靴討世気ぢ。 + </p> + + <p>ハンドラはサ・踉札个冒箸濆鵑世蝓▲皀献紂ルとして含めたり、 + <a href="mod/mod_actions.html#action">Action</a> + ディレクティブとして追加したりすることができます。 + 以王踉擦鷲現倏柯曚冒箸濆泙譴討い襯魯鵐疋蕕任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚齡鳫鈑粤聲葹鈔跂鬢踉晒齡鳫鈑竢粤粤聲葹鈔繻鬥踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を使ってファイルを送ります。 + 静的なコンテンツを扱う瘢雹ときにデフォルトで使用されるハンドラです。(core)</li> + + <li><strong>send-as-is</strong>: + HTTP ヘッダのあるファイルをそのまま送ります。 + (<a href="mod/mod_asis.html">mod_asis</a>)</li> + + <li><strong>cgi-script</strong>: ファイルを CGI + スクリプトとして扱います。(<a href="mod/mod_cgi.html">mod_cgi</a>)</li> + + <li><strong>imap-file</strong>: + イメ・踉札献泪奪廚離襦ルファイルとして解析します。 + (<a href="mod/mod_imap.html">mod_imap</a>)</li> + + <li><strong>server-info</strong>: サ・踉札个寮瀋螟苳諮報を萋世靴泙后鹿粡寂蝟赱齠洲痲筵娼└踉氏鱚羹閼閼煢鈕鎬蔗迪▽苳詩閼煢鈕錵踉晒瓲苳皐薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌闔胼苳雌纈鬮鞜鴦繖闔胼苳産喇ぢを解析します。 + (<a href="mod/mod_include.html">mod_include</a>)</li> + + <li><strong>server-status</strong>: サ・踉札个陸苳歯態報告を萋世靴泙后鹿粡寂蝟赱齠洲痲筵娼└踉氏鱚羹閼閼燗鶤蔗迪▽苳詩閼燗鵙踉晒瓲苳皐薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌闔胼苳飼絖轣隍踉晒齡鳫鈑瑳蝟昭粡竚癈鷭п粐Ьぢコンテントネゴシエ・踉札轡腑鵑里燭瓩離織ぅ廛泪奪廚箸靴堂鮴呂靴泙后鹿粡寂蝟赱齠洲痲筵娼└踉氏鱚羹閼閼燻繚阡蛛闔譬迴籖鈬苡癆蜿遉踉晒瓲苳皐薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就纔瘢韭纉釶辣就纔瘢韭纉▽苳ぢ例</a></h2> + + <h3>CGI スクリプトを用いて静的なコンテンツを変更する</h3> + + <p>以王踉擦離妊譽謄屬砲茲辰董板セ劼踉祉閼絋苳肢讀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼であるファイルは <code>footer.pl</code> + CGI スクリプトを起動するよう瘢雹になります。</p> +<pre> + Action add-footer /cgi-bin/footer.pl + AddHandler add-footer .html +</pre> + + <p>CGI スクリプトは胞苳擦泙靴そだ気篦媛辰鮃圓覆辰董機考弋瓩気譴進現鹿粡寂蝟赱齠洲痲筵娼ぢ環境変数 <code>PATH_TRANSLATED</code> で指されています) + を送る責任があります。 + </p> + + <h3>HTTP ヘッダのあるファイル</h3> + + <p>以王踉擦離妊譽謄屬踉祉閼絋苳雌緕筬癈鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ハンドラを使用するよう瘢雹に指┐靴泙后海離魯鵐疋蕕櫓踉捌分箸鹿粡寂蝟赱齠洲痲筵娼挽墅ぢヘッダを持っているファイルに使用されます。ここでは、拡張子に関わらず、 + <code>/web/htdocs/asis</code> ディレクトリにある全てのファイルは + <code>send-as-is</code> ハンドラによって扱われます。 + </p> +<pre> + <Directory /web/htdocs/asis> + SetHandler send-as-is + </Directory> +</pre> + <hr /> + + <h2><a id="programmer" name="programmer">プログラマ向けのメモ</a></h2> + + + <p>ハンドラの機能を汰垢襪燭瓩法⇒僂垢襪畔慷發靴譴覆い發里鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹韈譬草痺蒹佗ぢに追加されました。 + 椶靴世逅擦函竢粤鱚髟纉鱚礒踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼構造体に新しいレコ・踉札匹媛辰気譴燭箸い逅擦海箸任后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь葹瘤粲纈鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢもしモジュ・踉札襪魯鵐疋蕕亡悗錣蠅燭う苳詞合、やらなければならないことは、 + リクエストが <code>invoke_handler</code>ステ・踉札犬肪垢覦柄阿鹿粡寂蝟赱齠洲痲筵娼踉祉閼絋苳賜瘢雹苳肢瘤粲纈閼絋苳ぢを設定することだけです。 + ハンドラはコンテントタイプの代わりにハンドラ巳苳擦鮖箸逅擦茲逅擦砲覆辰討い襪海醗奮阿蓮鹿粡寂蝟赱齠洲痲筵娼以前と同じよう瘢雹に汰気譴討い泙后I才弋瓩気譴討い襪錣韻任呂△蠅泙擦鵑鹿粡寂蝟赱齠洲痲筵娼メディアタイプの巳苳餐斡屬鮨気覆い茲逅擦法▲魯鵐疋蕕量前にはスラッシュ + を含まない、ダッシュ (訳注: "-") で分離された巳苳餐阿鯢佞韻觸靴砲覆辰討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡縺粤鬯蔗迪閭鶩轣銛瘡縺粤鬯蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭羃矜原蚊旭錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蒹痲纈貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡縺粤鬯蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉私蝟跚芬就壇淋賭▽苳纂蝟昭粡竚癈鷭п粐Ь踉脂辯鱆就蜊瘍纉蜀瘡双礎氾話嬪杜堊塢藁蘗蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳餐鞜竏挽墅纈鬢踉晒莖鹿粡寂蝟赱齠洲痲筵娼蝟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡阯莅蔗迪閭鶩轣銛瘡阯莅蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭我皹傾痰衣錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蓖鎭癜貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡阯莅蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐厩誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉飼蜚跂装緕竅闔装闥蝴癆蜿遯鈔窿纉衷銓鳫讀踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆装緕竅闔装闥蝴癆蜿遯鈔窿纉鷦蝟昭粡竚癈鷭п粐Ь闔闌右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉氏瘢綵話▽苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蜴錢侮閼闔薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■矚皷磚逮皷癜緕竅闔鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就b癈蜒鳬鵞被矚皷禺蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆蜿鳬鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼蓿繙就b癈蜒竢鈕蜃▽苳暫闔肅苺鱇闔瑳蝟昭粡竚癈鷭п粐Ь鳫笏蜴竢銓緕癈蜒蒹銓蜒癆蜿遉踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼蓿繙就b癈蜒聲顴汝繿銓踟鼡繖鹿粡寂蝟赱齠洲痲筵娼髟纉闔痰阨矚皷癜鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■矚皷窿癘縺槇嚆笊鱸鹿粡寂蝟赱齠洲痲筵娼竅癆薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■粡艱齡▽苳残蜃纉癜緕竅闔鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就d蜃纉闥謫▽苳使阯蜃纉癜鹿粡寂蝟赱齠洲痲筵娼鳬鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼蓿繙就d蜃纉闔肅腆衷鈕蜃癆蜿邵鹿粡寂蝟赱齠洲痲筵娼會阡繝鈑闔銓蜚粡艱齡蒹銓蜒癆蜿遉踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就d蜃纉癘縺槇秩癆鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼蓿繙就d癆痰癈紜鶴矚黼蒹銓蜒癆蜿郤蝟昭粡竚癈鷭п粐Ь閼纉鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就m閼癜籵▽苳詩閼焉萬籵鈔鹿粡寂蝟赱齠洲痲筵娼迴籖癜焙硴薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■籵肅跂鵞代鳬繻纖肅跂鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就i銖跛癜籵▽苳刺銖跛蜴迴籖癜焙皃踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼蓿繙就a葢矣闔肅腆會阡繝鈑鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥閼焉萬籵鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■痺竇齠▽苳餐窿纉竢銓鳫讀踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■瘡跫緕糟跫瘤偵銷薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黶黽噤黽踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就s轣鴒▽苳屍轣鴒薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼´鈔壤碎閹蓍趙蜴謫鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟釶辣就癜▽苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь装緕竅闔装闥蝴癆蜿遯鈔窿纉衷銓鳫讀踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟釶辣就蜴錢侮閼闔右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹癈蓿繞蜩釿粤瘡蜴蒹齡蜿郤蝟昭粡竚癈鷭п粐Ь續蒹鞜鶯蜒癇繿齡闥纉阨鱆跛纉蜴鹿粡寂蝟赱齠洲痲筵娼癆纉阨鱆痺瘡踟鱚鴈繖壽纉竰蜚纈蛛鱚瘡跂篌蝟昭粡竚癈鷭п粐Ь踉脂装闥蝴癆蜿遉踉晒薤苳錆踉脂装緕竅闔瘤薤苳餐窿纉鷦蝟昭粡竚癈鷭п粐Ь闔闌踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮装緕竅闔瘤頏閭纉磔蓍竏阨纈蜀癆鹿粡寂蝟赱齠洲痲筵娼齒辣闔蜩蓖蒹竚瘟纖鱚壽蜩齦瘡踟鉚闌畆蝟昭粡竚癈鷭п粐Ь黼鴈瘢瘤鞜齠鰾碯竅蜴竚瘤阡蒹辣閼羲蝟昭粡竚癈鷭п粐Ь纃闔齡鱇鈑粤銓蜚癈轣鶯癇筱續蜴黹瘤蝟昭粡竚癈鷭п粐Ь濶竇繝閾鉗闔闥蜴艱鴃鱸銓鶤蒹銓蜒癆蜿蜩鹿粡寂蝟赱齠洲痲筵娼繿跂銓鼈阯蜴鱸鴦蜒緕黼站續鹿粡寂蝟赱齠洲痲筵娼竢癆蒹蜥竟鶯踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮装闥蝴癆蜿蜩蜴粡鈑鞳鴦闔闔竇粤銓蜀蜈筱鹿粡寂蝟赱齠洲痲筵娼蜩纈迚繖葹蒹纉阨鱆絎蓍蜩齦瘡踟續纈迚鈬篌蝟昭粡竚癈鷭п粐Ь肅鈔蜴阨蜀葹鞳鴦闔鞜鶯鞜鶯蜒癇鳫蝟昭粡竚癈鷭п粐Ь癆纈齒葹鞜蜆粱蜩皷闔闥癈癇笊赱跂閹鹿粡寂蝟赱齠洲痲筵娼黼笊鱸跂癇瘤竇装闥蝴癆蜿蜩髟蝟瘡緕蒹站蜴綣蝟昭粡竚癈鷭п粐Ь齡蜩癆纔竚蝟鞜鶯竏繝謇鈑闥阨站續鹿粡寂蝟赱齠洲痲筵娼緕阨蒹鞳鱇踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鍋釶跛窿纉竢銓鳫蜩迴鱚緕纈瘡癨羲蝟昭粡竚癈鷭п粐Ь瘡謇鈑硼闔闌跚鈑窿纉繧纉阨鱆絎窿纉竅郤蝟昭粡竚癈鷭п粐Ь苒瘤闥緕蜈矚黼闔蜆鱸續閹鱸鱸甃莠蝟昭粡竚癈鷭п粐Ь鈬闥痲糅纉閹蒹跚緕蒹蜊閹癨綣蝟昭粡竚癈鷭п粐Ь葹黼迴闔闥蒹鳫纈蓍竏蒹蜩蜚闥蜴膊鹿粡寂蝟赱齠洲痲筵娼巣竇齠闔闌瘤瘡閾阨閭謇鈑蒹癆癆跫皷鈑鹿粡寂蝟赱齠洲痲筵娼辣闥鉤跂蜴鞳關跂銓鱸粤蓖鱚闥瘤玄蝟昭粡竚癈鷭п粐Ь釿蒹跛竢銓鳫跛蜴緕瘤竇齒辣鰲蜚鱇鴒鹿粡寂蝟赱齠洲痲筵娼竢鈔蜚蜿蜒轣闥癨阡癘瘤蓍鈑粹蜚綣蝟昭粡竚癈鷭п粐Ь鱸碯閹蒹癇笊赱皷鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳斬繝癜黼蒹黼蓿繞繝蓆蜻癇齒跫黼踟繻癆繖郤蝟昭粡竚癈鷭п粐Ь闢鱚瘡韶跚竅闔鵺蜩蜀肅笊踉跌硼蒹躰蝟昭粡竚癈鷭п粐Ь辮癇癆胙闕鈬鈿纈侮癇笊赱鬪蒹銓蜒癆蜿瘤篌蝟昭粡竚癈鷭п粐Ь蓖鱸闔鱚蜴闢痺瘡逅跂辣銓癆蜿銖蝟昭粡竚癈鷭п粐Ь鈬鱸竅碎絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺葹鈕闥轣闔繧蜚癆黼銖蜚蝟絳鹿粡寂蝟赱齠洲痲筵娼闥銓緕粤肬闔踟轣跛鳫鞳關跂竏鉗髟纉郤蝟昭粡竚癈鷭п粐Ь蓍鱸瘡蛹蒹跟阨瘠齦鱚葹鞳關跂葹黼綣蝟昭粡竚癈鷭п粐Ь蓖黼瘍纉鱚蒹繽韭癆阨瘤繞蒹蹼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟釶辣就矚皷磚逮皷癜緕竅闔右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蒼蒹瘢蜊韭蜈鵺癈蜒蒹銓蜒癆蜿蜩蒹蜊韭纉蝟昭粡竚癈鷭п粐Ь續蓖閹蒹銓蜒癆蜿遯鈔闥闔辣癈蒹闢蝟昭粡竚癈鷭п粐Ь闕迴癜緕竅闔續蓖繖被鬪纈續蓖糂羲蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆蜿葹繝緕鞜齠繖癈蜒竢迯闔黶艱糒綣蝟昭粡竚癈鷭п粐Ь痰蛹蜚蜩齦纉葹跛粡黹黼蜴蜴絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢釶辣就矚皷笳闥謫▽苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь被矚皷癜緕竅闔闥謫王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦緕癇笊赱鱚齒竇癈繞頏阡繝蜴矚皷禺蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆蜿遯鞜竏黼鈔完装緕竅闔鹿粡寂蝟赱齠洲痲筵娼吶髟蜥繖熙苳蒹痲纈蜚鱚齔闔黼鱚髟纉闥粤鮗蝟昭粡竚癈鷭п粐Ь鈿胱蒹跚緕癆黼竰繖緕瘡逡齡齦韶跚繖郤蝟昭粡竚癈鷭п粐Ь鰾纈闥蒹纉阨鱆鱚鴈繖鱚髟纉筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳師竟鱚竇蝟蜴完右踉晒纉竟銖蒹痲纈竚蜈銓鹿粡寂蝟赱齠洲痲筵娼碣阯黼鬪蜚竟鶯矚皷癜緕竅闔跛鼡蒹黼鮗蝟昭粡竚癈鷭п粐Ь齦韶踟黼鴈瘢瘤鞜齠鰾矼緕蒹纈鬯羲蝟昭粡竚癈鷭п粐Ь阨鱚皷鈑鱇韆蜒瘡鳫纈齦竏励竅鞳侮鴈續鹿粡寂蝟赱齠洲痲筵娼祷韭闥纈癆阨蛹黼蜩陂蓍竏關鈔蝟纉鹿粡寂蝟赱齠洲痲筵娼韭痺蜴阨纈釶辣鈔癈齬闥筱矼緕蝟昭粡竚癈鷭п粐Ь痺蒹纈鬯纈釶辣蜴蒹韶鳫跚齡蝟昭粡竚癈鷭п粐Ь鈔鞜齠鰾韭蜈蜩闥鱚笏鱚齒竇蛹矼鹿粡寂蝟赱齠洲痲筵娼鱚鴈繖竚蜈銓踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮代竅挽墅鳫竢蜩跂齠縺竏繿齡蛹矼鹿粡寂蝟赱齠洲痲筵娼縺蜴蒹瘢阨艾蒹癇胙闕蒹瘢綣蝟昭粡竚癈鷭п粐Ь跚緕葹蜩纐纈鱚齒竇蓍竏鱚髟纉胙闕蒹鹿粡寂蝟赱齠洲痲筵娼黼鴟纈蛹葹齦韶踟蒹銓蜒癆蜿竰繖緕瘡阮纈鹿粡寂蝟赱齠洲痲筵娼瘍瘟蜴鰾纈鱚竇蝟鱚齒竇踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮楠鶯癆繻蒹鳫纈瘠纉癇閹蒹續瘟踈纈絳鐚蝟昭粡竚癈鷭п粐Ь葹闔踟癘蜴阨纈釶辣鈔癈齬闥闔綣蝟昭粡竚癈鷭п粐Ь蜊鞳碣阯黼黼齠蜿癆鵺阨蜃蔗癘蜚鹿粡寂蝟赱齠洲痲筵娼蜴艨蜴蒹纔辣阨鞳阨碣阯黼瘤皷綣蝟昭粡竚癈鷭п粐Ь瘢皷踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮糟闔蒹踉飼熙苳惨葦熙苳鱚齔闔黼竇鶯瘟阡蒹鮗蝟昭粡竚癈鷭п粐Ь鈕闥轣闔蛹矼癈黼矚站竚蜈銓侮癇笊赱鬪鹿粡寂蝟赱齠洲痲筵娼蜚緕糂瘢蜒蜩齠閭蛛蒹鳫笏繖鱚閹鹿粡寂蝟赱齠洲痲筵娼皷壽蜩竅跛繖蒹踉脂鱚瘡蹙踉晒薤苳錆褫齡蒹鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔瘢絎蒹跚緕蝟昭粡竚癈鷭п粐Ь鳫纈痺蒹纈釶辣鈔癈齬闥癆阨韭蜈筱鈔鹿粡寂蝟赱齠洲痲筵娼齡闥纉瘡闔蒹蒹銓蜒癆蜿鱚瘡蹶癆阡蒹鮗蝟昭粡竚癈鷭п粐Ь纉阨鱆纉鱚繿齡繖鳫黶辣縺跋黶辣黼鴈瘢綣蝟昭粡竚癈鷭п粐Ь鈔癈齬闥竅矼續鈬蒹銓蜒癆癆繿齡鹿粡寂蝟赱齠洲痲筵娼阨鱚髟蜥蜴纈鞳蒹蜴艨蜴壽蜩痺蓍鈑鹿粡寂蝟赱齠洲痲筵娼蜩齦瘡踟肬笊鴪緕碣阯黼黼齠蜿遯闕綣蝟昭粡竚癈鷭п粐Ь鳫纈瘡跫鱚蒹鞳鴉瘤緕癆阨纐纈鹿粡寂蝟赱齠洲痲筵娼葹鞳癈齬闥瘍瘟隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蒹銓蜒癆蜿釶辣闥縺跋跛韶縺蜴蒹關霄蝟昭粡竚癈鷭п粐Ь陂蜴鰾纈蜆緕胱葹纈釶辣鈔癈齬闥癇綣蝟昭粡竚癈鷭п粐Ь繪鈑繿齡繖闥踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏瘢綵≒癈蜒竢鈕蜃▽苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь衷鈕蜃癆蜿邵鳫笏蜴竢銓緕癈蜒鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纈癇竢鈕蜃癆蜿齡辮蜒逡齡闕韭續蜴鹿粡寂蝟赱齠洲痲筵娼闥粤鳫笏纉阨鱆蜴矚皷癜緕竅闔鹿粡寂蝟赱齠洲痲筵娼鱚絳辮緕粡鈑癆阨鱚鴒蜴鎬鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼闌鹿粡寂蝟赱齠洲痲筵娼跚鋳縺癈齬闥肅跂薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳屍續蒹闔肅苺鱇闔蜩癈齬闥肅跂薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳始頸蜿釶跛鱚癆苒阨肅跂薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒闌鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖釶辣就蔗鞜齠▽苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь鋳縺癈齬闥肅跂界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮鰾纈粤鴉蜴續蒹鞜鶯蜒癇黼鴈瘢絲鞜齠鰾鹿粡寂蝟赱齠洲痲筵娼竢轤蜴癆蜿蜩瘡蜆纈釶辣鈔癈齬闥齦韶跚繖綣蝟昭粡竚癈鷭п粐Ь黼跛繞竢逅癇繖齒辣蓖鱸蜩鈑羲蝟昭粡竚癈鷭п粐Ь黼鴈瘢纉鈔癈齬闥筮蓍蜩蒹癈齬闥肅跂蜒蝟昭粡竚癈鷭п粐Ь蛹鈬繖竰縺黼鴟纈蜆絳鈔關癆瘡蜆鹿粡寂蝟赱齠洲痲筵娼纈瘤繪鞜齠鰾鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳斬繝癜黼蓍肅跂闔蜴黼銖蜚蝟蜴肬鴉癆蜿遯鼈阨趙鹿粡寂蝟赱齠洲痲筵娼矼鱚阨蜆閹蒹閭緕粡鱚笏闥踉蓖茗蝟昭粡竚癈鷭п粐Ь蛹黼蜴闕緕蒹癈齬闥糂鱚釿鴒頸繖肅跂蝟昭粡竚癈鷭п粐Ь竰痺諷鱚艨蜴窿纉蒹蛹絳矼郤蝟昭粡竚癈鷭п粐Ь蜆繪癆逅蜃阨鞜齠鰾鶤鈔矼竅綣蝟昭粡竚癈鷭п粐Ь繽韭鈔矼跫韶蒹癈齬闥糂葹纖蓖闢絳鹿粡寂蝟赱齠洲痲筵娼瘤黶辣癈齬闥肬皷蒹銓蜒癆蜿癈闥鹿粡寂蝟赱齠洲痲筵娼繪矚鉉窿阨銓蜩阡緕瘡踟鴒纈蜿鱚痺莠蝟昭粡竚癈鷭п粐Ь黼笊鱸纐緕竢銓緕闔阨皷鈿蝟昭粡竚癈鷭п粐Ь癇笊赱鳰黼銖蜚蝟絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉獅秩蜿邵釿阨鱇艱阨纈黼蜀聽鱚銓鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾闥阨皷葹肬阡蒹迴鱚齠緕瘡鹿粡寂蝟赱齠洲痲筵娼蜴苴楠纔瘢韭絳瘤鞳關跂緕黼癈齬闥糂鹿粡寂蝟赱齠洲痲筵娼闔肬瘡閹蒹蜥鱚辣踟逅闥銓蓍鈑鵺癈蒹鹿粡寂蝟赱齠洲痲筵娼跫芍蒹蜥纉謾關闕頤鬪鈔闥蒹蜥瘤痺竢鹿粡寂蝟赱齠洲痲筵娼瘤瘤阡蒹肬跂齠緕皷蓍鈑鵺蒹闕頏闕蜩閹蓍竏鹿粡寂蝟赱齠洲痲筵娼矼纉黼鱸阨鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市竰縺蒹癈齬闥肅跂蔗鞜齠熙苳纂蝟昭粡竚癈鷭п粐Ь跚葹竅辣蜚草痺蒹壽蜩蛹矼閭癆繖綣蝟昭粡竚癈鷭п粐Ь踉飼熙苳獅蜴熙苳粡鱚笏闥閹蒹鱚蜴齡瘡跂草痺蒹楠鮗蝟昭粡竚癈鷭п粐Ь逅跂蜚蛹頏閧痰踟跫竅癆鹿粡寂蝟赱齠洲痲筵娼齟閭瘡鞜竏絲砠遲蔗鞜齠熙苳蜀阨銖跛繖鞜竏綣蝟昭粡竚癈鷭п粐Ь鳫齒竇踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮夬鱚癆肅跂鞳墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蔗鞜齠齟閭瘡鞜竏絲鞜齠癈齬闥糂黼鴈瘢綣蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蔗鞜齠熙苳跛鼡阨闥蒹癈齬闥筱鈔蒹郤蝟昭粡竚癈鷭п粐Ь鼡阨鞳瘍瘟闔肅鴉鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь癈齬鬲跫竅豁瘰痺蒹癈齬箝鞜齠鰾鰲阯緕鹿粡寂蝟赱齠洲痲筵娼励鞜齠鰾逋鞜齠鰾鹿粡寂蝟赱齠洲痲筵娼吶鈬鞜齠鰾逋鞜齠鰾鹿粡寂蝟赱齠洲痲筵娼槍粡鈑癈齬闥肬纈硼郤蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗葹蜴蒹逅跂蓖鞜齠鰾蛹蜩繪鈑鹿粡寂蝟赱齠洲痲筵娼竰縺竢銓瘟鉗鈑黼竅跛繖踉飼熙苳賜硼遉踉晒瘤蜩鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾蛹蜩繪鈑赱竇蜴蒹閭癆蜿郤蝟昭粡竚癈鷭п粐Ь踉飼熙苳晒鬲跫竅豁瘰痺蒹癈齬箝鞜齠鰾鵙踉晒搶跛鹿粡寂蝟赱齠洲痲筵娼齦碵蒹閭癆蜿遯鈔蒹黼鴈瘢絳蓍竏阨瘤鹿粡寂蝟赱齠洲痲筵娼鶯阨鞜齠鰾蛹絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺蔗鞜齠熙苳蜩阡癆茗阨蛹葹鐚蝟昭粡竚癈鷭п粐Ь胚跛癆蒹蛹續壽癆鵺郤蝟昭粡竚癈鷭п粐Ь蒹逅跂硼鱚韭痺蔗鞜齠熙苳鹿粡寂蝟赱齠洲痲筵娼齟閭瘡鞜竏絲砠遲蔗鞜齠熙苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽熙苳肚瘍繖鉤緕阨鱚鱚癆蜴畆蝟昭粡竚癈鷭п粐Ь纓蛹絎胄纈蒹蜥齡蜊絳阨蛹闕蜚蒹踉飼熙苳鮫礒踉晒鹿粡寂蝟赱齠洲痲筵娼肚瘍緕阨鱚粐蜴鈬纈瘡鱚痲纔蜩鈑鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾蛹絎鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь癈齬齟閭瘡鞜竏絲鞜齠癈齬闥糂苡鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹逅跂鼈阯跛粐黼釶辣齦鈑錵踉晒鹿粡寂蝟赱齠洲痲筵娼癈齬闥肅跂蓍竏癈跼縺糯繞竰縺縺鳰蜈鬯鷦蝟昭粡竚癈鷭п粐Ь繙闥絳阨蛹矼鼡繖闥蒹癈齬闥癆蒹闕轣鈔蜴絳鹿粡寂蝟赱齠洲痲筵娼瘤緕蛹矼鼡繖竢鈕蜥鞜齠鰾韈鈑蝟昭粡竚癈鷭п粐Ь艨蜴踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮皃苳暫癜闔墾踉晒皃苳代纈竅鱚胚緕阨粐纓黼鴦瘤鹿粡寂蝟赱齠洲痲筵娼纔蜩鈑癈齬闥肅跂葹粹逾熙苳肚瘍鹿粡寂蝟赱齠洲痲筵娼磔蜩諷專蜴熙苳肚瘍蛹竰縺纓鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾蛹絳蜀阨跼縺糯癘瘤齡蜴肅跂羲蝟昭粡竚癈鷭п粐Ь葹釶辣壽癆鵺跛纃阮竢銓緕肅跂鹿粡寂蝟赱齠洲痲筵娼癆纈絳鈔辮赱竇纓蛹竢銓瘟鉗鈑鉤蝟昭粡竚癈鷭п粐Ь蒹鈬黼鴈瘢蜒鱚粐蜴膊鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹癈齬闥蜩鱚蜴蒹癈齬闥肅跂緕竰篌蝟昭粡竚癈鷭п粐Ь闥蹶癆黼鴦齷齡纃蛹鈿矼碎縺綣蝟昭粡竚癈鷭п粐Ь蛹瘤蜊辣粡癆繻粤鴉蜴鞜齠鰾閹跛蒹黼鴦蝟昭粡竚癈鷭п粐Ь纐纈繻纉鵺阨蓖齡闥肅跂癈繝跫竅闔鹿粡寂蝟赱齠洲痲筵娼癈闢皷碎絳蜚癆纐纈蜴蜊纈迚齠蜿銖肅跂鐚蝟昭粡竚癈鷭п粐Ь葹黼鴟纈繻竅鱚痲蒹蛹絎闥逅跂蜀鹿粡寂蝟赱齠洲痲筵娼纈蜩闔肅苺鱚纈踉飼熙苳試閧閼踉晒鈔鹿粡寂蝟赱齠洲痲筵娼苒阨鈿苒阨隍踉晒緕阨蓖黼鞳鴉蜩皷闔闔蒹鹿粡寂蝟赱齠洲痲筵娼肅跂癆鉤碵纈竅鱚痲蒹蛹瘤闔踟鹿粡寂蝟赱齠洲痲筵娼鳫阡瘤鱸蜚墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼竏阯鳫阡閾鳫鬲跫竅豁瘰痺蒹癈齬箝鞜齠鰾鷦蝟昭粡竚癈鷭п粐Ь蓁閼完鬲跫竅豁瘰痺蒹癈齬箝鞜齠鰾鷦蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蜴粹皷迚赱頏繝癜闔蓖矼瘠緕竏瘤芍鈑鹿粡寂蝟赱齠洲痲筵娼阯鈬鴦蓍閹蒹癈齬闥肅跂黼鴟纈黼鬪鐚蝟昭粡竚癈鷭п粐Ь葹阡蒹纈竅銕阡縺肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏瘢綵∵癈齬粃闔肅腆碣鹿粡寂蝟赱齠洲痲筵娼續蒹闔肅苺鱇闔蜩癈齬闥肅跂界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竇阨癘竰縺鞜齠鰾蛹絳阨繞繻貅蝟昭粡竚癈鷭п粐Ь鞜竏痰阨蜚瘤跛鞜竏黼蓍肅跂闥粤鹿粡寂蝟赱齠洲痲筵娼鱚髟蜥纈鱚粤銓蛛踈闥粱蜩皷闔壽蜩闔肅苺鱇闔鷦蝟昭粡竚癈鷭п粐Ь闔蒹闌跫鈑蜥繝鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎竇跛鞜粐蜴臀▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇装奘鞳筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇瘡蜃扈♯關糘莉彊▽苳餐蒹銓蜒癆蜿郤蝟昭粡竚癈鷭п粐Ь矼蜴繖侮蓍竅黼蜚蛹矼續鐚蝟昭粡竚癈鷭п粐Ь踉飼熙苳斬癈蜒熙苳殺踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇装令辣筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇瘡蜃扈♯關糘莉彊▽苳市蒹鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔縺跋釶辣筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就跂胄▽苳餐萼黼鯑蛹絋踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就跂胄跚芬就陟蜆就涯唖壽跫竅闔羲蝟昭粡竚癈鷭п粐Ь蒹癈齬闥肅跂筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就跂胄▽苳餐菁鳫鍋跂筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇瘡蜃扈♯關糘莉彊▽苳市蒹閭癆蜿閹鹿粡寂蝟赱齠洲痲筵娼苒阨肅跂蜀銷筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就跂胄▽苳子繿鱚筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇瘡蜃扈♯關糘莉彊▽苳市蒹鹿粡寂蝟赱齠洲痲筵娼鱚髟蜥纃緕鶇蓍竏矼癆蜩肅繖闥粤鱇銓鹿粡寂蝟赱齠洲痲筵娼痲迚齠蜿遉踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纉粡鱚笏蝟纉癨韭痺繖窿纉鵙踉晒蛹綣蝟昭粡竚癈鷭п粐Ь鞜鶯蜒癇蜥繝鴒繪鈑鳫笏繖闥癨蜴蒹鹿粡寂蝟赱齠洲痲筵娼轣蜴纈竢鈕蜃癆蜿肅跂蜴踉飼熙苳殺瘢雹踉残蜥繝鴒逅紫熙苳纂蝟昭粡竚癈鷭п粐Ь繝闔闥纈竢鞳闔蜴纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纔瘢韭鼈阯矼跫粤肅鈬瘤蒹銓蜒癆蜿鱚瘡躰蝟昭粡竚癈鷭п粐Ь瘡跂玻濁鉚蜚癆蜿踟Ё壽鞜齠鰾蛹跫竅癆鹿粡寂蝟赱齠洲痲筵娼齟閭瘡鞜竏絲鞜齠癈齬闥糂熙苳跛繖鐚蝟昭粡竚癈鷭п粐Ь纈蜀纈粤銓蜚鉤纈釶辣鰲阯緕熙苳闥鹿粡寂蝟赱齠洲痲筵娼齦鈑錵踉晒蛹矼鱇銓繖窿纉鵺鈔緕鉤蜀鹿粡寂蝟赱齠洲痲筵娼纖鳫粤癈齬闥蜒轣蒹鞜齠鰾鱚蜴鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾蛹絎鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь萪逮皷禺蝟昭粡竚癈鷭п粐Ь萠瘢侮闔鉤鹿粡寂蝟赱齠洲痲筵娼装專纈鍋跂鬲跫竅豁瘰痺蒹癈齬箝鞜齠鰾鷦蝟昭粡竚癈鷭п粐Ь繿鱚黼鰲阯緕苡鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蓿癈玻濁鉚蜚癆蜿踟Ё蛹矼蜩韭癨繖綣蝟昭粡竚癈鷭п粐Ь癈齬闥竟隲陂纈纈蛹葹鞳蒹蜥鹿粡寂蝟赱齠洲痲筵娼竰繖緕瘡鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳支阨蛹鈬繖鱚齡癇鞜竏黼鴟纈闥粤肬綣蝟昭粡竚癈鷭п粐Ь纓闔肅苺鱇闔諷聿繝纉粡鱚笏蝟纉纈頤蝟昭粡竚癈鷭п粐Ь轣蜴纈竢鈕蜃癆蜿肅跂堤鱚笏蝟纉赱竇蜴鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉晒蛹纉瘠繙聽笏迯繖蛛踟皷釿綣蝟昭粡竚癈鷭п粐Ь踉飼熙苳皿蔗痺竇齠熙苳肅跂癇鞜鴦繖痺辣蛹纉鱚鹿粡寂蝟赱齠洲痲筵娼黼鴟繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽鈬蜊癆阨閨肅跂鳫癆蜥繝鴒蝟昭粡竚癈鷭п粐Ь蛹黼聲迚跚癇黼鴈瘢絲鞜齠鰾蛛跫硼竟蝟昭粡竚癈鷭п粐Ь繿鱸鈑葹鞳蒹黼鴈瘢瘤鞜齠鰾繙闥蝟昭粡竚癈鷭п粐Ь鱚纈迚繖頏閭繞筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳士阡癆痲粡闔齔繝蜀蜒瘡踟蜩鈑蒹黼鴦鐚蝟昭粡竚癈鷭п粐Ь蓖銓苒瘤痺竇齠竅齔繝蜀癆銷瘡蜆鹿粡寂蝟赱齠洲痲筵娼纈蓖矼續隨蓍蜩闔蒹鹿粡寂蝟赱齠洲痲筵娼跚筬纈熙苳諷闥篋鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь繿鱚瘡蜆黼鮗蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏瘢綵≒癈蜒苒阨鞴蛹紜碣鹿粡寂蝟赱齠洲痲筵娼頸蜿釶跛鱚癆苒阨肅跂界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮酪齡辣跛瘤迴鱚葹闔絳鍖鮗蝟昭粡竚癈鷭п粐Ь粹遯繽韭癘痺竇齠鱚齒竇搶銓鐚蝟昭粡竚癈鷭п粐Ь痰跂粤肅鈬鳫鞳關跂葹葹窿纉葹蝟昭粡竚癈鷭п粐Ь纉阨鱆絳鈔痰跂轣釶艱葹苒阨閹繽韭絳粐蜴膽蝟昭粡竚癈鷭п粐Ь鈔纃阮蜴辣轤纈鵺蜚蓖癘蜴粡黼鴟纈鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿肅跂瘤鱚齡癇草痺蒹縺竏蜊絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍蜩瘤粲繖皷鈑蒹銓蜒癆蜿苒阨頌綜鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔鳫鵺纔鞳笏苒阨釶辣鹿粡寂蝟赱齠洲痲筵娼癈齒竕癆繖蜚跚齡辣轤纈鶤蓍跚齡齡闥繖畆蝟昭粡竚癈鷭п粐Ь鳫蛹絳蓍竏蓖矼鱚蜴蒹瘢跫竅闔綣蝟昭粡竚癈鷭п粐Ь癈齬闥肅跂齒葹癇痰跂諷辮鱇站纉綣蝟昭粡竚癈鷭п粐Ь蓍鈑鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹闥轣閹蒹鳫蛹蜩繞粡鈑踟蜊韭絎鳫鹿粡寂蝟赱齠洲痲筵娼釶辣韶縺鴦蜥齡跚鈬肬跛阯繖竢跫遯鈔蒹畆蝟昭粡竚癈鷭п粐Ь蜩閹蒹纃矼鴦苒阨隱辮癇癆繖齔痺纉楠鮗蝟昭粡竚癈鷭п粐Ь逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼癜闥鷓蜒籬鉗繻跛瘤鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始釿蜩蛹葹矼緕鱚癆繖竅吶髟蜥絋踉晒鹿粡寂蝟赱齠洲痲筵娼癆闕繽鈬蜴癇笊赱苒阨蜴鰾纈艱綣蝟昭粡竚癈鷭п粐Ь繿齡繖纉阨鱆絎蓍蜩闔蒹鹿粡寂蝟赱齠洲痲筵娼装白阨霪蛹絋踉晒蜥繝癈蓖肬跛阯蜴膽蝟昭粡竚癈鷭п粐Ь逅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼装奘鞳癈蜒鹿粡寂蝟赱齠洲痲筵娼装令辣草痺蒹粱蜴粤蓖鴦⊆蝟昭粡竚癈鷭п粐Ь萼黼鯑蛹齟閭瘡鞜竏絲鞜齠癈齬闥糂鹿粡寂蝟赱齠洲痲筵娼装白阨霪蛹齟閭瘡鞜竏絲鞜齠鳫鷦蝟昭粡竚癈鷭п粐Ь繿鱚鳫蓖鴦鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蒹銓蜒癆蜿頏閭纉蜩阯鈬迴鱚鉚闌筮鹿粡寂蝟赱齠洲痲筵娼怦緕繿齡鱚竇蝟繖瘤鱚髟纉纈釶辣鈔鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾鱚韭蜈筱蒹鳫蛹蜩蜥齡蒹站繖黼綣蝟昭粡竚癈鷭п粐Ь齦韶跚繖黼鴈瘢蜩蜴蒹繿鱚苒阨隰蜚鹿粡寂蝟赱齠洲痲筵娼蜩緕蒹癈齬闥肅跂蛹矼蒹站繖黼蜀蒹鹿粡寂蝟赱齠洲痲筵娼纈釶辣蜴蒹鱚瘤蜀蒹韭蜈鞜齠鰾癆竏纉蒹鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾鱚蜴葹肅跂膚銷纉齡辮聲蛹蝟昭粡竚癈鷭п粐Ь窿纉跛肬鰲蜆粤隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢釶辣就矚皷竊瘻▽苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь汝繿銓踟鼡繖齡蜿銖硼癈蜒荀踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹闌跫鈑齡蜿銖緕續鼡繖纈胙繿銓踟鹿粡寂蝟赱齠洲痲筵娼繚癇癈蜒蒹銓蜒癆蜿隨鼈阨趙粤鴦閼鹿粡寂蝟赱齠洲痲筵娼癆癈蜒蒹銓蜒癆蜿蜩纈矚皷祠鈔蜩蜊蜚繖鐚蝟昭粡竚癈鷭п粐Ь蒹續聽癆纉葹葹矼緕鱚黼銓繖硼酪齡綣蝟昭粡竚癈鷭п粐Ь闥蜴鱚齡蜴蜴苴葹鞳關跂緕瘤繞綣蝟昭粡竚癈鷭п粐Ь逅跂辣銓繖皷鈑闕瘡鴈癆癜緕竅闔竏纃絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖釶辣就跫苡▽苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь被粹閾職踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍蜴竇鳫纈肅鴦齡癇蜊韭纃緕鈑癈蜒鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔碵蜚痲迚鉗齡鱇鴦癘銓繖謗阯阯鹿粡寂蝟赱齠洲痲筵娼續蒹黼跫阨蜴竇蒹鳫纈痺蒹纈釶辣鹿粡寂蝟赱齠洲痲筵娼瘤鞜齠鰾蜚癜緕竅闔縺跋癈纉竰蛯繖鹿粡寂蝟赱齠洲痲筵娼縺鳰蜈蜴蓍鱸瘡蜩鈿胚釿闔黼鴟纈鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿遯髟纉闔艱蜴碣阯黼鹿粡寂蝟赱齠洲痲筵娼肬鱧續蒹鱚粤銓蛛蜴肬鴉癆蜿遯癆蒹纔辣蒹鹿粡寂蝟赱齠洲痲筵娼鱚齒竇鱚髟纉筱蒹黼鴈瘢瘤鞜齠鰾矼鹿粡寂蝟赱齠洲痲筵娼齦韶跚繖艨蜴壽纈癇銛辣鳫蜚闔蜴蓍竏蓍蜩鹿粡寂蝟赱齠洲痲筵娼粤皷鱇碎絳癈蒹蜴碣阯黼蜴跚跫竅闔蝟昭粡竚癈鷭п粐Ь鈔阡蜩蓍鈑跂癘碣阯黼跫艸繖遯癆蒹鹿粡寂蝟赱齠洲痲筵娼鈬纈齒竅艱蜴阨矚鉉窿阨銓踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮被鬪踉蓖蜩鞳鱶瘰迴齡鱚髟緕癈諷篌蝟昭粡竚癈鷭п粐Ь齡蜿痰阨矚皷癜緕竅闔癇闔閹蒹瘧闥鹿粡寂蝟赱齠洲痲筵娼碣阯黼轣銛聲笏纈葹繞蜩矼蜴粤皷鱇碎綣蝟昭粡竚癈鷭п粐Ь縺鱚頤蜴蒹蜥鳫糒笏鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳暫闔黼髟緕蒹銖蓍髟纉闔鵺阨瘤蝟昭粡竚癈鷭п粐Ь闥鴒踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏瘢綵癈齬闥粐蛛跫腆碣鹿粡寂蝟赱齠洲痲筵娼阯瘤葹鈑癆蒹癈齬闥硼跫闍跚諷職踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蛛跫癆關闥蒹黼銓纈蒹蜥黼鴈瘢綣蝟昭粡竚癈鷭п粐Ь鈔癈齬闥蜩芟竢銓瘟銖纔癆阨蜆阡鹿粡寂蝟赱齠洲痲筵娼蜴粡竅葹銓繖纈絎跫闍粡聿纈緕蜴鹿粡寂蝟赱齠洲痲筵娼侮鴈續跫鱚瘤励竅鞳瘤竢銓瘟銖蜀聽鱚銓纔鹿粡寂蝟赱齠洲痲筵娼綜蜚鼡肬肅繻糂葹纈蜃蔗阡鈔纈齡瘤蝟昭粡竚癈鷭п粐Ь闥逅跂励竅鞳鼡纈鞳繪玻專纈鹿粡寂蝟赱齠洲痲筵娼苗Ё瘤纖蜃蔗阡鈿癆葹辣瘤鶤鬪阨蜃蔗鹿粡寂蝟赱齠洲痲筵娼銓頏阮蜆痲粡闔瘡赱釶鴒纔齒葹纈鹿粡寂蝟赱齠洲痲筵娼葹矼纈粤癆苡蜴闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮寰肬鶯癆繻蒹黼蓍鈑癇聽癆纉碣阯黼鬪鈔鹿粡寂蝟赱齠洲痲筵娼竅銕阡竢銓鳫跛繖鳫黼鴟纈蜆絎銓蒹鹿粡寂蝟赱齠洲痲筵娼跫芍闖粡聿纈緕蒹跛繞逅跂辣銓阨鮗蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆蜿黹蒹辣壽纈蜩葹鈑癆蓍鷦蝟昭粡竚癈鷭п粐Ь閾蜴陂闖謫蜍蜀阨鱚皷鈑癈蜒蒹銓蜒癆蜿隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖釶辣就鞳鴦蜩癈鵞碣鹿粡寂蝟赱齠洲痲筵娼阯轣諷鈿癈辣闥鞜齠鰾蒹纔蝟昭粡竚癈鷭п粐Ь蜊綽界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮代竅迴齡鳫纈齡闥癈齬闥蜴肬鴉癆蜿闔踟鹿粡寂蝟赱齠洲痲筵娼肬笊鴪緕碣阯黼黼齠蜿遯蒹竚闢鳫纈蝟昭粡竚癈鷭п粐Ь闥艱阨纈釶辣鈔癈齬闥筮鍖蒹皷黶辣鹿粡寂蝟赱齠洲痲筵娼皷艨蜴跛繞絖緕黼鴈瘢瘤篌蝟昭粡竚癈鷭п粐Ь癈齬闥筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鱚鈿蜴癆瘤粹鈬硼蓍闔蒹纈鮗蝟昭粡竚癈鷭п粐Ь蜆絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳使阯纐纈迴齡繝緕鴦蜿銖轣褊碣阯黼鴦鹿粡寂蝟赱齠洲痲筵娼竢銓瘟痰蛹蜚纃纃矼癈齬闥肬鱚鬪癆鹿粡寂蝟赱齠洲痲筵娼鈬葹跫蜴艨蜴怦蛹蜚粤矚碎續蒹鮗蝟昭粡竚癈鷭п粐Ь蓍蜩闖蜆縺皷釿蜚聿繝踟鴪蜆纉蒹銓蜥綣蝟昭粡竚癈鷭п粐Ь濶銓葹鈑繝蜚蜴蒹蜥齡赱竇蜚竇鶯瘟鉤蝟昭粡竚癈鷭п粐Ь闔鉗緕肬纈瘤皷逅跚肅纉蒹黼鮗蝟昭粡竚癈鷭п粐Ь纈蜈釿絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖釶辣就鞜齠鰾蜒紜碣鹿粡寂蝟赱齠洲痲筵娼蔔閻蜚闕續蜊纉鼡肬逋癈齬闥蜒綽界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦緕銓纈蜴鞜齠鰾鳫笏繖繧蜚肬肅鴦蝟昭粡竚癈鷭п粐Ь蜊絳阨蛹閭竅皷闔瘡踟阡蜒癆阨鱚鼡繖闥阨鮗蝟昭粡竚癈鷭п粐Ь癈齬闥蜒絎蓍轣葹韶緕迯繖蛛踟胄纈阨銓纈繖鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾蒹蜥齡蜊絳蜚癨瘰鞳緕阨跚站郤蝟昭粡竚癈鷭п粐Ь蒹蜥齡蜴瘋癜緕竅鈑蒹蜥齡蜊絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍葹韶緕肬鴒蜊韭絳闔續蒹跂齠闔胚皷鈑蝟昭粡竚癈鷭п粐Ь縺齒遯艨蜴癘蜴蒹癨葹碣阯黼竅竏纉鹿粡寂蝟赱齠洲痲筵娼跫芍蜴肬鴉癆蜿隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳嗣閾蜴鈕闥轣闔齡闥繖碣阯黼矚黼闔蒹鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔縺跋齔繝蜀蜈磔蒹踉飼熙苳餐萠瘢絋踉晒鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絳鈔黼鴟纈瘢絎蜩癨碣阯黼竅郤蝟昭粡竚癈鷭п粐Ь蜩鈑鼈續緕蒹踉飼熙苳姉鱸熙苳癜緕竅闔縺跋鹿粡寂蝟赱齠洲痲筵娼闔鈬蜚瘤闔鈿纈囂蜀阨蜚蜴闔綣蝟昭粡竚癈鷭п粐Ь瘢肬黼鴟纈瘤蜴鴈瘡蜴謫黼鴟纈繙纈鐚蝟昭粡竚癈鷭п粐Ь葹黼鴟纈粡聿纈緕釶辣碣阯黼葹鈿癨謗阯鹿粡寂蝟赱齠洲痲筵娼癆蒹癇蜴痺黶辣纈鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥逅跂蜀阨纈蜩蜚蒹厂鹿粡寂蝟赱齠洲痲筵娼蔗痕逅跂闕鱸踉晒蜒鱚髟蜥繖鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔鳫纈阨趙纃纃矼齦韶跚繖鹿粡寂蝟赱齠洲痲筵娼纈釶辣鈔癈齬闥筱齠閭蛛蒹闢瘢綣蝟昭粡竚癈鷭п粐Ь踉飼熙苳糸逅跂闕熙苳皿罨鶯瘤銓纈釶鱚粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼胚跛髟瘡蜀蜈挽楊蜴謫鞜艱鵺阨鱚蒹黼銓綣蝟昭粡竚癈鷭п粐Ь厂踉飼熙苳肢雕纔瘢韭絎竢躁頏蝟癆絲熙苳錆阨艾蓍鷦蝟昭粡竚癈鷭п粐Ь鱚瘡踟笏踟蒹瘢孀蓑蒹鳫纈閻鈿謗阯蓍鷦蝟昭粡竚癈鷭п粐Ь闥絳鈔肬鱆繖鱚髟纉癜緕竅闔鹿粡寂蝟赱齠洲痲筵娼蜴肬鴉癆蜿瘍瘟遯蜴竇踉飼熙苳糸逅跂闕熙苳瘤篌蝟昭粡竚癈鷭п粐Ь踉飼熙苳似逅跂闕熙苳癇鈿纔痺黶辣闢瘢絎鹿粡寂蝟赱齠洲痲筵娼搶鳫纈癈鞜鶯蜒癇癨謗阯葹纉癇綣蝟昭粡竚癈鷭п粐Ь瘢皷踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏瘢綵≒癈蜒竅癆▽苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь嚆笊鱸癘縺熙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳斬癈蜒蒹銓蜒癆蜿鼈阨趙阡竢銖蜆纈繖繝肬瘤蝟昭粡竚癈鷭п粐Ь癇笊赱鳰鱸苡鳫繙蜴蜚蜿閹繝絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐踉蓖鞜齠鰾齡闥繖黼鴟纈緕竰篌蝟昭粡竚癈鷭п粐Ь闥轣蜩癈黼胙闕蒹跚緕蒹纈蜴赱蜴鹿粡寂蝟赱齠洲痲筵娼竰闢鈬闥覡銷闔跚齡緕蜴銷癇蜈羲蝟昭粡竚癈鷭п粐Ь痺諷齊蜀聽跛痰跂鱚痲蒹黼鴈瘢瘤鞜齠鰾鹿粡寂蝟赱齠洲痲筵娼蜴蒹跂癇蜚閻痺鳫齠踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗闔踟葹纃纃矼癆蒹黼鴈瘢瘤鞜齠鰾鹿粡寂蝟赱齠洲痲筵娼癇鞜齠繖蜚纐纈鱚髟纉阡緕蒹黼肅鴦蝟昭粡竚癈鷭п粐Ь纉蒹蜴囂蒹痺諷齊蜀聽鈬繖阡跚齡緕蜴癆鹿粡寂蝟赱齠洲痲筵娼鞜鶯蜒癇踟癆繚蜒蜊絳肬跫鈑鈿繞鹿粡寂蝟赱齠洲痲筵娼瘤皷鈑跂繿齡闕痺鳫齠蒹蜥絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鈔蜴粐蜚蜿葹蒹闔銓繻蜩踈苡蜴膽蝟昭粡竚癈鷭п粐Ь竰闢鈬闥蜴蒹跂癇瘤齒皷鹿粡寂蝟赱齠洲痲筵娼竢銓瘟銖緕皷鈕闥轣闔黶辣痺諷齊蜀聽篌蝟昭粡竚癈鷭п粐Ь癘痺竇齠癆鈕闥轣闔蜚緕鞜齡纐緕綣蝟昭粡竚癈鷭п粐Ь黼鴈瘢瘤鞜齠鰾纈鈿繖艨蜴蜥繝痺竇齠鐚蝟昭粡竚癈鷭п粐Ь蒹繧蜚絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳残闔黼癈蜒蒹銓蜒癆蜿肬瘤蓍鈑葹鱚髟蜥纉鹿粡寂蝟赱齠洲痲筵娼鱚瘡繝蜚蜩續鱸辣銓闥闢纈鵺蜴竇纈聽蝟昭粡竚癈鷭п粐Ь繽韭跛瘠阨碎絳葹蒹繝纉黶鴒閹癇綣蝟昭粡竚癈鷭п粐Ь鈔繿齏緕肅鈔癈齬闥糂被鬪齒辣闔綣蝟昭粡竚癈鷭п粐Ь痲纉蜥續遯諷纈跚跂闥蒹鹿粡寂蝟赱齠洲痲筵娼粹鎬鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳斬癈蜒蒹銓蜒癆蜿痺鳫齠嗷竢銕繝闔蓖鬪蛹矼鹿粡寂蝟赱齠洲痲筵娼黼笊鱚皷釿纐纈蓍鈑苡蜴緕竰筱釿跿粡鈑蒹鹿粡寂蝟赱齠洲痲筵娼纈釶辣鈔癈齬闥筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟釶辣就粡艱齡▽苳殺踉晒瓲苳残蜃纉癜緕竅闔右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮槍糅纉皷鈑鈬黼笊鱸癘縺矚皷禺蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆蜿遯蜃纉癜緕竅闔鳫粤瘤踉纈釶鹿粡寂蝟赱齠洲痲筵娼辣閼闥鳫笏蜴繧闔銓被鬪癈鹿粡寂蝟赱齠洲痲筵娼聽竅癆鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢釶辣就粡艱齡鳬鵞被粡艱齡鳬鵙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳残蜃纉癜緕竅闔蜊韭纃緕磔蒹閼綣蝟昭粡竚癈鷭п粐Ь踉飼熙苳詩閼焉萬粡艱齡熙苳皿蒹鱚瘤趙纈閼絳鹿粡寂蝟赱齠洲痲筵娼迴籖粡艱齡熙苳錆蓍竏逅跂辣銓繖闌粤鴦蜿閹蒹鹿粡寂蝟赱齠洲痲筵娼粡艱齡蒹銓蜒癆蜿齔繝蜀蜒癆蜿遯蓍竏蛹頏閧痰踟鹿粡寂蝟赱齠洲痲筵娼鈿鳬蜚鈬碣阯黼鴦踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮專蜴粡艱齡蒹銓蜒癆蜿遯阨鞜齠鰾鈬黼銓鹿粡寂蝟赱齠洲痲筵娼痺鳫齠蒹續鳬竚縺鬪瘡鱇銖迚繖鷦蝟昭粡竚癈鷭п粐Ь幼粡艱齡纈癈齬闥筮蜩癨鞜齠鰾鹿粡寂蝟赱齠洲痲筵娼竅銕阡粤鴉蜴繖齊蜀肅鈑續鳬鱇聿蜒踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽胚跛鞳竕肅竅闔粡艱齡蒹銓蜒癆蜿竅矼繞郤蝟昭粡竚癈鷭п粐Ь蜴鴈續鈔癇糂閭緕卞俺鰻蜒竅黼綣蝟昭粡竚癈鷭п粐Ь蔗痕窺蜒鶤藪繖頤皴蜈隴鱠祺怯勲熙踉晒蝟昭粡竚癈鷭п粐Ь粐蜚蜿釶蜴肬鴉癆蜿瘤鱚齒竇痰阨幼竅矼阨鈔蝟昭粡竚癈鷭п粐Ь踉飼熙苳肢雕纈鞜艱鶤矣糒瘢雹鈞齔詩痰膠鶩辟起辟貴蔗迪熙苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏瘢綵≫蜃纉闔肅腆衷鈕蜃癆蜿邵鹿粡寂蝟赱齠洲痲筵娼會阡繝鈑闔銓蜚粡艱齡蒹銓蜒癆蜿遉踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹頌闥闔肅苺鱸鈑阨黼鴟纈闥蜃纉蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆蜿癇鴒蜊蛹癇闥蓖黼闥癈蜒鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉誌讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳暫鱚癆鞜齠鰾蛹絋踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚嚆竢鈕蜃癆蜿黼蓍鞜齠鰾蛹絋踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚闔瘡踟竰縺鳫蛹絋踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏瘢綵∵蜃纉槇鋳縺鈑癈齬闥肅跂界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蒼蜚矚皷癜緕竅闔皷逅跂跚頏阮蜆繖鹿粡寂蝟赱齠洲痲筵娼鱚癆瘤轣蜴蜴蒹癈齬闥肅跂蓍竏蛹矼黼鹿粡寂蝟赱齠洲痲筵娼粤鴉蜴續蒹鞜鶯蜒癇黼鬣釶辣鈔癈齬闥癇綣蝟昭粡竚癈鷭п粐Ь瘡蜆壽蜩跚竅跛繖踉飼熙苳肢蜃纉熙踉晒瘤跛綣蝟昭粡竚癈鷭п粐Ь閭癆繖砠遉踉晒蜥繝鴒纈纐纈阨銖跛繖鹿粡寂蝟赱齠洲痲筵娼草痺蒹膚阨銖跛繖鞜竏胙闕闕鱸續閹痺諱艱鹿粡寂蝟赱齠洲痲筵娼轣釶艱鬪踉飼熙苳肢蜃纉熙踉晒跚諷踟葹繞韭痺繖鹿粡寂蝟赱齠洲痲筵娼齒辣纈蜴阨鞜踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮夬鱚癆鈬粡艱齡癈齬闥肅跂鞳墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蔗粡艱齡齟閭瘡鞜竏絲鞜齠蜃纉鱚瘡纈釶辣鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉飼熙苳肢蜃纉熙踉晒蛹癈肬粤皷鱚鞜齠鰾瘤篌蝟昭粡竚癈鷭п粐Ь蒹癈蜚艨蜴竢鈕蜥蜚踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗葹鱚瘡肬蜒癜緕竅闔蛹矼鹿粡寂蝟赱齠洲痲筵娼鱚髟蜥繖鞜鶯癇苺辣銓蜩鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始釿瘍瘟遯癈蜒蒹銓蜒癆蜿遯阨鱚釿阨鱇艱篌蝟昭粡竚癈鷭п粐Ь韭痺艱鈬鱇肅跂闕纓蒹鱚皷粤粹笊辣銓鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鈔癈蜚蔗鞜齠熙苳蛹蜚蒹踉飼熙苳鮫礒踉晒鹿粡寂蝟赱齠洲痲筵娼肚瘍鱚癆纉纓蛹絳鬪肅跂癆瘢瘡鱚痲蝟昭粡竚癈鷭п粐Ь齡鵺繻續纉蒹闔銓閹葹肅跂鈔緕纈癆纉纓鹿粡寂蝟赱齠洲痲筵娼肅跂蜚韭痺絎迚熙苳肚瘍闥粤粐鹿粡寂蝟赱齠洲痲筵娼鈬纈鈕闥轣闔瘤齡蜴鞜齠鰾蛹絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖釶辣就蔗粡艱齡竢鈕蜃▽苳殺踉晒瓲苳屍續蒹闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼黼蓍鞜齠鰾蛹絋踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始釿葹鱚癆繖癈齬闥肅跂鈬繖跛鹿粡寂蝟赱齠洲痲筵娼草痺蒹硼蜴鰾纈齡癇蜴蜚齒竇羲蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆繖黼蜴肬鴉癆蜿隨蓍竢鈕蜃癆蜿蜩闔鹿粡寂蝟赱齠洲痲筵娼肬跛阯蜴粡鱚笏蝟纉墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂繻跟痲粡鈑就晦鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就跂胄▽苳餐萪絋踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就跂胄跚芬就陟蜆就涯唖装緕竅闔鹿粡寂蝟赱齠洲痲筵娼鞳繪鈑黼筮蜩癈絳跛黼鹿粡寂蝟赱齠洲痲筵娼堤艱齡熙苳殺踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇装令辣筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇瘡蜃扈♯關糘莉彊▽苳市蒹鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔縺跋釶辣筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就跂胄▽苳餐萃蜃纉蛹絋踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就跂胄跚芬就陟蜆就涯唖壽跫竅闔羲蝟昭粡竚癈鷭п粐Ь蒹癈齬闥肅跂筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就跂胄▽苳餐萃蜃纉鳫鍋跂筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇瘡蜃扈♯關糘莉彊▽苳嗣閭癆蜿閹蒹鹿粡寂蝟赱齠洲痲筵娼苒阨肅跂蜀銷筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就跂胄▽苳子繿鱚筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇瘡蜃扈♯關糘莉彊▽苳市蒹鹿粡寂蝟赱齠洲痲筵娼鱚髟蜥纃緕鶇蓍竏矼癆蜩肅繖闥粤鱇銓鹿粡寂蝟赱齠洲痲筵娼痲迚齠蜿遉踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纉粡鱚笏蝟纉癨韭痺繖窿纉鵙踉晒蛹綣蝟昭粡竚癈鷭п粐Ь鞜鶯蜒癇蜥繝鴒繪鈑鳫笏繖闥癨蜴蒹鹿粡寂蝟赱齠洲痲筵娼轣蜴纈竢鈕蜃癆蜿肅跂蜴踉飼熙苳殺瘢雹踉残蜥繝鴒逅紫熙苳纂蝟昭粡竚癈鷭п粐Ь繝闔闥鈿纈竢鞳闔蜴纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽肬跛阯蜴纔瘢韭粤肅鈬瘤蒹銓蜒癆蜿鱚瘡竅跛繖鹿粡寂蝟赱齠洲痲筵娼∃鱸〓蒹癈齬闥肅跂閭癆繖蝟昭粡竚癈鷭п粐Ь踉飼熙苳晒鬲跫竅豁瘰痺蒹癈齬箝粡艱齡熙苳跛繖鱸胱鹿粡寂蝟赱齠洲痲筵娼纈粤銓蜚鉤纈釶辣糅矚窿蔘鵙踉晒鮗蝟昭粡竚癈鷭п粐Ь踉飼熙苳私闥肚熙苳跛苒瘤痺竇齠蜀蒹頏阮蜆畆蝟昭粡竚癈鷭п粐Ь癈齬闥癆癆竏纉蒹癈齬闥齡闥繖鞜齠鰾鹿粡寂蝟赱齠洲痲筵娼肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼装奘鞳蜃纉蝟昭粡竚癈鷭п粐Ь萠瘢∃鱸⊆蝟昭粡竚癈鷭п粐Ь萃蜃纉蛹齟閭瘡鞜竏絲鞜齠蜃纉蝟昭粡竚癈鷭п粐Ь繿鱚黼糅矚窿蔘粹鱠貅蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽韆鱇黼會蝟癆紜蛹矼蜩韭癨繖鞜齠鰾鹿粡寂蝟赱齠洲痲筵娼竟隲陂纈纈蛹葹鞳蒹蜥鹿粡寂蝟赱齠洲痲筵娼竰繖緕瘡鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖釶辣就粡艱齡苒阨陟闔瘡踟竰縺鳫蛹絋踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐葹碵纈筱蒹鱚鱚阡瘤粡聿纈緕竇矼繞郤蝟昭粡竚癈鷭п粐Ь蓍竢鈕蜃癆蜿頏閭纉瘤癆繿鱚磔癈蜒鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔粤黹鱸矼蜴蒹鱚阨黼笏蜿隨蓍蜩鴣綣蝟昭粡竚癈鷭п粐Ь踈閹鳫笏蜿釶跚壽苒阨肅跂黼肬粡艱齡鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔纔痺黶辣癆黼肬矚皷禺蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆蜿隨葹蜩黶蜴纉苒阨肅跂闔皷齡鹿粡寂蝟赱齠洲痲筵娼釶辣苒阨隱闌闔瘤跚齡辣轤纈閹鹿粡寂蝟赱齠洲痲筵娼癆鳫楠纔瘢韭綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь粱蜴鷓蜊陌瘤鈬鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始釿蜩蛹葹矼緕鱚癆繖竅吶髟蜥絋踉晒鹿粡寂蝟赱齠洲痲筵娼癆闕繽鈬蜴癇笊赱苒阨蜴鰾纈艱綣蝟昭粡竚癈鷭п粐Ь繿齡繖纉阨鱆絎蓍蜩闔蒹鹿粡寂蝟赱齠洲痲筵娼装堤艱齡白阨霪蛹絋踉晒蜥繝癈蓖綣蝟昭粡竚癈鷭п粐Ь闌跫鈑逅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼装奘鞳蜃纉蝟昭粡竚癈鷭п粐Ь萠瘢∃鱸⊆蝟昭粡竚癈鷭п粐Ь萃蜃纉蛹齟閭瘡鞜竏絲鞜齠蜃纉蝟昭粡竚癈鷭п粐Ь萃蜃纉鳫鍋跂鬲跫竅豁瘰痺蒹癈齬箝粡艱齡鳫鷦蝟昭粡竚癈鷭п粐Ь繿鱚鳫粱蜴鷦蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽癜緕竅闔鳫竇齠黶辣癆黼磔癈蜒鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔部肅鴦鱸肅繖葹纈蜴蒹鹿粡寂蝟赱齠洲痲筵娼鱚髟蜥繖鳫瘤筱蜩緕蒹癈齬闥蜩鹿粡寂蝟赱齠洲痲筵娼鱸肅繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏瘢綵≫蜃纉癘縺槇秩癆鵙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳斬繙闥跂瘰銓蜴粡艱齡蒹銓蜒癆蜿蜴齡縺閹鹿粡寂蝟赱齠洲痲筵娼矚皷癜緕竅闔纈癇聽蜴苴葹鼈阨趙鹿粡寂蝟赱齠洲痲筵娼謗阯硼踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮酪齡逅闥銓踟鈬繖謗阯葹踉蓖粡艱齡鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔癈蓍苒縺痲銓瘍癆阨闔緕篌蝟昭粡竚癈鷭п粐Ь阨鞜齠鰾竰闢鈬闥蜴蒹跂癇蜚鈿蝟昭粡竚癈鷭п粐Ь竟鶯繖瘡轣褊碣阯黼鴦籬鈔鼈阨趙鹿粡寂蝟赱齠洲痲筵娼鈿蜚皷蜒竅銕阡闔闌蒹鹿粡寂蝟赱齠洲痲筵娼碣阯黼鴦葹鞳關跂蛹矼皷鈑齦竏闔阨蜴瘤續鹿粡寂蝟赱齠洲痲筵娼皷侮癇笊赱鬪鞳鱇赱鬪蜒鳫齒胄銓纈鈬蝟昭粡竚癈鷭п粐Ь跫鱚貴闥癆纈酪跛窺握瘤励竅鞳赱鮗蝟昭粡竚癈鷭п粐Ь跛総癨齦韶闥粡艱齡蒹銓蜒癆蜿遯蓍跂癇蜿鹿粡寂蝟赱齠洲痲筵娼阡蒹碣阯黼鴦鈿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳士纔蜚鱚艨鰾黼笊鱸闔皷粤鱇闔鵺阨蓖篌蝟昭粡竚癈鷭п粐Ь鈔纈齡瘤蜴苴糟阨艾阨鞜齠鰾鈿鞜齠繖郤蝟昭粡竚癈鷭п粐Ь蒹跂癇瘡閹阨籬鵺鈔蜩鱇纈轣跛鹿粡寂蝟赱齠洲痲筵娼辣癈閹繝蜚鈔瘡阨艾阨鞜齠鰾鈿鱚瘡踟鹿粡寂蝟赱齠洲痲筵娼黼銓瘡讙蜃纉肬鴉蜚齒辣闔鴒瘢蛹蛛鮗蝟昭粡竚癈鷭п粐Ь蜚鳬蜴苴挽墅阨趙黼葹蜴肬鴉癆蜿褫齡鹿粡寂蝟赱齠洲痲筵娼蜃纉鞜齠鰾鈔黼葹瘟痺竇齠綣蝟昭粡竚癈鷭п粐Ь闔銓皷釿癆蜃纉鞜齠鰾鱚瘡踟跛蒹鹿粡寂蝟赱齠洲痲筵娼蜴肬鴉癆蜿鱚髟蜥繖痺竇齠蒹繧蜚絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹闥瘡蜩癆葹闔銓葹鱚瘡踟鹿粡寂蝟赱齠洲痲筵娼鈬繖諷頸繝絳黼嗅踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢右苳殺踉氏瘢綵≫癆痰癈紜鶴矚黼蒹銓蜒癆蜿郤蝟昭粡竚癈鷭п粐Ь閼纉右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮逮皷癜緕竅闔鈔蜃纉癜緕竅闔阡齦聿纈鹿粡寂蝟赱齠洲痲筵娼胙闕蒹瘢轣褊肚癡壽纖黼纔肅跂鱚蒹鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔鈕闥轣闔壽頏閧跂蓍蜩葹蝟昭粡竚癈鷭п粐Ь闖謇鈑闕續蓍鈑蜴纔肅跂鴒跫鱇纈鹿粡寂蝟赱齠洲痲筵娼跚諷鴒蜴蜴齒辣蜴蜴闖癆癈蜴粤阨鹿粡寂蝟赱齠洲痲筵娼葹齡癇癆蒹繚蜴鉗鈑瘤鳬蓿阨艾闔鞜艱蝟昭粡竚癈鷭п粐Ь蜊肅鈔葹癇跫闍蜴肬鬯阯轣芍鈬鹿粡寂蝟赱齠洲痲筵娼癆蒹纔辣阨繞蜴黶辣蓍鈑粹逾蝟昭粡竚癈鷭п粐Ь纃纃矼纈蜚癈繙闥絳葹齡癇癆蒹鹿粡寂蝟赱齠洲痲筵娼矼芍銕蜴瘍瘟遯鈔闥鳫闔鞜艱辣銓蛹阨鹿粡寂蝟赱齠洲痲筵娼肅鈔瘍瘟隨鈔蒹纔辣綜辣胄纈葹鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍蜴竇墺蜩跂齠癜緕竅闔癈矼纈蜀蜈篌蝟昭粡竚癈鷭п粐Ь鴒蜊癆闔銓鱚髟纉筮鈔纐纈辣鹿粡寂蝟赱齠洲痲筵娼粹笊辣銓痺竇齠繖蓍竏黼笊鱚癈蜒粡艱齡鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔草痺蒹癈關緕闢癈齬闥肅跂鷦蝟昭粡竚癈鷭п粐Ь鈔闖鳫纃鈬蜴癆蜊絳銓蛹肅鈔綣蝟昭粡竚癈鷭п粐Ь黼癆鈑跫蜴瘤鱸肅纉蒹蜥癈齬闥筮郤蝟昭粡竚癈鷭п粐Ь蒹闥齡癈絳纈釶辣韭蜈蜩阡纈癆鹿粡寂蝟赱齠洲痲筵娼瘡讙鴒蜴蜴蒹蛹跛繞竏繝諷筮郤蝟昭粡竚癈鷭п粐Ь鱇艱葹趾肅跂蛹鈬繖矼縺矼肬鱚蒹黼鮗蝟昭粡竚癈鷭п粐Ь肬筮蓍蜩纈鼬阯踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦蛹蜩鈿砠頏閧跂肬鼾瘡黼纈鵺鹿粡寂蝟赱齠洲痲筵娼緕阨續銓赱鱧纈矼鴦纈蒹鱚赱鱧纈辣瘤鷦蝟昭粡竚癈鷭п粐Ь纓糅繖蜩繝闕纉鳫蓍砠踟跫轣銷癈纉蝟昭粡竚癈鷭п粐Ь聲笏跚纈釶辣癈齬闥竢轤蜴癆蜿銖蛹艱鱚裙笏繖鹿粡寂蝟赱齠洲痲筵娼矼竅癜緕竅闔閼褫齡痲齔緕齒莠蝟昭粡竚癈鷭п粐Ь蜊跫闍蜴肬纈釶辣肅跂葹草痺蒹蛹褫齡鹿粡寂蝟赱齠洲痲筵娼艱鱚閹瘟鈑鈔續聲蛹繖蒹銓蜒癆蜿隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺纉竅黼鵺阨繞瘤踉纈釶瘤癆鹿粡寂蝟赱齠洲痲筵娼瘡鴈癆蝟蜩齒辣癇蜈籬矚黼鶴矚黼癇綣蝟昭粡竚癈鷭п粐Ь頸蜊蝴繖闥闖謇鈑闥癇笊赱韈繝閹鈕闥轣闔郤蝟昭粡竚癈鷭п粐Ь纈赱鱧籬續部趙蜴粤蜴鰾纈鱇韈粲蝟昭粡竚癈鷭п粐Ь閭癆鞜鶯蜒癇繝闥筱鈔蒹葹鴒瘤苺瘍纉闥鹿粡寂蝟赱齠洲痲筵娼齬蜀跫竅鈑繝闥糂葹轣鞜鶯蜒癇鱸鱸甌鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鱚鱚纈阨迴糒跂癘瘟赱碎肬草痺蒹鐚蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆蜴鱸續閹蜀聽鱚銓癆痰癈纉侮蓍鷦蝟昭粡竚癈鷭п粐Ь繝闔ъ褫齡闖癆閼纉蓍竏蓍鞜竏絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢釶辣就迴籬葢癶迴籖癜焙瘤迴籖癜焙硴王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮迴籖癜焙皃踉晒鈔踉飼熙苳詩閼焉萬籵蹙踉晒鱚閼纉鹿粡寂蝟赱齠洲痲筵娼蜒跂阨繞黼鴈瘢纉鈔癈齬闥糂賃賃夕蝟昭粡竚癈鷭п粐Ь蛹纉壽纈癇聽頏痺竅粡聿纈緕竇矼繞賃蛹纉鈔鹿粡寂蝟赱齠洲痲筵娼賃肅跂鶤鈔闔闕關纈癆蜴齷齡纃鵺癈癇蜿鹿粡寂蝟赱齠洲痲筵娼帯提瘤也銛蒹癇纔痺黶辣蓍鈑搶鼈阨趙鹿粡寂蝟赱齠洲痲筵娼韈站蓍竏纐纈迴糒跂轣諷迴齡緕黼鹿粡寂蝟赱齠洲痲筵娼鞜鶯蜒癇赱闥閹蓖蜒絎粹阡癘賃竟鶯郤蝟昭粡竚癈鷭п粐Ь阨韭癆肬鴉轣鈬繖蜴齡瘡蜚搶粹跫痲郤蝟昭粡竚癈鷭п粐Ь逅跂辣銓癆蜿閹癆踉飼熙苳肢雕鼬繞顆竅竢躁熙苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢釶辣就籵肅跂鵞代鳬繻纖肅跂鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳残肅跂鵺踈謗阯癈纈諷跂籬矚黼蛹纉癇綣蝟昭粡竚癈鷭п粐Ь蜊韭纉肬鴉籬矚黼瘤癇鱇纈粤瘡踟肬鮗蝟昭粡竚癈鷭п粐Ь蒹闥閹癆癆繞糂矼鱚肬挽墅鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔賃蛹纉鱚纖瘡瘟鴦壽癆鵺蒹鹿粡寂蝟赱齠洲痲筵娼釶辣鱸痰跂瘤跿閹葹鱸痰跂怦蛹阡蒹鮗蝟昭粡竚癈鷭п粐Ь癆痰癈纉跛阯蒹鱇艱轣銷蜈趙蜴蝟緕繝闥筱鹿粡寂蝟赱齠洲痲筵娼賃蛹瘡跫鉤蜩瘟鱸鈑諷瘤跿絎畆蝟昭粡竚癈鷭п粐Ь瘢綵∽闖熬續遐鱚羹■肬阡陰齦隍苳傘蓍蜩粤瘡闥鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔蜒鱚髟蜥纉鉤鞜蜥纈釶辣鈔鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏瘢綵∫銖跛癜籵▽苳刺銖跛蜴迴籖癜焙皃踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥蒹竟黼閹蓍鱸瘡ъ跌硼鹿粡寂蝟赱齠洲痲筵娼蜴齡瘡跚鈑鈔闔肅苺鱸鈑踉飼熙苳詩閼焉萬籵熙苳皿阯纐纈蝟昭粡竚癈鷭п粐Ь鴒蜴癆黶蜆纈竅矼蜥繝瘰韭蜈鹿粡寂蝟赱齠洲痲筵娼迴籖癜焙硴熙苳磔蜊韭鱚韭痺蜴т皈蜚т硴瘤篌蝟昭粡竚癈鷭п粐Ь賃賃友鱸阨竢迯瘤糂肅跂瘢纉瘤篌蝟昭粡竚癈鷭п粐Ь蜥繝鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍蜴竇踉飼熙苳詩閼焉萬籵熙苳蜩阡闕韈跂蜴粤聲鹿粡寂蝟赱齠洲痲筵娼跛繞繧趙鞜竏蜴鰾纈艱綣蝟昭粡竚癈鷭п粐Ь笏蜿釶跚跂齠阨踉纐纈蓍鈑蒹鶯繖蝟昭粡竚癈鷭п粐Ь阡癆蜴齡瘡跂草痺蒹蜚鼈癇繖礪繝蝟昭粡竚癈鷭п粐Ь竟鶯轣矼碎碯蛹迴糒跂鈔閨蜚鹿粡寂蝟赱齠洲痲筵娼蜴草痺蒹踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮夬趙鞜竏胙闕竰癆竏蜚迴籖癜焙皃踉晒踉鹿粡寂蝟赱齠洲痲筵娼蜴肬跛阯蜴竢鈕蜃絋踉晒蜴蜴阨瘰痺蒹鹿粡寂蝟赱齠洲痲筵娼齒竇閼粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь闔肅苺鱚釶碎絖迴糒跂潤萬籵鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始鬪葹迴鱚闕韭纔踉飼熙苳祉闔肅苺鱚熙苳竢迯瘤篌蝟昭粡竚癈鷭п粐Ь蜴絳阨瘤痲釶碎絖迴糒跂潤萬籵熙苳纂蝟昭粡竚癈鷭п粐Ь頸蜿葹竢迯瘤跚鈬瘤跛續鹿粡寂蝟赱齠洲痲筵娼迴籖癜焙皃踉晒踉銓纈鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢釶辣就癜籵竢鈕蜃▽苳姉鳫笏蜴粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼迴籖癜焙皃踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始釿葹闕韈跂迴籖癜焙皃踉晒閼絳鈔鹿粡寂蝟赱齠洲痲筵娼跫痲繖蜴阨黼鴟纈跛蜴癆蒹鱚纈蝟昭粡竚癈鷭п粐Ь蜚粡聿纈緕竇續緕皷鈑繚癇蒹銓蜒癆蜿瘤篌蝟昭粡竚癈鷭п粐Ь皷鈑踉飼熙苳詩閼焉萬籵熙苳癜緕竅闔壽頏閭繖蜩蒹鹿粡寂蝟赱齠洲痲筵娼黶辣癆銓蓿阨艾蜚矚皷瘤粡艱齡鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉誌讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳暫鱚癆纈蛹絎薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳暫闔肅苺鱚鞜竏黼葹肅跂闥鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚闔瘡踟竰縺鳫蛹絎薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒闌鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖釶辣就籵迯瘤瘍紜鋳縺蒹黼肅跂界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纈蛹肬癜緕竅闔鵺蓍辣鈿肚癆鹿粡寂蝟赱齠洲痲筵娼蛹絳賃蛹絋踉氏瘢綵∽闖熬續遐鹿粡寂蝟赱齠洲痲筵娼蓿繙就f闖▽苳殺踉雌王踉晒齦隍苳殺踉晒瓲苳皿闥釶踟闔竇艨蜴蝟昭粡竚癈鷭п粐Ь鞜竏頏阮蜆纉蜊韭蛹蜚肬頤鴃闢閹鹿粡寂蝟赱齠洲痲筵娼轣釶芍鈑蓍纈蛹絎蓍辣蛹蜚蜩瘡跂篌蝟昭粡竚癈鷭п粐Ь踉飼熙苳私硴轣釶艱熙苳錆鈔蛹矼閭癆繖砠遉踉晒鹿粡寂蝟赱齠洲痲筵娼齦矮蜥繝鴒纈纐纈阨銖跛繖鞜竏絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉飼熙苳私硴轣釶艱熙苳蜩闕纓葹迴鱚闕韭蜒癆繖瘤鹿粡寂蝟赱齠洲痲筵娼蔗鞜齠熙苳闥踉飼熙苳肢蜃纉熙踉晒碯蜚齡蛹聲蜥踟鹿粡寂蝟赱齠洲痲筵娼皷逅跂壽齷銓癢蓍竏阨蛹跛矼皷鈑癈鹿粡寂蝟赱齠洲痲筵娼肬跛阯鷓鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь硴轣釶艱癈齬闥糂癆粐纈闔纉齒鮗蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蒼蜚蔗鞜齠熙苳錆阨蛹癆蓍竟蜴矼鹿粡寂蝟赱齠洲痲筵娼頏闕頸繖闥癈齬闥筱鈔蒹癈諷闔肅鴉葹蝟昭粡竚癈鷭п粐Ь癈齬闥磔蜴蜚艨蜴壽轣蜴蜀聽鱚釿蒹鱚癆鹿粡寂蝟赱齠洲痲筵娼鱇纈葹蛹矼蜴竰縺筱阨鱚鱚癆蜴畆蝟昭粡竚癈鷭п粐Ь蜴癇肅跂闔蜴蜴蜴肬鴉癆蜿癆阨癘綣蝟昭粡竚癈鷭п粐Ь韭蜈筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市籵迯瘤瘍絋踉晒蜚鈿鱧緕艱胚跛鹿粡寂蝟赱齠洲痲筵娼跚齡關闔癘瘟赱碎蓍蛹蜚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖釶辣就鞳鳰焙砌蛹紜鋳縺鈑阨纈蛹鹿粡寂蝟赱齠洲痲筵娼倥鳰界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗葹癇齒釿跚鈬筱阨瘤瘤瘍黼鮗蝟昭粡竚癈鷭п粐Ь蛹纈讙瘤阡蒹赱鈑艱蓍竏癈足肅跂鹿粡寂蝟赱齠洲痲筵娼迴糒跂肬蜴鱠痺蜴蓍鞳籬矚黼壽蜩阮纈鷦蝟昭粡竚癈鷭п粐Ь矼閹關癇鳫苒瘢迚鈑瘤苺瘍纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽肬跛阯蜴倥鳰閼絳闥逅跂跛粐黼鮗蝟昭粡竚癈鷭п粐Ь鰲阯緕К蜚鞜齠鰾逋鞜齠鰾К癈齬闥篌蝟昭粡竚癈鷭п粐Ь蛹綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь黼貸鍋跂纂蝟昭粡竚癈鷭п粐Ь蜈籬矚黼貸鍋跂К鞜齠鰾鶤籬槇鹿粡寂蝟赱齠洲痲筵娼闥蜈秩逾蜴蜚蛛跚癆痰癈綺+遐纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь纈釶辣鰲阯緕Щ鹿粡寂蝟赱齠洲痲筵娼ゐ癈齬闥ы癈齬闥筵纂蝟昭粡竚癈鷭п粐Ь竏癇鷭┛幸пМ鹿粡寂蝟赱齠洲痲筵娼ん瘡ゃ葹鴦梔銓瘤雪葹鴦ゃ葹鴦梔銓瘤雪葹鴦飮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼ゃ鴒頸鴒頸┐鞜齠鰾ん瘡纂蝟昭粡竚癈鷭п粐Ь籬矚黼纈釶辣ゃ鴒頸纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь銓蜈籬矚黼纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蒼阨瘤轣芍鈬蜩瘠纉鴒蜊韭鱸闖踈鹿粡寂蝟赱齠洲痲筵娼瘤瘍纈鈔癈齬闥蜴肬鴉癆蜿齡闥繖纉綣蝟昭粡竚癈鷭п粐Ь蛹纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮倚齠鰾癇齡闥繖寰蝌踉飼熙苳祉鴒頸熙苳肬鴉癆褫齡鷦蝟昭粡竚癈鷭п粐Ь蒹鱚Å繚癇鞜齠鰾蛹纉壽瘡葹蜩鹿粡寂蝟赱齠洲痲筵娼竰縺蜴蒹蜆粲纈蜩癇閹蒹鳫竇齠艱鈬鱇鈑鹿粡寂蝟赱齠洲痲筵娼鱇鈔闕鶯蜴竟蜴肬癆釿鴒頸蜿隨蒹繝蓆蜻鹿粡寂蝟赱齠洲痲筵娼矼蜴繖竅跛繖繖癈茹壽蜆縺蜈鹿粡寂蝟赱齠洲痲筵娼碯蛹蜴癆齡鴣笏蒹闔銓閹蒹蛹絳癆鹿粡寂蝟赱齠洲痲筵娼緕蒹癆齡鴣笏蜩葹鈑繖肅跂癜轣竅跛蝟昭粡竚癈鷭п粐Ь閼蜀蜈癆蒹瘢辣踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏瘢綵≡葢碯黼鱠蛹紜衷鈕蜃蜴草痺蒹鹿粡寂蝟赱齠洲痲筵娼黼蓍鞜齠鰾蛹絋踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始釿葹鱚癆繖蒹癈齬闥肅跂鈬繖跛鹿粡寂蝟赱齠洲痲筵娼草痺蒹硼鈔繻草痺蒹蜩蛹纈蜀蝟昭粡竚癈鷭п粐Ь黼竰繖緕瘡鶤蓍竢鈕蜃癆蜿跛闖瘡迴齡蒹瘢綣蝟昭粡竚癈鷭п粐Ь癆闥癈蜒蒹銓蜒癆蜿隨蓍竢鈕蜃癆蜿竅苡郤蝟昭粡竚癈鷭п粐Ь踉飼熙苳皿蔗痺竇齠熙苳肅跂粡鱚笏闥頏阡繝筱鮗蝟昭粡竚癈鷭п粐Ь瘤蜴蒹瘟黼鴟纈闔肅苺鱇闔蜴鹿粡寂蝟赱齠洲痲筵娼逅詞堤鱚笏闥瘢雹苳殺踉晒繝闔闥纈竢鞳闔蜴纈鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹闔肅苺鱇闔蛹跫闍闕續蓍鈑蜍綣蝟昭粡竚癈鷭п粐Ь闌跫鈑墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼装令辣羅轤纈踟⊆蝟昭粡竚癈鷭п粐Ь萪逮皷禺蝟昭粡竚癈鷭п粐Ь萃怠黼鯑蛹齟閭瘡鞜竏絲鞜齠癈齬闥糂癆鹿粡寂蝟赱齠洲痲筵娼鱚髟蜥纈硼郤蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗黼鴦窿纉皷鈑蒹蜥繝鴒蛹矼繿鱚鹿粡寂蝟赱齠洲痲筵娼癜緕竅艨蜴齡蒹蜩閹瘡蜆黼鴦蓖鱚郤蝟昭粡竚癈鷭п粐Ь踉飼熙苳晒鬲跫竅豁瘰痺蒹癈齬箝鞜齠鰾鶤籬熙踉晒踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏瘢綵≡葢砒鳫肅跂▽苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь闔瘡踟竰縺鳫蛹絋踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐辣銓蜿鈬縺鳰蜈鬪肅跂齡闥諷跿鞜蜥侮鹿粡寂蝟赱齠洲痲筵娼竅黼苒阨肅跂鵺蒹纖釶辣纈瘤篌蝟昭粡竚癈鷭п粐Ь蒹瘡竢迯甅黼鞜鱇跚齡苒阨頌蜒綣蝟昭粡竚癈鷭п粐Ь黼矼跫鈑鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蓍跂蓍蜩蒹韶闢蜚閹蒹癨葹苒阨肅跂癇綣蝟昭粡竚癈鷭п粐Ь鱚繻黼纈絳阡癆跛鱸轣鱸踟跫闍蜴鹿粡寂蝟赱齠洲痲筵娼鱚竢鰾矚黼闔蒹黼鴈瘢絳蜚迴鱚聿蜒蜈銓蜴粤蝟昭粡竚癈鷭п粐Ь蒹蛹磔黼鴈瘢絳癆蒹瘤苒阨釶辣踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮白阨頌瘤痲粤阨苒阨肅跂皷鈑鹿粡寂蝟赱齠洲痲筵娼籵迯瘤瘍絋踉晒鈔蒹踉飼熙苳氏粐熙苳竢迯瘤篋鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь硴轣釶艱粐鳫肅跂硼闔絳鍖鱚綣蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮蒹硼逅跂苒阨鞴蛹絋踉晒跚鱇釶辣鹿粡寂蝟赱齠洲痲筵娼閹蒹鳫蛹絳踉飼熙苳賜硼遉踉晒纈繪鈑粐繖瘤篌蝟昭粡竚癈鷭п粐Ь踉飼熙苳誌鈬熙苳錆踉飼熙苳飼熙苳錆鈔踉飼熙苳飼蓿繞熙苳癇釶辣閹鹿粡寂蝟赱齠洲痲筵娼鱚苒阨頌蜒蜩黼矼跫鈑鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始釿葹阨苒阨頌肅跂竅鱚髟蜥畆蝟昭粡竚癈鷭п粐Ь鳫鱚苺赱鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь萠瘢⇒纃矼鴦鉤鹿粡寂蝟赱齠洲痲筵娼装奘鞳癈蜒鹿粡寂蝟赱齠洲痲筵娼装賃專纈鍋跂鬲跫竅豁瘰痺蒹癈齬箝鞜齠鰾鶤籬蝟昭粡竚癈鷭п粐Ь萃打鳫鍋跂鬲跫竅豁瘰痺蒹癈齬箝苒阨頌癆鹿粡寂蝟赱齠洲痲筵娼鱚髟蜥苒阨鱚綣蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗葹蜀阨瘤黼蒹瘢肅跂闥阡鞜齠鰾鹿粡寂蝟赱齠洲痲筵娼瘤苒阨蜴肬鴉癆蜿遯阨瘤齒碯蜩跚跂闥綣蝟昭粡竚癈鷭п粐Ь闕韭蜒癆繖轣釶艱癈阨癘釿鴒頸蒹癈齬闥篌蝟昭粡竚癈鷭п粐Ь阨鴦繻矼肬鱚阨繞蜚籵迯瘤瘍絋踉晒鹿粡寂蝟赱齠洲痲筵娼蛹蜚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟釶辣就痺竇齠▽苳殺踉晒瓲苳餐窿纉竢銓鳫讀踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐蒹銓蜒癆蜿磔黼鴈瘢瘤鞜齠鰾闔踟癇閹蒹鹿粡寂蝟赱齠洲痲筵娼齡闥鱚髟緕銓跂鞳關跂矚黼闔闕續蓍鈑鹿粡寂蝟赱齠洲痲筵娼阡蒹瘤蓖蒹癇絎闕續蓍鈑癈蒹鱚蒹癇綣蝟昭粡竚癈鷭п粐Ь闕蜴胙闕吶齡鱸笏蜴痺竇齠癈繖齒辣蜴阡蒹瘤鹿粡寂蝟赱齠洲痲筵娼蜆緕纈艱鈬鱇跛鱚聽鴪繖癈踉脂巣竇齠鹿粡寂蝟赱齠洲痲筵娼衷銓鳫讀踉晒薤苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢釶辣就瘡跫緕糟跫瘤偵銷王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽糟跫踉晒鈔踉飼熙苳残緕踉晒蜥繝跂蝟昭粡竚癈鷭п粐Ь跛阯鈔緕痺竇齠癈繖蓖齡瘢絳蓖齡粐鱚齠蝟昭粡竚癈鷭п粐Ь轣竏蜴鱚髟纉鈑閭緕蒹蜥繝閻鷦蝟昭粡竚癈鷭п粐Ь瘤筬蜴瘤蒹黼粤鬢踉晒蜥繝蜒莠蝟昭粡竚癈鷭п粐Ь繻踈鞜竏蜴蓍竏鰾纈瘰韭肅踉纈鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹黶艱纉粡鱚笏蝟纉鷓鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь跛阯鳫痲糅纉鷦蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮纈薤苳氏粐鱚齠瘤痲糅纉鞜鶯蛛賓鹿粡寂蝟赱齠洲痲筵娼痲糅纉鶇胚跛髟瘡蜀蜈粹轣蜴瘢鞜鶯蛛粹轣蜴鹿粡寂蝟赱齠洲痲筵娼釶辣阨癨鳫粤韭痲糅纉黼闥闕瘟釶辣鵺羲蝟昭粡竚癈鷭п粐Ь纉蜥繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮楠纔瘢韭絳葹闕繽鈬鞜迯蜴纉黶艱鹿粡寂蝟赱齠洲痲筵娼硼癇筱鈔阨瘤繞纃竢粹蒹鹿粡寂蝟赱齠洲痲筵娼肬跛阯蜴膾鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь緕胙闕窺臆凱幹鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳志蜩蜚闥竢迚鈑鳫癆粐鱚齠蛹鈿矼碎繞鹿粡寂蝟赱齠洲痲筵娼竢銓緕矼蓍鈔蓍粡鱚笏蝟絎罨銖痲葹鹿粡寂蝟赱齠洲痲筵娼轣竏蜴釶辣鱇纈葹瘤痲糅纉鵺阨瘤黼葹鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь緕胙闕闢瘢絎纔瘢韭絎竢躰蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮綜筱跚諷碎閭痺竇齠鳫瘤銓蜥粹轣蜴蝟昭粡竚癈鷭п粐Ь纐緕鳫瘤銓蜥關纐繻闕瘟遯癈竢闥苡鹿粡寂蝟赱齠洲痲筵娼竅齔繝蜀褫齡癇閹痲糅纉闥闕瘟釶辣墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼粤銷鳫厩荻碓窺屋擬蝟昭粡竚癈鷭п粐Ь緕胙闕逅跂闔絎竢纔瘢韭續闕鹿粡寂蝟赱齠洲痲筵娼粤銷鳫篌蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮專蜴粤鬢踉晒蛹跂矼癆阨鱚鹿粡寂蝟赱齠洲痲筵娼痺瘡踟纉蜒鈑蓍鈑蒹鳫葹銓跂蝟昭粡竚癈鷭п粐Ь遯竢轤蜴蜴粤銷熙苳瘤瘤踉飼熙苳氏跛阯熙苳纂蝟昭粡竚癈鷭п粐Ь蜥繝墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼粤偵銷跛阯鹿粡寂蝟赱齠洲痲筵娼偵銷鳫瘡貅蝟昭粡竚癈鷭п粐Ь跛阯鳫蓖齡釶辣逅跂闕鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳嗣蜩鈑瘡跫踉晒蜥繝阨趙阡癆鹿粡寂蝟赱齠洲痲筵娼銓矼竅蜚蛹跂纈胙闕葹蓖齡遯郤蝟昭粡竚癈鷭п粐Ь粐蜚蜿續鈑鴒闔蜴怦癆阨瘤蜩跂蜴鹿粡寂蝟赱齠洲痲筵娼薤苳誌鉤踉晒薤苳纈胙闕葹蓖齡踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏瘢綵‰癆蜩胱▽苳殺踉晒瓲苳屍癆蜩胱王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽噤黽踉晒蜥繝瘤繖齔繝蜀癆鹿粡寂蝟赱齠洲痲筵娼黼鱇竰蜚纈蛛癨竢銖蜆纈繖蒹鈑粤竕粤畆蝟昭粡竚癈鷭п粐Ь癇笊赱纈蛹矼鱇銓繖粱蜩皷闔噤黽踉晒瘤鹿粡寂蝟赱齠洲痲筵娼諷瘤鱧緕闔閹頸蜿銖踉飼熙苳氏跛熙苳闥鹿粡寂蝟赱齠洲痲筵娼瘤踉晒濁繙癜踉蜚癈齦辣癆蒹瘡鷦蝟昭粡竚癈鷭п粐Ь踉飼熙苳氏跛熙苳皿蓍辣瘤癆黼鱇竰蜚纈蛛鱚鹿粡寂蝟赱齠洲痲筵娼齔繝蜀蜈筱蒹瘡閹蒹逡齡辣蜴鰾纈闥闕繽鈬鐚蝟昭粡竚癈鷭п粐Ь續隨阯纐纈蜀續瘤踉晒緕纐纈瘡鱸鱸畆蝟昭粡竚癈鷭п粐Ь癨齔繝蜀蜈筱纈癆蜩肅纉銷纉絳蒹郤蝟昭粡竚癈鷭п粐Ь蒹跛苒瘤緕瘤竇踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鴒闖纔瘢韭閹蓍蜩皷鈑窿纉竢銓鳫鹿粡寂蝟赱齠洲痲筵娼癈齦鱚葹踉蓖鱚齒竇鞜齠鰾鳫笏繖鳫躰蝟昭粡竚癈鷭п粐Ь皷粤阨鈬闥覓跛闢銖蜆鈬闥跛綣蝟昭粡竚癈鷭п粐Ь蝟緕鱚痺竇齠鱚齒竇壽蜩阨趙痺竢逅跚鼈繖鹿粡寂蝟赱齠洲痲筵娼磔皷鈑蒹踉飼熙苳屍癆蜩胱熙苳粡鱚笏蝟絳鼈阯矼跫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉残蜥繝鴒鬲跫竅豁瘰痺蒹閭鶩黼謦蜚逅紫鹿粡寂蝟赱齠洲痲筵娼装奘鞳癈蜒鹿粡寂蝟赱齠洲痲筵娼装令辣銓鱇鈬蝟昭粡竚癈鷭п粐Ь萼黼鯑蛹癈齬箝纈鷦蝟昭粡竚癈鷭п粐Ь菁鳫鍋跂鞜齠鳫鷦蝟昭粡竚癈鷭п粐Ь繿鱚鳫辣鴦鹿粡寂蝟赱齠洲痲筵娼粤瘡跫粤銷鹿粡寂蝟赱齠洲痲筵娼糟跫胙闕銓纈釶谺竢躰蝟昭粡竚癈鷭п粐Ь癆蜩胱銷鹿粡寂蝟赱齠洲痲筵娼逅詞蜥繝鴒逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺蜩竇釶鱸鍖黼鴦蛹矼續蜀蒹繪纈癘畆蝟昭粡竚癈鷭п粐Ь癈齬闥筱蜀蒹癇蜴蒹銓纈釶鈬闥覡鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟釶辣就齦迯癇囎迯癇踉晒瓲苳殺踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹癇蜿蒹銓蜒癆蜿迴糒跂頏阮蜆銛轤纈鹿粡寂蝟赱齠洲痲筵娼纉蜒痺竇齠闢矚黼闔蒹粤銓蜚閹蒹鹿粡寂蝟赱齠洲痲筵娼纈壽纖聿纈闕纓葹齡瘤籬鰾銓纈聲竇蜩鹿粡寂蝟赱齠洲痲筵娼胚釿闔瘡蜚鳫粤蜀聽鱚銓痺覘緕辣竏瘤蜩逑闥鹿粡寂蝟赱齠洲痲筵娼痺瘡踟蒹銓蜒癆蜴纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮綜痺竇齠闔闌繝葹鉗鼾跛阯纉蜒蝟昭粡竚癈鷭п粐Ь窿纉矚黼闔鱸鱸鱚赱蒹粤銓蜚閹蒹鹿粡寂蝟赱齠洲痲筵娼纈踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢侃苳仔闖阡纉侃苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏瘢綵∽闖▽苳皿瘡踉晒瓲苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就f闖熬續遐齦隍苳傘熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳市蒹鱚鱚笏跛銛轤纈蜊韭纃緕闔癆續鹿粡寂蝟赱齠洲痲筵娼癇阨鈔蓍跚迚闔楊賃蜩鈬纃肬纔瘢韭絎鹿粡寂蝟赱齠洲痲筵娼被鬪闥蒹竟黼閹蓍粡黹皷闔ъ褫齡縺貅蝟昭粡竚癈鷭п粐Ь蜚齡瘤籬鰾纈諷跂賃蜒蜩蜍繻癘鼈蜷鞳篌蝟昭粡竚癈鷭п粐Ь蜚癆纐纈鞳鱇鈑癇瘡鱚痲鴣銕蜴膊筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏瘢綵∽闖▽苳皿蛹絋踉晒瓲苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就f闖熬續遐齦隍苳参熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳始鬪癇蜴迴籖癜焙硴賃肅跂踉晒粐鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁蓖鎭竍藪蔗迪皴蔗粹笂瘤豁蓖鎭竍藪蔗迪郤碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握鯵鰍街聹骸碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡阯芍谺緕粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁蓖鎭竍藪蔗迪郤昭蝟昭粡竚癈鷭ц襷樟卯亀誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏奕鱸瘡締釶迚衷銓緕派蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬締釶迚衷銓緕派右苳纂蝟昭粡竚癈鷭п粐Ь踉氏篏∂煢鈔纔烝釶辣就烝蜴粤漓踉察猟努吐瀕苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就d瘢蜒竢銓緕蜚蓊芍▽苳残瘢蜒闔銓蜚莠蝟昭粡竚癈鷭п粐Ь派薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■竢鈕蜃蜴艨鞜竏續關纈迚芍▽苳暫闔肅苺鱸鈑鞜竏綣蝟昭粡竚癈鷭п粐Ь鞳鴉蜚派蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黹鱸頸瘡蛛鵞噬鱸頸糟蛛鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼蓿繙就c芍阨蜆繽胝竰蜷跚癈粡鱚笏闥蜈鵞断票蝟昭粡竚癈鷭п粐Ь皷粤噬鱸頸糟蛛粡鱚笏闥蜈鵙踉晒瓲苳鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚畆蝟昭粡竚癈鷭п粐Ь鱚羹■纔韭蜒蜚踟蜴苡頸蜿銖鞳鴉蜚竍蜈笊闔▽苳仕跚竕蝟昭粡竚癈鷭п粐Ь皷鈑頸蜿銖鞳鴉蜚派笊闔薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蔗痺竇齠肅跂鵞窿纉肅跂鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼蓿繙就w鱸鈑痺芍頏閾鱇蹉恍蜚蜴断頏閾鱇蹙踉晒瓲苳鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就y阨鱠蜥齡竍蜷鳫苒瘢▽苳支阨肅鴦断票蝟昭粡竚癈鷭п粐Ь鳫苒瘢薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■碯齡蛹跪阡鳬蜴腆濯蜚跛阡鹿粡寂蝟赱齠洲痲筵娼鳬蜴隋蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■肅跂鞳鴉蜩皷闔鵞鍋跂纈迚齠蜿銖薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■鞜蜴肬鴉癆蜿遐倚鈕闥轣闔薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■齷銓癢纈鳫鴦▽苳屍纈鳫鴦薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■纈鳫鳰閾鵞湯鳫跫苴薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■癆鼇濶鈑闔矼蓍鈔纉竇鈬鵞怦癆濶鈑郤蝟昭粡竚癈鷭п粐Ь繹蜴黹緕纉職踉晒瓲苳鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就e鉚蜥闔辣銓鱸痰跂鵞梼鳫鉈緕蝟昭粡竚癈鷭п粐Ь癇蛛碎纉薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■齡粡釶鈔齡粹▽苳屍堋瀕鈔堋圖踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就c芍迴糒跂鼬蛯鱇鱸纉▽苳暫派鹿粡寂蝟赱齠洲痲筵娼迴糒跂鶩跚碣癇蜈鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就f闥迴鱚蜴肬鴉癆蜿遐楠迴鱚鹿粡寂蝟赱齠洲痲筵娼蜴肬鴉癆蜿遉踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉察猟努猟苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≫瘢蜒竢銓緕蜚蓊芍⊆蝟昭粡竚癈鷭п粐Ь瘢綵≫瘢蜒竢銓緕蜚蓊芍▽苳残瘢蜒闔銓蜚断髭踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳子繻癆繖閼纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹〓迴箝迴籖瘡蛛鶤蔗迪▽苳詩閼焉跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹〓迴箝迴籖竍藪蔗迪▽苳詩閼焜芍碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳子繻癆繖蜥繝鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝迴籖迚辣譯痲粫瘤粲纈▽苳餐粐悲鈔跂鬢踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就閼闥絎蔗迪o頸蜿銖▽苳始頸蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼閼焉跚癈譯黹鱸頸瘡蛛鵞噬鱸頸糟蛛鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹派衷迯闔癆纓癨銓纈聲竇粤肅鈬肬蘯蝟昭粡竚癈鷭п粐Ь纈銓纈痺纈釶竢銓緕艱鈬鱇鈑鳫苒瘢鵺鹿粡寂蝟赱齠洲痲筵娼蜒癇閹鱚聽鴪繖癈派鳫苒瘢闥派竰蜷部鹿粡寂蝟赱齠洲痲筵娼蜩蒹蜊韭纉鈔闢竢迯闔瘢蜒闔銓郤蝟昭粡竚癈鷭п粐Ь阨皷壽蜩閭緕跛瘤銓鳫糒笏蜿續鈑鹿粡寂蝟赱齠洲痲筵娼派鞜竏黼鴟纈瘤艱蜴齡癇蜚蜴膽蝟昭粡竚癈鷭п粐Ь派鳫苒瘢鶤鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就竢鈕蜃蜴艨鞜竏續關纈迚芍⊆蝟昭粡竚癈鷭п粐Ь瘢綵≪闔肅苺鱸鈑瘰痺蒹鞳鴉蜚竍蘂衷鈕蜃蜴草痺蒹鐚蝟昭粡竚癈鷭п粐Ь纈迚断髭踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺闥粤續阨断頏閾鱇逑鳬鳫鞳鳰阨ъ貅蝟昭粡竚癈鷭п粐Ь繞癘草痺蒹闔肅苺鱚纈迚断纔繝蜿隨蒹鱚鹿粡寂蝟赱齠洲痲筵娼癇黼鱇粹蓍鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就黹鱸頸瘡蛛鵞瘢綵‰竰蜷跚癈▽苳屍竰蜷跚癈界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽竢粤噬鱸頸糟蛛鵙踉晒竢粤蜥繝繻踈鞜竏癆鹿粡寂蝟赱齠洲痲筵娼鞜鶯蜒癇蜥繝鴒黼癈蜆肬断頏閾鱇逑草痺蒹蛹貅蝟昭粡竚癈鷭п粐Ь齠癆鴒蛹蜴蓍粡鱚笏闥蜩派鳫苒瘢瘤篌蝟昭粡竚癈鷭п粐Ь蛹癆逅笊蒹癆癇笊赱鱚齒竇鷦蝟昭粡竚癈鷭п粐Ь繿齡繖竚蜈銓踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽竢粤噬鱸頸糟蛛鵙踉晒竢粤蜥繝闖謫蜍綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь竰蜷跚癈竍薛砠遲鬲跫竅豁瘰痺蒹芍蜴蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纔瘢韭鼈阯蜩鳫繙癜踉鹿粡寂蝟赱齠洲痲筵娼竢粤蔗筮竢鈕閼絋苳竢鈕蜃癆蜿肅跂蜀阨銖跛繖鹿粡寂蝟赱齠洲痲筵娼草痺蒹粤聲跫竅闔壽竢粤噬鱸頸糟蛛鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟蜩跚諷蒹踉祉閼絋苳餐跚癈閼絋苳粡鱚笏蝟絳蓍竏鹿粡寂蝟赱齠洲痲筵娼粤肅鈬孀頏繙蝌葹蜩轣韶繖鞜鶯蜒癇鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥踉祉閼絋苳餐跚癈閼絋苳瘤竢粤噬鱸頸糟蛛鵙踉晒竢粤鱚鹿粡寂蝟赱齠洲痲筵娼跛繖闥蜥繝鱸纉葹癇阨蜆閹蒹鹿粡寂蝟赱齠洲痲筵娼竢粤弟笊辣銓呰阡閼絋苳粡鱚笏闥蒹蜀聽鱚釿矼繞郤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐跚癈閼絋苳瘤竢粤噬鱸頸糟蛛鵙踉晒竢粤癆鹿粡寂蝟赱齠洲痲筵娼竢粤噬鱸頸糟蛛鵙踉晒竢粤癈蒹粐繖縺鉗鈑葹纐纈蓍鈑鹿粡寂蝟赱齠洲痲筵娼粤癆厂鱚肅跛竢銖蜆纈繖派鳫苒瘢囂綣蝟昭粡竚癈鷭п粐Ь逅跂硼繻踈鞜竏癆銷繿齡闥纉阨鱆綣蝟昭粡竚癈鷭п粐Ь繚蜴鉗鈑蜚竢粤芍蜴踉晒竢粤蓖矼纈胙闕蒹鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥竢粤齟閭瘡鞜竏絲竍薛砠遲閼絋苳錆鈔蓖篌蝟昭粡竚癈鷭п粐Ь縺癈派鳫苒瘢踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮楠纔瘢韭絳孀娘蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳肢雕纔瘢韭絎竢躁竍薛砠遲齡讀踉晒竢粤鷦蝟昭粡竚癈鷭п粐Ь繿齡繖草痺蒹蛹癆逅笊蒹蛹綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳晒鬲跫竅豁瘰痺蒹芍蜴纉韭閼絋苳瘤鱚鴈蒹鹿粡寂蝟赱齠洲痲筵娼阨阨鴦絳蒹蛹跛癘齡瘤矼鹿粡寂蝟赱齠洲痲筵娼纔繝痰跂瘤鱚鴈頤蜴癇笊赱草痺蒹鹿粡寂蝟赱齠洲痲筵娼跛續瘤鴪闥纉黶艱踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏≪芍阨蜆繽胝竰蜷跚癈粡鱚笏闥蜈鵞鹿粡寂蝟赱齠洲痲筵娼釶辣就竍蜿皷粤閹黹鱸頸瘡蛛黻蜥繝鱸纉▽苳暫派皷粤羲蝟昭粡竚癈鷭п粐Ь竰蜷跚癈蜥繝鱸纉界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮断頏閾鱇逑鱚胄緕纉蜒鹿粡寂蝟赱齠洲痲筵娼竢粤噬鱸頸糟蛛鵙踉晒竢粤у粡鱚笏闥蜈肬黼笊鱸縺齒銖蝟昭粡竚癈鷭п粐Ь蜩癨痲迚鉗齡鱇鴦瘤蜃蔗踟闔闌蓖瘡跫篌蝟昭粡竚癈鷭п粐Ь断頏閾鱇逑被鬪頏關纈繝蜚蝟昭粡竚癈鷭п粐Ь鱚竅蜿銖鱚瘠緕纈蜩鱚癈闔蔔派鳫苒瘢鷦蝟昭粡竚癈鷭п粐Ь瘤鈿矼鳫癇砠癇粡鱚笏闥蜈鶤闥逅跂轣蝟昭粡竚癈鷭п粐Ь蜩續黼鴦癘竢銓緕蜴蒹蜥闕粡鱚笏闥蜈鷦蝟昭粡竚癈鷭п粐Ь蜚竢粤專纈堤鬢踉晒竢粤蜥繝膚蒹銓葹鹿粡寂蝟赱齠洲痲筵娼繪阯断頏閾鱇逑碯粹逾葹窿纉蒹瘟郤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳祉芍蜴閼絋苳粡鱚笏闥蒹跛繞痰跂鐚蝟昭粡竚癈鷭п粐Ь派鳫苒瘢繻黼纈絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就纔韭蜒蜚踟蜴苡頸蜿銖鞳鴉蜚竍蜈笊闔⊆蝟昭粡竚癈鷭п粐Ь瘢綵√跚竕皷鈑關闔齡關纈迚芍纔繝蜿遐祷韭蜒蜚踟鹿粡寂蝟赱齠洲痲筵娼蜴闔纈迚断纔繝蜿遉踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳支阨阨趙跚竕竢粤闔鵙踉晒竢粤蜥繝蝟昭粡竚癈鷭п粐Ь銖蜆瘟黼鴟纈闔肅苺鱇闔蛹絳齔繝蜀癆派鹿粡寂蝟赱齠洲痲筵娼纔繝蜿鞳鴉蜚蜴癇笊赱粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉残蜥繝鴒鬲跫竅豁瘰痺蒹閭鶩齒辣粡鬢瘢雹苳纂蝟昭粡竚癈鷭п粐Ь頸蜿銖祷繝断票蝟昭粡竚癈鷭п粐Ь瘢雹踉晒堤鱚笏闥瘢雹苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽痰阮粡鱚笏蝟跛草痺蒹鞳鴉蜚蒹笊闔羲蝟昭粡竚癈鷭п粐Ь派蛹纉搶跛踈鈬繖跛蒹纈癆蛹纉鱚鹿粡寂蝟赱齠洲痲筵娼断肅跂鶤蒹闌跫鈑踉祉閼絋苳餐粐悲鈔跂鬢踉晒竢粤蜥繝鹿粡寂蝟赱齠洲痲筵娼跛黼鴟纈縺瘡肅跂蒹踉祉閼絋苳祉芍閼絋苳纂蝟昭粡竚癈鷭п粐Ь竢粤韭閼絋苳纔銖蜿癈派鳫苒瘢鷓鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь槍簇瘤粲纈芍竰蜷竍韭鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就蔗痺竇齠肅跂鵞瘢綵∵窿纉黽蛹纉▽苳皿蔗痺竇齠鹿粡寂蝟赱齠洲痲筵娼肅跂鵙踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐踉祉閼絋苳皿蔗痺竇齠閼絋苳肅跂續闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉鞳鬮粡鱚笏闥矚皷鶤蒹草痺蒹纈畆蝟昭粡竚癈鷭п粐Ь纉阨鱆絳跫闍蜴蒹蜥繝鴒鳫蜒蜚黼鴟蜴畆蝟昭粡竚癈鷭п粐Ь蛹肬肅跂瘡跂竢粤窿纉鵙踉晒竢粤瘤筱蜚蜴糂鹿粡寂蝟赱齠洲痲筵娼蜚蜚蛹瘰韭粡鱚笏蝟纉阨鈔蒹鱚蜴蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳皿蔗痺竇齠閼絋苳肅跂竅矼纈迚繖蜚綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐跛阯纈鱸粤閼絋苳粡鱚笏蝟絳蓍竏鞳竕肅纉葹蝟昭粡竚癈鷭п粐Ь纉粡鱚笏蝟纉瘤韶縺蜴蒹黼蛹纉闥纖鱚鹿粡寂蝟赱齠洲痲筵娼鈿瘡跫癆跛夬纈迚粡鱚笏蝟蛹鈬繖闥鹿粡寂蝟赱齠洲痲筵娼蜩竟黼肬跛阯蜴竢鈕蜃癆蜿跛鈬繖繖郤蝟昭粡竚癈鷭п粐Ь阨轣蜴纈竢鈕蜃癆蜿邵鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь跛阯纈鱸粤頸蜿銖鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺竢粤窿纉鵙踉晒竢粤蛹絳阨ъ鈬繖蒹鹿粡寂蝟赱齠洲痲筵娼肬跛阯蜴粡鱚笏蝟綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь頸蜿銖祷繝断票蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蜒跛草痺蒹葹纔繝蜿閹派鳫苒瘢蜩鹿粡寂蝟赱齠洲痲筵娼鞳鴉蜚蜴蓍粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蜚蜴艨竍蜷鳫苒瘢⊆蝟昭粡竚癈鷭п粐Ь瘢綵†鱸鈑痺芍頏閾鱇蹉恍蜚蜴断頏閾鱇蹙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鱚鱚瘟粡聿纈緕竇矼繞玻鱚苺赱鬣Ъ蝟昭粡竚癈鷭п粐Ь鳫苒瘢迚鈑瘤断頏閾鱇迯蜴膊鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔蜥齡瘡阨鳫派鳫苒瘢矼鱚竇粤磔鹿粡寂蝟赱齠洲痲筵娼揺妖蒹痲纈壽蜩挽墅縺粤癆繻踈蒹跚緕蝟昭粡竚癈鷭п粐Ь葹齒鶯竢銓緕蜚鱚竇蝟蜴膊闢閹蒹蜊絳蓍鷦蝟昭粡竚癈鷭п粐Ь蛹跫闍蜍綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь闔銓綺纔蔗迪鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍繝闔粲阨阨繞糂矼挽楊闥闕阡蒹鮗蝟昭粡竚癈鷭п粐Ь闥轣癆鳫纈蛹矼碎蜩韭癨酪齡綣蝟昭粡竚癈鷭п粐Ь蜊絳蓍跛挽楊碯閭竅皷闔瘡踟阨蜃蔗鱸派鹿粡寂蝟赱齠洲痲筵娼頏閾鱇癆頤蜀轣艱闥纈闔塒娘蝟昭粡竚癈鷭п粐Ь闔銓踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草癇胙闕蓖黼蓍鈑鵺鱸鈑派鳫苒瘢蛹跫闍鹿粡寂蝟赱齠洲痲筵娼跫跚諷銷纈鳫苒瘢葹迚艾蜚絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就肅鴦芍頏閾鱇蹉瘢綵¶阨鱠蜥齡竍蜷鳫苒瘢▽苳支阨鮗蝟昭粡竚癈鷭п粐Ь蜥齡派鳫苒瘢界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽肬跛阯蜴蜩纔瘢韭断頏閾鱇癆鱸銓闔跚鈬鹿粡寂蝟赱齠洲痲筵娼阨碣阯黼鬯蜴蒹闌跫鈑黶蛹綣蝟昭粡竚癈鷭п粐Ь瘡跂竢粤肅鴦韭閼絋苳錆鈔蜴阨鮗蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳祉芍蜴閼絋苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь¨鬲砠遲鞳鳰鹿粡寂蝟赱齠洲痲筵娼頏蜴闔銓綺纔蔗迪橇樌橇樌∋鹿粡寂蝟赱齠洲痲筵娼頏蜴繻跫恟鳰筮∋鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕蜀阨鱚阡瘢蛹蛛纈讙阨蓖矼碎綣蝟昭粡竚癈鷭п粐Ь黼癆葹韶緕蜴蒹鱚壽肅鴦跚鈬繻踈鞜竏鮗蝟昭粡竚癈鷭п粐Ь葹鼈繻葹韶緕矼鉗鈑鈔纈癆蓍鷦蝟昭粡竚癈鷭п粐Ь鳫苒瘢瘤纔繝繖聽繖蜴肅跂蜴鴃鱚鮗蝟昭粡竚癈鷭п粐Ь阨鈔跫竅闔踉祉閼絋苳晒鬲砠遲鞳鳰閼絋苳皿蒹繝闔篌蝟昭粡竚癈鷭п粐Ь蜴頏蜴蒹闔銓粤竚癇癆蜿瘡諷痰阨鹿粡寂蝟赱齠洲痲筵娼肬跛阯繖竅鴪蛛艱續鈬蜴鞜蜥鶤蓍頤鹿粡寂蝟赱齠洲痲筵娼碎瘤跚鈬胄纈蒹縺粤鬪蜴粡竅蒹鈔挽墅鹿粡寂蝟赱齠洲痲筵娼蒹痲纈鵺鈔蒹繚蜴鉗鈑硼糯壽蜥跚鈬鱸銓鷦蝟昭粡竚癈鷭п粐Ь蒹蜴玻斐跛鍖闥趙綜癆蒹鈔蜚踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚阨鞳癘闥蜚碣阯黼瘤跛續蒹鹿粡寂蝟赱齠洲痲筵娼痲糅纉鵙踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蔗痕逅跂闕芍蜴蜥齡貅蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮闥蒹鱚頤蛹絳阨蛹黼闔跚鈬鹿粡寂蝟赱齠洲痲筵娼竢粤斐跛鍖闥趙踉晒竢粤韶縺蜴阨碣阯黼鈔阯部鹿粡寂蝟赱齠洲痲筵娼鈿鴒蜚蜴膃釿艱癆闥謇鈑跛癘畆蝟昭粡竚癈鷭п粐Ь闖竏瘤竇艱蜴褫齡硼銷蜴鳬蜴膊鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就碯齡蛹跪阡鳬蜴腆鹿粡寂蝟赱齠洲痲筵娼釶辣就碯齡蛹跪阡鳬蜴腆濯蜚跛阡鹿粡寂蝟赱齠洲痲筵娼鳬蜴隋王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纈癇肬癈蜒蓍鈑癆阨癨繞鳫纈鹿粡寂蝟赱齠洲痲筵娼緕阨鴒痺竇齠阨断頏閾鱇胙闕蒹繧墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳市蒹頤閹阨断頏閾鱇蹙踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐白縺堯葹辣瘤纐纈蓍鈑闥諷肅鈬踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘壽齒竇閼閹阨断頏閾鱇闥佻嘖續蓖麗蝟昭粡竚癈鷭п粐Ь跛阯繖辣齠瘍絋踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐壽癆縺銖葹葹阡鳫鞳鳰竢鈕蜃繖鞜竏綣蝟昭粡竚癈鷭п粐Ь頏閭纉派鳫苒瘢吶鱚痲蒹繝闔畆蝟昭粡竚癈鷭п粐Ь鱚羹■竢鈕蜃蜴艨鞜竏續關纈迚芍▽苳祉闔肅苺鱸鈑鞜竏絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь鈔鴒肅鈔葹迚齠繖踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘辣齠瘍齡癇鈑蜚闥砠粐緕▽踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐壽癆縺銖葹纈蜩纈迚齠蜿銖鳫碎纃宙繝綣蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■纈鳫鳰閾鵞草痺蒹鴪闥閾鈔蒹繝闔鹿粡寂蝟赱齠洲痲筵娼矼跫闔踉氏鱚羹■肅跂鞳鴉蜩皷闔鵞肅跂鹿粡寂蝟赱齠洲痲筵娼鞳鴉蜩皷闔鵙踉晒瓲苳皿碣鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳餐纉黶艱癨蜴銓纈釶嚆鴟纈鴪闥▽踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐膚阨蒹站蒹踉氏鱚羹■纈鳫鳰閾鵞草痺蒹鴪闥鹿粡寂蝟赱齠洲痲筵娼跫胼踉晒瓲苳錆阨蛹頏閧痰踟蜴癆黶會纃癆緕篌蝟昭粡竚癈鷭п粐Ь黹鱸頸縺粤鴦↑闢皷碎瘡闔纈鳫辣齠瘍綣蝟昭粡竚癈鷭п粐Ь緕纈癆繖派鳫苒瘢侮蓍竅黼跛瘤鹿粡寂蝟赱齠洲痲筵娼竏繝縺竏矼跫黼笏蜿銖黼癆蜃蔗綣蝟昭粡竚癈鷭п粐Ь鱚銓蜴派鳫苒瘢鳫纃蜚鈑蒹鳫鞳挽墅鹿粡寂蝟赱齠洲痲筵娼蒹痲纈鶤筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就肅跂鞳鴉蜩皷闔鵞瘢綵∽蛹辮纈迚齠蜿銖▽苳仔蛹綣蝟昭粡竚癈鷭п粐Ь纈迚齠蜿銖界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮吶辣轤纈葹黼鴟纈閻鈿鴣癈阨壽癆鵺蒹郤蝟昭粡竚癈鷭п粐Ь蒹纈齡癇隱蜩鉗鈑蜚鞳鴉蜩皷闔閹郤蝟昭粡竚癈鷭п粐Ь鉋鱸跂艱纈齦瘡踟瑟閧閼К玻瘤齒蝟昭粡竚癈鷭п粐Ь蛹鈬繖鱇纈迚齠蜿銖纔繝肅跂癆鱚繖蝟昭粡竚癈鷭п粐Ь阨專跛蒹癨芍蛹齦聿蜒蜈銓纈迚齠蜿銖鐚蝟昭粡竚癈鷭п粐Ь纔繝繖玻鈿硼糯Ё蝟纐纈鈬笊鹿粡寂蝟赱齠洲痲筵娼鞳鴉蜩皷闔肅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼竏迴甄肅鴦韭鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐踈鍖鳫苒瘢縺糂鳫蹶蜚纉鍖銷纈鹿粡寂蝟赱齠洲痲筵娼肅跂鵺蓖黼蛹纉蛹鈬繖葹蒹闥鱚笏纈迚齠蜿銖鐚蝟昭粡竚癈鷭п粐Ь纈迚蜩踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纔竇頸蜿蓍蜩蒹黼鴟纈竢鈕蜃繖鐚蝟昭粡竚癈鷭п粐Ь黼踉氏鱚羹〓齦纔繝譬齦纔繝壽蜩鳫苒瘢跛阯鷦蝟昭粡竚癈鷭п粐Ь派鳫苒瘢鴣粤粡聿纈緕纈纈迚齠蜿銖蝟昭粡竚癈鷭п粐Ь辮緕粡鈑蜒鶯蓖齡纈闕粡鱚笏闥纖鱚鹿粡寂蝟赱齠洲痲筵娼跫竅蜴囎纔繝癈纈齡鱸笏纈迚齠蜿竏繝謇鈑瘤瘤蝟昭粡竚癈鷭п粐Ь瘟跿鱚癆蒹站蜴跛纉蜴阨断頏閾鱇逑鹿粡寂蝟赱齠洲痲筵娼聲蛹蜴銓纈釶嚆鴟纈鴪闥〓蜩癈絳阨蛹貅蝟昭粡竚癈鷭п粐Ь繞蒹站蒹跫肅跂黼癆鞳竕肅黼笊鱸鹿粡寂蝟赱齠洲痲筵娼竏繝蜩瘟跚鈑踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏癆蓍鈕闥轣闔釶辣就鞜蜴肬鴉癆蜿遐倚鹿粡寂蝟赱齠洲痲筵娼蜴肬鴉癆蜿遉踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蒹鴣頏閾鱇胙闕阨竢迯瘤跚鈬葹鹿粡寂蝟赱齠洲痲筵娼竇鶯瘟蜴肬鴉癆蜿癆鞜齠繖鼈繻阨蝟昭粡竚癈鷭п粐Ь蓍鉉蜴痰阨蜚楠纔瘢韭絳阨癘鞜蜒跛鷦蝟昭粡竚癈鷭п粐Ь蒹蒹跛蒹鱚竅跫闍闥蛹纉葹鱚聽鱚釿絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蒹頏閾鱇鴣銖蓿阨艾蒹繧纈癈派鳫苒瘢蝟昭粡竚癈鷭п粐Ь粹纉阡癘癆癆莅銷鳫苒瘢癆阨鉚闍蜴鹿粡寂蝟赱齠洲痲筵娼派鳫苒瘢跚諷黼鈔轣蛹К闥逅跂跛繞綣蝟昭粡竚癈鷭п粐Ь鞳竕肅繖胚跛癆茗癆蒹蒹跛瘤蜴纃蒹郤蝟昭粡竚癈鷭п粐Ь癆逅纔繝派鳫苒瘢踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢迯闔瘤蜀纉闔蜩鞜黹鱸頸鹿粡寂蝟赱齠洲痲筵娼蜴鴃鱚胄緕踉祉閼絋苳諮纈讀踉晒竢粤蜴粡竅蜴蒹蜥齡鹿粡寂蝟赱齠洲痲筵娼跚鈬派鳫苒瘢蜒跛闖齒辣蜴跚諷墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼¨鬲砠遲鞳鳰鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳四瘠齦鱚葹蜩蜴痺鞜綣蝟昭粡竚癈鷭п粐Ь銓纈頏續纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏‰鴪闥鵞瘢綵‰鴪闥鵞囮銓癢鹿粡寂蝟赱齠洲痲筵娼纈鳫鴦界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮酪齡辣蒹断頏閾鱇聲蛹鵺矼竅閹鹿粡寂蝟赱齠洲痲筵娼頏閧跂蒹鳫苒瘢繻罧蓍蜩癇笊赱鳰釿綣蝟昭粡竚癈鷭п粐Ь阨續蒹瘤閹蓍断齡罨鈔跫鈑纈瘠綣蝟昭粡竚癈鷭п粐Ь硼蜩諷鶤踞癨癆逅阨頏閾鱇胙闕蒹鹿粡寂蝟赱齠洲痲筵娼竢迯瘤跚鈬繙闥齡碣阯黼鬯蓍跛鹿粡寂蝟赱齠洲痲筵娼繻蜊蜴癆迴齡鳫碎纃鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就纈鳫鳰閾鵞瘢綵√鴪闥跫苴▽苳仕鴪闥閾鵙踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鴪闥閾癇鱸緕筮銷蜴癆閻闔膽蝟昭粡竚癈鷭п粐Ь緕纈癆纉纉黶艱纈鳫跫膊阨蓖瘡闖觴蝟昭粡竚癈鷭п粐Ь蒹鱚蜥齡膚蒹赱竇蒹鱚阨鱚闢鈑阨皷鹿粡寂蝟赱齠洲痲筵娼粹纉阡纈迚痺竇齠纈鳫跫膃阨蓖篌蝟昭粡竚癈鷭п粐Ь鳫矚碎蓖齡阨皷闕纓蒹鱚踈絎縺鴈鱚痲蒹鴪闥鹿粡寂蝟赱齠洲痲筵娼跫苴瘤跛蜴癆跋闢瘡閹阨頏閧跂逑鱚鹿粡寂蝟赱齠洲痲筵娼髟蜒謖蜆緕肅繖瘤髟蜒謖齒踝繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏†葹苡蜴苡鈞繹蜴糘蒹黹緕纉⊆蝟昭粡竚癈鷭п粐Ь瘢綵†葹苡蜴苡鈞繹蜴糘蒹黹緕纉▽苳思葹苡蜴闔繹蜴綣蝟昭粡竚癈鷭п粐Ь竇鈬鷽王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蒼阨繝闕迴鱚糜瘤竇蜴派鳫苒瘢迚鈑蜚蛹貅蝟昭粡竚癈鷭п粐Ь繝闕繙粤鴦鈔闥痰阨癆瘰鞳鉗鈑繹蜴篌蝟昭粡竚癈鷭п粐Ь蒹竇鈬鶤鞳竕肅竅跛阯蒹鳫纈鈔纈鮗蝟昭粡竚癈鷭п粐Ь闕逡鉗竅蜚闔瘤阡蒹鬯繝癜黼踉蓖蜚跛纈蝟昭粡竚癈鷭п粐Ь繻鱸鳫苒瘢葹頏蜴猗繻跫恟鳰筮Ё蜚阡鹿粡寂蝟赱齠洲痲筵娼鞜鶯蜒癇踟黼胚谺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就緕鳫鉈緕癇蛛碎纉⊆蝟昭粡竚癈鷭п粐Ь瘢綵√鉚蜥闔辣銓鱸痰跂鵞梼鳫鉈緕鱸痰跂鵙踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕鉚蜥闔辣銓癇蛛碎纉鱚瘡癆跫癆鳫癈鹿粡寂蝟赱齠洲痲筵娼闕頤鬯蒹癇繙蓍鈑跚諷阨鞜鹿粡寂蝟赱齠洲痲筵娼蒹鱚蒹闕頤黼癇竏纉闥蒹笏肅跂逅跂辣銓蜴膽蝟昭粡竚癈鷭п粐Ь闕轣鈔蒹鞳黼鴈瘢絳阨鴉蜴瘡絳鹿粡寂蝟赱齠洲痲筵娼瘤齒隨闥跚齡闥轣讙鴒癨鹿粡寂蝟赱齠洲痲筵娼緕鳫鉈緕鱸痰跂鵺竢粤緕踉晒竢粤竢迯瘤篌蝟昭粡竚癈鷭п粐Ь鳫逅鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳残蜴断瘤黶笏蜿遯蒹纈瘤碣阯黼瘡齒鹿粡寂蝟赱齠洲痲筵娼黼緕鳫鉈緕鱸痰跂鵺癆蒹竅竢迯蜒癆鹿粡寂蝟赱齠洲痲筵娼闔瘤阡蒹鬯蒹黼鱚蓍鈑跚諷蒹鳫纈續黹瘰絳鹿粡寂蝟赱齠洲痲筵娼錨薮銹蒹纈鞳草痺蒹鰭哮繧嚔蒹瘢閹鹿粡寂蝟赱齠洲痲筵娼断頏閾鱇癆矼蜴鴣遯鈔闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纉鱸痰跂癇癘瘟赱碎蒹派鳫苒瘢辣鬪鈔鱚鹿粡寂蝟赱齠洲痲筵娼葹趾齡闥閹蒹跚緕黼鴟纈闕逡鉗竅闔壽綣蝟昭粡竚癈鷭п粐Ь闕韭續跚齡鱚髟蜥繖癇蛛碎纉癆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕闖蓖鎬釿黶蝠祟繖竍薇緕蔗迪▽苳肢雕蓖闊闖笂甌糒芍鉚讀踉晒瓲苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩蜊韭倥鳰派鳫苒瘢蛹粡齔赱瘡閹蒹鹿粡寂蝟赱齠洲痲筵娼緕鳫鉈緕鱸痰跂癆鱚繪鈑癈黼癇阨鈔奎皷迚赱鮗蝟昭粡竚癈鷭п粐Ь鳫苒瘢癇蜴竚繖竢粤竍薛砠遉踉晒竢粤蜥繝鴒羲蝟昭粡竚癈鷭п粐Ь蒹鞜竏粡齡鱸碯闔麗葹齒辣癇蛛碎纉鱚繿鱚筱鹿粡寂蝟赱齠洲痲筵娼蛹阡蒹鴦鱚頸蜿釶讙轣黼齒辣癇蛛碎纉蜩篌蝟昭粡竚癈鷭п粐Ь葹鱚阡閹肅竕瘡蜩痲粡闔草痺蒹鹿粡寂蝟赱齠洲痲筵娼頏阮蜆纉瘤粡聿纈緕闥阨畆蝟昭粡竚癈鷭п粐Ь鱚羹〓緕蔗迪▽苳氏粐阨阯緕鳫鉈緕鱸痰跂鵙踉晒瓲苳鹿粡寂蝟赱齠洲痲筵娼矚皷闔纉鳫粤磔繙癜踉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼¨鬲砠遲鞳鳰鹿粡寂蝟赱齠洲痲筵娼鱸銓衷銓緕鞳賍釟遐纂蝟昭粡竚癈鷭п粐Ь肬鱚痺る纖諷杜岌鹿粡寂蝟赱齠洲痲筵娼頏蜴△諷逅紫杜廂る纖瘢雹踉獅鬢瘢雹苳拶纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏‰蜴瘤糂阨槇瘢綵‰蜴瘤糂阨槇嘖追瘤篌蝟昭粡竚癈鷭п粐Ь堋圖踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始纈闕逡鉗竅闔續緕蒹纈瘤竚蜈銓鹿粡寂蝟赱齠洲痲筵娼葹韶緕阮纈鈔癇蜴頤└踉祉閼絋苳屍堋瀕閼絋苳皐鈔鈔癇篌蝟昭粡竚癈鷭п粐Ь頤└踉祉閼絋苳屍堋圖踉晒竢粤鈿鴉瘡鴒籬竢銓纔鹿粡寂蝟赱齠洲痲筵娼竢粤嘖追陸踉晒竢粤縺銖蒹纖硼癇筱肅跂葹頏閾鱇躰蝟昭粡竚癈鷭п粐Ь芍笏遯鈔踉祉閼絋苳屍堋圖踉晒竢粤齦瘡踟縺銖蒹鹿粡寂蝟赱齠洲痲筵娼竢銖闌闥竰繞隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蒹竢粤佻嘖閼絋苳肬鴉断頏閾鱇蹶蒹鹿粡寂蝟赱齠洲痲筵娼籬癆闥蜩粲繖蜴鞳竕瘡闥轣瘤艱鹿粡寂蝟赱齠洲痲筵娼粤跚鱚阨断頏閾鱇阮纈踉祉閼絋苳屍堋瀕閼絋苳皿蒹鹿粡寂蝟赱齠洲痲筵娼頏閾鱇緕瘤鳫竇齠葹籬阨艾竢迚鈑郤蝟昭粡竚癈鷭п粐Ь鳫諷閨鰾闥鳫肅跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹瑰鞳竕瘡闥轣蜩纈皷逅跂肅繻釶辣鈔鹿粡寂蝟赱齠洲痲筵娼跿癇褊蜴繖閾續蒹繿踈秋蜃遯鈔瘟鴦羲蝟昭粡竚癈鷭п粐Ь瘡癇褊蜴繖閾續蒹瘢鞳鴦瘤└瘢雹瘢雹鹿粡寂蝟赱齠洲痲筵娼侮竢鉚緕蜈銓葹鱇笏纈跚諷鞜竇鵺逅纈黶鈔鵺鈔髟瘡鷦蝟昭粡竚癈鷭п粐Ь蜃銖癇竢鉚纈蜴蒹蜥纔髟蝟瘡緕齒葹纖鹿粡寂蝟赱齠洲痲筵娼粹逾苺蒹闥謫壽闌籬蜴迚艾跫闍鹿粡寂蝟赱齠洲痲筵娼齒辣蜴跚諷墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼瘢綵咏竏ゲ安阯緕逅氏逅祉蜚悶鈑遉瘢雹瘢雹齡癆綵堀逅氏逅雌蜆繼蜒觸囁鴪繻ゲ依闔諷蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮搶跛闕續蜊纉踈黼蜩閹蜴瘰鞳鈔繖鐚蝟昭粡竚癈鷭п粐Ь蒹厂怦緕葹蜩闔絳蒹纈頤葹齡鱸鈑銓鐚蝟昭粡竚癈鷭п粐Ь蒹鉚蜥闔辣銓癇蛛碎竅跛繖踉祉閼絋苳姿嫖燮灑墟瀕忍踉晒竢粤蝟昭粡竚癈鷭п粐Ь葹竅跛繖踉祉閼絋苳伺都閼絋苳鱚髟纉阨挽楊闥躰蝟昭粡竚癈鷭п粐Ь鞳竕肅纉蒹纈踉祉閼絋苳伺都閼絋苳闥踉祉閼絋苳姉腕圖踉晒竢粤鷦蝟昭粡竚癈鷭п粐Ь黼繻蝟纈蒹癆甃黼蜴竢粤妖堡歪閼絋苳纂蝟昭粡竚癈鷭п粐Ь鱸碯竢粤届厖閼絋苳膊鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳支阨頏閾鱇蜩蒹鱚齔闔皷碎肬齔跚蜴癆蜴膽蝟昭粡竚癈鷭п粐Ь蜴黼胚蜴肬鴉癆蜿隨闥釶踟纈癇跚碣癇蜈鷦蝟昭粡竚癈鷭п粐Ь鈔閼纉蛹痰跂蒹跟阨鳫竇齠蓍籬癈繻癈鹿粡寂蝟赱齠洲痲筵娼葹鈔跂纈癈鞳笏閹阨断頏閾鱇蹼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就竍蜊閼纉跚碣癇蜈鵞瘢綵≪芍迴糒跂鼬蛯鱇鱸纉▽苳暫派鹿粡寂蝟赱齠洲痲筵娼迴糒跂鶩跚碣癇蜈鵙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蒹蜚断頏閾鱇逑鼈阨趙闔皷粤蜴畆蝟昭粡竚癈鷭п粐Ь閼跚碣癇迴糒跂迴齡苒鳬闥阨蝟昭粡竚癈鷭п粐Ь蓍跂痲纓纈鴪闥鵺鈔癈粤跫齏緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺鱚鱸鈑派鳫苒瘢蜴纈讙閼纉鱚鹿粡寂蝟赱齠洲痲筵娼癘瘟赱碎闔踉氏鱚羹∵雕竦瘤鱧弛僧壽迴齡鹿粡寂蝟赱齠洲痲筵娼竟頤赱迴糒跂闥蓍頤鴃闢蜩派蹼阨蜃蔗踈鐚蝟昭粡竚癈鷭п粐Ь闔皷粤断漂彩蜚絳蓍竏逅跂辣銓迚鉗轣黼閹鹿粡寂蝟赱齠洲痲筵娼胚釿闔瘡蜚蓍竏瘡鈬繖迴齡鳫苒瘢鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺鱚鱸鈑派鳫苒瘢蜴纈癇鱸續閹鹿粡寂蝟赱齠洲痲筵娼關闔鶤鈬纉蜩蒹派跚碣癇鳫畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕硼繻谺竢躁竍蜒蔗痕阨跛闕芍祚鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就肬鴉闥繪鈕闥轣闔釶辣就肬鴉闥繪鈕闥轣闔▽苳仔闥鹿粡寂蝟赱齠洲痲筵娼迴鱚鈕闥轣闔王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纈癇赱鱧銛轤纈断鱚齒竇闔蒹繧搶蝟昭粡竚癈鷭п粐Ь瘤蜩笊齠派鳫碎纃纈黼鴦專緕續鳫鹿粡寂蝟赱齠洲痲筵娼竢逅鈕闢逑蓖鱸鈑芍綜纈鴦瘟跚鈑鹿粡寂蝟赱齠洲痲筵娼跚齡鳫挽楊鱸鴦趙苒縺齒竇瘤齬纈鷦蝟昭粡竚癈鷭п粐Ь齡蜿銖搶竅肅鈔闥癆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕鱧蜩纈鴦蔗痕鱧蜩纈鴦踉晒瓲苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮綜筱竢黼鼈阨趙鳫矚碎鱚痲蒹派鹿粡寂蝟赱齠洲痲筵娼齔繝蜀蜒癆蜿遯蓍竏癈跛蒹續瘟踈關纈癆蜿閹鹿粡寂蝟赱齠洲痲筵娼断頏閾鱇逑搶竅肅鈔蒹鱸芍釶鴦蜿癆蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕闖蓖鎬釿黶蝠祟繖竍薇蜴鱠痺絎蔗迪▽苳士池薦踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь鈔蒹鱚瘤鞣癆繖鱇胄畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕皰苡跿竢躁竢癇芍衷迯闔癆纓癨銓纈聲竇鹿粡寂蝟赱齠洲痲筵娼卞頏闃繝熙踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蒹竟齡齡蜿痰阨断頏閧跂癆阨綣蝟昭粡竚癈鷭п粐Ь癘蜴膃蒹纈轣蛹蜴跚齡闥鈬苒阨隱瘠齦鱚鹿粡寂蝟赱齠洲痲筵娼頏阮蜆緕阨艾鈕闥轣闔硼葹葹韶緕繖癆阨鹿粡寂蝟赱齠洲痲筵娼纔鞳笏繖葹韶緕瘤蓖癆笏跛葹韶緕繖癈鹿粡寂蝟赱齠洲痲筵娼粡聿纈緕葹黼鴟纈阨鴣銕蜴膃葹赱鈑艱阨断票蝟昭粡竚癈鷭п粐Ь鳫苒瘢癈遯鈔蜀闢皷碎絳蒹聿緕粡鈑閼絎蓍跛鹿粡寂蝟赱齠洲痲筵娼轣諷蜴粡鈑阨頏閧跂逡竏蜊韭纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗葹髟纉闔痰阨断頏閧跂逑蓖篌蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳試纐纈闔胼苳矼闢蒹鞜竏碯籬矚黼鹿粡寂蝟赱齠洲痲筵娼跂齠阨鱚葹阨鈔鳫碎纃草痺蒹鹿粡寂蝟赱齠洲痲筵娼齒竇閼絎鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡阯芍谺蔗迪閭鶩轣銛瘡阯芍谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭甬禪芦絛幹錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蓖鎭竍藪蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡阯芍谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就竍藪蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁蓖鎭竍藪蔗迪甌裼皴蔗粹笂瘤豁蓖鎭竍藪蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握飢梶皺原禺碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡阯芍谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁蓖鎭竍藪蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯亀誓鹿粡寂蝟赱齠洲痲筵娼据迪纈皷闔就窺唖釿閼蜴臀∫齒芦沖褓⊃鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪貂赱鈑就裃赱鈑就裃▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹闥蛛貂派ぢによる動的コンテンツ</title> + + </head> + <!-- English revision: 1.8 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">CGI による動的コンテンツ</h1> + <a id="__index__" name="__index__"></a> <!-- INDEX BEGIN --> + + + <ul> + <li><a href="#dynamiccontentwithcgi">CGI + による動的コンテンツ</a></li> + + <li> + <a href="#configuringapachetopermitcgi">CGI を許可するよう瘢雹に + Apache を設定する</a> + + <ul> + <li><a href="#scriptalias">ScriptAlias</a></li> + + <li> + <a href="#cgioutsideofscriptaliasdirectories" + >ScriptAlias ディレクトリ外の CGI</a> + + <ul> + <li><a + href="#explicitlyusingoptionstopermitcgiexecution">CGI + の孫圓魏椎修砲垢襪燭瓩頸蜿銖ぢを明忙藩僂垢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蔗痺竇齠肅跂鵞窿纉ファイル</a></li> + </ul> + </li> + </ul> + </li> + + <li> + <a href="#writingacgiprogram">CGI プログラムを書く</a> + + <ul> + <li><a href="#yourfirstcgiprogram">あなたの最初の CGI + プログラム</a></li> + </ul> + </li> + + <li> + <a href="#butitsstillnotworking">しかし、まだ動かない !</a> + + + <ul> + <li><a href="#filepermissions">ファイルのパ・踉札潺奪轡腑薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■鞜蜴肬鴉癆蜿遐パス霾薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■齷銓癢纈鳫鴦▽苳ぢ構文エラ・踉薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■纈鳫鳰閾鵞エラ・踉札蹈薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■癆鼇濶鈑闔矼蓍鈔纉竇鈬鵞鹿粡寂蝟赱齠洲痲筵娼裏で何が起こっているのか?</a> + + <ul> + <li><a href="#environmentvariables">環境変数</a></li> + + + <li><a href="#stdinandstdout">標準入出力</a></li> + </ul> + </li> + + <li><a href="#cgimoduleslibraries">CGI + モジュ・踉札ぢライブラリ</a></li> + + <li><a href="#formoreinformation">更なる霾薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼´瀕津杜鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就糯釶迚窿闔銓竍蘂瘢綵≫瘢蜒竢銓緕蜚蓊芍▽苳暫派鹿粡寂蝟赱齠洲痲筵娼による動的コンテンツ</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>関連モジュ・踉札闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹〓迴箝迴籖瘡蛛鶤蔗迪▽苳詩閼焉跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹〓迴箝迴籖竍藪蔗迪▽苳詩閼焜芍碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳ぢ関連ディレクティブ</strong><br /> + <br /> + <a + href="../mod/mod_mime.html#addhandler">AddHandler</a><br /> + <a href="../mod/core.html#options">Options</a><br /> + <a + href="../mod/mod_alias.html#scriptalias">ScriptAlias</a><br /> + </td> + </tr> + </table> + + <p>CGI (Common Gateway Interface) は、ウ瘢雹ェブサ・踉札个鹿粡寂蝟赱齠洲痲筵娼コンテンツ生成をする外部プログラムと協調して動作するための方法を + 定義しています。そのプログラムはしばしば CGI プログラムや CGI + スクリプトと呼ばれます。CGI は、ウ瘢雹ェブサイトに動的なコンテンツを + 置くための最も簡単で一般的な方法です。このドキュメントは、 + Apache ウ瘢雹ェブサ・踉札个派ぢを設定し、 + CGI プログラムを書き始めるための入門書となるでしょう瘢雹。</p> + <hr /> + + <h2><a id="configuringapachetopermitcgi" + name="configuringapachetopermitcgi">CGI を許可するよう瘢雹に + Apache を設定する</a></h2> + + <p>CGI プログラムを正しく動作させるには、CGI を許可するよう瘢雹に + Apache の設定を行う瘢雹必要があります。 + これを行なう瘢雹ための方法がいくつかあります。</p> + + <h3><a id="scriptalias" name="scriptalias">ScriptAlias</a></h3> + + <p><code>ScriptAlias</code> ディレクティブを使用して、 + CGI プログラム用の特別な別ディレクトリを Apache に設定します。 + Apache は、このディレクトリ中の全てのファイルを CGI + プログラムであると王苳残蠅靴泙后修靴董△海瞭段未淵螢宗スが + クライアントから要求されると、そのプログラムの孫圓鮖遒澆泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳屍竰蜷跚癈閼絋苳ディレクティブは以王踉擦里茲逅擦忙藩僂靴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼噬鱸頸糟蛛芍蜴齟閭瘡鞜竏絲竍薛砠遲鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢデフォルト位置に Apache をインスト・踉札襪靴燭覆蕕弌鹿粡寂蝟赱齠洲痲筵娼この例はデフォルト屬踉祉閼絋苳肢鞣闔网踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼設定ファイルに含まれています。<code>ScriptAlias</code> + ディレクティブは、URL の前に付加するディレクトリを定義する + <code>Alias</code> ディレクティブとかなり似ています。 + <code>Alias</code> と <code>ScriptAlias</code> は通錙鹿粡寂蝟赱齠洲痲筵娼竢粤弟笊辣銓呰阡閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢディレクトリ外のディレクトリのために使用されます。 + <code>Alias</code> と <code>ScriptAlias</code> との差は、 + <code>ScriptAlias</code> が接頭濃呂泙襪垢戮討厂ぢは CGI + プログラムとみなされるという瘢雹追加の意味を含んでいることです。 + 拾苳擦辰董▽苳糸記の例では、<code>/cgi-bin/</code> + で始まるリソ・踉札垢悗里△蕕罎襯螢┘好箸紡个靴董▲妊譽肇鹿粡寂蝟赱齠洲痲筵娼竢粤齟閭瘡鞜竏絲竍薛砠遲閼絋苳から提供し、それらを + CGI プログラムとして扱う瘢雹よう瘢雹 Apache に┐靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例えば、URL <code>http://dev.rcbowen.com/cgi-bin/test.pl</code> + が要求された豺隋草痺蒹ぢは ファイル + <code>/usr/local/apache/cgi-bin/test.pl</code> + を孫圓掘△修僚侘呂鯤屬垢海箸鮖遒澆泙后鹿粡寂蝟赱齠洲痲筵娼もちろん、ファイルが存在し、孫垈椎修任△蝓鹿粡寂蝟赱齠洲痲筵娼決められた方法で出力を返します。 + そう瘢雹でなければ、Apache はエラ・踉札瓮奪察ジを返します。</p> + + <h3><a id="cgioutsideofscriptaliasdirectories" + name="cgioutsideofscriptaliasdirectories"> + ScriptAlias ディレクトリ外の CGI</a></h3> + + <p>CGI プログラムは、セキュリティ紊陵海踉祉閼絋苳屍竰蜷跚癈閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢされたディレクトリに制限されることがしばしばあります。この方法により、 + CGI プログラムを使用できるユ・踉札兇魎浜踉市が厳しく制御することができます。 + しかしながら、適切なセキュリティ事前対策がとられるならば、CGI + プログラムを任意のディレクトリで孫圓任覆い茲逅擦砲垢詬海呂△蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼例えば、ユ・踉札兇踉祉閼絋苳師黼鯆蜥閼絋苳ディレクティブで + 彼らのホ・踉札爛妊譽肇蠻朮にウ瘢雹ェブコンテンツを持たせたいとします。 + もし、彼らが CGI プログラムを持つことを胞苳擦鵑任い討癲▲瓮ぅ鵑鹿粡寂蝟赱齠洲痲筵娼竢粤竍薛砠遉踉晒竢粤ぢディレクトリへのアクセスができない豺隋断票蝟昭粡竚癈鷭п粐Ьぢプログラムを孫圓垢襪海箸任訛の貊蠅廚砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就纔韭蜒蜚踟蜴苡頸蜿銖鞳鴉蜚竍蜈笊闔⊆蝟昭粡竚癈鷭п粐Ь瘢綵√跚竕皷鈑關闔齡關纈迚芍纔繝蜿遐鹿粡寂蝟赱齠洲痲筵娼断の孫圓魏椎修砲垢襪燭瓩頸蜿銖ぢを明忙藩僂垢界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮サ・踉札个離瓮ぅ鵑寮瀋螢侫.ぅ訝罎踉祉閼絋苳始頸蜿銖閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブを明忙藩僂垢襪海箸如団蠅離妊譽肇蠻朮で + CGI の孫圓魑弔垢襪茲逅擦忙慊蠅垢襪海箸任泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼逅詞堤鱚笏闥齟閭瘡鞜竏絲蔗粹笂闕繖蜥逅紫鹿粡寂蝟赱齠洲痲筵娼闔稈派鹿粡寂蝟赱齠洲痲筵娼逅詞蜥繝鴒逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ綉妊譽謄屬蓮断ファイルの孫圓魏椎修砲垢襪茲逅鞜竏綣蝟昭粡竚癈鷭п粐Ьぢに伝えます。また、どのファイルが CGI ファイルかをサ・踉札个謀舛┐鹿粡寂蝟赱齠洲痲筵娼必要があります。,踉祉閼絋苳餐粐悲鈔跂鬢踉晒竢粤ぢディレクティブの例では、 + <code>cgi</code> または <code>pl</code> を拡張子に持つすべてのファイルを + CGI プログラムとしてみなすことをサ・踉札个謀舛┐泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼粐悲鈔跂竍薛黹鱸頸芍貅蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏∵窿纉黽蛹纉⊆蝟昭粡竚癈鷭п粐Ь瘢綵∵窿纉黽蛹纉▽苳皿蔗痺竇齠ぢファイル</a></h3> + + <p><code>.htaccess</code> + ファイルは、ディレクトリ毎にディレクティブを指定する方法です。Apache + は、リソ・踉札垢鯆鷆,垢襪箸法鷆,垢襯侫.ぅ襪屬譴討い襯妊譽肇蠱罎鹿粡寂蝟赱齠洲痲筵娼竢粤窿纉鵙踉晒竢粤ぢという瘢雹ファイルを参箸靴泙后修離侫.ぅ襪鯣靴燭蕁鹿粡寂蝟赱齠洲痲筵娼その中で発見されたディレクティブが適用されます。<code>.htaccess</code> + ファイルは、<code>AllowOverride</code> ディレクティブの指定により + 使えるよう瘢雹になります。<code>AllowOverride</code>ディレクティブは、 + <code>.htaccess</code> ファイルで設定できるディレクティブのタイプを指定します。 + <code>AllowOverride</code> ディレクティブの指定がない豺隋△泙辰燭箸┐泙擦鵝鹿粡寂蝟赱齠洲痲筵娼断の孫圓魑弔垢襪燭瓩防廚箸覆襯妊譽謄屬鮖慊蟆椎修砲垢襪砲蓮鹿粡寂蝟赱齠洲痲筵娼以王踉擦寮瀋蠅機バのメインの設定で必要になります:</p> +<pre> + AllowOverride Options +</pre> + + <p><code>.htaccess</code> ファイルでは、,離妊譽謄屬廚鹿粡寂蝟赱齠洲痲筵娼なります:</p> +<pre> + Options +ExecCGI +</pre> + + <p>この設定では、このディレクトリにおける + CGI プログラムの孫圓魑弔垢襪茲逅鞜竏に伝えます。</p> + <hr /> + + <h2><a id="writingacgiprogram" + name="writingacgiprogram">CGI プログラムを書く</a></h2> + + <p>通錣離廛蹈哀薀潺鵐阿鹿粡寂蝟赱齠洲痲筵娼断プログラミングの間には腓貌鵑弔琉磴い△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ一つは、CGI プログラムのすべての出力には MIME-type + ヘッダを付けなければなりません。これはどのよう瘢雹な鑪爐離灰鵐謄鵐鹿粡寂蝟赱齠洲痲筵娼を右踉肢っているかをクライアントに┐墺ヘッダです。 + ほとんどの豺腓任蓮▽踉察のよう瘢雹に出力します:</p> +<pre> + Content-type: text/html +</pre> + + <p>もう瘢雹一つは、出力を HTML か、 + ブラウ瘢雹ザが表┐垢襪海箸任覯燭の形阿砲垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼大抵の豺腓塒でしょう瘢雹が、GIF イメ・踉札犬簑の非 HTML + コンテンツを出力する CGI プログラムを書くこともあるでしょう瘢雹。 + </p> + + <p>これら二点以外では、CGI プログラムを書くことは、 + あなたが書いている側苳擦離廛蹈哀薀爐搬腓い忙討い襪任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就肅鴦芍頏閾鱇蹉鹿粡寂蝟赱齠洲痲筵娼釶辣就肅鴦芍頏閾鱇蹉あなたの最初の CGI プログラム</a></h3> + + <p>,胞踉雑すのは、ブラウ瘢雹ザに 1 行印字する CGI プログラムの例です。 + 以王踉擦鯑呂掘竢粤肅鴦韭閼絋苳という瘢雹ファイルに保存し、 + それを <code>cgi-bin</code> ディレクトリに置いてください。 + </p> +<pre> + #!/usr/bin/perl + print "Content-type: text/html\r\n\r\n"; + print "Hello, World."; +</pre> + + <p>Perl に精通していなくても、 + 何が起こるかを理解することはできるはずです。 + 1 行目は、<code>/usr/bin/perl</code> で見つけられるインタプリタ + にこのファイルを供給することでこのプログラムが孫圓気譴襪海箸鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢに (シェル紊忍踉斬行しよう瘢雹としているならば、そのシェルに ) + ┐靴泙后行目は、前述したとおり content-type + の定義を印字します。これには復帰改行の二つの組を後に付加します。 + これにより、ヘッダの終りに空行が置かれ、 + HTTP ヘッダの終りとボディの始まりを┐靴泙后行目は、 + ``Hello, World.'' という瘢雹文字列を印字し、これで終りとなります。</p> + + <p>好みのブラウ瘢雹ザを開き、アドレス</p> +<pre> + http://www.example.com/cgi-bin/first.pl +</pre> + + <p>あるいはファイルを置いたロケ・踉札轡腑鵑鮖慊蠅垢襪函鹿粡寂蝟赱齠洲痲筵娼竢粤斐跛鍖闥趙踉晒竢粤ぢという瘢雹 1 行がブラウ瘢雹ザウ瘢雹ィンド + に現れるでしょう瘢雹。それはあまりエキサイティングなことではありません。 + しかし、これがう瘢雹まく動けば、 + 側苳擦里匹里茲逅擦覆發里任眛阿垢海箸任襪茲逅擦砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就碯齡蛹跪阡鳬蜴腆鹿粡寂蝟赱齠洲痲筵娼釶辣就碯齡蛹跪阡鳬蜴腆しかし、まだ動かない !</a></h2> + + <p>ウ瘢雹ェブから CGI プログラムへのアクセスを行なったとき、 + ブラウ瘢雹ザで見る可能性がある四つの基本的なことがあります:</p> + + <dl> + <dt>CGI プログラムの出力</dt> + + <dd>素晴らしい ! それはすべてがう瘢雹まく動いたことを意味します。<br /> + <br /> + </dd> + + <dt>CGI プログラムのソ・踉札好魁ド、または + "POST Method Not Allowed" という瘢雹メッセ・踉札熙苳鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐これは、CGI プログラムを処理できるよう瘢雹 + Apache を適切に設定していなかったことを意味します。 + <a href="#configuringapachetopermitcgi">「CGI を許可するよう瘢雹に + Apache を設定する」</a>の呂鯑匹瀋し、 + あなたが何を間違えたかを探してみてください。<br /> + <br /> + </dd> + + <dt>メッセ・踉札犬楠鰲蜆粤遐ぢで始まっている</dt> + + <dd>これはパ・踉札潺奪轡腑鵑量簑蠅箸い逅擦海箸魄嫐靴泙后鹿粡寂蝟赱齠洲痲筵娼蓿繙就e鴪闥跫苴▽苳餐鞜竏のエラ・踉札蹈と、後述の + <a href="#filepermissions">「ファイルのパ・踉札潺奪轡腑鵝の呂鹿粡寂蝟赱齠洲痲筵娼チェックしてください。<br /> + <br /> + </dd> + + <dt>"Internal Server Error" という瘢雹メッセ・踉札熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉氏鱚羹■纈鳫鳰閾鵞草痺蒹ぢのエラ・踉札蹈をチェックすると、 + "Premature end of script headers" という瘢雹ログが記録されていると思います。 + そして、おそらく CGI プログラムによって生成されたエラ・踉札瓮奪察ジ + も記録されているでしょう瘢雹。この豺隋断プログラムが適切な + HTTP ヘッダを出力できない原因を知るために、 + 以王踉擦粒豆苳始でチェックしてみてください。 + </dd> + </dl> + + <h3><a id="filepermissions" + name="filepermissions">ファイルのパ・踉札潺奪轡腑界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮サ・踉札个呂△覆燭慮造忍踉斬行されていないのを忘れないよう瘢雹に。 + つまり、起動するとき、サ・踉札个脇淡△鬚發燭覆ぅ罅ザ - 通鹿粡寂蝟赱齠洲痲筵娼玻鈿硼糯Ёぢや ``www'' の権限で孫圓気譴泙后靴燭辰董鹿粡寂蝟赱齠洲痲筵娼あなたが所有するファイルを孫圓垢襪砲亙未離僉ミッション + が必要となります。通錙玻鈿硼糯Ёぢが孫圓垢襪里暴淑鹿粡寂蝟赱齠洲痲筵娼パ・踉札潺奪轡腑鵑鰺燭┐詈,蓮▲侫.ぅ襪肪任皃踉斬行可能とする + パ・踉札潺奪轡腑鵑鰺燭┐襪海箸任墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼竏迴甄肅鴦韭鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢまた、もしあなたのプログラムが側苳擦離侫.ぅ襪鯑匹濬颪垢襪覆蕕弌鹿粡寂蝟赱齠洲痲筵娼それらのファイルは、これが可能となる正しいパ・踉札潺奪轡腑鹿粡寂蝟赱齠洲痲筵娼を持っている必要があります。</p> + + <p>これに対する例外は、サ・踉札个踉氏鱚羹〓齦纔繝譬齦纔繝鹿粡寂蝟赱齠洲痲筵娼を使用するよう瘢雹設定されている豺腓任后齦纔繝ぢは、CGI + プログラムが置かれているバ・踉札船礇襯曠好箸泙燭魯罅ザの + ホ・踉札爛妊譽肇蠅砲茲辰董曚覆襯罅ザ権限で孫圓気譴襪茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼齦纔繝ぢはとても厳しいパ・踉札潺奪轡腑鵑離船Д奪△蝓鹿粡寂蝟赱齠洲痲筵娼そのチェックを通過できないと "Internal Server Error" となり、その + CGI プログラムの孫圓櫓踉産敗します。 + この豺隋△匹離札絅螢謄船Д奪踉産敗しているのかを知るために + suexec ログファイルをチェックする必要があります。</p> + + <h3><a id="pathinformation" + name="pathinformation">パス霾界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮コマンドラインからプログラムを孫圓垢襪箸鹿粡寂蝟赱齠洲痲筵娼意韻靴覆討皀轡Д襪謀呂気譴襴苳諮報があります。 + 例えば、参箸垢襯侫.ぅ襪里燭瓩砲匹海鮓〆靴燭蕕茲い鹿粡寂蝟赱齠洲痲筵娼シェルに伝えるパスがあります。</p> + + <p>プログラムが CGI プログラムとしてウ瘢雹ェブサ・踉札个砲茲辰豆踉斬行されるとき、 + それはパスを持ちません。CGI プログラム内で呼び出すあらゆるプログラム + (例えば、'sendmail' のよう瘢雹なもの) は、フルパスで指定する必要があるでしょう瘢雹。 + それにより、CGI プログラムを孫圓靴茲逅擦箸靴燭箸鹿粡寂蝟赱齠洲痲筵娼シェルはそのよう瘢雹なプログラムを見つけることができます。</p> + + <p>同様なことは、スクリプトのインタプリタ (しばしば <code> perl + </code>) へのパスで、CGI プログラムの 1 行目に,里茲逅擦胞踉雑されます:</p> + +<pre> + #!/usr/bin/perl +</pre> + + <p>これがインタ・踉札廛螢燭悗陸踉斬際のパスであることを確造砲靴討泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就齷銓癢纈鳫鴦⊆蝟昭粡竚癈鷭п粐Ь瘢綵‰鴪闥鵞構文エラ・踉界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮断プログラムが最圓垢襪里和臘顱鹿粡寂蝟赱齠洲痲筵娼プログラム箸北簑蠅△襴苳詞合です。一度 CGI の使い方を理解し、 + 前述の二つの誤りを犯していないならば、まず間違いなくそう瘢雹でしょう瘢雹。 + ブラウ瘢雹ザを通してテストを行う瘢雹前に必ず、コマンドラインから + プログラムの孫圓鮖遒靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼これにより、大抵の問題が起こらなくなります。</p> + + <h3><a id="errorlogs" name="errorlogs">エラ・踉札蹈界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮エラ・踉札蹈阿詫任后A瓦討里逅擦泙い覆い海箸蓮鹿粡寂蝟赱齠洲痲筵娼エラ・踉札蹈阿縫瓮奪察ジを生成します。必ずそれを最初に見るべきです。 + もし、あなたがウ瘢雹ェブサイトを膾鼎靴討い襴苳詞所がエラ・踉札蹈阿了王苳使を + 許していないならば、きっと側苳擦離汽ぅ箸忍踉紫催するべきです。 + エラ・踉札蹈阿瞭匹瀛魍悗屬海箸如△曚箸鵑描瓦討量簑蠅彗乏稜Г気譟鹿粡寂蝟赱齠洲痲筵娼迅速に解決されるという瘢雹ことが分かるでしょう瘢雹。 + </p> + <hr /> + + <h2><a id="whatsgoingonbehindthescenes" + name="whatsgoingonbehindthescenes">裏で何が起こっているのか?</a></h2> + + + <p>CGI プログラミングに熟達すると、 + 裏で起こっていることについて更に理解することは有益になるでしょう瘢雹。 + ブラウ瘢雹ザとサ・踉札个匹里茲逅擦冒蠍瀋命垢襪砲弔い討脇辰砲修逅擦任后鹿粡寂蝟赱齠洲痲筵娼なう踉擦覆蕁玻斐跛鍖闥趙Ъ蝟昭粡竚癈鷭п粐Ьぢを印字するプログラムを書くことはまことに結構ですが、 + それは特に有益ではありません。</p> + + <h3><a id="environmentvariables" + name="environmentvariables">環境変数</a></h3> + + <p>環境変数は、あなたがコンピュ・踉札燭鮖箸逅擦箸吠佞蠅紡減澆靴討い訝佑任后鹿粡寂蝟赱齠洲痲筵娼それらは、パス + (コマンドをタイプしたときに孫圓垢襴踉斬際のファイルを探し出すところ)、 + ユ・踉札玉、脱踉史燭覆匹里茲逅擦癖慷覆發里任后鹿粡寂蝟赱齠洲痲筵娼通錣痢∨萋隆超竸瑤隆袷瓦淵螢好箸鯆瓦戮襪砲蓮鹿粡寂蝟赱齠洲痲筵娼コマンドプロンプトで <code>env</code> を入力します。</p> + + <p>CGI の処理中、サ・踉札个肇屮薀逅札兇盍超竸瑤鮴瀋蠅掘鹿粡寂蝟赱齠洲痲筵娼それにより相互に通信することができるよう瘢雹になります。 + その環境変数は、ブラウ瘢雹ザタイプ (Netscape, IE, Lynx)、 + サ・踉札丱織ぅ草痺蒹鰭哮繧嚔ぢ、孫圓気譴討い鹿粡寂蝟赱齠洲痲筵娼断プログラムの巳苳餐阿覆匹里茲逅擦覆發里任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこれらの変数は CGI プログラマが使用することができます。 + そして、それはクライアントとサ・踉札个猟命力辰糧分です。 + 必要な変数の完全なリストは <a + href="http://hoohoo.ncsa.uiuc.edu/cgi/env.html" + >http://hoohoo.ncsa.uiuc.edu/cgi/env.html</a> にあります。</p> + + <p>以王踉擦涼噂磴纈断プログラムは、 + 渡される全ての環境変数を表┐靴泙后F瑛佑離廛蹈哀薀爐蓮鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢディストリビュ・踉札轡腑鵑踉祉閼絋苳祉芍蜴閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢディレクトリに二つ含まれています。いくつかの変数が必須であり、 + いくつかは任意であることに注意してください。そして、 + 公阿離螢好箸砲呂覆いい弔諒竸瑤拾踉雑されているかもしれません。 + さらに、Apache はデフォルトで用意されている基本的なものに + <a href="../env.html">あなた箸隆超竸瑤魏辰┐ための、 + 多くの異なる方法を用意してします。</p> +<pre> + #!/usr/bin/perl + print "Content-type: text/html\n\n"; + foreach $key (keys %ENV) { + print "$key --> $ENV{$key}<br>"; + } +</pre> + + <h3><a id="stdinandstdout" name="stdinandstdout">STDIN と + STDOUT</a></h3> + + <p>サ・踉札个肇薀ぅ▲鵐抜屬里發逅三譴弔猟命蓮現狷鹿粡寂蝟赱齠洲痲筵娼└踉祉閼絋苳屍堋瀕閼絋苳皐と標準出力 (<code>STDOUT</code>) + を通じて行なわれます。通錣諒弧砲い董竢粤嘖追陸踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼はキ・踉札棔ドやプログラムが動作するために与えられるファイルを意味し、 + <code>STDOUT</code> は通錺灰鵐宗ルまたはスクリ・踉札鵑魄嫐靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢウ瘢雹ェブフォ・踉札爐派ぢプログラムへ<code>POST</code> したとき、 + フォ・踉札爐離如タは特別なフォ・踉札泪奪箸蚤佑蕕譟竢粤嘖追陸踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を通して、CGI プログラムに引き渡されます。 + プログラムはデ・踉札燭ボ・踉札匹發靴魯侫.ぅ鹿粡寂蝟赱齠洲痲筵娼から来ていたかのよう瘢雹に処理することができます。</p> + + <p>「特別なフォ・踉札泪奪函廚呂箸討眞噂磴任后侫ルド巳苳擦斑佑鹿粡寂蝟赱齠洲痲筵娼イコ・踉札秋ぢで結ばれます。そして値の組はアンパサンド (&) + で結ばれます。スペ・踉札后▲▲鵐僖汽鵐鼻▲ぅ魁ルのよう瘢雹な面倒な文字は、 + それらが動作を駄目にしないよう瘢雹にその文字に相当する + 16 進に変換されます。全デ・踉札進源鵑蓮焚のよう瘢雹になります: + </p> + +<pre> + name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey +</pre> + + <p>時々、このよう瘢雹な文字列が URL に付加されるのを見るでしょう瘢雹。 + その豺隋▲機バは <code>QUERY_STRING</code> + という瘢雹環境変数にその文字列を入れます。それは <code>GET</code> + リクエストと呼ばれます。HTML フォ・踉札爐任蓮▲如タを渡すために + <code>GET</code> と <code>POST</code> のどちらを使用するかを、 + <code>FORM</code>タグの <code>METHOD</code> + 属性の設定で指定します。</p> + + <p>CGI プログラムは、その文字列を役に立つ霾鵑吠笋垢訐嫻い△蠅泙后鹿粡寂蝟赱齠洲痲筵娼幸いにも、そのデ・踉札申萢鮟韻襯薀ぅ屮薀蠅筌皀献紂ルが存在します。 + これらは、CGI プログラムの側苳擦量未任眛瑛佑北鬚卜舛泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就竍蜊閼纉跚碣癇蜈鵞鹿粡寂蝟赱齠洲痲筵娼釶辣就竍蜊閼纉跚碣癇蜈鵞断モジュ・踉札ぢライブラリ</a></h2> + + <p>CGI プログラムを書くとき、面倒な仕事の大部分をしてくれる + コ・踉札疋薀ぅ屮薀蠅泙燭魯皀献紂ルを使う瘢雹ことを検討すべきです。 + これはエラ・踉擦鮓困蕕掘∩瓩こ砲弔覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳姉纈で CGI プログラムを書いているなら、モジュ・踉札襪鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕鞜隨闥膀▽苳暫仭陸踉晒瓲苳で提供されています。 + この目的のための最も普及しているモジュ・踉札襪派です。 + CGI::Lite も検討しましょう瘢雹。これは、ほとんどのプログラム + において必要とするすべての機能の最札奪箸陸踉斬装です。</p> + + <p>C で CGI プログラムを書いているなら、いろいろなオプションがあります。 + これらの内の一つは <a href="http://www.boutell.com/cgic/" + >http://www.boutell.com/cgic/</a> で提供されている CGIC ライブラリです。</p> + <hr /> + + <h2><a id="formoreinformation" + name="formoreinformation">更なる霾王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮断に関する霾鵑魯逅札Д屬膿燭鷆,気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼断の問題については Usenet の comp.infosystems.www.authoring.cgi + で、側苳擦離罅ザと論議することができます。HTML Writers Guide の -servers + メ・踉札螢鵐哀螢好箸蓮△△覆燭陸踉餐問に回答してくれる偉大なリソ・踉札垢任后鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕鱧蜩纈鴦鹿粡寂蝟赱齠洲痲筵娼蔗痕鱧蜩纈鴦踉晒瓲苳で更に多くを探し出すことができます。</p> + + <p>そしてもちろん、おそらく CGI + プログラムの動作に関する楮戮料瓦討劼気譴討い派鹿粡寂蝟赱齠洲痲筵娼の仕様を読むべきです。オリジナルバ・踉札献腑鵑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕闖蓖鎬釿黶蝠祟繖竍薇蜴鱠痺絎蔗迪▽苳士池薦踉晒瓲苳で、 + アップデ・踉札箸気譴織疋薀侫箸踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕繧闌闕閨鬲竍薇▽苳暫闕迴煤侮鱠痺卞端蝟昭粡竚癈鷭п粐Ьぢプロジェクト</a>で参箸垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳暫派ぢの問題について、 + 加わっているメ・踉札螢鵐哀螢好箸泙燭魯縫紂スグル・踉札廚胞踉餐問を送るとき、 + 起こったもの、起こってほしいこと、尊櫃傍海辰燭海箸匹逅三磴逅擦鹿粡寂蝟赱齠洲痲筵娼使用しているサ・踉札弌断票蝟昭粡竚癈鷭п粐Ьぢプログラムを記述している言語に関する十分な霾鵑函鹿粡寂蝟赱齠洲痲筵娼可能であれば問題のコ・踉札匹鯆鷆,垢襪茲逅擦砲靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼そう瘢雹することで、問題がより間単に見つかるよう瘢雹になります。</p> + + <p>Apache + のソ・踉札好魁ドにおいて問題を発見したことを確信していない限り、 + CGI の問題に関する遡笋鞜竏綣蝟昭粡竚癈鷭п粐Ьぢバグデ・踉札織戞スに送るべきでないことに注目してください。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/howto/footer.html b/htdocs/manual/howto/footer.html new file mode 100644 index 0000000000..10a731d148 --- /dev/null +++ b/htdocs/manual/howto/footer.html @@ -0,0 +1,6 @@ + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + diff --git a/htdocs/manual/howto/header.html b/htdocs/manual/howto/header.html new file mode 100644 index 0000000000..272a770308 --- /dev/null +++ b/htdocs/manual/howto/header.html @@ -0,0 +1,6 @@ + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + diff --git a/htdocs/manual/howto/htaccess.html b/htdocs/manual/howto/htaccess.html new file mode 100755 index 0000000000..794e5bb09b --- /dev/null +++ b/htdocs/manual/howto/htaccess.html @@ -0,0 +1,416 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Tutorial: .htaccess files</title> + </head> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#000080" + alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER"><code>.htaccess</code> files</h1> + <!-- INDEX BEGIN --> + + <ul> + <li><a href="#what">What they are/How to use them</a></li> + + <li><a href="#when">When (not) to use <code + class="file">.htaccess</code></a> files</li> + + <li><a href="#how">How directives are applied</a></li> + + <li><a href="#auth">Authentication example</a></li> + + <li><a href="#ssi">Server side includes example</a></li> + + <li><a href="#cgi">CGI example</a></li> + + <li><a href="#troubleshoot">Troubleshooting</a></li> + </ul> + <!-- Index End --> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <code><a href="../mod/core.html">core</a></code><br /> + <code><a href="../mod/mod_auth.html">mod_auth</a></code><br /> + <code><a href="../mod/mod_cgi.html">mod_cgi</a></code><br /> + <code><a href="../mod/mod_include.html">mod_include</a><br /> + </code> <a href="../mod/mod_mime.html">mod_mine</a><br /> + </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <code><a + href="../mod/core.html#accessfilename">AccessFileName</a></code><br /> + <code><a + href="../mod/core.html#allowoverride">AllowOverride</a></code><br /> + <code><a href="../mod/core.html#options">Options</a></code><br /> + <code><a + href="../mod/mod_mime.html#addhandler">AddHandler</a></code><br /> + <code><a + href="../mod/mod_mime.html#sethandler">SetHandler</a></code><br /> + <code><a + href="../mod/core.html#authtype">AuthType</a></code><br /> + <code><a + href="../mod/core.html#authname">AuthName</a></code><br /> + <code><a + href="../mod/mod_auth.html#authuserfile">AuthUserFile</a></code><br /> + <code><a + href="../mod/mod_auth.html#authuserfile">AuthGroupFile</a></code><br /> + <code><a href="../mod/core.html#require">Require</a></code><br /> + </td> + </tr> + </table> + <hr /> + + <h2><a id="what" name="what">What they are/How to use them</a></h2> + + <p><code>.htaccess</code> files (or "distributed configuration files") + provide a way to make configuration changes on a per-directory basis. A + file, containing one or more configuration directives, is placed in a + particular document directory, and the directives apply to that + directory, and all subdirectories thereof.</p> + + <p>Note: If you want to call your <code>.htaccess</code> file something + else, you can change the name of the file using the <code><a + href="../mod/core.html#accessfilename">AccessFileName</a></code> + directive. For example, if you would rather call the file + <code>.config</code> then you can put the following in your server + configuration file:</p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code>AccessFileName .config</code> </td> + </tr> + </table> + </blockquote> + + <p>What you can put in these files is determined by the <code><a + href="../mod/core.html#allowoverride">AllowOverride</a></code> + directive. This directive specifies, in categories, what directives + will be honored if they are found in a <code>.htaccess</code> file. If + a directive is permitted in a <code>.htaccess</code> file, the + documentation for that directive will contain an Override section, + specifying what value must be in <code>AllowOverride</code> in order + for that directive to be permitted.</p> + + <p>For example, if you look at the documentation for the <a + href="../mod/core.html#adddefaultcharset">AddDefaultCharset</a> + directive, you will find that it is permitted in <code>.htaccess</code> + files. (See the Context line in the directive summary.) The <a + href="../mod/directive-dict.html#Context">Override</a> line reads + "<code>FileInfo</code>". Thus, you must have at least + "<code>AllowOverride FileInfo</code>" in order for this directive to be + honored in <code>.htaccess</code> files.</p> + + <p>Example:</p> + + <blockquote> + <table> + <tr> + <td><a + href="../mod/directive-dict.html#Context">Context:</a></td> + + <td>server config, virtual host, directory, .htaccess</td> + </tr> + + <tr> + <td><a + href="../mod/directive-dict.html#Override">Override:</a></td> + + <td>FileInfo</td> + </tr> + </table> + </blockquote> + + <p>If you are unsure whether a particular directive is permitted in a + <code>.htaccess</code> file, look at the documentation for that + directive, and check the Context line for ".htaccess."</p> + + <h2><a id="when" name="when">When (not) to use .htaccess files</a></h2> + + <p>In general, you should never use <code>.htaccess</code> files unless + you don't have access to the main server configuration file. There is, + for example, a prevailing misconception that user authentication should + always be done in <code>.htaccess</code> files. This is simply not the + case. You can put user authentication configurations in the main server + configuration, and this is, in fact, the preferred way to do + things.</p> + + <p><code>.htaccess</code> files should be used in a case where the + content providers need to make configuration changes to the server on a + per-directory basis, but do not have root access on the server system. + In the event that the server administrator is not willing to make + frequent configuration changes, it might be desirable to permit + individual users to make these changes in <code>.htaccess</code> files + for themselves. This is particularly true, for example, in cases where + ISPs are hosting multiple user sites on a single machine, and want + their users to be able to alter their configuration.</p> + + <p>However, in general, use of <code>.htaccess</code> files should be + avoided when possible. Any configuration that you would consider + putting in a <code>.htaccess</code> file, can just as effectively be + made in a <a href="../mod/core.html#directory"><Directory></a> + section in your main server configuration file.</p> + + <p>There are two main reasons to avoid the use of + <code>.htaccess</code> files.</p> + + <p>The first of these is performance. When <code>AllowOverride</code> + is set to allow the use of <code>.htaccess</code> files, Apache will + look in every directory for <code>.htaccess</code> files. Thus, + permitting <code>.htaccess</code> files causes a performance hit, + whether or not you actually even use them! Also, the + <code>.htaccess</code> file is loaded every time a document is + requested.</p> + + <p>Further note that Apache must look for <code>.htaccess</code> files + in all higher-level directories, in order to have a full complement of + directives that it must apply. (See section on <a href="#how">how + directives are applied</a>.) Thus, if a file is requested out of a + directory <code>/www/htdocs/example</code>, Apache must look for the + following files:</p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code>/.htaccess<br /> + /www/.htaccess<br /> + /www/htdocs/.htaccess<br /> + /www/htdocs/example/.htaccess</code> </td> + </tr> + </table> + </blockquote> + + <p>And so, for each file access out of that directory, there are 4 + additional file-system accesses, even if none of those files are + present. (Note that this would only be the case if .htaccess files were + enabled for /, which is not usually the case.)</p> + + <p>The second consideration is one of security. You are permitting + users to modify server configuration, which may result in changes over + which you have no control. Carefully consider whether you want to give + your users this privilege.</p> + + <p>Note that it is completely equivalent to put a .htaccess file in a + directory <code>/www/htdocs/example</code> containing a directive, and + to put that same directive in a Directory section <code><Directory + /www/htdocs/example></code> in your main server configuration:</p> + + <p><code>.htaccess</code> file in <code>/www/htdocs/example</code>:</p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code>AddType text/example .exm</code> + </td> + </tr> + </table> + </blockquote> + + <p><code>httpd.conf</code></p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code><Directory + /www/htdocs/example><br /> + AddType text/example .exm<br /> + </Directory></code> </td> + </tr> + </table> + </blockquote> + + <p>However, putting this configuration in your server configuration + file will result in less of a performance hit, as the configuration is + loaded once when Apache starts, rather than every time a file is + requested.</p> + + <p>The use of <code>.htaccess</code> files can be disabled completely + by setting the <code>AllowOverride</code> directive to "none"</p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code>AllowOverride None</code> </td> + </tr> + </table> + </blockquote> + + <h2><a id="how" name="how">How directives are applied</a></h2> + + <p>The configuration directives found in a <code>.htaccess</code> file + are applied to the directory in which the <code>.htaccess</code> file + is found, and to all subdirectories thereof. However, it is important + to also remember that there may have been <code>.htaccess</code> files + in directories higher up. Directives are applied in the order that they + are found. Therefore, a <code>.htaccess</code> file in a particular + directory may override directives found in <code>.htaccess</code> files + found higher up in the directory tree. And those, in turn, may have + overridden directives found yet higher up, or in the main server + configuration file itself.</p> + + <p>Example:</p> + + <p>In the directory <code>/www/htdocs/example1</code> we have a + <code>.htaccess</code> file containing the following:</p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code>Options +ExecCGI</code> </td> + </tr> + </table> + </blockquote> + + <p>(Note: you must have "<code>AllowOverride Options</code>" in effect + to permit the use of the "<code><a + href="../mod/core.html#options">Options</a></code>" directive in + <code>.htaccess</code> files.)</p> + + <p>In the directory <code>/www/htdocs/example1/example2</code> we have + a <code>.htaccess</code> file containing:</p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code>Options Includes</code> </td> + </tr> + </table> + </blockquote> + + <p>Because of this second <code>.htaccess</code> file, in the directory + <code>/www/htdocs/example1/example2</code>, CGI execution is not + permitted, as only <code>Options Includes</code> is in effect, which + completely overrides any earlier setting that may have been in + place.</p> + + <h2><a id="auth" name="auth">Authentication example</a></h2> + + <p>If you jumped directly to this part of the document to find out how + to do authentication, it is important to note one thing. There is a + common misconception that you are required to use + <code>.htaccess</code> files in order to implement password + authentication. This is not the case. Putting authentication directives + in a <code><Directory></code> section, in your main server + configuration file, is the preferred way to implement this, and + <code>.htaccess</code> files should be used only if you don't have + access to the main server configuration file. See above for a + discussion of when you should and should not use <code>.htaccess</code> + files.</p> + + <p>Having said that, if you still think you need to use a + <code>.htaccess</code> file, you may find that a configuration such as + what follows may work for you.</p> + + <p>You must have "<code>AllowOverride AuthConfig</code>" in effect for + these directives to be honored.</p> + + <p><code>.htaccess</code> file contents:</p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code>AuthType Basic<br /> + AuthName "Password Required"<br /> + AuthUserFile /www/passwords/password.file<br /> + AuthGroupFile /www/passwords/group.file<br /> + Require Group admins</code> </td> + </tr> + </table> + </blockquote> + + <p>Note that <code>AllowOverride AuthConfig</code> must be in effect + for these directives to have any effect.</p> + + <p>Please see the <a href="auth.html">authentication tutorial</a> for a + more complete discussion of authentication and authorization.</p> + + <h2><a id="ssi" name="ssi">Server side includes example</a></h2> + + <p>Another common use of <code>.htaccess</code> files is to enable + Server Side Includes for a particular directory. This may be done with + the following configuration directives, placed in a + <code>.htaccess</code> file in the desired directory:</p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code>Options +Includes<br /> + AddType text/html shtml<br /> + AddHandler server-parsed shtml</code> </td> + </tr> + </table> + </blockquote> + + <p>Note that <code>AllowOverride Options</code> and <code>AllowOverride + FileInfo</code> must both be in effect for these directives to have any + effect.</p> + + <p>Please see the <a href="ssi.html">SSI tutorial</a> for a more + complete discussion of server-side includes.</p> + + <h2><a id="cgi" name="cgi">CGI example</a></h2> + + <p>Finally, you may wish to use a <code>.htaccess</code> file to permit + the execution of CGI programs in a particular directory. This may be + implemented with the following configuration:</p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code>Options +ExecCGI<br /> + AddHandler cgi-script cgi pl</code> </td> + </tr> + </table> + </blockquote> + + <p>Alternately, if you wish to have all files in the given directory be + considered to be CGI programs, this may be done with the following + configuration:</p> + + <blockquote> + <table cellpadding="10"> + <tr> + <td bgcolor="#eeeeee"><code>Options +ExecCGI<br /> + SetHandler cgi-script</code> </td> + </tr> + </table> + </blockquote> + + <p>Note that <code>AllowOverride Options</code> must be in effect for + these directives to have any effect.</p> + + <p>Please see the <a href="cgi.html">CGI tutorial</a> for a more + complete discussion of CGI programming and configuration.</p> + + <h2><a id="troubleshoot" name="troubleshoot">Troubleshooting</a></h2> + + <p>When you put configuration directives in a <code>.htaccess</code> + file, and you don't get the desired effect, there are a number of + things that may be going wrong.</p> + + <p>Most commonly, the problem is that <code><a + href="../mod/core.html#allowoverride">AllowOverride</a></code> is not + set such that your configuration directives are being honored. Make + sure that you don't have a <code>AllowOverride None</code> in effect + for the file scope in question. A good test for this is to put garbage + in your <code>.htaccess</code> file and reload. If a server error is + not generated, then you almost certainly have <code>AllowOverride + None</code> in effect.</p> + + <p>If, on the other hand, you are getting server errors when trying to + access documents, check your Apache error log. It will likely tell you + that the directive used in your .htaccess file is not permitted. + Alternately, it may tell you that you had a syntax error, which you + will then need to fix.</p> + </body> +</html> + diff --git a/htdocs/manual/howto/ssi.html.en b/htdocs/manual/howto/ssi.html.en new file mode 100644 index 0000000000..78c2e68d1f --- /dev/null +++ b/htdocs/manual/howto/ssi.html.en @@ -0,0 +1,548 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Tutorial: Introduction to Server Side + Includes</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Tutorial: Introduction to Server Side + Includes</h1> + <a id="__index__" name="__index__"></a> <!-- INDEX BEGIN --> + + + <ul> + <li><a + href="#apachetutorial:introductiontoserversideincludes">Apache + Tutorial: Introduction to Server Side Includes</a></li> + + <li><a href="#whataressi">What are SSI?</a></li> + + <li><a href="#configuringyourservertopermitssi">Configuring + your server to permit SSI</a></li> + + <li> + <a href="#basicssidirectives">Basic SSI directives</a> + + <ul> + <li><a href="#today'sdate">Today's date</a></li> + + <li><a href="#modificationdateofthefile">Modification + date of the file</a></li> + + <li><a href="#includingtheresultsofacgiprogram">Including + the results of a CGI program</a></li> + </ul> + </li> + + <li> + <a href="#additionalexamples">Additional examples</a> + + <ul> + <li><a href="#whenwasthisdocumentmodified">When was this + document modified?</a></li> + + <li><a href="#includingastandardfooter">Including a + standard footer</a></li> + + <li><a href="#whatelsecaniconfig">What else can I + config?</a></li> + + <li><a href="#executingcommands">Executing + commands</a></li> + </ul> + </li> + + <li> + <a href="#advancedssitechniques">Advanced SSI + techniques</a> + + <ul> + <li><a href="#settingvariables">Setting + variables</a></li> + + <li><a href="#conditionalexpressions">Conditional + expressions</a></li> + </ul> + </li> + + <li><a href="#conclusion">Conclusion</a></li> + </ul> + <!-- INDEX END --> + <hr /> + + <h2><a id="apachetutorial:introductiontoserversideincludes" + name="apachetutorial:introductiontoserversideincludes">Apache + Tutorial: Introduction to Server Side Includes</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="../mod/mod_include.html">mod_include</a><br /> + <a href="../mod/mod_cgi.html">mod_cgi</a><br /> + <a href="../mod/mod_expires.html">mod_expires</a><br /> + </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a href="../mod/core.html#options">Options</a><br /> + <a + href="../mod/mod_include.html#xbithack">XBitHack</a><br /> + <a href="../mod/mod_mime.html#addtype">AddType</a><br /> + <a + href="../mod/mod_mime.html#addhandler">AddHandler</a><br /> + <a + href="../mod/mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</a><br /> + </td> + </tr> + </table> + + <p>This article deals with Server Side Includes, usually called + simply SSI. In this article, I'll talk about configuring your + server to permit SSI, and introduce some basic SSI techniques + for adding dynamic content to your existing HTML pages.</p> + + <p>In the latter part of the article, we'll talk about some of + the somewhat more advanced things that can be done with SSI, + such as conditional statements in your SSI directives.</p> + <hr /> + + <h2><a id="whataressi" name="whataressi">What are SSI?</a></h2> + + <p>SSI (Server Side Includes) are directives that are placed in + HTML pages, and evaluated on the server while the pages are + being served. They let you add dynamically generated content to + an existing HTML page, without having to serve the entire page + via a CGI program, or other dynamic technology.</p> + + <p>The decision of when to use SSI, and when to have your page + entirely generated by some program, is usually a matter of how + much of the page is static, and how much needs to be + recalculated every time the page is served. SSI is a great way + to add small pieces of information, such as the current time. + But if a majority of your page is being generated at the time + that it is served, you need to look for some other + solution.</p> + <hr /> + + <h2><a id="configuringyourservertopermitssi" + name="configuringyourservertopermitssi">Configuring your server + to permit SSI</a></h2> + + <p>To permit SSI on your server, you must have <a + href="../mod/mod_include.html">mod_include</a> installed and + enabled. Additionally, you must have the following + directive either in your <code>httpd.conf</code> file, or in a + <code>.htaccess</code> file:</p> +<pre> + Options +Includes +</pre> + + <p>This tells Apache that you want to permit files to be parsed + for SSI directives. Note that most configurations contain + multiple <a href="../mod/core.html#options">Options</a> directives + that can override each other. You will probably need to apply the + <code>Options</code> to the specific directory where you want SSI + enabled in order to assure that it gets evaluated last.</p> + + <p>Not just any file is parsed for SSI directives. You have to + tell Apache which files should be parsed. There are two ways to + do this. You can tell Apache to parse any file with a + particular file extension, such as <code>.shtml</code>, with + the following directives:</p> +<pre> + AddType text/html .shtml + AddHandler server-parsed .shtml +</pre> + + <p>One disadvantage to this approach is that if you wanted to + add SSI directives to an existing page, you would have to + change the name of that page, and all links to that page, in + order to give it a <code>.shtml</code> extension, so that those + directives would be executed.</p> + + <p>The other method is to use the <code>XBitHack</code> + directive:</p> +<pre> + XBitHack on +</pre> + + <p><code>XBitHack</code> tells Apache to parse files for SSI + directives if they have the execute bit set. So, to add SSI + directives to an existing page, rather than having to change + the file name, you would just need to make the file executable + using <code>chmod</code>.</p> +<pre> + chmod +x pagename.html +</pre> + + <p>A brief comment about what not to do. You'll occasionally + see people recommending that you just tell Apache to parse all + <code>.html</code> files for SSI, so that you don't have to + mess with <code>.shtml</code> file names. These folks have + perhaps not heard about <code>XBitHack</code>. The thing to + keep in mind is that, by doing this, you're requiring that + Apache read through every single file that it sends out to + clients, even if they don't contain any SSI directives. This + can slow things down quite a bit, and is not a good idea.</p> + + <p>Of course, on Windows, there is no such thing as an execute + bit to set, so that limits your options a little.</p> + + <p>In its default configuration, Apache does not send the last + modified date or content length HTTP headers on SSI pages, + because these values are difficult to calculate for dynamic + content. This can prevent your document from being cached, and + result in slower perceived client performance. There are two + ways to solve this:</p> + + <ol> + <li>Use the <code>XBitHack Full</code> configuration. This + tells Apache to determine the last modified date by looking + only at the date of the originally requested file, ignoring + the modification date of any included files.</li> + + <li>Use the directives provided by <a + href="../mod/mod_expires.html">mod_expires</a> to set an + explicit expiration time on your files, thereby letting + browsers and proxies know that it is acceptable to cache + them.</li> + </ol> + <hr /> + + <h2><a id="basicssidirectives" name="basicssidirectives">Basic + SSI directives</a></h2> + + <p>SSI directives have the following syntax:</p> +<pre> + <!--#element attribute=value attribute=value ... --> +</pre> + + <p>It is formatted like an HTML comment, so if you don't have + SSI correctly enabled, the browser will ignore it, but it will + still be visible in the HTML source. If you have SSI correctly + configured, the directive will be replaced with its + results.</p> + + <p>The element can be one of a number of things, and we'll talk + some more about most of these in the next installment of this + series. For now, here are some examples of what you can do with + SSI</p> + + <h3><a id="today'sdate" name="today'sdate">Today's + date</a></h3> +<pre> + <!--#echo var="DATE_LOCAL" --> +</pre> + + <p>The <code>echo</code> element just spits out the value of a + variable. There are a number of standard variables, which + include the whole set of environment variables that are + available to CGI programs. Also, you can define your own + variables with the <code>set</code> element.</p> + + <p>If you don't like the format in which the date gets printed, + you can use the <code>config</code> element, with a + <code>timefmt</code> attribute, to modify that formatting.</p> +<pre> + <!--#config timefmt="%A %B %d, %Y" --> + Today is <!--#echo var="DATE_LOCAL" --> +</pre> + + <h3><a id="modificationdateofthefile" + name="modificationdateofthefile">Modification date of the + file</a></h3> +<pre> + This document last modified <!--#flastmod file="index.html" --> +</pre> + + <p>This element is also subject to <code>timefmt</code> format + configurations.</p> + + <h3><a id="includingtheresultsofacgiprogram" + name="includingtheresultsofacgiprogram">Including the results + of a CGI program</a></h3> + + <p>This is one of the more common uses of SSI - to output the + results of a CGI program, such as everybody's favorite, a ``hit + counter.''</p> +<pre> + <!--#include virtual="/cgi-bin/counter.pl" --> +</pre> + <hr /> + + <h2><a id="additionalexamples" + name="additionalexamples">Additional examples</a></h2> + + <p>Following are some specific examples of things you can do in + your HTML documents with SSI.</p> + <hr /> + + <h2><a id="whenwasthisdocumentmodified" + name="whenwasthisdocumentmodified">When was this document + modified?</a></h2> + + <p>Earlier, we mentioned that you could use SSI to inform the + user when the document was most recently modified. However, the + actual method for doing that was left somewhat in question. The + following code, placed in your HTML document, will put such a + time stamp on your page. Of course, you will have to have SSI + correctly enabled, as discussed above.</p> +<pre> + <!--#config timefmt="%A %B %d, %Y" --> + This file last modified <!--#flastmod file="ssi.shtml" --> +</pre> + + <p>Of course, you will need to replace the + <code>ssi.shtml</code> with the actual name of the file that + you're referring to. This can be inconvenient if you're just + looking for a generic piece of code that you can paste into any + file, so you probably want to use the + <code>LAST_MODIFIED</code> variable instead:</p> +<pre> + <!--#config timefmt="%D" --> + This file last modified <!--#echo var="LAST_MODIFIED" --> +</pre> + + <p>For more details on the <code>timefmt</code> format, go to + your favorite search site and look for <code>strftime()</code>. The + syntax is the same.</p> + <hr /> + + <h2><a id="includingastandardfooter" + name="includingastandardfooter">Including a standard + footer</a></h2> + + <p>If you are managing any site that is more than a few pages, + you may find that making changes to all those pages can be a + real pain, particularly if you are trying to maintain some kind + of standard look across all those pages.</p> + + <p>Using an include file for a header and/or a footer can + reduce the burden of these updates. You just have to make one + footer file, and then include it into each page with the + <code>include</code> SSI command. The <code>include</code> + element can determine what file to include with either the + <code>file</code> attribute, or the <code>virtual</code> + attribute. The <code>file</code> attribute is a file path, + <em>relative to the current directory</em>. That means that it + cannot be an absolute file path (starting with /), nor can it + contain ../ as part of that path. The <code>virtual</code> + attribute is probably more useful, and should specify a URL + relative to the document being served. It can start with a /, + but must be on the same server as the file being served.</p> +<pre> + <!--#include virtual="/footer.html" --> +</pre> + + <p>I'll frequently combine the last two things, putting a + <code>LAST_MODIFIED</code> directive inside a footer file to be + included. SSI directives can be contained in the included file, + and includes can be nested - that is, the included file can + include another file, and so on.</p> + <hr /> + + <h2><a id="whatelsecaniconfig" name="whatelsecaniconfig">What + else can I config?</a></h2> + + <p>In addition to being able to <code>config</code> the time + format, you can also <code>config</code> two other things.</p> + + <p>Usually, when something goes wrong with your SSI directive, + you get the message</p> +<pre> + [an error occurred while processing this directive] +</pre> + + <p>If you want to change that message to something else, you + can do so with the <code>errmsg</code> attribute to the + <code>config</code> element:</p> +<pre> + <!--#config errmsg="[It appears that you don't know how to use SSI]" --> +</pre> + + <p>Hopefully, end users will never see this message, because + you will have resolved all the problems with your SSI + directives before your site goes live. (Right?)</p> + + <p>And you can <code>config</code> the format in which file + sizes are returned with the <code>sizefmt</code> attribute. You + can specify <code>bytes</code> for a full count in bytes, or + <code>abbrev</code> for an abbreviated number in Kb or Mb, as + appropriate.</p> + <hr /> + + <h2><a id="executingcommands" + name="executingcommands">Executing commands</a></h2> + + <p>I expect that I'll have an article some time in the coming + months about using SSI with small CGI programs. For now, here's + something else that you can do with the <code>exec</code> + element. You can actually have SSI execute a command using the + shell (<code>/bin/sh</code>, to be precise - or the DOS shell, + if you're on Win32). The following, for example, will give you + a directory listing.</p> +<pre> + <pre> + <!--#exec cmd="ls" --> + </pre> +</pre> + + <p>or, on Windows</p> +<pre> + <pre> + <!--#exec cmd="dir" --> + </pre> +</pre> + + <p>You might notice some strange formatting with this directive + on Windows, because the output from <code>dir</code> contains + the string ``<<code>dir</code>>'' in it, which confuses + browsers.</p> + + <p>Note that this feature is exceedingly dangerous, as it will + execute whatever code happens to be embedded in the + <code>exec</code> tag. If you have any situation where users + can edit content on your web pages, such as with a + ``guestbook'', for example, make sure that you have this + feature disabled. You can allow SSI, but not the + <code>exec</code> feature, with the <code>IncludesNOEXEC</code> + argument to the <code>Options</code> directive.</p> + <hr /> + + <h2><a id="advancedssitechniques" + name="advancedssitechniques">Advanced SSI techniques</a></h2> + + <p>In addition to spitting out content, Apache SSI gives you + the option of setting variables, and using those variables in + comparisons and conditionals.</p> + + <h3><a id="caveat" name="caveat">Caveat</a></h3> + + <p>Most of the features discussed in this article are only + available to you if you are running Apache 1.2 or later. Of + course, if you are not running Apache 1.2 or later, you need to + upgrade immediately, if not sooner. Go on. Do it now. We'll + wait.</p> + <hr /> + + <h2><a id="settingvariables" name="settingvariables">Setting + variables</a></h2> + + <p>Using the <code>set</code> directive, you can set variables + for later use. We'll need this later in the discussion, so + we'll talk about it here. The syntax of this is as follows:</p> +<pre> + <!--#set var="name" value="Rich" --> +</pre> + + <p>In addition to merely setting values literally like that, + you can use any other variable, including + <a href="../env.html">environment variables</a>, or some of the + variables we discussed above (like <code>LAST_MODIFIED</code>, for + example) to give values to your variables. You will specify that + something is a variable, rather than a literal string, by using + the dollar sign ($) before the name of the variable.</p> +<pre> + <!--#set var="modified" value="$LAST_MODIFIED" --> +</pre> + + <p>To put a literal dollar sign into the value of your + variable, you need to escape the dollar sign with a + backslash.</p> +<pre> + <!--#set var="cost" value="\$100" --> +</pre> + + <p>Finally, if you want to put a variable in the midst of a + longer string, and there's a chance that the name of the + variable will run up against some other characters, and thus be + confused with those characters, you can place the name of the + variable in braces, to remove this confusion. (It's hard to + come up with a really good example of this, but hopefully + you'll get the point.)</p> +<pre> + <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --> +</pre> + <hr /> + + <h2><a id="conditionalexpressions" + name="conditionalexpressions">Conditional expressions</a></h2> + + <p>Now that we have variables, and are able to set and compare + their values, we can use them to express conditionals. This + lets SSI be a tiny programming language of sorts. + <code>mod_include</code> provides an <code>if</code>, + <code>elif</code>, <code>else</code>, <code>endif</code> + structure for building conditional statements. This allows you + to effectively generate multiple logical pages out of one + actual page.</p> + + <p>The structure of this conditional construct is:</p> +<pre> + <!--#if expr="test_condition" --> + <!--#elif expr="test_condition" --> + <!--#else --> + <!--#endif --> +</pre> + + <p>A <em>test_condition</em> can be any sort of logical + comparison - either comparing values to one another, or testing + the ``truth'' of a particular value. (A given string is true if + it is nonempty.) For a full list of the comparison operators + available to you, see the <code>mod_include</code> + documentation. Here are some examples of how one might use this + construct.</p> + + <p>In your configuration file, you could put the following + line:</p> +<pre> + BrowserMatchNoCase macintosh Mac + BrowserMatchNoCase MSIE InternetExplorer +</pre> + + <p>This will set environment variables ``Mac'' and + ``InternetExplorer'' to true, if the client is running Internet + Explorer on a Macintosh.</p> + + <p>Then, in your SSI-enabled document, you might do the + following:</p> +<pre> + <!--#if expr="${Mac} && ${InternetExplorer}" --> + Apologetic text goes here + <!--#else --> + Cool JavaScript code goes here + <!--#endif --> +</pre> + + <p>Not that I have anything against IE on Macs - I just + struggled for a few hours last week trying to get some + JavaScript working on IE on a Mac, when it was working + everywhere else. The above was the interim workaround.</p> + + <p>Any other variable (either ones that you define, or normal + environment variables) can be used in conditional statements. + With Apache's ability to set environment variables with the + <code>SetEnvIf</code> directives, and other related directives, + this functionality can let you do some pretty involved dynamic + stuff without ever resorting to CGI.</p> + <hr /> + + <h2><a id="conclusion" name="conclusion">Conclusion</a></h2> + + <p>SSI is certainly not a replacement for CGI, or other + technologies used for generating dynamic web pages. But it is a + great way to add small amounts of dynamic content to pages, + without doing a lot of extra work.</p> + </body> +</html> + diff --git a/htdocs/manual/howto/ssi.html.html b/htdocs/manual/howto/ssi.html.html new file mode 100644 index 0000000000..868693b3a4 --- /dev/null +++ b/htdocs/manual/howto/ssi.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="ssi.html.en" --> + diff --git a/htdocs/manual/howto/ssi.html.ja.jis b/htdocs/manual/howto/ssi.html.ja.jis new file mode 100644 index 0000000000..9024a9fcdd --- /dev/null +++ b/htdocs/manual/howto/ssi.html.ja.jis @@ -0,0 +1,548 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache チュ・踉札肇螢▲嚆鴟纈蜆侮竚纉ぢ入門</title> + + </head> + <!-- English revision: 1.15 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache チュ・踉札肇螢▲瑳蝟昭粡竚癈鷭п粐Ь纈嚔粤釿跿粤入門</h1> + <a id="__index__" name="__index__"></a> <!-- INDEX BEGIN --> + + + <ul> + <li><a + href="#apachetutorial:introductiontoserversideincludes">Apache + チュ・踉札肇螢▲嚆鴟纈蜆侮竚纉ぢ入門</a></li> + + <li><a href="#whataressi">SSI とは?</a></li> + + <li><a href="#configuringyourservertopermitssi">SSI + を許可するためのサ・踉札个寮瀋薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■矚皷笂皷粡鱚笏蝟纉▽苳ぢ基本的な SSI ディレクティブ</a> + + <ul> + <li><a href="#today'sdate">今日の日付</a></li> + + <li><a href="#modificationdateofthefile">ファイルの変更日</a></li> + + <li><a href="#includingtheresultsofacgiprogram">CGI + プログラムの結果を茲蟾薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■痲粡闔瘡纔瘢韭纉▽苳ぢ追加の例</a> + + <ul> + <li><a href="#whenwasthisdocumentmodified" + >いつこのドキュメントは修正されたのか?</a></li> + + <li><a href="#includingastandardfooter" + >標準のフッタを挿入する</a></li> + + <li><a href="#whatelsecaniconfig" + >側苳擦鵬燭瀋蠅任襪里職踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就e笊鈑竢迯瘤糂▽苳ぢコマンドの孫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■痲釿繖齠蜚繝蓆蜻鵞高度な SSI テクニック</a> + + + <ul> + <li><a href="#settingvariables">変数を設定する</a> + </li> + + <li><a href="#conditionalexpressions">魴錵踉三</a></li> + </ul> + </li> + + + <li><a href="#conclusion">終わりに</a></li> + </ul> + <!-- INDEX END --> + <hr /> + + <h2><a id="apachetutorial:introductiontoserversideincludes" + name="apachetutorial:introductiontoserversideincludes">Apache + チュ・踉札肇螢▲嚆鴟纈蜆侮竚纉ぢ入門</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>関連モジュ・踉札闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹〓迴箝迴籖蜴竚絎蔗迪▽苳詩閼煢釿跿粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹〓迴箝迴籖竍藪蔗迪▽苳詩閼焜芍碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹〓迴箝迴籖纔韈鱚鶤蔗迪▽苳詩閼煥蜥纉碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳ぢ関連ディレクティブ</strong><br /> + <br /> + <a href="../mod/core.html#options">Options</a><br /> + <a + href="../mod/mod_include.html#xbithack">XBitHack</a><br /> + <a href="../mod/mod_mime.html#addtype">AddType</a><br /> + <a + href="../mod/mod_mime.html#addhandler">AddHandler</a><br /> + <a href="../mod/mod_setenvif.html#browsermatchnocase" + >BrowserMatchNoCase</a><br /> + </td> + </tr> + </table> + + <p>この記事は、通錣話韻喇ぢと呼ばれる Server Side Includes + を扱います。この記事においては、サ・踉札个任喇ぢを許可するための設定と、 + 現在の HTML ペ・踉札犬貌暗淵灰鵐謄鵐弔魏辰┐襪燭瓩里い弔隆靄榲鹿粡寂蝟赱齠洲痲筵娼嗷技術を匆陲靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ記事の後筈苳擦任蓮嗷ディレクティブで SSI + と共瘢雹に孫圓垢襪海箸任襴苳賜件文のよう瘢雹な + 幾分高度な事柄について述べています。</p> + <hr /> + + <h2><a id="whataressi" name="whataressi">SSI とは?</a></h2> + + <p>SSI (Server Side Includes) は、HTML + ペ・踉札乎罎貿枌屬気譴襯妊譽謄屬任△蝓鹿粡寂蝟赱齠洲痲筵娼サ・踉札个妊據ジを提供する時に髭苳参舛気譴泙后嗷は、CGI + プログラムやその側苳擦瞭暗糞蚕僂覗瓦討離據ジを提供せずに、 + 動的に生成されたコンテンツを現在の HTML ペ・踉札犬鵬辰┐泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢどう瘢雹いう瘢雹豺腓喇ぢを使い、どう瘢雹いう瘢雹豺腓縫廛蹈哀薀爐鹿粡寂蝟赱齠洲痲筵娼ペ・踉札犬魎袷瓦棒言垢襪蓮▲據ジのう瘢雹ちどの程度が静的であり、 + ペ・踉札犬鷆,気譴襪燭咾忘瞳彁擦垢詆廚匹猟戮△襪把巳苳誌は決定します。 + SSI は現在時刻のよう瘢雹な気う苳諮報を加えるにはう瘢雹ってつけの方法です。 + しかし、そのペ・踉札犬里曚箸鵑匹良鷆〇棒言気譴襴苳詞合は、 + 側苳擦諒,鮹気紘廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就竢鈕蜃蜴苹阨鴦纈鶯關纈迚皷⊆蝟昭粡竚癈鷭п粐Ь瘢綵≪闔肅苺鱸鈑黼鴟纈鞳鴉蜚齠蘂嗷票蝟昭粡竚癈鷭п粐Ьぢを許可するためのサ・踉札个寮瀋王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮サ・踉札个喇ぢを許可するには、<a + href="../mod/mod_include.html">mod_include</a> + をインスト・踉札襦⇒修垢詆廚△蠅泙后気蕕法鹿粡寂蝟赱齠洲痲筵娼竢粤蔗筮竢鈕閼絋苳ファイルまたは <code>.htaccess</code> + ファイルに,離妊譽謄屬鮖慊蠅垢詆廚△蠅泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼闔釿跿粤鷦蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮この指定は、ファイルを SSI ディレクティブで解析させることを許可する + という瘢雹ことを Apache に伝えます。 + ほとんどの設定ではお互いを綵颪任襦∧瑤鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪o頸蜿銖▽苳始頸蜿銖ぢがあることに + 注意してください。おそらく、設定が最後に髭苳参舛気譴襪海箸鹿粡寂蝟赱齠洲痲筵娼保擇気譴襪燭瓩法嗷を使用したいディレクトリに <code>Options</code> + ディレクティブを適用する必要があるでしょう瘢雹。</p> + + <p>全てのファイルが SSI ディレクティブで解析されるという瘢雹わけではありません。 + どのファイルが解析されるかを Apache に伝える必要があります。 + これを行なう瘢雹には二つ方法があります。,離妊譽謄屬鮖箸逅擦海箸如鹿粡寂蝟赱齠洲痲筵娼例えば <code>.shtml</code> のよう瘢雹な特別なファイル拡張子を持つ + ファイルを解析するよう瘢雹 Apache に伝えることができます:</p> +<pre> + AddType text/html .shtml + AddHandler server-parsed .shtml +</pre> + + <p>この方法の欠点は、もし現在のペ・踉札犬喇鹿粡寂蝟赱齠洲痲筵娼ディレクティブを加えたい豺隋△修譴蕕離妊譽謄屬踉斬行されるよう瘢雹に + <code>.shtml</code> 拡張子にするため、そのペ・踉札犬量前と、 + そのペ・踉札犬悗料瓦討離螢鵐鯤儿垢靴覆韻譴个覆蕕覆い海箸任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢもう瘢雹一つの方法は、<code>XBitHack</code> + ディレクティブを使用することです:</p> +<pre> + XBitHack on +</pre> + + <p><code>XBitHack</code> は、ファイルの孫團咼奪箸辰討い襴苳詞合、 + SSI ディレクティブにより解析することを Apache に伝えます。 + 拾苳擦辰董嗷ディレクティブを現在のペ・踉札犬鵬辰┐襪燭瓩砲蓮鹿粡寂蝟赱齠洲痲筵娼ファイル巳苳擦鯤儿垢靴覆討發茲韻踉祉閼絋苳祉蓁閼閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢを使用してファイルを孫垈椎修砲垢襪世韻悩僂澆泙后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь蓁閼鞜艱釶辣貅蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮行なう瘢雹べきではないことに関する短いコメント。時々誰かが、全ての + <code>.html</code> ファイルを SSI で解析するよう瘢雹 Apache に伝えれば、 + わざわざ <code>.shtml</code> という瘢雹ファイル巳苳擦砲垢詆廚覆い箸い辰鹿粡寂蝟赱齠洲痲筵娼薦瘢雹めるのを見ることでしょう瘢雹。こう瘢雹いう瘢雹人たちは、おそらく + <code>XBitHack</code> について聞いたことがないのでしょう瘢雹。 + この方法について注意することは、たとえ SSI + ディレクティブを全く含まない豺腓任癲草痺蒹ぢがクライアントに + 送る全てのファイルを最後まで読み込ませることになります。 + この方法はかなり処理を遅くするものであり、良くないアイデアです。</p> + + <p>もちろん、Windows ではそのよう瘢雹な孫團咼奪箸鬟札奪鹿粡寂蝟赱齠洲痲筵娼するよう瘢雹なものはありませんのでオプションが契造気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢデフォルトの設定では、Apache は SSI ペ・踉札犬砲弔い萄能儿校錣鹿粡寂蝟赱齠洲痲筵娼コンテンツの長さを HTTP ヘッダに送りません。 + 動的なコンテンツであるため、それらの値を計算するのが難しいからです。 + このためドキュメントがキャッシュされなくなり、 + 結果としてクライアントの性能が遅くなったよう瘢雹に感じさせることになります。 + これを解決する方法が二つあります:</p> + + <ol> + <li><code>XBitHack Full</code> 設定を使用する。 + この設定により、もともと要求されたファイルの時刻を参箸掘鹿粡寂蝟赱齠洲痲筵娼読み込まれるファイルの変更時刻を無視して最終変更時刻を決定するよう瘢雹 + Apache に伝えます。</li> + + <li><a href="../mod/mod_expires.html">mod_expires</a> + で提供されているディレクティブを使用して、 + ファイルが無効になる時刻を明┐靴泙后海譴砲茲蝓鹿粡寂蝟赱齠洲痲筵娼ブラウ瘢雹ザとプロキシにキャッシュが有効であることを通知します。 + </li> + </ol> + <hr /> + + <h2><a id="basicssidirectives" name="basicssidirectives">基本的な + SSI ディレクティブ</a></h2> + + <p>SSI ディレクティブは以王踉擦諒庫,乃劼靴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼逅詞´繻纃緕癆蛯綵跿癆蛯綵跿逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳使塒のコメントのよう瘢雹な書阿鬚靴討い襪里如△發喇鹿粡寂蝟赱齠洲痲筵娼を正しく動作可能にしなければ、ブラウ瘢雹ザはそれを無視するでしょう瘢雹。 + しかし、HTML ソ・踉札甲罎任聾┐泙后發喇ぢを正しく設定したなら、 + ディレクティブはその結果と置き換えられます。 + </p> + + <p>element はたくさんあるものから一つ指定することができます。 + 指定できるものの大多数については、_鵑發逅殺苳晒し椶靴睫世靴泙后鹿粡寂蝟赱齠洲痲筵娼ここでは、SSI で行なう瘢雹ことができる例をいくつか┐靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就籬籬釶辣就籬籬▽苳ぢ今日の日付</a></h3> +<pre> + <!--#echo var="DATE_LOCAL" --> +</pre> + + + <p><code>echo</code> 要素は単に変数の値を出力します。 + CGI プログラムに利用可能な環境変数の全ての + セットを含む多くの標準変数があります。また、<code>set</code> + 要素を用いることで、独諒竸瑤鯆蟲舛垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ出力される日付の書阿イ任呂覆う苳詞合、その書阿鮟だ気垢襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼竢粤竢鈕蜃閼絋苳要素に <code>timefmt</code> + 属性を使用することができます。</p> +<pre> + <!--#config timefmt="%A %B %d, %Y" --> + Today is <!--#echo var="DATE_LOCAL" --> +</pre> + + <h3><a id="modificationdateofthefile" + name="modificationdateofthefile">ファイルの変更日</a></h3> +<pre> + This document last modified <!--#flastmod file="index.html" --> +</pre> + + + <p>この要素も <code>timefmt</code> + フォ・踉札泪奪箸寮瀋蠅暴います。</p> + + <h3><a name="includingtheresultsofacgiprogram" + id="includingtheresultsofacgiprogram">CGI + プログラムの結果を茲蟾界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これは、全ての人のお気に入りである ``ヒットカウ瘢雹ンタ'' のよう瘢雹な + CGI プログラムの結果を出力する SSI + のより一般的な使用のう瘢雹ちの一つです。</p> +<pre> + <!--#include virtual="/cgi-bin/counter.pl" --> +</pre> + <hr /> + + <h2><a id="additionalexamples" + name="additionalexamples">追加の例</a></h2> + + <p>以王踉擦蓮嗷を使用して HTML + ドキュメントにおいてできることのいくつかの特別な例です。</p> + <hr /> + + <h2><a name="whenwasthisdocumentmodified" + id="whenwasthisdocumentmodified" + >いつこのドキュメントは修正されたのか?</a></h2> + + <p>先に、ドキュメントが最後に変更されたのはいつなのかを + ユ・踉札兇膨銘里垢襪燭瓩喇ぢを使用することができることを述べました。 + しかしながら、尊櫃諒,蓮△い屬麑簑蠅里泙泙砲靴討泙靴拭鹿粡寂蝟赱齠洲痲筵娼挽楊ぢドキュメントに配置された,離魁ドは、ペ・踉札犬砲修里茲逅擦鹿粡寂蝟赱齠洲痲筵娼タイムスタンプを入れるでしょう瘢雹。もちろん、綵劼里茲逅擦法鹿粡寂蝟赱齠洲痲筵娼嗷を正しく動作可能にしておく必要があります。</p> +<pre> + <!--#config timefmt="%A %B %d, %Y" --> + This file last modified <!--#flastmod file="ssi.shtml" --> +</pre> + + <p>もちろん、<code>ssi.shtml</code> + の部分を尊櫃療坤侫.ぅ詭と置き換える必要があります。 + もし、あらゆるファイルに張ることができる一般的なコ・踉札匹鮹気靴討い襪覆蕁鹿粡寂蝟赱齠洲痲筵娼これは不便であるかもしれません。おそらくその豺腓蓮鹿粡寂蝟赱齠洲痲筵娼そう瘢雹する代わりに変数 <code>LAST_MODIFIED</code> + を使用したいと考えるでしょう瘢雹:</p> +<pre> + <!--#config timefmt="%D" --> + This file last modified <!--#echo var="LAST_MODIFIED" --> +</pre> + + <p><code>timefmt</code> + 書阿砲弔い討里茲螟苳施細については、お好みの検索サイトに行き、 + <code>strftime</code> で検索してみてください。文法は同じです。</p> + <hr /> + + <h2><a id="includingastandardfooter" + name="includingastandardfooter">標準のフッタを挿入する</a></h2> + + + <p>もし数ペ・踉札犬鯆兇┐襯據ジを持つサイトを管理しているならば、 + 全ペ・踉札犬紡个靴栃儿垢鮃圓覆逅擦海箸榲剖貭砲箸覆蠧世襪海箸鹿粡寂蝟赱齠洲痲筵娼分かるでしょう瘢雹。全てのペ・踉札犬謀呂辰討△襴踉誌の標準的な外観を + 維持しよう瘢雹としているならば特にそう瘢雹でしょう瘢雹。</p> + + <p>ヘッダやフッタ用の挿入用ファイルを使用することで、 + このよう瘢雹な更新にかかる負担を減らすことができます。 + 一つのフッタファイルを作成し、それを <code>include</code> + SSI コマンドで各ペ・踉札犬貌譴襪世韻悩僂澆泙后竢粤蜴竚絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼要素は、<code>file</code> 属性または <code>virtual</code> + 属性のいずれかを使用してどのファイルを挿入するかを決めることができます。 + <code>file</code> 属性は、 + <em>カレントディレクトリからの相対パスで┐気譴蹙苳ぢファイルパスです。 + それは / で始まる絶対ファイルパスにはできず、また、そのパスの一部に ../ + を含むことができないことを意味します。<code>virtual</code> + 属性は、おそらくより便利だと思いますが、提供するドキュメントからの相対 + URL で指定すべきです。それは / で始めることができますが、 + 提供するファイルと同じサ・踉札丶苳糸に存在しなくてはなりません。</p> +<pre> + <!--#include virtual="/footer.html" --> +</pre> + + <p>私は最後の二つを組み合わせて、<code>LAST_MODIFIED</code> + ディレクティブをフッタファイルの中に置くことがよくあります。 + SSI ディレクティブは、挿入用のファイルに含ませたり、 + 挿入ファイルのネストをしたりすることができます。すなわち、 + 挿入用のファイルは側苳擦離侫.ぅ襪鮑撞冒淨垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢釶辣就癆繻黼竅鉗竢鈕蜃⊆蝟昭粡竚癈鷭п粐Ь篏†葹踈繝瘤蜒闔肅腆側苳擦鵬燭瀋蠅任襪里職踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ時刻書阿踉祉閼絋苳祉闔肅胼踉晒竢粤ぢで設定できることに加えて、 + 更に二つ <code>config</code> で設定することができます。</p> + + <p>通錙嗷ディレクティブで何かがう瘢雹まくいかないときは、 + ,離瓮奪察ジが出力されます。</p> +<pre> + [an error occurred while processing this directive] +</pre> + + <p>このメッセ・踉札犬鯊のものにしたい豺隋竢粤竢鈕蜃閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢ要素の <code>errmsg</code> 属性で変更することができます:</p> + +<pre> + <!--#config errmsg="[It appears that you don't know how to use SSI]" --> +</pre> + + <p>おそらく、エンドユ・踉札兇呂海離瓮奪察ジを決して見ることはありません。 + なう踉擦覆蕁△修離汽ぅ箸犬職苳歯態になる前に SSI ディレクティブに関する + 全ての問題を解決しているはずだからです。(そう瘢雹ですよね?)</p> + + <p>そして、<code>config</code> において <code>sizefmt</code> + 属性を使用することで、 + 返されるファイルサイズの書阿鮴瀋蠅垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼バイト数には <code>bytes</code> を、適当に Kb や Mb + に短縮させるには <code>abbrev</code> を指定することができます。</p> + <hr /> + + <h2><a id="executingcommands" + name="executingcommands">コマンドの孫王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮今後数ヶ月のう瘢雹ちに、気派ぢプログラムと SSI + を使用する記事を出したいと考えています。ここではそれとは別に、 + <code>exec</code> 要素によって行なう瘢雹ことができることを┐靴泙后鹿粡寂蝟赱齠洲痲筵娼嗷にシェル (正確には <code>/bin/sh</code>。Win32 ならば DOS シェル) + を使用してコマンドを孫圓気擦襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼王踉撒領磴任蓮▲妊譽肇螢螢好判侘呂鮃圓覆い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉諮鱚逅紫鹿粡寂蝟赱齠洲痲筵娼逅詞´纔繝辟就踈逅紫鹿粡寂蝟赱齠洲痲筵娼逅詞鱚逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蜴粹ぢ紊任蓮鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉諮鱚逅紫鹿粡寂蝟赱齠洲痲筵娼逅詞´纔繝辟就粡鬆瘢雹苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉晒頏絋瘢雹苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怏鈔阯紊任蓮△海離妊譽謄屬砲茲辰討い弔隆駝鹿粡寂蝟赱齠洲痲筵娼書阿傍い鼎任靴腓逅察覆なら <code>dir</code> の出力が文字列 + ``<<code>dir</code>>'' を含み、ブラウ瘢雹ザを混乱させるからです。 + </p> + + <p>この機能は非錣亡躙韻任△蝓△匹鵑淵魁ドでも <code>exec</code> + タグに埋め込まれてしまえば孫圓垢襪海箸肪躇佞靴討世気ぁN磴┐鹿粡寂蝟赱齠洲痲筵娼玻ぢゲストブック '' のよう瘢雹に、もし、 + ユ・踉札兇據ジの内容を編集できる靴砲△襪覆蕕弌鹿粡寂蝟赱齠洲痲筵娼この機能を確造僕淦靴討世気ぁ竢粤闔鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブの <code>IncludesNOEXEC</code> 引数を指定することで、 + SSI は許可するけれど <code>exec</code> + 機能は許可しないよう瘢雹にすることができます。</p> + <hr /> + + <h2><a id="advancedssitechniques" + name="advancedssitechniques">高度な SSI テクニック</a></h2> + + <p>コンテンツを出力することに加え、Apache SSI は変数を設定し、 + そして比較と魴鑛瑤砲修諒竸瑤鮖藩僂任覽’修鯆鷆,靴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就竅癆釶辣就竅癆▽苳ぢ警告</a></h3> + + <p>この記事で述べた大部分の機能は、Apache 1.2 + 以降を使用している豺腓里瀝儔椎修任后E海覆蕁△發鞜竏窺下蝟昭粡竚癈鷭п粐Ьぢ以降を使用してない豺隋ちにアップグレ・踉札匹垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼さぁ、今それを行ないなさい。それまで待っています。 + </p> + <hr /> + + <h2><a id="settingvariables" + name="settingvariables">変数を設定する</a></h2> + + <p><code>set</code> ディレクティブを使用して、 + 後で使用するために変数を設定することができます。 + これは後の説明で必要になるので、ここでそれについて述べています。 + 文法は以王踉擦里箸蠅任墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼逅詞´黼鮟瘢紜瘡就咏竏逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのよう瘢雹に単純に文字どおりに設定することに加え、 + <a href="../env.html">環境変数</a>や紊能劼戮進竸鹿粡寂蝟赱齠洲痲筵娼ぢ例えば <code>LAST_MODIFIED</code>のよう瘢雹な) + を含む側苳擦里△蕕罎詈竸瑤鮹佑鮴瀋蠅垢襪里忙藩僂垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼変数巳苳擦料阿縫疋覽ぉぢを使用することで、 + それがリテラル文字列ではなくて変数であることを┐靴泙后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉察s續癇就迴粡肅繖跿綵△盟嘖瀝歪鋲錨帳瘢雹苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮ドル記号 ($) を文字として変数の値に入れるには、 + バックスラッシュによってドル記号をエスケ・踉札廚垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉察s續癇就竢齡跿綵∠け旭逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ最後になりますが、長い文字列の中に変数を置きたい豺腓如鹿粡寂蝟赱齠洲痲筵娼変数巳苳擦の文字とぶつかる可能性があり、 + それらの文字について混乱してしまう瘢雹豺隋△海虜陲鬢踉肢り除くため、 + 変数巳苳擦鮹羈膰未念呂爐海箸任泙鹿粡寂蝟赱齠洲痲筵娼ぢこれについての良い例を┐垢里脇颪靴い里任垢鹿粡寂蝟赱齠洲痲筵娼おそらく分かっていただけるでしょう瘢雹)。 + </p> +<pre> + <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --> +</pre> + <hr /> + + <h2><a id="conditionalexpressions" + name="conditionalexpressions">魴錵踉三</a></h2> + + <p>さて、変数を持っていて、 + それらの値を設定して比較することができるのですから、 + 魴錣鯢修垢燭瓩砲修譴蕕鮖藩僂垢襪海箸任泙后海譴砲茲鹿粡寂蝟赱齠洲痲筵娼嗷はある錣陸苳皿さなプログラミング言語になっています。 + <code>mod_include</code> は魴錣鯢集修垢襪燭瓩踉祉閼絋苳脂网踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳糸跚网踉晒竢粤竢粤繻黼閼絋苳錆踉祉閼絋苳糸鈔蜀閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢ構造を提供しています。これによって、 + 一つの尊櫃離據ジから複数の論理ペ・踉札犬鮓姪棒言垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ魴鏐渋い楼焚のとおりです:</p> +<pre> + <!--#if expr="test_condition" --> + <!--#elif expr="test_condition" --> + <!--#else --> + <!--#endif --> +</pre> + + <p><em>test_condition</em> + はあらゆる鑪爐力斥羈咾鬚垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼値を比較したり、その値が ``真'' かどう瘢雹かを髭苳参舛靴泙鹿粡寂蝟赱齠洲痲筵娼ぢ空でないなら与えられた文字列は真です)。 + 利用可能な比較演算子の全てのリストについては、 + <code>mod_include</code> ドキュメンテ・踉札轡腑鵑鮖王苳使してください。 + ここでは、この構造をどう瘢雹使用するかの例をいくつか┐靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ設定ファイルで,旅圓魑劼靴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏麗秩黼痺蜴鼈痺鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏麗秩黼喇侮鴈續祷韭闥纈鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこれはクライアントが Macintosh + 紊妊ぅ鵐拭ネットエクスプロ・踉札蕕阿い討い襴苳詞合、環境変数 + ``Mac'' と ``InternetExplorer'' を真と設定します。</p> + + <p>,法嗷が可能になったドキュメントで以王踉擦鮃圓覆い泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼逅詞´蜀鮟△痺逅氏逅殺瘢雹瘢雹銓纈鈬跫鱚鵆逅紫鹿粡寂蝟赱齠洲痲筵娼草闌閾續蜒纔苡纉纈綣蝟昭粡竚癈鷭п粐Ь瘢雹踉察e踈逅紫鹿粡寂蝟赱齠洲痲筵娼衷闌癘疵竰蜷竢粤閻蒹鱚鹿粡寂蝟赱齠洲痲筵娼逅詞´緕粡逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳四痺ぢ紊に対して何か思う瘢雹ところがあるわけでありません。 + 側苳擦任櫓踉斬行できているいくつかの JavaScript を Mac 紊甜蝟昭粡竚癈鷭п粐Ьぢで孫圓気擦襪里法∪莉疑峩賚靴燭箸い逅擦世韻里海箸任后鹿粡寂蝟赱齠洲痲筵娼紊領磴呂修了団蠹並仆菠,任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ側苳擦里匹鵑癖竸あなたが定義するもの、 + または普通の環境変数のいずれか) も、魴鑛犬忙藩僂垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢは <code>SetEnvIf</code> ディレクティブや側苳擦隆慙鹿粡寂蝟赱齠洲痲筵娼ディレクティブを使用して環境変数を設定することができます。 + この機能により、CGI + に頼ることなくかなり複雑な動的なことをさせることができます。</p> + <hr /> + + <h2><a id="conclusion" name="conclusion">終わりに</a></h2> + + <p>SSI は確かに CGI + や動的なウ瘢雹ェブペ・踉札犬鮴言垢訛の技術に代わるものではありません。 + しかし、たくさんの勇苳司丙邏箸鬚擦困法鹿粡寂蝟赱齠洲痲筵娼未瞭暗淵灰鵐謄鵐弔魏辰┐襪砲呂垢阿譴進,任后鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡轣艱鶩瘰痺蒹煦縺粤鬯芍皴蔗粹笂瘤豁蜊瘍纉鞜竏縷蒹痲纈蜀錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭俺医寛奄羇錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蜊瘍纉鞜竏縷蒹痲纈蜀粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁蜊瘍纉鞜竏縷蒹痲纈蜀鹿畩鹿粡醍釶鴒蛹纉蜀聽鮗粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁蜊瘍纉轜纈鳫鰾閭鶤芍皴蔗粹笂瘤豁蜊瘍纉轜纈鳫鰾閭鶤芍羲碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握偽吟灸弦閏碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡轣艱鶩笊齡闕煥鴪闥粹笂蜀粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁蜊瘍纉轜纈鳫鰾閭鶤芍羲昭蝟沼蜴癇肅跂粡聿纈寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡轣艱鶩蓖辣蜀閭鶩轣銛瘡轣艱鶩蓖辣蜀錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭臼温鴻宴盞錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蜊瘍纉闕絎芍羶莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡轣艱鶩蓖辣蜀鹿畩鹿粡醍釶鴒蛹纉蜀聽鮗粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁蜊瘍纉鈔纔蜀閭鶩轣銛瘡轣艱鶩蜴粤芍羲碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握官禪抗剛啓碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡轣艱鶩蜴粤芍羶莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡轣艱鶩蜴粤芍羲昭蝟沼蜴癇肅跂粡聿纈寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡轣艱鶩迴籖鱚蜚縷肅膠蜃閭鶩轣銛瘡轣艱鶩迴籖鱚蜚縷肅膠蜃錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭激鍵聽甞羆錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蜊瘍纉閼熬纓鱸煕蜃窺肅膺莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡轣艱鶩迴籖鱚蜚縷肅膠蜃鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐誓鹿粡寂蝟赱齠洲痲筵娼F蒜鹿粡寂蝟赱齠洲痲筵娼戻鈔黹瘰綣蝟昭粡竚癈鷭п粐Ь緕鮗蝟昭粡竚癈鷭п粐Ь釿蒹鷦蝟昭粡竚癈鷭п粐Ь續蝟昭粡竚癈鷭п粐Ь旭絢蝟昭粡竚癈鷭п粐Ь蜴芟綣蝟昭粡竚癈鷭п粐Ь下蝟昭粡竚癈鷭п粐Ь屋下蝟昭粡竚癈鷭п粐Ьe聽聽羲蝟昭粡竚癈鷭п粐Ьc聶聽羲蝟昭粡竚癈鷭п粐Ьb繧繧綣蝟昭粡竚癈鷭п粐Ь握旭鹿粡寂蝟赱齠洲痲筵娼 荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 況飢軌弘飢軌弘感軌控感軌控完軌慣完軌鹿粡寂蝟赱齠洲痲筵娼旭下蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 弘完軌教完軌鹿粡寂蝟赱齠洲痲筵娼旭脅蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 碍完軌弘完軌弘感軌屋感軌屋飢軌教飢軌鹿粡寂蝟赱齠洲痲筵娼旭桓蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 外飢軌弘飢軌弘恭旭昂恭旭鹿粡寂蝟赱齠洲痲筵娼旭下蝟昭粡竚癈鷭п粐Ь弘憶旭弘欝旭鹿粡寂蝟赱齠洲痲筵娼旭下蝟昭粡竚癈鷭п粐Ь弘傾軌弘軍軌鹿粡寂蝟赱齠洲痲筵娼握旭鹿粡寂蝟赱齠洲痲筵娼 荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 恐恭旭薫恭旭薫薫軌臆薫軌鹿粡寂蝟赱齠洲痲筵娼旭桓蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 亀外旭薫外旭薫飢軌臆飢軌鹿粡寂蝟赱齠洲痲筵娼握旭鹿粡寂蝟赱齠洲痲筵娼 荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 臆桶乙弘桶乙弘外旭昂外旭鹿粡寂蝟赱齠洲痲筵娼旭下蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 鍵飢軌亀飢軌鹿粡寂蝟赱齠洲痲筵娼旭鹿粡寂蝟赱齠洲痲筵娼 弘崖旭薫崖旭薫卸旭弘卸旭弘崖旭鹿粡寂蝟赱齠洲痲筵娼旭鹿粡寂蝟赱齠洲痲筵娼 弘橋旭薫橋旭薫彊旭弘彊旭弘橋旭鹿粡寂蝟赱齠洲痲筵娼屋旭厩唄亀外鬼旭纓鱸咐跂椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭憶唄完鍵寛旭闔簧癆鴈椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭卸臼碓恐寛旭纉蜴艝旭閏蝟昭粡竚癈鷭п粐Ь握旭旭控弘崖旭屋吶蜚綯闔椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭憶嘘屋鍵鬼旭齡蜚蜿釟旭閏蝟昭粡竚癈鷭п粐Ь握旭旭控乙薫鬼旭癆鴈椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭厩唄亀外群旭纓鱸咐跂椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭厩唄亀外牡旭纓鱸咐跂椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭厩顕儀旭屋倚纈釟旭閏蝟昭粡竚癈鷭п粐Ь握旭旭碓害係旭屋囎碵闔椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭憶嘘屋鍵牡旭齡蜚蜿釟旭閏蝟昭粡竚癈鷭п粐Ь握旭旭控乙薫牡旭癆鴈椣葦鹿粡寂蝟赱齠洲痲筵娼姥握旭旭概患旭温乙鱚銓椣葦鹿粡寂蝟赱齠洲痲筵娼姥握旭旭概卦扱咳軌厂椣葦鹿粡寂蝟赱齠洲痲筵娼姥握旭旭概乙慌恐乙纓鱸緕椣葦鹿粡寂蝟赱齠洲痲筵娼姥握旭旭概卦扱挟軌厂椣葦鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡轣艱鶩迴籖鱚蜚縷肅膠蜀閭鶩轣銛瘡轣艱鶩迴籖鱚蜚縷肅膠蜀錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭橋玩祓綏矜錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蜊瘍纉閼熬纓鱸煕蜃窺芍羶莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡轣艱鶩迴籖鱚蜚縷肅膠蜀鹿畩鹿粡醍釶鴒蛹纉蜀聽鮗粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁蜊瘍纉閼熬纓鱸煕蜃荻肅皴蔗粹笂瘤豁蜊瘍纉閼熬纓鱸煕蜃荻肅膽碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握痺羇碓聶梗碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡轣艱鶩迴籖鱚蜚縷肅膕蜃粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁蜊瘍纉閼熬纓鱸煕蜃荻肅膽昭蝟昭粡竚癈鷭ц襷樟卯軌声蝟昭粡竚癈鷭п粐Ь読凱下蝟昭粡竚癈鷭п粐Ь瘤糂竅鞳鹿粡寂蝟赱齠洲痲筵娼着銓纈鹿粡寂蝟赱齠洲痲筵娼侮竏纉鹿粡寂蝟赱齠洲痲筵娼悶纈鹿粡寂蝟赱齠洲痲筵娼碓握旭鹿粡寂蝟赱齠洲痲筵娼嚔鈑跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼渦旭鹿粡寂蝟赱齠洲痲筵娼害繙繙繙鹿粡寂蝟赱齠洲痲筵娼崖竊竊繙鹿粡寂蝟赱齠洲痲筵娼慨矼矼矼鹿粡寂蝟赱齠洲痲筵娼握旭鹿粡寂蝟赱齠洲痲筵娼 圧碍軌圧幹乙鹿粡寂蝟赱齠洲痲筵娼旭下蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 控憾旭亀憾旭鹿粡寂蝟赱齠洲痲筵娼旭下蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 控涯旭亀涯旭鹿粡寂蝟赱齠洲痲筵娼旭下蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 彊儀旭群儀旭鹿粡寂蝟赱齠洲痲筵娼旭脅蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 彊亀軌弘亀軌弘輝旭控輝旭控恩軌亀恩軌鹿粡寂蝟赱齠洲痲筵娼旭脅蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 飢憾旭卦憾旭卦輝旭屋輝旭屋亀軌群亀軌鹿粡寂蝟赱齠洲痲筵娼旭脅蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 患外旭卦外旭卦害乙碓害乙碓慨軌亀慨軌鹿粡寂蝟赱齠洲痲筵娼旭脅蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 患涯旭卦涯旭卦蓋乙碓蓋乙碓完軌亀完軌鹿粡寂蝟赱齠洲痲筵娼旭脅蝟昭粡竚癈鷭п粐Ь荻旭屋牡握旭鹿粡寂蝟赱齠洲痲筵娼 患寛旭卦寛旭卦幹乙碓幹乙碓感軌亀感軌鹿粡寂蝟赱齠洲痲筵娼屋旭厩厩圧外憾旭纓鱸衷鈔旭閏蝟昭粡竚癈鷭п粐Ь握旭旭碓恐係旭鍵衷鈔倚纈醂椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭厩厩圧外涯旭纓鱸衷鈔旭閏蝟昭粡竚癈鷭п粐Ь握旭旭碓儀係旭彊衷鈔倚纈邁椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭卸渦弘恐憾旭纉蜴舂椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭卸渦患恐涯旭纉蜴膕椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭厩厩圧外外旭纓鱸衷鈔旭閏蝟昭粡竚癈鷭п粐Ь握旭旭薫牡偽乙旭壹齡囈鱸鈑閲旭閏蝟昭粡竚癈鷭п粐Ь握旭旭碓儀係旭旭衷鈔倚纈遽椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭憶嘘屋鍵儀旭齡蜚蜿釟旭閏蝟昭粡竚癈鷭п粐Ь握旭旭控乙薫儀旭癆鴈椣葦鹿粡寂蝟赱齠洲痲筵娼屋旭厩唄亀外儀旭纓鱸咐跂椣葦鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡轣艱鶩迴籖鱚蜚縷肅膕蜀閭鶩轣銛瘡轣艱鶩迴籖鱚蜚縷肅膕蜀錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭喝畍竄教甞錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蜊瘍纉閼熬纓鱸煕蜃荻芍羶莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡轣艱鶩迴籖鱚蜚縷肅膕蜀鹿畩鹿粡醍釶鴒蛹纉蜀聽鮗粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁蜊瘍纉蝌繻蜀閭鶩轣銛瘡轣艱鶩韈谺芍羲碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握宛葦慣灸下碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡轣艱鶩韈谺芍羶莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡轣艱鶩韈谺芍羲昭蝟沼蜴癇肅跂粡聿纈寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡轣艱鶩齦皰芍皴蔗粹笂瘤豁蜊瘍纉蜀錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭抗斡宴求箏錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蜊瘍纉蜀粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁蜊瘍纉蜀鹿畩鹿粡醍釶鴒蛹纉蜀聽鮗粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁蜴粤蔗迪皴蔗粹笂瘤豁蜴粤蔗迪郤碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握矚宴抗教畆碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡鈔纔谺緕粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁蜴粤蔗迪郤昭蝟昭粡竚癈鷭ц襷樟卯咳誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏挽墅纈帙鴦蜿窺弟笊辣銓癆蜿遉踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉私蝟跚芬就竇銓纈▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼痰跂繻踈鞜竕鈑就唖繻跟痲粡鈑就唖闥粤鮟⊆蝟昭粡竚癈鷭п粐Ь蜆就彊唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈▽苳殺踉脂辯鱆就蜊瘍纉鞜竏縷蒹痲纈蜀⊆蝟昭粡竚癈鷭п粐Ь蜆就彊唖繪艾旺闥粤鮟⊆蝟昭粡竚癈鷭п粐Ь踉就杼鞜竏弟笊辣銓癆蜿釡苳殺踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就4羇羇罌鹿粡寂蝟赱齠洲痲筵娼碎竇跛齔痺蜴臀竇跛鞜粐蜴臀硼鰾纈就唖鹿粡寂蝟赱齠洲痲筵娼糘莉旭ア鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈砒竢跫鮟■矼矼矼▽苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹叢譬齡鳫鈑徳僞踉晒齡鳫鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼 跚芬就竇銓纈砒竢跫鮟■矼矼矼▽苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼 蓿繙就皷轣隰蔗迪▽苳殺踉雌闔胼苳屍蜚緲瘰闔胼苳殺踉晒瓲苳殺踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈砒竢跫鮟■矼矼矼▽苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝粡鱚笏蝟纉譬齡鳫鈑堤鱚笏蝟纉闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈砒竢跫鮟■矼矼矼▽苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝▽苳殺踉雌闔胼苳四閼纉闔胼苳殺踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就b繧繧紜畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕黼癇竏鞜竏絎闥膀▽苳殺踉雌闔胼苳屍縺鱆荀踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅試碵雹筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈蒹蜃蔗就外▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢界苳餐鞜竏挽墅纈帙鴦蜿窺界踉晒莖鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼蝟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粡瘡蜃扈≪緕鬆鹿粡寂蝟赱齠洲痲筵娼碎竇跛齔痺蜴臀竇跛鞜粐蜴臀硼鰾纈就唖鹿粡寂蝟赱齠洲痲筵娼糘莉旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆鹿粡寂蝟赱齠洲痲筵娼肬鴉續蓖篏闢槇笏蜿扈∵雕黼癇竏鞜竏絎闥膀▽苳纂蝟昭粡竚癈鷭п粐Ь踉脂鉋綵∵蜆粤遐瘢綵†葹槇瘡就粹笂陰鹿粡寂蝟赱齠洲痲筵娼蜴頤鞳就釶辣就髟纈蝴綵唖鹿粡寂蝟赱齠洲痲筵娼蜴頤鞳就齦硴蜚跿綵縺鱆茴鹿粡寂蝟赱齠洲痲筵娼闥蹙苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂繻踈鞜竕鈑就唖繻跟痲粡鈑就唖闥粤鮟⊆蝟昭粡竚癈鷭п粐Ь蜆就彊唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈跚芬就陟鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻跟痲粡鈑就刈繻踈鞜竕鈑就唖鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■聿聿聿糘莉鍵▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就e劫劫喉鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑吶跂癈麗鵙踉晒齡鳫鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹纓煕縺鱚黯円凱蔗迪▽苳士纓縺鱚蜴鹿粡寂蝟赱齠洲痲筵娼帙鴦蜿窺界踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就苒痲蜴艤澑潦譬寳苒痲蜴鹿粡寂蝟赱齠洲痲筵娼帙鴦蜿窺界踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就棉壇林鄭草痺蒹蜒緕黼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟竇跛鞜粐蜴臀竇跛齔痺蜴臀⊆蝟昭粡竚癈鷭п粐Ь艫闌闥就f聿聿罌蜆就恩唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈砒竢跫鮟■綛綛綛▽苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳子繙纈緕竇瘤讀踉晒齡鳫鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹∫銖跛譬衷逅蛹蜴瘤篌蝟昭粡竚癈鷭п粐Ь銖跛蜴胼踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就蜴謇鈑譬囈癇鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹‰韶蜴膊蔗迪▽苳屍韶蜴闥鹿粡寂蝟赱齠洲痲筵娼吶齡癇鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹閼蜥繝鶤蔗迪▽苳子蜊綣蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔蜥繝鵙踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼酪糒跂鷓踉氏鱚羹閼鈔纔絎蔗迪▽苳斬蝟昭粡竚癈鷭п粐Ь絋踉晒瓲苳闥踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝蜴粤蔗迪▽苳餐跟葹矼竅讀踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就頏閾鱇逑嚆鴟纈鈔竟鶯蜴膽蝟昭粡竚癈鷭п粐Ь鳫苒瘢鵙踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就糂鎬蔗迪▽苳残瘢蜒葹鱚裙笏柘路鹿粡寂蝟赱齠洲痲筵娼囎韶闥熙踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹佗譬壽草痺蒹佗鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻跟痲粡鈑就刈繻踈鞜竕鈑就唖鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■聿聿聿糘莉鍵▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就e劫劫喉鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑俾癆肬鴉鞳竕肅麗鵙踉晒齡鳫鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹†蜴粹譬莱竰闢閹怏鈔阯鵙踉晒瓲苳蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≪隨蔗迪▽苳暫遉踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就鈬癇絎蔗迪▽苳士阮繻励癇絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹鞳蝌譬釆佚悧踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就蝌鱚譬寰蝌怐鱚踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹Å縺粱絖罧蔗迪▽苳市估踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈跚芬就陟艫闌闥就c窿窿磚鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻跟痲粡鈑就唖繻踈鞜竕鈑就唖鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■窿窿窿▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆蜊齟秉∫轣艱鶩韈谺芍罌鹿粡寂蝟赱齠洲痲筵娼糘莉蒹蜃蔗就陰闥粤鮟瘡〓苳殺踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈跚芬就陟鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻跟痲粡鈑就刈繻踈鞜竕鈑就唖鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■聿聿聿糘莉鍵▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就e劫劫喉齡鳫鈑專蜴膽蝟昭粡竚癈鷭п粐Ь蒹鞜竏挽墅纈鬢踉晒齡鳫鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹∵阯莅蔗迪▽苳餐蒹銓蜒癆蜿遯鹿粡寂蝟赱齠洲痲筵娼装闥蝴癆蜿遯鈔窿纉衷銓鳫讀踉晒瓲苳殺踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹∵阯芍譬断漂瘢蜒闔銓蜚莠蝟昭粡竚癈鷭п粐Ь派踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鈕蜃蜴膊蔗迪▽苳暫闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼鍋跂鵙踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢銓緕鈬苡癆蜿隨蔗迪▽苳暫闔銓鹿粡寂蝟赱齠洲痲筵娼鈬苡癆蜿遉踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就緕蔗迪▽苳仕鉚蜥闔辣銓癇蛛碎纉鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹纈罩鉗鈑譬賠鈬鱇貅蝟昭粡竚癈鷭п粐Ь纈肬鴉瘤竇蜴踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼蓿繙就葹鈔跂鬯蔗迪▽苳使瘤粲纈鵙踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹閾鶤蔗迪▽苳嗣閾蛹纉踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹繝蜚頌譬嚆笊鱸鹿粡寂蝟赱齠洲痲筵娼頌踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼蓿繙就蓖鎭齠藪蔗迪▽苳屍纈嚔粤鹿粡寂蝟赱齠洲痲筵娼侮竚纉踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼蓿繙就黼鴟纈蜆絎蔗迪▽苳屍纈鬮怏粤鹿粡寂蝟赱齠洲痲筵娼衷鈕蜃癆蜿遉踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹‰祟蔗迪▽苳雌禳皷鈑續專纈苗笊闔鹿粡寂蝟赱齠洲痲筵娼肬断髭踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹♭鳰轣韶蜴膊蔗迪▽苳師厂瘰韈鈑浴韶蜴鹿粡寂蝟赱齠洲痲筵娼孀約鍋跂齷齡纃踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹蜩祚鱚蜚繚粤譬孀吶蜚蜴膽蝟昭粡竚癈鷭п粐Ь粤踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼蓿繙就闢鈔纔譬帷鶯被齡鵙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь痰跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻跟痲粡鈑就刈繻踈鞜竕鈑就唖鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■聿聿聿糘莉鍵▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就e劫劫喉齡鳫鈑蒹鮗蝟昭粡竚癈鷭п粐Ь關蜒鵙踉晒齡鳫鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹蜩祚徳儁蔗迪▽苳仔鱚髟緕蒼諷篌蝟昭粡竚癈鷭п粐Ь齡蜿銖踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹‰蜚纃瘰譬嚔浴隍踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹蜩祚鱸瘡鶤蔗迪▽苳市闥蛛踈鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹蒹麗鵙踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼蝟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈≪緕鬆浴蜴蜴繖畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕蔗筮瘰痺蒹鱧閭鶚頏闃繝▽苳餐鞜竏挽墅纈鮗蝟昭粡竚癈鷭п粐Ь閭緕闔鳫裙笏踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁蜴粤蔗迪皴蔗粹笂瘤豁蜴粤蔗迪鮗碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握騎儀究温脅碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡鈔纔谺胙粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁蜴粤蔗迪鮗昭蝟昭粡竚癈鷭ц襷樟卯恩誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼辣隲繿闔銓紜鹿粡寂蝟赱齠洲痲筵娼竢銓緕♯纔蔗迪竏癇黼蜩鎰幻宜苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂弟笊辣銓癆蜿糒纈墺草痺蒹纈皷闔蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼粡瘡蜃扈≪緕鬆鹿粡寂蝟赱齠洲痲筵娼碎竇跛齔痺蜴臀竇跛鞜粐蜴臀硼鰾纈就唖鹿粡寂蝟赱齠洲痲筵娼糘莉旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆蜊齟秉∫轣艱鶩瘰痺蒹煦縺粤鬯芍罌鹿粡寂蝟赱齠洲痲筵娼糘莉旭蒹蜃蔗就恐硼鰾纈就唖鹿粡寂蝟赱齠洲痲筵娼瘡弟笊辣銓癆蜿筵草痺蒹蘗筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈砒竢跫鮟■贋贋贋▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼痰跂繻踈鞜竕鈑就陰繻跟痲粡鈑就刈闥粤鮟⊆蝟昭粡竚癈鷭п粐Ь蜆就碓哀▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就b繧繧紜畆蝟昭粡竚癈鷭п粐Ь鱚羹蜩祚徳儁蔗迪▽苳殺踉雌闔胼苳仔叢闔胼苳殺踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就b繧繧紜畆蝟昭粡竚癈鷭п粐Ь鱚羹閼蜥繝鶤蔗迪▽苳殺踉雌闔胼苳残蜥繝鵙踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就b繧繧紜畆蝟昭粡竚癈鷭п粐Ь鱚羹閼齡鳫鈑酪糒跂鵙踉晒齡鳫鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈砒竢跫鮟■矼矼矼▽苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕縺鱆莅瘰痺蒹鱧齡鳫鈑吶竏纈竏纈闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺瘢雹鈞齔殺踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆繪艾唖鹿粡寂蝟赱齠洲痲筵娼莖嚆鴟纒挽墅鞜竏鴦蜿窺界踉晒莖鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼蝟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粡瘡蜃扈≪緕鬆鹿粡寂蝟赱齠洲痲筵娼碎竇跛齔痺蜴臀竇跛鞜粐蜴臀硼鰾纈就唖鹿粡寂蝟赱齠洲痲筵娼糘莉旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆鹿粡寂蝟赱齠洲痲筵娼肬鴉續蓖篏闢槇笏蜿扈∵雕黼癇竏鞜竏絎闥膀▽苳纂蝟昭粡竚癈鷭п粐Ь踉脂鉋綵∵蜆粤遐瘢綵†葹槇瘡就粹笂陰鹿粡寂蝟赱齠洲痲筵娼蜴頤鞳就釶辣就髟纈蝴綵唖鹿粡寂蝟赱齠洲痲筵娼蜴頤鞳就齦硴蜚跿綵縺鱆茴鹿粡寂蝟赱齠洲痲筵娼闥蹙苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂繻踈鞜竕鈑就唖繻跟痲粡鈑就唖闥粤鮟⊆蝟昭粡竚癈鷭п粐Ь蜆就彊唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈跚芬就陟鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻跟痲粡鈑就刈繻踈鞜竕鈑就唖鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■聿聿聿糘莉鍵▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就e劫劫喉齡鳫鈑麗鷦蝟昭粡竚癈鷭п粐Ь續纈皷闔闔胼苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就鈬聽癆纉澑潦譬麗繻跂鷦蝟昭粡竚癈鷭п粐Ь闔笏蜿銕瘡蜚逅糸痺綮粤鴦蜿窺界踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就苒痲蜴艤澑潦譬莱苒纈纈赱鹿粡寂蝟赱齠洲痲筵娼鴦蜿窺界踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就棉壇林鄭也竇釿草痺蒹踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟竇跛鞜粐蜴臀竇跛齔痺蜴臀⊆蝟昭粡竚癈鷭п粐Ь艫闌闥就f聿聿罌蜆就恩唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈砒竢跫鮟■綛綛綛▽苳殺踉雌闔胼苳四瘤貅蝟昭粡竚癈鷭п粐Ь鬢瘢雹縺笊紙逅糸痺綮鱚釿絋踉晒齡鳫鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹∫銖跛譬衷逅蛹癆蜿續鹿粡寂蝟赱齠洲痲筵娼蜴齡瘡赱闔踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹∫鉚闍蜴膊蔗迪▽苳残逅糸痺綮轣鴪瘍絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹‰韶蜴膊蔗迪▽苳餐鴪逅糸竕鱆飼蝟昭粡竚癈鷭п粐Ь繖逅糸痺綮轣鴪瘍絋踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝粡鱚笏蝟纉譬堤鱚笏蝟纉綣蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔讌纔逅糸痺綮笊闔踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳四閼纉蓿繙就迴箝蜴粤磔鞳譬鞜鮗蝟昭粡竚癈鷭п粐Ь絋踉晒瓲苳闥踉氏鱚羹閼鈔纔譬鞜闥糅綣蝟昭粡竚癈鷭п粐Ь跟葹皃瘢雹縺笊飼蜻踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹≫齒譬囎韶闥粤裙鹿粡寂蝟赱齠洲痲筵娼鞜鶯瘍逅糸痺綮糯釶迚髟纉柘路踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹蜩祚双筆蔗迪▽苳嗣Я佗鞜竏絋踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻跟痲粡鈑就刈繻踈鞜竕鈑就唖鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■聿聿聿糘莉鍵▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就e劫劫喉齡鳫鈑麗鷦蝟昭粡竚癈鷭п粐Ь薤瘢雹縺笊糸癜韭癆纉闥辣鵙踉晒齡鳫鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹†蜴粹譬莱竰闢閹怏鈔阯鵙踉晒瓲苳蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≪隨蔗迪▽苳暫遉踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就鈬癇絎蔗迪▽苳士阮繻励癇絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹鞳蝌譬釆佚悧踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就蝌鱚譬寰蝌怐鱚踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹Å縺粱絖罧蔗迪▽苳市估踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈跚芬就陟艫闌闥就c窿窿磚鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻跟痲粡鈑就唖繻踈鞜竕鈑就唖鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■窿窿窿▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆蜊齟秉∫轣艱鶩韈谺芍罌鹿粡寂蝟赱齠洲痲筵娼糘莉蒹蜃蔗就陰闥粤鮟瘡〓苳殺踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈跚芬就陟鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻跟痲粡鈑就刈繻踈鞜竕鈑就唖鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■聿聿聿糘莉鍵▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就e劫劫喉鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑對蛹蜩癆蜿糒纈墺草痺蒹闔胼苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹≪闔肅苺鱸鈑譬鍋竏蜈鴦綣蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹‰纈鬮粤譬衷鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь跫矚跂黼鴟纒鬢踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就闢鈔纔譬筈瘢雹閭蜥禹鷦蝟昭粡竚癈鷭п粐Ь蜥繻鵙踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就蓖鎭齠藪蔗迪▽苳刺釿跿皷闔鹿粡寂蝟赱齠洲痲筵娼礒瘢雹閭蜥禹熙瘢雹縺笊黼鴟纒喇踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就蓖鎭竍藪蔗迪▽苳暫闔銛瘢蜻禺蝟昭粡竚癈鷭п粐Ь纉派踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹∵瘤粲纈譬悲鈔跂鴦踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢銓緕鈬苡癆蜿隨蔗迪▽苳士逅糸痺綮苡癆蜿郤蝟昭粡竚癈鷭п粐Ь竢銓緕踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就緕蔗迪▽苳志癇蛛碎纉鹿粡寂蝟赱齠洲痲筵娼筵緕鳫銕纃緕熙踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就齦纔繝譬專蜴嚆黼鯢祷繝蜿郤蝟昭粡竚癈鷭п粐Ь闥派踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹蜩祚鞳鱠蜴膊蔗迪▽苳餐蜆纉纉鹿粡寂蝟赱齠洲痲筵娼鞳鱠闥轣釿纉逅糸痺綮遉瘢雹縺笊賜瘡纉踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹蜩祚黼笊鱸熹蜷鶤蔗迪▽苳市鴣笂畆蝟昭粡竚癈鷭п粐Ь逅糸痺綮笊鱸熙瘢雹縺笊殺踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹纓鱸苺蜆絎蔗迪▽苳伺粤綣蝟昭粡竚癈鷭п粐Ь逅糸痺綮逅糸痺綮竰蜚筵孀約踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟竇跛鞜粐蜴臀竇跛齔痺蜴臀⊆蝟昭粡竚癈鷭п粐Ь艫闌闥就f聿聿罌蜆就恩唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈砒竢跫鮟■綛綛綛▽苳殺踉雌闔胼苳餐鱚鷦蝟昭粡竚癈鷭п粐Ь續鵙踉晒齡鳫鈑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹蜩祚徳儁蔗迪▽苳仔濶鱚癜蝟昭粡竚癈鷭п粐Ь齡蜿銖踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹蜩祚鱸瘡鶤蔗迪▽苳市闥蜈踈鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹装纉阡纉踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒粡苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁蜴粤蔗迪皴蔗粹笂瘤豁蜴粤蔗迪貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握卸碓恒俄禺碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡鈔纔谺蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁蜴粤蔗迪貅昭蝟昭粡竚癈鷭ц襷樟卯誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺囈鱸笏杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈蜒糘笄鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∫鈔纔谺緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡鈔纔谺裃蜩閭鶩轣銛瘡鈔纔谺裃蜩錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭羔狭梶箒鹸錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蜴粤蔗迪甌裼鷽莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡鈔纔谺裃蜩鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐碓声蝟昭粡竚癈鷭п粐Ь踉賛鴦蜿扈緕竢粡鈑就蜩鎰屋臆陟職苳纂蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬迪碕瘤臀∬瓣瘤臀∬瓣鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏挽墅ぢサ・踉札ぢバ・踉札献腑ぢドキュメント</title> + </head> + <!-- English revision: 1.57 --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <div align="center"> + <table cellspacing="0" cellpadding="0" border="0" + width="600"> + <tr> + <td align="center"><img src="images/apache_header.gif" + width="600" height="62" border="0" + alt="[Apache ドキュメント]" /></td> + </tr> + + <tr> + <td align="center" bgcolor="#4f4f4f"> + <table cellspacing="1" cellpadding="4" border="0" + width="100%"> + <tr> + <td align="center" bgcolor="#bebebe"><a + href="misc/FAQ.html"><strong>FAQ</strong></a> </td> + + <td align="center" bgcolor="#bebebe"><a + href="sitemap.html"><strong>サイトマップ</strong></a></td> + + <td align="center" bgcolor="#bebebe"><a + href="mod/directives.html"><strong>ディレクティブ</strong></a> + </td> + + <td align="center" bgcolor="#bebebe"><a + href="mod/"><strong>モジュ・踉札闔胼苳殺踉晒瓲苳筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就b繧繧紜畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕黼癇竏鞜竏絎闥膀▽苳殺踉雌闔胼苳ぢ検索</strong></a> + </td> + </tr> + </table> + </td> + </tr> + + <tr> + <td> </td> + </tr> + + <tr> + <td align="center" height="30"> + <h3>Apache HTTP Server Version 1.3</h3> + </td> + </tr> + </table> + </div> + + <div align="center"> + <table cellspacing="0" cellpadding="0" border="0" + width="600"> + <tr> + <td align="center"> + <form method="post" action="http://search.apache.org/"> + <input type="hidden" name="what" value="docs1" /> + <input type="text" name="query" size="20" /> + <input type="submit" value="Search" /> + </form> + </td> + </tr> + </table> + + <table cellspacing="0" cellpadding="0" border="0" + width="600"> + <tr> + <td align="center" valign="top"> + <table border="0" cellpadding="4" cellspacing="0" + bgcolor="#ffffff" width="280"> + <tr> + <td align="center" bgcolor="#e9e9e9"> + <strong>リリ・踉札好痢ト</strong> </td> + </tr> + + <tr> + <td><a href="new_features_1_3.html">Apache 1.3 の新機能</a> + </td> + </tr> + + <tr> + <td><a href="upgrading_to_1_3.html">Apache 1.3 + へのアップグレ・踉札踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹¬秒杜單▽苳餐鞜竏のライセンス</a> </td> + </tr> + </table> + + <table border="0" cellpadding="4" cellspacing="0" + bgcolor="#ffffff" width="280"> + <tr> + <td align="center" bgcolor="#e9e9e9"> + <strong>リファレンスマニュアル</strong> </td> + </tr> + + <tr> + <td><a href="install.html">コンパイルとインスト・踉札鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就蜴謇鈑譬起動</a> </td> + </tr> + + <tr> + <td><a href="stopping.html">終了または再起動</a> + </td> + </tr> + + <tr> + <td><a href="mod/directives.html">孫垰寮瀋衒鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼モジュ・踉札蓿繙就迴箝蜴粤磔鞳譬鹿粡寂蝟赱齠洲痲筵娼鑪猜ぢと + <a href="mod/index.html">アルファベット順</a> </td> + </tr> + + <tr> + <td><a href="programs/">サ・踉札个肇汽檗トプログラム</a> + </td> + </tr> + + <tr> + <td><a href="dso.html">Dynamic Shared Object (DSO) + のサポ・踉札踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹蜩祚瘰藪蔗迪▽苳餐鞜竏双髭踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟竇跛鞜粐蜴臀竇跛齔痺蜴臀⊆蝟昭粡竚癈鷭п粐Ь艫闌闥就f聿聿罌蜆就恩唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈砒竢跫鮟■綛綛綛▽苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢプラットフォ・踉札犖罵陸苳諮報</strong> </td> + </tr> + + <tr> + <td><a href="windows.html">Microsoft Windows</a> | + <a href="cygwin.html">Cygwin</a> </td> + </tr> + + <tr> + <td><a href="netware.html">Novell Netware</a> + </td> + </tr> + + <tr> + <td><a href="mpeix.html">HP MPE/iX</a> </td> + </tr> + + <tr> + <td><a href="unixware.html">UnixWare</a> </td> + </tr> + + <tr> + <td><a href="readme-tpf.html">TPF</a> </td> + </tr> + </table> + </td> + + <td align="center" valign="top" bgcolor="#cccccc"> + <table border="0" cellpadding="0" cellspacing="0" + bgcolor="#cccccc"> + <tr> + <td align="center"><img src="images/pixel.gif" + width="1" height="1" border="0" alt="." /></td> + </tr> + </table> + </td> + + <td align="center" valign="top"> + <table border="0" cellpadding="4" cellspacing="0" + bgcolor="#ffffff" width="280"> + <tr> + <td align="center" bgcolor="#e9e9e9"><strong>Apache + HTTP サ・踉札个鮖箸逅闔胼苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就蓖鎭癜譬認據帖鹿粡寂蝟赱齠洲痲筵娼アクセス制御</a></td> + </tr> + + <tr> + <td><a href="howto/cgi.html">CGI + による動的コンテンツ</a> </td> + </tr> + + <tr> + <td><a href="configuring.html">設定ファイル</a> + </td> + </tr> + + <tr> + <td><a href="content-negotiation.html" + >コンテントネゴシエ・踉札轡腑踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹√鉚譬環境変数</a> + </td> + </tr> + + <tr> + <td><a href="misc/perf-tuning.html" + >一般的な性能に関するヒント</a> </td> + </tr> + + <tr> + <td><a href="handler.html">ハンドラ</a> </td> + </tr> + + <tr> + <td><a href="logs.html">ログファイル</a> </td> + </tr> + + <tr> + <td><a href="misc/security_tips.html"> + セキュリティ霾踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹∵阯皷譬嚆鴟纈蜆侮竚絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹‰纈鬮粤譬サ・踉札仭澗里寮瀋鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就齦纔繝譬断で SetUserID + 孫圓鮖箸逅踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹♭鳰轣韶蜴膊蔗迪▽苳師厂鹿粡寂蝟赱齠洲痲筵娼をファイルシステムにマップする</a> </td> + </tr> + + <tr> + <td><a href="misc/rewriteguide.html">URL Rewriting + のガイド</a> </td> + </tr> + + <tr> + <td><a href="vhosts/index.html">バ・踉札船礇襯曠好鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻跟痲粡鈑就刈繻踈鞜竕鈑就唖鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■聿聿聿糘莉鍵▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈≪緕鬆艫闌闥就e劫劫喉鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑その側苳闔胼苳筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹叢譬徳僞踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳殺踉氏鱚羹‰蜚纃瘰譬サイトマップ</a> + </td> + </tr> + + <tr> + <td><a href="misc/tutorials.html">チュ・踉札肇螢▲鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹その側苳踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粡苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就竇銓纈▽苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕鞣鞜竏絎闥膀粹笂鳫裙笏草痺蒹墺嚆鴟纈鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓癆蜿會闃繝熙踉晒瓲苳によりメンテナンスされています。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/install-tpf.html b/htdocs/manual/install-tpf.html new file mode 100644 index 0000000000..e9600d7e68 --- /dev/null +++ b/htdocs/manual/install-tpf.html @@ -0,0 +1,978 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta http-equiv="Content-Type" + content="text/html; charset=us-ascii" /> + + <title>Installing Apache on TPF4.1</title> + <style type="text/css"> + /*<![CDATA[*/ + <!-- + .indented { margin-left: 25pt; } + .output { padding-left: 20px; padding-right: 20px; background-color: #dadada; } + --> + /*]]>*/ + </style> +</head> + +<body> + <center> + <h2><a id="top" + name="top"></a>Installing the Apache 1.3 HTTP Server on + TPF4.1</h2> + <hr /> + [ <a href="#download">Download</a> | + <a href="#compilation">Compilation</a> | + <a href="#installation">Installation</a> | + <a href="#linkmap">Link Map</a> ] + <hr /> + </center> + + <p>This document outlines the steps needed to install Apache + onto an IBM TPF4.1 system. (There are separate + <a href="install-ztpf.html">installation instructions for + z/TPF</a>.)</p> + + <p>You should first review + <a href="readme-tpf.html">readme-tpf.html</a> for basic + information on the port of Apache to TPF including a list of + supported modules and required PUT levels.</p> + + <p>The allocated <tt>CHTA</tt> program name is used throughout + these instructions to refer to Apache. You can use a different + program name if you wish.<br /> + Likewise the directory structure <tt>apache/src</tt> is used + for the Apache source code directory. You can use different + directories than <tt>apache</tt> if you wish.</p> + + <p>If you change the program or directory names be sure to + change the entries shown in these instructions.</p><br /> + + + <center> + <h2><a id="download" + name="download"></a>Download</h2> + </center> + + <p>Releases of the Apache server are compressed into a + "tarball" file which must be downloaded to your PC. + Additionally the source code from the tarball will need to be + copied onto an OS/390 UNIX System Services machine (later + referred to simply as "OS/390 UNIX") for compiling. Here are + all the details on how to get Apache and how to get it where it + needs to be:</p> + + <ol> + <li> + <p>Download the compressed Apache files (the "tarball") + to your PC. The file name on the web site will be + <tt>apache_1.3.<i>vv</i>.tar.Z</tt>.</p> + + <p> + <font color="#CC6600"><font size="+1">TIP:</font></font> + Be sure to keep the <tt>.tar.Z</tt> extension when + saving the file.</p> + </li> + + <li> + <p>Decompress the tarball on your PC using WinZip or + some other PC decompression tool.</p> + + <p> + <font color="#CC6600"><font size="+1">TIP:</font></font> + If you are using WinZip verify that the <i>"TAR File + Smart CR/LF Conversion"</i> option (under Options, + Configuration) is <em>not</em> checked.</p> + + <p>This is what you can expect if you use WinZip:</p> + + <ul> + <li>open the tarball with WinZip (this can usually + be done simply by double-clicking on the downloaded + tarball)</li> + + <li>you will be told that the archive contains one + file (apache_1.3.<i>vv</i>.tar) - allow WinZip to + decompress it to a temporary folder</li> + + <li>extract the archived files onto your PC - + you'll be using files from the <tt>conf, + htdocs,</tt> and <tt>icons</tt> directories later + in the install phase<br /> + <br /></li> + </ul> + </li> + + <li> + <p>FTP the tarball to your OS/390 UNIX machine using + binary mode:</p> + + <ul> + <li>activate FTP in an MSDOS window:<br /> + <b><tt> ftp <i>your.os390.unix.machine.com</i></tt></b> </li> + + <li>sign in </li> + + <li>set mode to + binary: <b><tt>binary</tt></b> </li> + + <li>send the file to OS/390 UNIX:<br /> + <b><tt> send "c:/<i>path</i>/apache_1.3. + <i>vv</i>.tar.Z" apache_1.3.<i>vv</i>.tar.Z</tt></b></li> + + <li>exit FTP: <b><tt>bye</tt></b></li> + </ul> + + <p> + <font color="#CC6600"><font size="+1">TIP:</font></font> + UNIX file names are case sensitive. If you use an NFS + client to transfer files from your PC to OS/390 UNIX + (instead of using FTP as described above) verify that + the NFS drive will transfer the file names with + upper/lower case preserved.</p> + </li> + + <li> + <p>Decompress and extract the archived files necessary + for compiling Apache:</p> + + <p class="indented"> + <b><tt>pax -rvzkf apache_1.3.<i>vv</i>.tar.Z -o from=ISO8859-1,to=IBM-1047 "*/src"</tt></b></p> + </li> + + <li> + <p><a id="delete-expat" + name="delete-expat"></a> Remove unnecessary + subdirectories:</p> + + <p class="indented"> + <b><tt>cd apache_1.3.<em>vv</em>/src/lib<br /> + rm -r expat-lite sdbm<br /> + cd ../os<br /> + rm -fr bs2000 cygwin mpeix netware os2 os390 unix + win32<br /> + cd ..</tt></b></p> + </li> + </ol> + + <center> + <h2><a id="compilation" + name="compilation"></a>Compilation</h2> + </center> + + <p>Apache supports the notion of "optional modules". However, + the server has to know which modules are compiled into it. In + order for those modules to be effective, it is necessary to + generate a short bit of code (modules.c) which simply has a + list of them. If you are using the <tt>Configure</tt> utility + and <tt>make</tt>, modules.c and other necessary files will be + created for you automatically.</p> + + <p>The provided instructions assume a c89 compiler and have + been tested on an OS/390 UNIX machine running at version 2.6 + that contained both OS/390 UNIX and TPF C header files. If you + are using a platform other that OS/390 UNIX you may need to + modify src/os/tpf/TPFExport and src/Configure to match your + environment.</p> + + <p><font color="#CC6600"><font size="+1">TIP:</font></font> + Editing files on your PC prior to moving them to OS/390 UNIX + may result in the loss/addition of unprintable characters. + Files of concern include shell scripts and src/Configuration. + The most common problems are with tab characters and CR/LF + characters. Most editors will handle the CR/LF problem + correctly but none seem to handle tab characters. If you need + to edit files prior to moving them to OS/390 UNIX, edit them in + a UNIX editor such as vi or emacs.</p> + + <p>Note that OS/390 UNIX commands in this section are shown in + <b><tt>bold</tt></b>, are case sensitive, and must be made from + the "src" directory.</p> + + <ol> + <li> + <p>Switch to the Apache source code subdirectory:</p> + + <p class="indented"> + <b><tt>cd apache_1.3.<em>vv</em>/src</tt></b></p> + </li> + + <li> + <p>Overlay src/Configuration with + src/Configuration.tmpl:</p> + + <p class="indented"> + <b><tt>cp Configuration.tmpl Configuration</tt></b></p> + </li> + + <li> + <p>The src/Configuration file controls which optional + modules are compiled into Apache.<br /> + Leave the file as-is if you want to use the default + set of modules.<br /> + Otherwise edit the src/Configuration file to customize + which modules are used:</p> + + <ul> + <li>Comment out (by preceding the line with a "#") + lines corresponding to those modules you do + <em>not</em> wish to include.</li> + + <li>Uncomment (by removing the initial "#", if + present) lines corresponding to those modules you + wish to include.<br /> + (The <a href="readme-tpf.html">readme-tpf.html</a> + document lists the modules that have been tested on + TPF).</li> + + <li>Add lines for any custom or third party modules + you wish to include.<br /> + The modules placed in the Apache distribution are + the ones that have been tested and are used + regularly by various members of the Apache + development group. Additional modules contributed + by members or third parties with specific needs or + functions are available at + <a href="http://modules.apache.org/">http://modules.apache.org/</a>. + There are instructions on that page for linking + these modules into the core Apache code.</li> + + <li>If you did not delete the src/lib/expat-lite + directory as noted in the + <a href="#delete-expat">download instructions</a>, + add "<tt>Rule EXPAT=no</tt>" to the + src/Configuration file.</li> + + <li>Adjust the other rules, <tt>EXTRA_CFLAGS</tt>, + <tt>EXTRA_LIBS</tt>, <tt>EXTRA_LDFLAGS</tt>, and + <tt>EXTRA_INCLUDES</tt> settings if you feel so + inclined.<br /> + </li> + </ul> + </li> + + <li> + <p>Indicate whether the <tt>non_socket_select</tt> + function is implemented on your system.</p> + + <p>If you are on a PUT12 or higher system, or have + PJ26895 installed, then you probably support + <tt>non_socket_select</tt>.<br /> + You can verify this by looking for the + <tt>non_socket_select</tt> prototype in your system + header files (specifically <tt>i$pwbl.h</tt>).</p> + + <p>If your TPF system supports + <tt>non_socket_select</tt> do <em>one</em> of the + following:</p> + + <ul> + <li>add + "<tt>#define TPF_HAVE_NONSOCKET_SELECT</tt>" + to + <tt>src/os/tpf/os.h</tt> <em>or</em></li> + + <li>add "<tt>-DTPF_HAVE_NONSOCKET_SELECT</tt>" to + the <tt>_C89_OPTIONS</tt> export in + src/os/tpf/TPFExport</li> + </ul> + + <p>Otherwise:</p> + + <ul> + <li>add + "<tt>#define TPF_NO_NONSOCKET_SELECT</tt>" to + <tt>src/os/tpf/os.h</tt> <em>or</em></li> + + <li>add "<tt>-DTPF_NO_NONSOCKET_SELECT</tt>" to the + <tt>_C89_OPTIONS</tt> export in + src/os/tpf/TPFExport</li> + </ul> + + <p>Without <tt>non_socket_select</tt> CGI output is + buffered and only sent to the browser when the CGI + program finishes.</p> + </li> + + <li> + <p>Indicate whether the <tt>tpf_sawnc</tt> function is + implemented on your system.</p> + + <p>If you are on a PUT10 or higher system, or have + PJ27387/PJ26188 installed, then you probably support + <tt>tpf_sawnc</tt>.<br /> + You can verify this by looking for the + <tt>tpf_sawnc</tt> prototype in your system header + files (either <tt>tpfapi.h</tt> or + <tt>i$fsdd.h</tt>).</p> + + <p>If your TPF system supports <tt>tpf_sawnc</tt> do + <em>one</em> of the following:</p> + + <ul> + <li>add "<tt>#define TPF_HAVE_SAWNC</tt>" to + <tt>src/os/tpf/os.h</tt> <em>or</em></li> + + <li>add "<tt>-DTPF_HAVE_SAWNC</tt>" to the + <tt>_C89_OPTIONS</tt> export in + src/os/tpf/TPFExport</li> + </ul> + + <p>Otherwise:</p> + + <ul> + <li>add "<tt>#define TPF_NO_SAWNC</tt>" to + <tt>src/os/tpf/os.h</tt> <em>or</em></li> + + <li>add "<tt>-DTPF_NO_SAWNC</tt>" to the + <tt>_C89_OPTIONS</tt> export in + src/os/tpf/TPFExport</li> + </ul> + + <p>The use of <tt>tpf_sawnc</tt> allows for a cleaner + shutdown of Apache.</p> + </li> + + <li> + <p><a id="syslog" + name="syslog"></a>Indicate if you have the Syslog + Daemon message logging facility.</p> + + <p>If you are on a PUT13 or higher system, or have + PJ27214 installed, you can use syslog for Apache's + ErrorLog.<br /> + To have the option of using syslog you must do + <em>one</em> of the following:</p> + + <ul> + <li>add "<tt>#define HAVE_SYSLOG</tt>" to + <tt>src/os/tpf/os.h</tt> <em>or</em></li> + + <li>add "<tt>-DHAVE_SYSLOG</tt>" to the + <tt>_C89_OPTIONS</tt> export in + src/os/tpf/TPFExport</li> + </ul> + + <p>You also need to add "<tt>INCLUDE + OBJLIB(CSYLOG40)</tt>" to your link JCL.</p> + + <p>See the <a href="readme-tpf.html#syslog">syslog + section of readme-tpf.html</a> for more + information.</p> + </li> + + <li> + <p>Indicate if you would like to use the TCP/IP network + services database. (This only applies if you are using + TCP/IP native stack.)</p> + + <p>If you are on a PUT16 or higher system, or have + PJ28195 installed, you can use the TCP/IP network + services database. To do so, you must do <em>one</em> + of the following:</p> + + <ul> + <li>add "<tt>#define TPF_HAVE_NSD</tt>" to + <tt>src/os/tpf/os.h</tt> <em>or</em></li> + + <li>add "<tt>-DTPF_HAVE_NSD</tt>" to the + <tt>_C89_OPTIONS</tt> export in + src/os/tpf/TPFExport</li> + </ul> + + <p>See "Network Services Database Support" in the + <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM + TPF Product Information Center</a> for details.</p> + </li> + + <li> + <p><a id="export" + name="export"></a>Set the TPF environment + variables:</p> + + <p class="indented"> + <b><tt>. os/tpf/TPFExport</tt></b> </p> + + <p>This script will set the environment variables + required to compile the programs for TPF. Verify that + the export variables are valid for your installation, + in particular, the system include file directories. The + system include files must reside on your OS/390 UNIX + system in the appropriate file structure similar to + /usr/include and /usr/include/sys. Do <em>not</em> + modify the <tt>TPF=YES</tt> export variable. If this is + changed, the "Configure" script will not recognize + TPF.</p> + </li> + + <li> + <p><a id="run-configure" + name="run-configure"></a>Run the "Configure" script + to generate modules.c, include/ap_config_auto.h, and + necessary Makefiles:</p> + + <p class="indented"><b><tt>Configure</tt></b></p> + + <table class="indented"> + <tr> + <td class="output"> + <pre> +Using config file: +Configuration +Creating Makefile ++ configured for TPF platform ++ setting C compiler to c89 ++ setting C pre-processor to c89 -E ++ using "tr [a-z] [A-Z]" to uppercase ++ checking for system header files ++ adding selected modules ++ checking sizeof various data types +Creating Makefile in support +Creating Makefile in regex +Creating Makefile in os/tpf +Creating Makefile in ap +Creating Makefile in main +Creating Makefile in modules/standard +$ + </pre> + </td> + </tr> + </table> + + <p class="indented">Use the <tt>-file</tt> option if + you want to maintain multiple configurations:</p> + + <p class="indented"> + <b><tt>Configure -file Configuration.2nd</tt></b></p> + + <table class="indented"> + <tr> + <td class="output"> + <pre> +Using config file: Configuration.2nd +Creating Makefile ++ configured for TPF platform ++ setting C compiler to c89 +<em>et cetera</em> + </pre> + </td> + </tr> + </table> + + <p>If you receive an error such as "<tt>Configure 146: + FSUM7351 not found</tt>" the most likely explanation is + that one or more of the <tt>make</tt> related files + were edited on a non-UNIX platform, corrupting the + end-of-line marks. Verify that lines ending with "\" in + the flagged file do not have trailing spaces. Using the + vi editor and the sample error above as an + example...</p> + + <table class="indented"> + <tr> + <td>pull up the flagged file:</td> + + <td><tt><b>vi Configure</b></tt></td> + </tr> + + <tr> + <td>turn on punctuation:</td> + + <td><tt><b>:set list</b></tt></td> + </tr> + + <tr> + <td>go to the line in + question: </td> + + <td><tt><b>146G</b></tt></td> + </tr> + + <tr> + <td><em>or</em> find a line with a "\":</td> + + <td><tt><b>/\\</b></tt></td> + </tr> + + <tr> + <td></td> + + <td></td> + </tr> + </table> + + <p class="indented">The end of line should display as + "<tt>\$</tt>". If it is displayed as + "<tt>\ $</tt>" (with a blank between \ and $) then + you should revert to the distributed version of the + file and make the site-specific changes again using a + UNIX compatible editor such as vi or emacs. Then try + the Configure command again.</p> + + <table class="indented"> + <tr> + <td>close the + file: </td> + + <td><tt><b>:q</b> (<em>or</em> + <b>:quit!</b>)</tt></td> + </tr> + </table> + </li> + + <li> + <p>Edit src/os/tpf/os.h if you want to use the + <tt>sigaction()</tt> function.</p> + + <p>The <tt>sigaction()</tt> function supersedes the + <tt>signal()</tt> interface and should be used in + preference. This function was implemented with APAR + PJ26188 which shipped with PUT10.</p> + + <p>To use <tt>sigaction()</tt> remove <tt>#define + NO_USE_SIGACTION</tt> in os.h.</p> + + <p>The change will only take effect after Apache is + (re)compiled.</p> + </li> + + <li> + <p>Edit src/os/tpf/os.h if you do <em>not</em> want the + scoreboard kept in shared memory.</p> + + <p>The default behavior for Apache on all platforms + <em>except</em> TPF is to use the file system for + maintaining the scoreboard (which holds current Apache + children status). The default behavior for Apache on + TPF is to use shared memory. This reduces file activity + and improves performance.</p> + + <p>If you are on a pre-PUT10 system, or for some reason + you do not want to use shared memory for the + scoreboard, you must remove + "<tt>#define USE_SHMGET_SCOREBOARD</tt>" from + os.h</p> + + <p>The change will only take effect after Apache is + (re)compiled.</p> + </li> + + <li> + <p>Now compile the programs:</p> + + <p class="indented"><b><tt>make</tt></b></p> + + <p>Besides compiling, <tt>make</tt> also runs + src/main/gen_test_char.c and src/main/gen_uri_delims.c + in order to create src/main/test_char.h and + src/main/uri_delims.h respectively</p> + + <p>The following compilation warning may or may not + occur. It should be ignored:</p> + + <p class="indented"> + main/http_main.c: <tt>Infinite loop + detected in function child_main. Program may not + stop.</tt></p> + + <p>If during compilation you get a warning about a + missing 'regex.h', set <tt>WANTHSREGEX=yes</tt> in the + src/Configuration file and start back at the + <a href="#run-configure"><tt><b>Configure</b></tt></a> + step.</p> + + <p>If you get a + '<tt>Duplicate type specifier "long" ignored</tt>' + error, add "<tt>-W 0,langlvl(extended)</tt>" to + the <tt>_C89_OPTIONS</tt> export in + src/os/tpf/TPFExport and start back at the + <a href="#export"><tt><b>export</b></tt></a> step</p> + </li> + </ol><br /> + + + <center> + <h2><a id="installation" + name="installation"></a>Installation</h2> + </center> + + <p>The allocated <tt>CHTA</tt> program name is used throughout + these instructions to refer to Apache. You can use a different + program name if you wish.</p> + + <ol> + <li> + <p>Link the compiled object files into a DLL. Sample + link JCL has been included as + src/os/tpf/samples/linkhttp.jcl. You will need to + modify this JCL:</p> + + <ul> + <li>Change the IDs, data set names, and libraries + for your particular site.</li> + + <li>Add/remove <tt>mod_<i>xxx</i>.o</tt> files so + they correspond to the <tt>mod_<i>xxx</i>.o</tt> + lines in your src/Configuration file.</li> + </ul> + + <p> + <font color="#CC6600"><font size="+1">TIP:</font></font> + Do <em>not</em> include gen_test_char.o or + gen_uri_delims.o in the link JCL since these files are + only used during the <tt>make</tt> step.</p> + + <p>If you receive an "Unresolved references" error for + "<tt>XML_ErrorString</tt>" you probably need to + <a href="#delete-expat">remove the expat-lite + directory</a> and start back at the + "<a href="#run-configure">Run the Configure script" + step</a></p> + + <p>If you receive an "unable to open" error for + <tt>lib/expat-lite/hashtable.o</tt>" you probably need + to remove all of the expat-lite .o's from your link + JCL</p> + + <p> + <font color="#CC6600"><font size="+1">TIP:</font></font> + Apache uses cinet6 from CLTY, which is part of the + Internet Daemon (ZINET). Ensure that you link Apache + with the proper version of CLTY for your system. If you + apply changes to CLTY you should re-link Apache to + prevent the <code>inetd_getServer</code> and/or + <code>inetd_getServerStatus</code> functions from + failing.</p> + </li> + + <li> + <p>Create a loadset. Sample loadset JCL has been + included as src/os/tpf/samples/loadset.jcl. You will + need to modify this JCL for your particular site.</p> + + <p>A JCL condition code of 4 is expected since the C + load module will contain no link map data.</p> + + <p>If you require a link map refer to the + <a href="#linkmap">instructions below</a>.</p> + </li> + + <li> + <p>Load (<tt>ZOLDR LOAD</tt>) and activate (<tt>ZOLDR + ACT</tt>) the loadset on your test system.</p> + </li> + + <li> + <p>Ensure that the program name you are using for + Apache has <tt>RESTRICT</tt> and <tt>KEY0</tt> + authorization:</p> + + <p class="indented"><tt><b>zdpat chta</b> + (c-c)</tt></p> + + <p>If necessary you can use the <tt>zapat</tt> entry to + alter the authorization:</p> + + <p class="indented"><tt><b>zapat chta restrict key0</b> + (c-c)</tt></p> + + <p>Note that if the program name is unallocated, you + must have the loadset for it activated or you will + receive <tt>INVALID PROGRAM NAME</tt> from the + <tt>zdpat/zapat</tt> entries.</p> + </li> + + <li> + <p>General documentation for Apache is located at + <a href="http://httpd.apache.org/docs/">http://httpd.apache.org/docs/</a> + and in the HTML pages included with the distribution + (tarball) under the <tt>htdocs/manual</tt> + directory.</p> + </li> + + <li> + <p>Create the Apache run-time configuration file. The + server requires a configuration file to initialize + itself during activation.<br /> + Copy the distribution version, conf/httpd.conf-dist, + to conf/httpd.conf and then edit the conf/httpd.conf + copy with your site specific information.</p> + + <p>You must change every occurrence of + "<tt>@@ServerRoot@@</tt>" to your document server root + (for example "<tt>/usr/local/apache</tt>")</p> + + <p>You should also add the following line to the + httpd.conf file to prevent Apache from doing a host + name lookup on your test system:</p> + + <p class="indented"><tt>ServerName 127.0.0.1</tt></p> + </li> + + <li> + <p>On TPF activate your TCP/IP Offload (ZCLAW) or + Native Stack communications device.<br /> + Refer to the + <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM + TPF Product Information Center</a> for details.</p> + </li> + + <li> + <p>Using either TFTP or FTP, transfer the configuration + file, icons, and web pages to your TPF system. A + typical directory structure for Apache is as + follows:</p> + + <p class="indented"><tt>/usr/local/apache/conf<br /> + /usr/local/apache/logs<br /> + /usr/local/apache/icons<br /> + /usr/local/apache/htdocs<br /></tt></p> + + <p>At a minimum you will need these files on TPF:</p> + + <p class="indented"> + <tt>/usr/local/apache/conf/httpd.conf<br /> + /usr/local/apache/conf/mime.types<br /> + /usr/local/apache/htdocs/index.html.en<br /> + /usr/local/apache/htdocs/apache_pb.gif<br /></tt></p> + + <p>All gif, jpg, and zip files should be transferred as + binary; the configuration file and html pages should be + transferred as text.</p> + + <p>Refer to the + <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM + TPF Product Information Center</a> for details on TFTP + and FTP.</p> + </li> + + <li> + <p>The logs directory must exist and be accessible in + order to avoid an <tt>fopen</tt> error while running + Apache:</p> + + <p>If you're running a PUT10 or higher version of TPF + make the directory using a zfile commands:</p> + + <p class="indented"> + <b><tt>zfile mkdir /usr/local/apache/logs<br /> + + zfile chmod 777 /usr/local/apache/logs</tt></b></p> + + <p>If you're running TPF version PUT09 TFTP an empty + file into the logs subdirectory to create + it. <br /> + Then make sure Apache can write into the logs + subdirectory:</p> + + <p class="indented"><b><tt>zfile chmod 777 + /usr/local/apache/logs</tt></b></p> + </li> + + <li> + <p>Add Apache to the Internet Daemon's tables using + ZINET entries</p> + + <p>For PUT11 and later use the DAEMON model for + Apache:</p> + + <p class="indented"> + <tt><b>ZINET ADD S-APACHE PGM-chta MODEL-DAEMON USER-root</b></tt></p> + + <p>On pre-PUT11 systems use the NOLISTEN model + instead:</p> + + <p class="indented"> + <tt><b>ZINET ADD S-APACHE PGM-chta MODEL-NOLISTEN</b></tt></p> + + <p><font color="#CC6600" + size="4">TIP:</font> Logic changes implemented + with PUT11 cause ZINET to <i>not</i> restart + NOLISTEN servers after <tt>ZOLDR ACT</tt> + and <tt>ZOLDR DEACT</tt> entries. This means + that Apache running as NOLISTEN on a PUT11 or + later system will exit whenever any + <tt>ZOLDR ACT</tt> or + <tt>ZOLDR DEACT</tt> entry is made. + Therefore at PUT11 you should switch to the + DAEMON model and ensure that you have APARs + PJ25761 and PJ27363 applied.</p> + + <p>Refer to the + <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM + TPF Product Information Center</a> for details on the + Internet Daemon and ZINET commands.</p> + </li> + + <li> + <p>Start the server:</p> + + <p class="indented"> + <b><tt>zinet start s-apache</tt></b></p> + </li> + + <li> + <p>Verify Apache was successfully started:</p> + + <p class="indented"><b><tt>zfile cat + /usr/local/apache/logs/error_log</tt></b></p> + + <table class="indented"> + <tr> + <td class="output"> + <pre> +[<i>timestamp</i>] [notice] Apache/1.3.<i>vv</i> (TPF) configured -- resuming normal operations +[<i>timestamp</i>] [notice] Accept mutex: tpfcore (Default: tpfcore) + </pre> + </td> + </tr> + </table> + + <p>If there are severe errors correct the conf file and + restart the server:</p> + + <p class="indented"> + <b><tt>zinet stop s-apache</tt></b><br /> + correct the httpd.conf file and transfer it to + TPF<br /> + <b><tt>zfile rm /usr/local/apache/logs/error_log</tt></b><br /> + + <b><tt>zinet start s-apache</tt></b></p> + </li> + + <li> + <p>Request a page from your browser:</p> + + <p class="indented"> + <tt><b>http://<i>xx.xx.xx.xx</i></b></tt> (where + <i>xx.xx.xx.xx</i> is your test system IP address)</p> + </li> + </ol><br /> + + + <center> + <h2><a id="linkmap" + name="linkmap"></a>Generating an Apache Link Map</h2> + </center> + + <p>Three different tools can be used to generate a link map for + Apache: TPF Build Tools, TPF Toolkit, and VisualAge TPF.</p> + + <h3>TPF Build Tools on OS/390 UNIX</h3> + + <ol> + <li>Download and install the + <a href="http://www.ibm.com/software/htp/tpf/download/bldtools.htm" + >TPF Build Tools</a> if you have not already done so.</li> + + <li>Follow the instructions to set up any necessary + variables for your installation.</li> + + <li> + Create a shell script in your Apache <code>src</code> + directory: + + <table class="indented"> + <tr> + <td class="output"> + <pre> +ld -M --dlm -O'<your-dsd-dsn>(CHTA<vv>)' \ +CSTRTD40 \ +CINET640 \ +buildmark.o \ +modules.o \ +ap/ap_base64.o \ + . + . + . +regex/regexec.o \ +regex/regfree.o + </pre> + </td> + </tr> + </table>In your script... + + <ul> + <li>Each line must end with a backwards slash (\) + except for the last line. Be sure there are no + trailing blanks after the backward slashes.</li> + + <li>Replace the two items in angle brackets (< + >) with your dataset name and program + version.</li> + + <li>Add any additional libraries prior to the first + ".o" line.</li> + + <li>Add a line for each .o to be linked into your + configuration of Apache.</li> + </ul><br /> + </li> + + <li>Change the shell script's permission settings to + executable using the <code>chmod</code> command.</li> + + <li>Run the script.</li> + </ol> + + <h3>TPF Toolkit</h3> + + <ol> + <li>Copy the sample <tt>linkhttp.dlm</tt> file from the + <tt>src/os/tpf/samples</tt> directory to your Apache + <tt>src</tt> directory on OS/390 UNIX.</li> + + <li>This sample file contains the components for the + default configuration of Apache. Add and delete components + (such as modules) as necessary so it matches your + configuration of Apache. Basically, it should match your + link JCL with the "<tt>.../apache/src</tt>" portion of the + filenames removed.</li> + + <li>Change items in angle brackets (< >) to also + match your JCL. Be sure to remove the angle brackets as + well.</li> + + <li>In the TPF Toolkit create a project with your modified + dlm file as its sole contents.</li> + + <li>Right click on the dlm file in your new project and + choose "Build DLM".</li> + </ol> + + <h3>VisualAge TPF</h3> + + <ol> + <li>Copy the sample <tt>linkhttp.dlm</tt> file from the + <tt>src/os/tpf/samples</tt> directory to your Apache + <tt>src</tt> directory on OS/390 UNIX.</li> + + <li>This sample file contains the components for the + default configuration of Apache. Add and delete components + (such as modules) as necessary so it matches your + configuration of Apache. Basically, it should match your + link JCL with the "<tt>.../apache/src</tt>" portion of the + filenames removed.</li> + + <li>Change items in angle brackets (< >) to also + match your JCL. Be sure to remove the angle brackets as + well.</li> + + <li>In VisualAge TPF create a container with your modified + dlm file as its sole contents.</li> + + <li>Right click on the dlm file in your new container and + choose "Build DLM".</li> + </ol> + <hr /> + + <center> + [ <a href="#top">top</a> | <a href="#download">Download</a> + | <a href="#compilation">Compilation</a> | + <a href="#installation">Installation</a> | + <a href="#linkmap">Link Map</a> ] + </center> +</body> +</html> diff --git a/htdocs/manual/install-ztpf.html b/htdocs/manual/install-ztpf.html new file mode 100644 index 0000000000..85e80ed942 --- /dev/null +++ b/htdocs/manual/install-ztpf.html @@ -0,0 +1,555 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta http-equiv="Content-Type" + content="text/html; charset=us-ascii" /> + + <title>Installing Apache on z/TPF</title> + <style type="text/css"> + /*<![CDATA[*/ + <!-- + .indented { margin-left: 25pt; } + .output { padding-left: 20px; padding-right: 20px; background-color: #dadada; } + --> + /*]]>*/ + </style> +</head> + +<body> + <center> + <h2><a id="top" + name="top"></a>Installing the Apache 1.3 HTTP Server on + z/TPF</h2> + <hr /> + [ <a href="#download">Download</a> | + <a href="#setup">MakeTPF Setup</a> | + <a href="#compilation">Compilation</a> | + <a href="#installation">Installation</a> ] + <hr /> + </center> + + <p>This document outlines the steps needed to install Apache + onto an IBM z/TPF Enterprise Edition V1 R1 system. (There are + separate <a href="install-tpf.html">installation instructions + for TPF4.1</a>.)</p> + + <p>You should first review + <a href="readme-tpf.html">readme-tpf.html</a> for basic + information on the port of Apache to TPF including a list of + supported modules.</p> + + <p>The allocated <tt>CHTA</tt> program name is used throughout + these instructions to refer to Apache. You can use a different + program name if you wish.<br /> + Likewise the directory structure + <tt>opensource/apache/src</tt> is used for the Apache source + code directory. You can use different directories than + <tt>opensource/apache</tt> if you wish.</p> + + <p>If you change the program or directory names be sure to + change the entries shown in these instructions, all + MakeTPF-related files, and the sample files + accordingly.</p><br /> + + + <center> + <h2><a id="download" + name="download"></a>Download</h2> + </center> + + <p>Releases of the Apache server are compressed into a + "tarball" file which must be downloaded to your PC. + Additionally the source code from the tarball will need to be + copied onto your Linux build system for compiling. Here are all + the details on how to get Apache and how to get it where it + needs to be:</p> + + <ol> + <li> + <p>Download the compressed Apache files (the "tarball") + to your PC. The file name on the web site will be + <tt>apache_1.3.<i>vv</i>.tar.Z</tt>.</p> + + <p> + <font color="#CC6600"><font size="+1">TIP:</font></font> + Be sure to keep the <tt>.tar.Z</tt> extension when + saving the file.</p> + </li> + + <li> + <p>Decompress the tarball on your PC using WinZip or + some other PC decompression tool.</p> + + <p> + <font color="#CC6600"><font size="+1">TIP:</font></font> + If you are using WinZip verify that the <i>"TAR File + Smart CR/LF Conversion"</i> option (under Options, + Configuration) is <em>not</em> checked.</p> + + <p>This is what you can expect if you use WinZip:</p> + + <ul> + <li>open the tarball with WinZip (this can usually + be done simply by double-clicking on the downloaded + tarball)</li> + + <li>you will be told that the archive contains one + file (apache_1.3.<i>vv</i>.tar) - allow WinZip to + decompress it to a temporary folder</li> + + <li>extract the archived files onto your PC - + you'll be using files from the <tt>conf, + htdocs,</tt> and <tt>icons</tt> directories later + in the install phase<br /> + <br /></li> + </ul> + </li> + + <li> + <p>FTP the tarball to your Linux build machine using + binary mode:</p> + + <ul> + <li>activate FTP in an MSDOS window:<br /> + <b><tt> ftp <i>your.linux.build.machine.com</i></tt></b> </li> + + <li>sign in </li> + + <li>set mode to + binary: <b><tt>binary</tt></b> </li> + + <li>send the file to your Linux build + machine:<br /> + <b><tt> send "c:/<i>path</i>/apache_1.3. + <i>vv</i>.tar.Z" apache_1.3.<i>vv</i>.tar.Z</tt></b></li> + + <li>exit FTP: <b><tt>bye</tt></b></li> + </ul> + + <p> + <font color="#CC6600"><font size="+1">TIP:</font></font> + Linux file names are case sensitive.</p> + </li> + + <li> + <p>Decompress and extract the archived files necessary + for compiling Apache:</p> + + <p class="indented"><b><tt>tar -xzkf + apache_1.3.<i>vv</i>.tar.Z "*/src"</tt></b></p> + + <p>Note that the following "<tt>src</tt>" + subdirectories are not used for Apache on z/TPF and may + be removed if desired:</p> + + <p class="indented"><tt>lib/expat-lite</tt>, + <tt>lib/sdbm</tt>, <tt>regex</tt>, and all <tt>os</tt> + subdirectories except for <tt>os/tpf</tt>.</p> + </li> + + <li> + <p>Create header files that are automatically generated + for other platforms but are not for z/TPF:</p> + + <p class="indented"><b><tt>cp + apache_1.3.<i>vv</i>/src/os/tpf/samples/test_char.txt apache_1.3.<i> + vv</i>/src/main/test_char.h<br /> + cp + apache_1.3.<i>vv</i>/src/os/tpf/samples/uri_delims.txt + apache_1.3.<i>vv</i>/src/main/uri_delims.h</tt></b></p> + </li> + </ol><br /> + + + <center> + <h2><a id="setup" + name="setup"></a>MakeTPF Setup</h2> + </center> + + <ol> + <li> + <p>Move the source code into your desired directory + structure for MakeTPF with the following entries.<br /> + Replace "<tt>foobar</tt>" below with your actual + directory name:</p> + + <p class="indented"><b><tt>mkdir -p + foobar/opensource<br /> + export AROOT="foobar/opensource/apache"<br /> + mv apache_1.3.<i>vv</i> $AROOT<br /></tt></b></p> + </li> + + <li> + <p>CHTA is already in the <tt>tpf_app_base.cntl</tt> + control file. Adjust any settings if necessary.</p> + </li> + + <li> + <p>Create an environment file for Apache named + <tt>maketpf.env_apache</tt> using + <tt>$AROOT/src/os/tpf/samples/sample_env.txt</tt> as a + guide.<br /> + Place <tt>maketpf.env_apache</tt> in the same + directory as your other environment files.</p> + </li> + + <li> + <p>Create a .mak file for Apache named + <tt>$AROOT/src/chta.mak</tt> using + <tt>$AROOT/src/os/tpf/samples/sample_mak.txt</tt> as a + guide<br /> + Verify that the <tt>maketpf_env</tt> assignments in + <tt>chta.mak</tt> are correct for your build + environment.</p> + </li> + + <li> + <p>Create a configuration file named + <tt>$AROOT/src/maketpf.cfg</tt>.<br /> + Ensure that the first assignment of <tt>TPF_ROOT</tt> + in <tt>maketpf.cfg</tt> is the absolute path to your + "<tt>foobar</tt>" directory.</p> + </li> + + <li> + <p>Later if you want to include Apache in your full + build add <tt>APACHE=YES</tt> to the <tt>CONFIG</tt> + macro in your Stage 1 deck.</p> + </li> + </ol><br /> + + + <center> + <h2><a id="compilation" + name="compilation"></a>Compilation</h2> + </center> + + <ol> + <li> + <p>Switch to the Apache source code subdirectory:</p> + + <p class="indented"><b><tt>cd $AROOT/src</tt></b></p> + </li> + + <li> + <p>Overlay src/Configuration with + src/Configuration.tmpl:</p> + + <p class="indented"> + <b><tt>cp Configuration.tmpl Configuration</tt></b></p> + </li> + + <li> + <p>The src/Configuration file controls which optional + modules are compiled into Apache.<br /> + Leave the file as-is if you want to use the default + set of modules.<br /> + Otherwise edit the src/Configuration file to customize + which modules are used:</p> + + <ul> + <li>Comment out (by preceding the line with a "#") + lines corresponding to those modules you do + <em>not</em> wish to include.</li> + + <li>Uncomment (by removing the initial "#", if + present) lines corresponding to those modules you + wish to include.<br /> + (The <a href="readme-tpf.html">readme-tpf.html</a> + document lists the modules that have been tested on + TPF).</li> + + <li>Add lines for any custom or third party modules + you wish to include.<br /> + The modules placed in the Apache distribution are + the ones that have been tested and are used + regularly by various members of the Apache + development group. Additional modules contributed + by members or third parties with specific needs or + functions are available at + <a href="http://modules.apache.org/">http://modules.apache.org/</a>. + There are instructions on that page for linking + these modules into the core Apache code.<br /> + </li> + </ul> + </li> + + <li> + <p>If you would like to use the TCP/IP network services + database add "<tt>CFLAGS_CHTA += -DTPF_HAVE_NSD</tt>" + to either <tt>src/chta.mak</tt> or + <tt>src/maketpf.cfg</tt>. See "Network Services + Database Support" in the + <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM + TPF Product Information Center</a> for details.</p> + </li> + + <li> + <p><a id="run-configure" + name="run-configure"></a>Run the "Configure" + script:</p> + + <p class="indented"><b><tt>export TPF=YES; export + TPF64BIT=YES<br /> + Configure</tt></b></p> + + <table class="indented"> + <tr> + <td class="output"> + <pre> +Using config file: Configuration +Creating Makefile ++ configured for TPF platform ++ setting C compiler to c89 ++ setting C pre-processor to /usr/bin/cpp ++ using "tr [a-z] [A-Z]" to uppercase ++ checking for system header files ++ adding selected modules ++ checking sizeof various data types +Creating Makefile in support +Creating Makefile in os/tpf +Creating Makefile in ap +Creating Makefile in main +Creating Makefile in modules/standard +$ + </pre> + </td> + </tr> + </table> + + <p>This generates modules.c and the apache.modules text + file for use later by MakeTPF.<br /> + (Other files created by <tt>Configure</tt> are + <em>not</em> used on z/TPF such as + include/ap_config_auto.h and the various Makefiles, so + don't be concerned that the C compiler and + pre-processor shown in the <tt>Configure</tt> output + are incorrect.)</p> + + <p class="indented">Use the <tt>-file</tt> option if + you want to maintain multiple configurations:</p> + + <p class="indented"> + <b><tt>Configure -file Configuration.2nd</tt></b></p> + + <table class="indented"> + <tr> + <td class="output"> + <pre> +Using config file: Configuration.2nd +Creating Makefile ++ configured for TPF platform ++ setting C compiler to c89 +<em>et cetera</em> + </pre> + </td> + </tr> + </table> + </li> + + <li> + <p>Edit src/os/tpf/os.h if you do <em>not</em> want the + scoreboard kept in shared memory.</p> + + <p>The default behavior for Apache on all platforms + <em>except</em> TPF is to use the file system for + maintaining the scoreboard (which holds current Apache + children status). The default behavior for Apache on + TPF is to use shared memory. This reduces file activity + and improves performance.</p> + + <p>If for some reason you do not want to use shared + memory for the scoreboard, you must remove + "<tt>#define USE_SHMGET_SCOREBOARD</tt>" from the + <tt>os.h</tt>. The change will only take effect after + Apache is (re)compiled.</p> + </li> + + <li> + <p>Compile and link Apache:</p> + + <p class="indented"><b><tt>maketpf chta -f</tt></b></p> + + <p> + <font color="#CC6600"><font size="+1">TIP:</font></font> + Apache uses cinet6 from CLTY, which is part of the + Internet Daemon (ZINET). Ensure that you link Apache + with the proper version of CLTY for your system. If you + apply changes to CLTY you should re-link Apache to + prevent the <code>inetd_getServer</code> and/or + <code>inetd_getServerStatus</code> functions from + failing.</p> + </li> + </ol><br /> + + + <center> + <h2><a id="installation" + name="installation">Installation</a></h2> + </center> + + <ol> + <li> + <p>Load and activate Apache on your test system.</p> + </li> + + <li> + <p>Ensure that the program name you are using for + Apache has <tt>RESTRICT</tt> and <tt>KEY0</tt> + authorization:</p> + + <p class="indented"><tt><b>zdpat chta</b></tt></p> + + <p>If necessary you can use the <tt>zapat</tt> entry to + alter the authorization:</p> + + <p class="indented"><tt><b>zapat chta restrict + key0</b></tt></p> + </li> + + <li> + <p>General documentation for Apache is located at + <a href="http://httpd.apache.org/docs/">http://httpd.apache.org/docs/</a> + and in the HTML pages included with the distribution + (tarball) under the <tt>htdocs/manual</tt> + directory.</p> + </li> + + <li> + <p>Create the Apache run-time configuration file. The + server requires a configuration file to initialize + itself during activation.<br /> + Copy the distribution version, conf/httpd.conf-dist, + to conf/httpd.conf and then edit the conf/httpd.conf + copy with your site specific information.</p> + + <p>You must change every occurrence of + "<tt>@@ServerRoot@@</tt>" to your document server root + (for example "<tt>/usr/local/apache</tt>")</p> + + <p>You should also add the following line to the + httpd.conf file to prevent Apache from doing a host + name lookup on your test system:</p> + + <p class="indented"><tt>ServerName 127.0.0.1</tt></p> + </li> + + <li> + <p>Be sure your Native Stack communications device is + active on TPF.<br /> + Refer to the + <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM + TPF Product Information Center</a> for details.</p> + </li> + + <li> + <p>Using either TFTP or FTP, transfer the configuration + file, icons, and web pages to your TPF system. A + typical directory structure for Apache is as + follows:</p> + + <p class="indented"><tt>/usr/local/apache/conf<br /> + /usr/local/apache/logs<br /> + /usr/local/apache/icons<br /> + /usr/local/apache/htdocs<br /></tt></p> + + <p>At a minimum you will need these files on TPF:</p> + + <p class="indented"> + <tt>/usr/local/apache/conf/httpd.conf<br /> + /usr/local/apache/conf/mime.types<br /> + /usr/local/apache/htdocs/index.html.en<br /> + /usr/local/apache/htdocs/apache_pb.gif<br /></tt></p> + + <p>All gif, jpg, and zip files should be transferred as + binary; the configuration file and html pages should be + transferred as text.</p> + + <p>Refer to the + <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM + TPF Product Information Center</a> for details on TFTP + and FTP.</p> + </li> + + <li> + <p>The logs directory must exist and be accessible in + order to avoid an <tt>fopen</tt> error while running + Apache:</p> + + <p class="indented"><b><tt>zfile mkdir + /usr/local/apache/logs<br /> + zfile chmod 777 + /usr/local/apache/logs<br /></tt></b></p> + </li> + + <li> + <p>Add Apache to the Internet Daemon's tables using + ZINET entries:</p> + + <p class="indented"> + <tt><b>zinet add s-apache pgm-chta model-daemon user-root</b></tt></p> + + <p>Refer to the + <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM + TPF Product Information Center</a> for details on the + Internet Daemon and ZINET commands.</p> + </li> + + <li> + <p>Start the server:</p> + + <p class="indented"> + <b><tt>zinet start s-apache</tt></b></p> + </li> + + <li> + <p>Verify Apache was successfully started:</p> + + <p class="indented"><b><tt>zfile cat + /usr/local/apache/logs/error_log</tt></b></p> + + <p>The output should be similar to this:</p> + + <table class="indented"> + <tr> + <td class="output"> + <pre> +[<i>timestamp</i>] [notice] Apache/1.3.<i>vv</i> (TPF) configured -- resuming normal operations +[<i>timestamp</i>] [notice] Accept mutex: tpfcore (Default: tpfcore) + </pre> + </td> + </tr> + </table> + + <p>If there are severe errors correct the conf file and + restart the server:</p> + + <p class="indented"> + <b><tt>zinet stop s-apache</tt></b><br /> + correct the httpd.conf file and transfer it to + TPF<br /> + <b><tt>zfile rm /usr/local/apache/logs/error_log</tt></b><br /> + + <b><tt>zinet start s-apache</tt></b></p> + </li> + + <li> + <p>Request a page from your browser:</p> + + <p class="indented"> + <tt><b>http://<i>xx.xx.xx.xx</i></b></tt> (where + <i>xx.xx.xx.xx</i> is your test system IP address)</p> + </li> + </ol> + <hr /> + + <center> + [ <a href="#top">top</a> | <a href="#download">Download</a> + [ <a href="#setup">MakeTPF Setup</a> | + <a href="#compilation">Compilation</a> | + <a href="#installation">Installation</a> ] + </center> +</body> +</html> diff --git a/htdocs/manual/install.html.en b/htdocs/manual/install.html.en new file mode 100644 index 0000000000..d0c885c46a --- /dev/null +++ b/htdocs/manual/install.html.en @@ -0,0 +1,415 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Compiling and Installing Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#000080" + alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Compiling and Installing Apache 1.3</h1> + + <ul> + <li><a href="#download">Downloading Apache</a></li> + <li><a href="#intro">Introduction</a></li> + <li><a href="#apaci">Installing the Apache 1.3 HTTP server with APACI</a></li> + <ul> + <li><a href="#requirements">System requirements</a></li> + <li><a href="#configure">Configuring the source tree</a></li> + <li><a href="#build">Building the package</a></li> + <li><a href="#installing">Installing the package</a></li> + </ul> + <li><a href="#traditional">Building and installing the traditional way</a></li> + <ul> + <li><a href="#trad_configure">Configuring the installation</a></li> + <li><a href="#trad_compile">Compiling Apache</a></li> + <li><a href="#trad_install">Installing Apache</a></li> + </ul> + <li><a href="#testing">Testing the package</a></li> + <li><a href="#time">Set your system time correctly</a></li> + </ul> + + <p>This document covers compilation and installation of Apache on Unix + systems. For compiling and installation on other platforms, see</p> + + <ul> + <li><a href="windows.html">Using Apache with Microsoft Windows</a></li> + <li><a href="cygwin.html">Using Apache with Cygwin</a></li> + <li><a href="netware.html">Using Apache with Novell Netware</a></li> + <li><a href="mpeix.html">Using Apache with HP MPE/iX</a></li> + <li><a href="unixware.html">Compiling Apache under UnixWare</a></li> + <li><a href="readme-tpf.html">Overview of the Apache TPF Port</a></li> + </ul> + + <h2><a id="download" name="download">Downloading Apache</a></h2> + + <p>You may download the latest version of Apache either directly from the + <a href="http://httpd.apache.org/download.cgi">Download Page</a>.</p> + + <h2><a id="intro" name="intro">Introduction</a></h2> + + <p>Like all good things, there are two ways to configure, compile, and + install Apache. You can go for the 3-minute installation process using + the APACI process described below; or, you can opt for the same mechanism + used in previous versions of Apache, as described in the file + 'src/INSTALL'. Each mechanism has its benefits and drawbacks - APACI is + newer and a little more raw, but it gets you up and running the least + amount of time, whereas the "Configuration.tmpl" mechanism may be more + familiar and give you some more flexibility to the power user. We'd be + very interested in your comments and feedback regarding each + approach.</p> + + <h2><a id="apaci" name="apaci">Installing the Apache 1.3 HTTP server with + APACI</a></h2> + + <h3>Overview for the impatient</h3> +<pre> + $ ./configure --prefix=PREFIX + $ make + $ make install + $ PREFIX/bin/apachectl start +</pre> + + <p><b>NOTE:</b> <code>PREFIX</code> is not the string "PREFIX". Instead + use the Unix filesystem path under which Apache should be installed. For + instance use "<code>/usr/local/apache</code>" for PREFIX above.</p> + + <h3><a id="requirements" name="requirements">Requirements</a></h3> + + <p>The following requirements exist for building Apache:</p> + + <dl> + <dt><b>Disk Space:</b></dt> + + <dd>Make sure you have approximately 12 MB of temporary free disk space + available. After installation Apache occupies approximately 3 MB of + disk space (the actual required disk space depends on the amount of + compiled in third party modules, etc).</dd> + + <dt><b>ANSI-C Compiler:</b></dt> + + <dd>Make sure you have an ANSI-C compiler installed. The GNU C compiler + (GCC) from the Free Software Foundation (FSF) is recommended (version + 2.7.2 is fine). If you don't have GCC then at least make sure your + vendors compiler is ANSI compliant. You can find the homepage of GNU at + http://www.gnu.org/ and the GCC distribution under + http://www.gnu.org/order/ftp.html .</dd> + + <dt><b>Perl 5 Interpreter [OPTIONAL]:</b></dt> + + <dd>For some of the support scripts like `apxs' or `dbmmanage' (which + are written in Perl) the Perl 5 interpreter is required (versions 5.003 + and 5.004 are fine). If no such interpreter is found by APACI's + `configure' script this is no harm. Of course, you still can build and + install Apache 1.3. Only those support scripts cannot be used. If you + have multiple Perl interpreters installed (perhaps a Perl 4 from the + vendor and a Perl 5 from your own), then it is recommended to use the + --with-perl option (see below) to make sure the correct one is selected + by APACI.</dd> + + <dt><b>Dynamic Shared Object (DSO) support [OPTIONAL]:</b></dt> + + <dd> + <p>To provide maximum flexibility Apache now is able to load modules + under runtime via the DSO mechanism by using the pragmatic + dlopen()/dlsym() system calls. These system calls are not available + under all operating systems therefore you cannot use the DSO + mechanism on all platforms. And Apache currently has only limited + built-in knowledge on how to compile shared objects because this is + heavily platform-dependent. The current state is this:</p> + + <ul> + <li> + Out-of-the-box supported platforms are: + + <p> + <table border="0"> + <tr> + <td>Linux</td> + <td>SunOS</td> + <td>UnixWare</td> + <td>Darwin/Mac OS</td> + </tr> + <tr> + <td>FreeBSD</td> + <td>Solaris</td> + <td>AIX</td> + <td>OpenStep/Mach</td> + </tr> + <tr> + <td>OpenBSD</td> + <td>IRIX</td> + <td>SCO</td> + <td>DYNIX/ptx</td> + </tr> + <tr> + <td>NetBSD</td> + <td>HPUX</td> + <td>ReliantUNIX</td> + <td>BSDI</td> + </tr> + <tr> + <td>Digital Unix</td> + <td>DGUX</td> + </tr> + </table> + </p> + </li> + + <li> + Entirely unsupported platforms are: + + <p>Ultrix</p> + </li> + </ul> + + <p>If your system is not on these lists but has the dlopen-style + interface, you either have to provide the appropriate compiler and + linker flags (see CFLAGS_SHLIB, LDFLAGS_SHLIB and + LDFLAGS_SHLIB_EXPORT below) manually or at least make sure a Perl 5 + interpreter is installed from which Apache can guess the options.</p> + + <p>For more in-depth information about DSO support in Apache 1.3 + please read the document htdocs/manual/dso.html carefully. Especially + the section entitled "Advantages & Disadvantages" because using + the DSO mechanism can have strange side-effects if you are not + careful. BE WARNED!</p> + </dd> + </dl> + + <h3><a name="configure">Configuring the source tree</a></h3> + + <p>The next step is to configure the Apache source tree for your + particular platform and personal requirements. The most important setup + here is the location prefix where Apache is to be installed later, + because Apache has to be configured for this location to work correctly. + But there are a lot of other options available for your pleasure.</p> + + <p>For a short impression of what possibilities you have, here is a + typical example which compiles Apache for the installation tree + /sw/pkg/apache with a particular compiler and flags plus the two + additional modules mod_rewrite and mod_proxy for later loading through + the DSO mechanism:</p> +<pre> + $ CC="pgcc" OPTIM="-O2" \ + ./configure --prefix=/usr/local/apache \ + --enable-module=rewrite --enable-shared=rewrite \ + --enable-module=proxy --enable-shared=proxy +</pre> + + <p>For a complete list of the available options, type the following + command:</p> + <p><code>./configure --help</code></p> + + <p>See also the file <code>README.configure</code> for listings of + example configurations.</p> + + <h3><a name="build">Building the package</a></h3> + + <p>Now you can build the various parts which form the Apache package by + simply running the command</p> +<pre> + $ make +</pre> + + <p>Please be patient here, this takes approximately 2 minutes to complete + under a Pentium-166/FreeBSD-2.2 system, dependent on the amount of + modules you have enabled.</p> + + <h3><a name="installing">Installing the package</a></h3> + + <p>Now its time to install the package under the configured installation + <code>PREFIX</code> (see the <code>--prefix</code> option above):</p> +<pre> + $ make install +</pre> + + <p>In the following examples, <code>PREFIX</code> is not the literal string + "PREFIX", but whatever argument you provided to + the<code>--prefix</code> option.</p> + +<!-- Building and installing Apache in the traditional way --> + + <h2><a name="traditional">Building and installing Apache in the traditional way</a></h2> + + Before the advent of APACI, there was just one way to build and + install Apache. While APACI gave a configuration interface which is + more familiar to some people, the older method gives a way to + configure the installation without typing a large number of + command-line options. + + <h3><a name="trad_configure">Configuring the installation</a></h3> + + Compiling Apache consists of three steps: First select which + Apache <strong>modules</strong> you want to include into the + server. Second create a configuration for your operating + system. Third compile the executable. + + <p>All configuration of Apache is performed in the + <code>src</code> directory of the Apache distribution. Change + into this directory.</p> + + <ol> + <li> + Select modules to compile into Apache in the <code>Configuration</code> + file <code>src/Configuration.tmpl</code>. Uncomment lines + corresponding to those optional modules you wish to include + (among the AddModule lines at the bottom of the file), or + add new lines corresponding to additional modules you have + downloaded or written. (See <a + href="misc/API.html">API.html</a> for preliminary docs on + how to write Apache modules). Advanced users can comment + out some of the default modules if they are sure they will + not need them (be careful though, since many of the default + modules are vital for the correct operation and security of + the server). + + <p>You should also read the instructions in the + <code>Configuration</code> file to see if you need to set + any of the <code>Rule</code> lines.</p> + </li> + + <li> + Configure Apache for your operating system. Normally you + can just run the <code>Configure</code> script as given + below. However if this fails or you have any special + requirements (<em>e.g.</em>, to include an additional + library required by an optional module) you might need to + edit one or more of the following options in the + <code>Configuration</code> file: <code>EXTRA_CFLAGS, LIBS, + LDFLAGS, INCLUDES</code>. + + <p>Run the <code>Configure</code> script:</p> + + <blockquote> +<pre> + % Configure + Using 'Configuration' as config file + + configured for <whatever> platform + + setting C compiler to <whatever> * + + setting C compiler optimization-level to <whatever> * + + Adding selected modules + + doing sanity check on compiler and options + Creating Makefile in support + Creating Makefile in main + Creating Makefile in os/unix + Creating Makefile in modules/standard + +</pre> + </blockquote> + (*: Depending on Configuration and your system, Configure + might not print these lines. That's OK). + + <p>This generates a Makefile for use in stage 3. It also + creates a Makefile in the support directory, for + compilation of the optional support programs.</p> + + <p>(If you want to maintain multiple configurations, you + can give an option to <code>Configure</code> to tell it to + read an alternative Configuration file, such as + <code>Configure -file Configuration.ai</code>).</p> + </li> + +<h3><a name="trad_compile">Compiling Apache</a></h3> + + <li>Type <code>make</code>.</li> + </ol> + The modules we place in the Apache distribution are the ones we + have tested and are used regularly by various members of the + Apache development group. Additional modules contributed by + members or third parties with specific needs or functions are + available at <<a + href="http://www.apache.org/dist/httpd/contrib/modules/">http://www.apache.org/dist/httpd/contrib/modules/</a>>. + There are instructions on that page for linking these modules + into the core Apache code. + + <h3><a name="trad_install">Installing Apache</a></h3> + You will have a binary file called <code>httpd</code> in the + <code>src</code> directory. A binary distribution of Apache + will supply this file. + + <p>The next step is to install the program and configure it. + Apache is designed to be configured and run from the same set + of directories where it is compiled. If you want to run it from + somewhere else, make a directory and copy the + <code>conf</code>, <code>logs</code> and <code>icons</code> + directories into it. In either case you should read the <a + href="misc/security_tips.html#serverroot">security tips</a> + describing how to set the permissions on the server root + directory.</p> + + <p>The next step is to edit the configuration files for the + server. This consists of setting up various + <strong>directives</strong> in up to three central + configuration files. By default, these files are located in the + <code>conf</code> directory and are called + <code>srm.conf</code>, <code>access.conf</code> and + <code>httpd.conf</code>. To help you get started there are same + files in the <code>conf</code> directory of the distribution, + called <code>srm.conf-dist</code>, + <code>access.conf-dist</code> and <code>httpd.conf-dist</code>. + Copy or rename these files to the names without the + <code>-dist</code>. Then edit each of the files. Read the + comments in each file carefully. Failure to setup these files + correctly could lead to your server not working or being + insecure. You should also have an additional file in the + <code>conf</code> directory called <code>mime.types</code>. + This file usually does not need editing.</p> + + <p>First edit <code>httpd.conf</code>. This sets up general + attributes about the server: the port number, the user it runs + as, <em>etc.</em> Next edit the <code>srm.conf</code> file; + this sets up the root of the document tree, special functions + like server-parsed HTML or internal imagemap parsing, + <em>etc.</em> Finally, edit the <code>access.conf</code> file + to at least set the base cases of access.</p> + + <p>In addition to these three files, the server behavior can be + configured on a directory-by-directory basis by using + <code>.htaccess</code> files in directories accessed by the + server.</p> + + <h3>Compiling Support Programs</h3> + In addition to the main <code>httpd</code> server which is + compiled and configured as above, Apache includes a number of + support programs. These are not compiled by default. The + support programs are in the <code>support</code> directory of + the distribution. To compile the support programs, change into + this directory and type +<pre> + make +</pre> + + <h2><a name="testing">Testing the package</a></h2> + + <p>Now you can fire up your Apache HTTP server by immediately running</p> +<pre> + $ PREFIX/bin/apachectl start +</pre> + + <p>and then you should be able to request your first document via URL + http://localhost/ (when you built and installed Apache as root or at + least used the --without-confadjust option) or http://localhost:8080/ + (when you built and installed Apache as a regular user). Then stop the + server again by running:</p> +<pre> + $ PREFIX/bin/apachectl stop +</pre> + + <h2><a name="time">Set your system time properly!</a></h2> + Proper operation of a public web server requires accurate time + keeping, since elements of the HTTP protocol are expressed as + the time of day. So, it's time to investigate setting up NTP or + some other time synchronization system on your Unix box, or + the <code>net time</code> command on NT. + + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/install.html.es b/htdocs/manual/install.html.es new file mode 100644 index 0000000000..213b617617 --- /dev/null +++ b/htdocs/manual/install.html.es @@ -0,0 +1,233 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- translation 1.31 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Compilación e Instalación de + Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Compilación e Instalación de + Apache 1.3</h1> + + <p>Este documento cubre la compilación e + instalación de Apache en sistemas Unix, usando el + método manual de construcción e + instalación. Si desea usar la interfaz estilo autoconf, + deberá leer el fichero <code>INSTALL</code> en el + directorio raíz de la distribución fuente de + Apache. Para la compilación e instalación en + plataformas específicas, consulte</p> + + <ul> + <li><a href="windows.html">Usar Apache con Microsoft + Windows</a></li> + + <li><a href="cygwin.html">Usar Apache con Cygwin</a></li> + + <li><a href="netware.html">Usar Apache con Novell Netware + 5</a></li> + + <li><a href="mpeix.html">Usar Apache con HP MPE/iX</a></li> + + <li><a href="unixware.html">Compilación de Apache bajo + UnixWare</a></li> + + <li><a href="readme-tpf.html">Vistazo general de la + versión TPF de Apache</a></li> + </ul> + + <h2>Bajarse Apache</h2> + + <p>La información de la última versión de + Apache puede encontrarla en <a + href="http://www.apache.org/">http://www.apache.org/</a>. En + esta web podrá encontrar las versiones finales, + versiones beta e información de sitios y réplicas + en la web y por ftp anónimo.</p> + + <p>Si se ha bajado la distribución binaria, vaya a <a + href="#installing">Instalación de Apache</a>. Si no es + así lea la siguiente sección como compilar el + servidor.</p> + + <h2>Compilación de Apache</h2> + + <p>La compilación de Apache consiste en tres pasos. + Primero seleccionar qué <strong>módulos</strong> + de Apache quiere incluir en el servidor. Segundo crear una + configuración para su sistema operativo. Tercero + compilar el ejecutable.</p> + + <p>Toda la configuración de Apache está en el + directorio <code>src</code> de la distribución. Vaya al + directorio <code>src</code>.</p> + + <ol> + <li> + <p>Seleccione módulos para compilar, en el fichero + de <code>configuración</code> de Apache. Descomente + las líneas correspondientes a los módulos + opcionales que desee incluir (entre las líneas + <code>AddModule</code> al final del fichero), o escriba + nuevas líneas correspondientes a módulos + adicionales que haya bajado o programado. (Vea <a + href="misc/API.html">API.html</a> para ver la + documentación preliminar de cómo escribir + módulos Apache). Los usuarios avanzados pueden + comentar los módulos por defecto si están + seguros de que no los necesitan (tenga cuidado, ya que + algunos de estos módulos son necesarios para el buen + funcionamiento y una correcta seguridad del servidor).</p> + + <p>Debería leer también las instrucciones del + fichero de <code>Configuración</code> para comprobar + si necesita configurar unas <code>líneas</code> u + otras.</p> + </li> + + <li> + <p>Configure Apache para su sistema operativo. Usted puede + ejecutar un script como el mostrado más abajo. + Aunque si esto falla o usted tiene algún + requerimiento especial (<i>por ejemplo</i> incluir una + librería adicional exigida por un módulo + opcional) puede editarlo para utilizar en el fichero de + <code>Configuración</code> las siguientes opciones: + <code>EXTRA_CFLAGS, LIBS, LDFLAGS,INCLUDES.</code></p> + + <p>Ejecute el script de + <code>configuración</code>:</p> + + <blockquote> +<pre> + % Configure + Using 'Configuration' as config file + + configured for <whatever> platform + + setting C compiler to <whatever> * + + setting C compiler optimization-level to <whatever> * + + Adding selected modules + + doing sanity check on compiler and options + Creating Makefile in support + Creating Makefile in main + Creating Makefile in os/unix + Creating Makefile in modules/standard +</pre> + </blockquote> + + <p>(*: Dependiendo de la configuración y de su + sistema. El resultado podría no coincidir con el + mostrado; no hay problema).</p> + + <p>Esto genera un fichero <code>Makefile</code> a ser usado + en el tercer paso. También crea un + <code>Makefile</code> en el directorio + <code>support</code>, para la compilación de + programas de soporte.</p> + + <p>(Si quiere mantener varias configuraciones, puede + indicarle a <code>Configure</code> una de las opciones en + un fichero, como <code>Configure -fichero + configuración.ai</code>).</p> + </li> + + <li>Escriba <code>make</code>.</li> + </ol> + + <p>Los módulos de la distribución de Apache son + aquellos que hemos probado y utilizado regularmente varios + miembros del grupo de desarrollo de Apache. Los módulos + adicionales (creados por miembros del grupo o por terceras + personas) para necesidades o funciones específicas + están disponibles en <<a + href="http://www.apache.org/dist/httpd/contrib/modules/">http://www.apache.org/dist/httpd/contrib/modules/</a>>. + Hay instrucciones en esa página para añadir estos + módulos en el núcleo de Apache.</p> + + <h2><a id="installing" name="installing">Instalación de + Apache</a></h2> + + <p>Tendrá un fichero binario llamado <code>hhtpd</code> + en el directorio <code>src</code>. Una distribución + binaria de Apache ya traerá este fichero.</p> + + <p>El próximo paso es instalar el programa y + configurarlo. Apache esta diseñado para ser configurado + y ejecutado desde los directorios donde fue compilado. Si + quiere ejecutarlo desde otro lugar, cree un directorio y copie + los directorios <code>conf</code>, <code>logs</code> e + <code>icons</code>. En cualquier caso debería leer las + <a href="misc/security_tips.html#serverroot">sugerencias de + seguridad</a> que describen cómo poner los permisos del + directorio raíz.</p> + + <p>El paso siguiente es editar los ficheros de + configuración del servidor. Consiste en configurar + varias <strong>directivas</strong> en los tres ficheros + principales. Por defecto, estos ficheros están en el + directorio <code>conf</code> y se llaman <code>srm.conf</code>, + <code>access.conf</code> y <code>httpd.conf</code>. Para + ayudarle a comenzar, hay ejemplos de estos ficheros en el + directorio de la distribución, llamados + <code>srm.conf-dist</code>, <code>access.conf-dist</code> y + <code>httpd.conf-dist</code>. Copie o renombre estos ficheros a + los correspondientes nombres sin la terminación + <code>-dist</code>. Edite cada uno de ellos. Lea los + comentarios cuidadosamente. Un error en la configuración + de estos ficheros podría provocar fallos en el servidor + o volverlo inseguro. Tendrá también un fichero + adicional en el directorio <code>conf</code> llamado + <code>mime.conf</code>. Este fichero normalmente no tiene que + ser editado.</p> + + <p>Primero edite el fichero <code>http.conf</code>. Este + configura atributos generales del servidor: el número de + puerto, el usuario que lo ejecuta, <i>etc.</i> El siguiente a + editar es <code>srm.conf</code>; este fichero configura la + raíz del árbol de los documentos, funciones + especiales como HTML analizado sintácticamente por el + servidor, mapa de imagen, <i>etc.</i> Finalmente, edite + <code>access.conf</code> que configura los accesos.</p> + + <p>Además de estos tres ficheros, el comportamiento del + servidor puede ser modificado directorio a directorio usando + los ficheros <code>.htaccess</code> para los directorios en los + que acceda el servidor.</p> + + <h3>¡Configure el sistema de tiempo correctamente!</h3> + + <p>Una operación de un servidor web requiere un tiempo + concreto, ya que algunos elementos del protocolo HTTP se + expresan en función de la hora y el día. Por eso, + es hora de investigar la configuración de NTP o de otro + sistema de sincronización de su Unix o lo que haga de + equivalente en NT.</p> + + <h2>Programas de soporte para la compilación</h2> + + <p>Además del servidor principal <code>httpd</code> que + se compila y configura como hemos visto, Apache incluye + programas de soporte. Estos no son compilados por defecto. Los + programas de soporte están en el directorio + <code>support</code>. Para compilar esos programas, entre en el + directorio indicado y ejecute el comando:</p> + + <blockquote> +<pre> + make +</pre> + </blockquote> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/install.html.fr b/htdocs/manual/install.html.fr new file mode 100644 index 0000000000..7fe6b0e29d --- /dev/null +++ b/htdocs/manual/install.html.fr @@ -0,0 +1,325 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Compilation et installation d'Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Compilation et installation d'Apache + 1.3</h1> + + <p>Ce document décrit la compilation et l'installation + d'Apache sur les systèmes Unix, en employant la + compilation et l'installation manuelle. Si vous souhaitez + utiliser l'interface de configuration semblable à + autoconf, il est conseillé de lire plutôt le + fichier INSTALL situé dans la racine des fichiers + sources de la distribution d'Apache. Pour compiler et installer + Apache sur d'autres plates-formes, consultez</p> + + <ul> + <li><a href="windows.html">Utilisation d'Apache sur Microsoft + Windows</a></li> + + <li><a href="cygwin.html">Utilisation d'Apache sur + Cygwin</a></li> + + <li><a href="netware.html">Utilisation d'Apache sur Novell + Netware</a></li> + + <li><a href="mpeix.html">Utilisation d'Apache sur HP + MPE/iX</a></li> + + <li><a href="unixware.html">Utilisation d'Apache sur + UnixWare</a></li> + + <li><a href="readme-tpf.html">Aperçu du portage + d'Apache sur TPF</a></li> + </ul> + + <h2>Téléchargement d'Apache</h2> + Les informations sur la dernière version d'Apache se + trouvent sur le site web d'Apache à l'adresse <a + href="http://www.apache.org/">http://www.apache.org/</a>. Ce + site réunit la version actuelle, les récentes + versions beta, ainsi que la liste des sites miroirs web et ftp + anonymes. + + <p>Si vous avez téléchargé une + distribution composée des binaires, passez directement + à l'<a href="#installing">installation d'Apache</a>. Sinon + lisez la section suivante afin de savoir comment compiler le + serveur.</p> + + <h2>Compilation d'Apache</h2> + La compilation d'Apache se compose de trois étapes : la + sélection des <strong>modules</strong> que vous + souhaitez inclure dans le serveur; la création de la + configuration pour votre système d'exploitation; la + compilation les sources pour créer les + exécutables. + + <p>La configuration d'Apache s'effectue dans le + répertoire <code>src</code> de la distribution. Entrez + dans ce répertoire.</p> + + <ol> + <li> + Sélection des modules à compiler dans Apache + définis dans le fichier <code>Configuration</code>. + Décommentez les lignes correspondant aux modules que + vous souhaitez inclure (parmi les lignes commençant + par AddModule situées à la fin du fichier), + ou ajoutez de nouvelles lignes correspondant à des + modules additionnels que vous avez + téléchargés ou écrits. (Voir <a + href="misc/API.html">API.html</a> comme documentation + préliminaire à l'écriture de modules + Apache). Les utilisateurs avertis peuvent commenter + certains des modules actifs par défaut si ils sont + sûrs qu'ils n'en ont pas besoin (il faut + néanmoins faire attention, car la plupart des + modules actifs par défaut sont vitaux au bon + fonctionnement et à la sécurité du + serveur). + + <p>Vous pouvez également lire les instructions + contenues dans le fichier <code>Configuration</code> afin + de savoir si devez activer certaines lignes + commençant par <code>Rule</code>.</p> + </li> + + <li> + Création de la configuration pour votre + système d'exploitation. Normalement vous n'avez + qu'à exécuter le script + <code>Configure</code> comme décrit ci-dessous. + Cependant si le script échoue ou si vous avez des + besoins particuliers (par exemple inclure une librairie + nécessaire à un module optionnel) vous devrez + modifier une ou plusieurs des options contenues dans le + fichier <code>Configuration</code> : <code>EXTRA_CFLAGS, + LIBS, LDFLAGS, INCLUDES</code>. + + <p>Lancement du script <code>Configure</code> :</p> + + <blockquote> +<pre> + % Configure + Using 'Configuration' as config file + + configured for <whatever> platform + + setting C compiler to <whatever> * + + setting C compiler optimization-level to <whatever> * + + Adding selected modules + + doing sanity check on compiler and options + Creating Makefile in support + Creating Makefile in main + Creating Makefile in os/unix + Creating Makefile in modules/standard + +</pre> + </blockquote> + (*: selon le fichier Configuration et votre système, + Configure peut ne pas afficher ces lignes). + + <p>Ceci crée un fichier Makefile qui sera + utilisé lors de l'étape trois. Il crée + également un fichier Makefile dans le + répertoire <code>support</code>, pour compiler les + programmes optionnels d'assistance.</p> + + <p>(Si vous souhaitez maintenir différentes + configurations, <code>Configure</code> accepte une option + lui disant de lire un autre fichier de configuration, comme + : <code>Configure -file Configuration.ai</code>).</p> + </li> + + <li> + Compilation des sources. Tapez : +<pre> +make +</pre> + </li> + </ol> + Les modules contenus dans la distribution Apache sont ceux que + nous avons testés et qui ont été + utilisés par plusieurs membres de l'équipe de + développement d'Apache. Les modules additionnels + proposés par les membres ou par d'autres contributeurs + correspondant à des besoins ou des fonctions + spécifiques sont disponibles à l'adresse <<a + href="http://www.apache.org/dist/httpd/contrib/modules/">http://www.apache.org/dist/httpd/contrib/modules/</a>>. + Des instructions sont fournies sur cette page pour lier ces + modules au noyau d'Apache. + + <h2><a id="installing" name="installing">Installation + d'Apache</a></h2> + Vous devez avoir un exécutable appelé + <code>httpd</code> dans le répertoire <code>src</code>. + Une distribution des binaires doit fournir ce fichier. + + <p>La prochaine étape est d'installer le programme et de + le configurer. Apache est conçu pour être + configuré et lancé à partir du même + groupe de répertoires que celui où il a + été compilé. Si vous souhaitez le lancer + d'un autre emplacement, créer un répertoire et y + copier les répertoires <code>conf</code>, + <code>logs</code> et <code>icons</code>. Dans tous les cas + lisez le document <a + href="misc/security_tips.html#serverroot">trucs sur la + sécurité</a> qui décrit comment affecter + les droits sur le répertoire racine du serveur.</p> + + <p>L'étape suivante est la modification des fichiers de + configuration du serveur. Cela consiste à définir + différentes <strong>directives</strong> dans les trois + fichiers centraux de configuration. Par défaut ces + fichiers sont situés dans le répertoire + <code>conf</code> et s'appellent <code>srm.conf</code>, + <code>access.conf</code> et <code>httpd.conf</code>. Pour vous + aider, les mêmes fichiers existent dans le + répertoire <code>conf</code> de la distribution et sont + appelés <code>srm.conf-dist</code>, + <code>access.conf-dist</code> et <code>httpd.conf-dist</code>. + Copiez ou renommez ces fichiers en supprimant le + <code>-dist</code> pour le nouveau nom. Ensuite éditez + chacun de ces fichiers. Lisez attentivement les commentaires de + chacun de ces fichiers. Une mauvaise configuration de ces + fichiers empêcherait votre serveur de démarrer, ou + introduirait un problème de sécurité. Vous + devez également trouver dans le répertoire + <code>conf</code> un fichier <code>mime.types</code>. + Généralement, ce fichier n'a pas besoin + d'être modifié.</p> + + <p>Premièrement éditez le fichier + <code>httpd.conf</code>. Celui ci fixe les paramètres + généraux du serveur : le numéro de port, + l'utilisateur qui l'exécute, etc. Ensuite éditez + le fichier <code>srm.conf</code>. Ce fichier définit la + racine de l'arborescence des documents, les fonctions + spéciales telles que les pages HTML dynamiques, + l'analyse des imagemap, etc. Enfin, éditez le fichier + <code>access.conf</code> pour au moins définir les + schémas d'accès de base.</p> + + <p>En plus de ces trois fichiers, le comportement du serveur + peut être configuré dans chaque répertoire + en utilisant les fichiers <code>.htaccess</code> pour les + répertoires accédés par le serveur.</p> + + <h3>Définissez l'heure du système correctement + !</h3> + Un bon fonctionnement d'un site web public nécessite une + heure juste, car des éléments du protocole HTTP + sont exprimés en termes de date et heure du jour. Il est + donc temps de chercher comment configurer NTP ou un autre + produit de synchronisation temporelle sur votre système + UNIX, ou un équivalent sous NT. + + <h3>Démarrage et arrêt du serveur</h3> + Pour démarrer le serveur, exécutez + <code>httpd</code>. Il cherchera le fichier + <code>httpd.conf</code> à l'emplacement + spécifié lors de la compilation (par + défaut <code>/usr/local/apache/conf/httpd.conf</code>). + Si ce fichier est situé autre part, vous pouvez indiquer + son emplacement en utilisant l'option -f. Par exemple : +<pre> + /usr/local/apache/httpd -f /usr/local/apache/conf/httpd.conf +</pre> + Si tout se passe bien, vous devez vous retrouver de nouveau sur + l'invite de commande. Ceci indique que le serveur est actif et + s'exécute. Si quelque chose se passe mal durant + l'initialisation du serveur, un message d'erreur s'affichera + à l'écran. Si le serveur démarre + correctement, vous pouvez utiliser votre navigateur, vous + connecter au serveur et lire la documentation. Si vous lancez + le navigateur à partir de la machine où + s'exécute le serveur et que vous utilisez le port par + défaut 80, une URL valide à taper dans votre + navigateur est : +<pre> + http://localhost/ +</pre> + + <p>Notez que lors du démarrage du serveur un certain + nombre de processus <em>fils</em> sont créés afin + de traiter les requêtes. Si vous démarrez le + serveur en étant root, le processus père + s'exécutera avec les droits de root, tandis que les + processus fils s'exécuteront avec les droits de + l'utilisateur défini dans le fichier httpd.conf.</p> + + <p>Si au lancement de <code>httpd</code> celui ci indique qu'il + n'arrive pas à s'attacher à une adresse, cela + signifie soit qu'un autre processus s'exécute + déjà en utilisant le numéro de port + défini dans la configuration d'Apache, soit que vous + essayez de lancer httpd en tant qu'utilisateur normal et que + vous essayez d'utiliser un port inférieur à 1024 + (comme le port 80 par exemple).</p> + + <p>Si le serveur ne s'exécute pas, lisez le message + affiché quand vous lancez httpd. Vous devez + également vérifier le fichier error_log pour plus + d'informations (dans la configuration par défaut ce + fichier est situé dans le fichier <code>error_log</code> + du répertoire <code>logs</code>).</p> + + <p>Si vous voulez que votre serveur continue à + s'exécuter après une relance du système, + vous devez ajouter un appel à <code>httpd</code> dans + vos fichiers de démarrage du système (typiquement + <code>rc.local</code> ou un fichier dans un répertoire + <code>rc.<em>N</em></code>). Ceci lancera le serveur Apache + avec les droits de root. Avant de le faire, vérifiez que + votre serveur est correctement configuré au niveau de la + sécurité et des restrictions d'accès.</p> + + <p>Pour arrêter Apache, envoyez au processus parent un + signal TERM. Le PID de ce processus est écrit dans le + fichier <code>httpd.pid</code> situé dans le + répertoire <code>logs</code> (à moins qu'Apache + soit configuré autrement). N'essayez pas de supprimer + les processus fils car d'autres seront créés par + le processus père. Une commande typique pour + arrêter le serveur est :</p> +<pre> + kill -TERM `cat /usr/local/apache/logs/httpd.pid` +</pre> + + <p>Pour plus d'information sur les options de la ligne de + commande, sur les fichiers de configuration et les fichiers de + trace, voir <a href="invoking.html">Démarrage + d'Apache</a>. Pour un guide de référence de + toutes les directives Apache autorisées par les modules + distribués, voir les <a + href="mod/directives.html">directives Apache</a> .</p> + + <h2>Compilation des programmes d'assistance</h2> + En plus du serveur <code>httpd</code> qui est compilé et + configuré comme ci dessus, Apache inclut un certain + nombre de programmes d'assistance. Ceux ci ne sont pas + compilés par défaut. Les programmes d'assistance + sont situés dans le répertoire + <code>support</code> de la distribution. Pour les compiler, + allez dans ce répertoire et tapez : +<pre> + make +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/install.html.html b/htdocs/manual/install.html.html new file mode 100644 index 0000000000..21e6e1b967 --- /dev/null +++ b/htdocs/manual/install.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="install.html.en" --> + diff --git a/htdocs/manual/install.html.ja.jis b/htdocs/manual/install.html.ja.jis new file mode 100644 index 0000000000..4c75fff230 --- /dev/null +++ b/htdocs/manual/install.html.ja.jis @@ -0,0 +1,422 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Compiling and Installing Apache</title> + + </head> + <!-- English revision: 1.40 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#000080" + alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache 1.3 のコンパイル・瘢雹インスト・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■粹跫痲▽苳餐鞜竏のダウ瘢雹ンロ・踉札薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蜴錢導入</a></li> + <li><a href="#apaci">APACI を使った Apache 1.3 HTTP サ・踉札个離ぅ鵐好函ル</a></li> + <ul> + <li><a href="#requirements">必要なシステム</a></li> + <li><a href="#configure">ソ・踉札好張蝓の設定</a></li> + <li><a href="#build">パッケ・踉札犬離咼襯薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蜴齡瘡跚鈑▽苳ぢパッケ・踉札犬離ぅ鵐好函ル</a></li> + </ul> + <li><a href="#traditional">伝統的な方法によるビルドとインスト・踉札薤苳纂蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■痲焜闔肅苺鱚▽苳ぢインスト・踉札襪寮瀋薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■痲焜闕韈跂▽苳餐鞜竏のコンパイル</a></li> + <li><a href="#trad_install">Apache のインスト・踉札薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就t纉鈑▽苳ぢパッケ・踉札犬離謄好薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■辣▽苳ぢ正しいシステム時間の設定</a></li> + </ul> + + <p>この文書は Apache を Unix システム紊如▲灰鵐僖ぅ覽擇咼ぅ鵐好函ル + するためのものです。それ以外のプラットホ・踉札爨苳糸でのコンパイル及び + インスト・踉札襪砲弔い討蓮焚の項目を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就鈔阯鶤蔗迪▽苳四蜒鳫齒胄蜴粹ぢ紊任鞜竏ぢの使用</a></li> + <li><a href="cygwin.html">Cygwin 紊任鞜竏の使用</a></li> + <li><a href="netware.html">Novell Netware 紊任鞜竏の使用</a></li> + <li><a href="mpeix.html">HP MPE/iX 紊任鞜竏の使用</a></li> + <li><a href="unixware.html">UnixWare 紊任鞜竏のコンパイル</a></li> + <li><a href="readme-tpf.html">Apache の TPF Port の概要</a> + </li> + </ul> + + <h2><a id="download" name="download">Apache のダウ瘢雹ンロ・踉札王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢの最新版は <a + href="http://httpd.apache.org/download.cgi">Download Page</a> + から彫苳酸椒瀬逅札鵐蹇ドすることが出来ます。</p> + + <h2><a id="intro" name="intro">導入</a></h2> + + <p>すべての良い物と同様、Apache を設定、コンパイル、インスト・踉札鹿粡寂蝟赱齠洲痲筵娼する方法は二つあります。以王踉擦農睫世垢仭檀ぢプロセスを使った + 3分インスト・踉札襦△泙燭瘢雹瘰闢雌鱆林堊面逅氏竟鷸ぢファイルで説明されている、 + 以前のバ・踉札献腑鵑鞜竏と同じ機構を選択することが出来ます。 + それう苳擦譴僕世鳩臈世△蠅泙后双礎はより新しく、 + 圭論気譴討い泙擦鵑修譴鉾颪笋校屬郎忍苳皿限で済みます。 + 対して、"Configuration.tmpl" + の機構を使った拾苳四茲諒,魯僖錙ユ・踉札兇砲箸辰討呂茲蟒斉陲飽靴逅擦海箸侏茲泙后鹿粡寂蝟赱齠洲痲筵娼我々は、それう苳擦譴里笋衒紡个垢覦娶筌侫ドバックには大変興味があります + </p> + + <h2><a id="apaci" name="apaci">APACI を使った Apache 1.3 HTTP + サ・踉札个離ぅ鵐好函ル</a></h2> + + <h3>Overview for the impatient</h3> +<pre> + $ ./configure --prefix=PREFIX + $ make + $ make install + $ PREFIX/bin/apachectl start +</pre> + + <p><b>注意:</b> <code>PREFIX</code> は "PREFIX" + という瘢雹文字列ではありません。代わりに Apache をインスト・踉札襪靴燭鹿粡寂蝟赱齠洲痲筵娼寰蝌ぢのファイルシステム紊離僖垢鮖箸い泙后燭箸┐丶苳糸の PREFIX + の部分には "<code>/usr/local/apache</code>" が入ります。</p> + + <h3><a id="requirements" name="requirements">必要なシステム</a></h3> + <p>Apache のビルドには以王踉擦傍鵑欧襪發里廚砲覆蠅泙鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘皃苳ぢディスクスペ・踉札熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢ約 12 MB のディスクスペ・踉札垢貉防廚砲覆襪海箸魍稜Г靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼インスト・踉札觚紊砲鰐のディスクスペ・踉札垢廚砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼ぢ尊櫃防廚砲淵妊好好據スは組み込まれたサ・踉札疋僉ティ・踉擦鹿粡寂蝟赱齠洲痲筵娼モジュ・踉札訶飽佑蠅泙ぢ。</dd> + + <dt><b>ANSI-C コンパイラ</b></dt> + + <dd>ANSI-C コンパイラがインスト・踉札襪気譴討い襪海箸魍稜Г靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼汝繞閹癇楠籬闔酉透ぢによる GNU C コンパイラ (GCC) + を推靴泙ぢバ・踉札献腑ぢで大翩ぢ。GCC を持っていない豺腓鹿粡寂蝟赱齠洲痲筵娼ベンダによるコンパイラが最低限 ANSI 互換であることを確認してください。 + GNU のホ・踉札爛據ジは http://www.gnu.org/ に、GCC 配布は + http://www.gnu.org/order/ftp.html から見つけることが出来ます。</dd> + + <dt><b>Perl 5 インタプリタ [オプション]</b></dt> + + <dd>`apxs' や `dbmmanage' のよう瘢雹な(Perl で書かれた) + サポ・踉札肇好螢廛箸涼罎砲纈インタプリタ (バ・踉札献腑鯵鹿粡寂蝟赱齠洲痲筵娼または 5.004 が胞苳擦泙靴が必要なものがあります。APACI の + `configure' スクリプトにそのよう瘢雹なインタプリタが見つからなかった豺隋鹿粡寂蝟赱齠洲痲筵娼害にはなりません。当然、Apache 1.3 をビルド及びインスト・踉札鹿粡寂蝟赱齠洲痲筵娼することができます。もし、複数の Perl インタプリタがインスト・踉札鹿粡寂蝟赱齠洲痲筵娼されている豺恐らくはベンダによる Perl 4 と覇各靴纈稀、 + --with-perl オプション (以王踉算王苳使) を使って正しいものを選択し APACI + に知らせてやることを推靴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉獅動的共瘢雹有オブジェクト (DSO) サポ・踉札オプション]</b></dt> + + <dd> + <p>現在、最大限の柔軟性のために Apache は dlopen()/dlsym() + システムコ・踉札襪鰺僂靴嗜ぢ機構を経由させたランタイムにより、 + モジュ・踉札襪鬟蹇ドすることが出来ます。これらのシステムコ・踉札襪呂垢戮討鹿粡寂蝟赱齠洲痲筵娼腕ぢで有効なわけではないのでどのプラットホ・踉札爐任嗜鹿粡寂蝟赱齠洲痲筵娼機構を使えるとは限りません。シェア・踉札疋屮献Д箸離灰鵐僖ぅ襪鹿粡寂蝟赱齠洲痲筵娼非錣縫廛薀奪肇侫ムに依存したものであるため、Apache は現時点では + いくつかのプラットフォ・踉札爐亡悗靴討里澆修諒,鮹里辰討い泙后鹿粡寂蝟赱齠洲痲筵娼現在の靴呂海里茲逅擦砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼サポ・踉札箸気譴討い襯廛薀奪肇侫ム: + + <p> + <table border="0"> + <tr> + <td>Linux</td> + <td>SunOS</td> + <td>UnixWare</td> + <td>Darwin/Mac OS</td> + </tr> + <tr> + <td>FreeBSD</td> + <td>Solaris</td> + <td>AIX</td> + <td>OpenStep/Mach</td> + </tr> + <tr> + <td>OpenBSD</td> + <td>IRIX</td> + <td>SCO</td> + <td>DYNIX/ptx</td> + </tr> + <tr> + <td>NetBSD</td> + <td>HPUX</td> + <td>ReliantUNIX</td> + <td>BSDI</td> + </tr> + <tr> + <td>Digital Unix</td> + <td>DGUX</td> + </tr> + </table> + </p> + </li> + + <li> + 完全にサポ・踉札罰阿離廛薀奪肇侫ム: + + <p>Ultrix</p> + </li> + </ul> + + <p>あなたのシステムがこのリストにないけれど、dlopen + 形阿離ぅ鵐織侫Аスがある豺隋擇淵灰鵐僖ぅ蕕肇螢鵐侫薀鹿粡寂蝟赱齠洲痲筵娼凸素嘸喩棉測墜盟排灑般病ぢ及び LDFLAGS_SHLIB_EXPORT 参蝟昭粡竚癈鷭п粐Ьぢを蠧阿罵燭┐討笋襪∈把禪鞜竏がオプションを推察できるよう瘢雹に、 + Perl 5 インタプリタがどこにインスト・踉札鹿粡寂蝟赱齠洲痲筵娼されているかを指定する必要があります。</p> + + <p>Apache 1.3 での DSO サポ・踉札箸亡悗垢襦△茲蟶拮瑤陸苳諮報については + htdocs/manual/dso.html の文書をよく読んでください。 + 十分に注意しないで DSO 機構を使う瘢雹と妙な副作用が発生することがあるため、 + 特に + "Advantages & Disadvantages" と巳苳刺佞韻蕕譴神瓩鹿粡寂蝟赱齠洲痲筵娼注意して読んでください。警告はしましたよ!</p> + </dd> + </dl> + + <h3><a id="configure" name="configure">ソ・踉札好張蝓の設定</a></h3> + + <p>,涼奮鞜竏ソ・踉札好張蝓を特定のプラットホ・踉札爐鹿粡寂蝟赱齠洲痲筵娼個々の必要に合わせて設定します。この設定で最も重要なことは後で + Apache がインスト・踉札襪気譴覦銘屬侶萃蠅任后箸い逅擦里鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢが正しく動作するためにこの位置に合わせて設定されるからです。 + 側苳擦砲盍に応じて多くのオプションが有効です。</p> + + <p>どんなことが出来るのか簡単に感じてもらう瘢雹ため、ここでは + 標準的な例として、インスト・踉札襯張蝓を /sw/pkg/apache, + 特定のコンパイラ及びフラグ、そして 2 つの追加モジュ・踉札閼熬纓鱸鹿粡寂蝟赱齠洲痲筵娼及び mod_proxy を後で DSO 機構によりロ・踉札匹気擦襪茲逅擦鞜竏綣蝟昭粡竚癈鷭п粐Ьぢをコンパイルするものとします>。</p> +<pre> + $ CC="pgcc" OPTIM="-O2" \ + ./configure --prefix=/usr/local/apache \ + --enable-module=rewrite --enable-shared=rewrite \ + --enable-module=proxy --enable-shared=proxy +</pre> + + <p>有効なオプションの完全なリストは以王踉擦離灰泪鵐匹鯊任噌鵑任世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳皿闔肅苺鱚繻隍踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉諮設定例のリストは <code>README.configure</code> + ファイルも見てください。</p> + + <h3><a id="build" name="build">パッケ・踉札犬離咼襯界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これで Apache パッケ・踉札犬粒読鬟灰泪鵐鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘠鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢを孫圓垢襪海箸砲茲螢咼襯匹垢襪海箸侏茲泙后鹿粡寂蝟赱齠洲痲筵娼これには有効にしたモジュ・踉札襪領未砲發茲蠅泙垢緕橋鱚綢喞鹿粡寂蝟赱齠洲痲筵娼システムの豺腓婆ぢ分かかります。じっと待ってください。 + </p> + + <h3><a id="installing" name="installing">パッケ・踉札犬離ぅ鵐好函ル</a></h3> + + <p>インスト・踉札襪踉祉閼絋苳姉凖読悧踉晒竢粤紊踉祉閼絋苳鮫鱚肅踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼オプション参ぢ設定によりパッケ・踉札犬鬟ぅ鵐好函ルする時です。</p> +<pre> + $ make install +</pre> + + <p>以王踉擦領磴任踉祉閼絋苳姉凖読悧踉晒竢粤ぢはそのまま "PREFIX" + ではなく、<code>--prefix</code> + オプションにより与えられた引数になります。</p> + +<!-- Building and installing Apache in the traditional way --> + + <h2><a id="traditional" name="traditional">伝統的な方法によるビルドとインスト・踉札王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮双礎が出てくる以前は Apache のビルド及びインスト・踉札襪諒,鹿粡寂蝟赱齠洲痲筵娼つしかありませんでした。APACI は + 人によってはよりわかりやすい設定のインタ・踉札侫Аスを提供しますが、 + 拾苳四茲蕕諒,和舂未離灰泪鵐疋薀ぅ鹿粡寂蝟赱齠洲痲筵娼オプションを打ち込むことなくインスト・踉札襪寮瀋蠅鹿粡寂蝟赱齠洲痲筵娼出来る方法が用意されています。</p> + + <h3><a id="trad_configure" name="trad_configure">インスト・踉札襪寮瀋界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢのコンパイルは三段階で構成されます。 + まずサ・踉札个亡泙瓩燭鞜竏齡鳫鈑モジュ・踉札闔胼苳纂蝟昭粡竚癈鷭п粐Ьぢを選択してください。,法腕ぢに合わせた設定をします。 + 最後にコンパイルをします。</p> + + <p>Apache の全ての設定は、Apache 配布の <code>src</code> + ディレクトリで行われます。このディレクトリに入ってください。 + </p> + + <ol> + <li> + <code>Configuration</code> ファイル <code>src/Configuration.tmpl</code> + の中で Apache + にコンパイルするモジュ・踉札襪鯀鬚靴泙后踉斬装したいオプションの + モジュ・踉札襪旅圓離灰瓮鵐箸魍阿垢ファイルの終わりにある + AddModule 行で) 、ダウ瘢雹ンロ・踉札匹靴燭蝓∈鄒靴芯媛辰離皀献紂ルの + 新しい行を追加します (どのよう瘢雹に Apache モジュ・踉札襪鮑鄒垢襪里深蝟昭粡竚癈鷭п粐Ьぢについてのドキュメントは<a href="misc/api.html">API.html</a> + を参箸靴討世気。 + あるモジュ・踉札襪陸踉斬に必要でないことがわかっているならば、 + いくつかのデフォルトモジュ・踉札襪鬟灰瓮鵐肇▲逅札箸垢襪海箸任泙鹿粡寂蝟赱齠洲痲筵娼ぢただし、デフォルトのモジュ・踉札襪梁燭魯機バの正確な操作と + セキュリティにとって重要なので注意してください) 。 + + + <p><code>Rule</code> + 行のいくつかを設定する必要があるかどう瘢雹かを知るために + <code>Configuration</code> ファイルの指┐眛匹鵑任世気ぁ鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь鞜竏を OS に合わせて設定します。通錣呂燭鹿粡寂蝟赱齠洲痲筵娼竢粤衷鈕蜃絋踉晒竢粤ぢスクリプトを王踉撒領磴里茲逅擦胞踉斬行します。 + しかし、これが最圓垢襪箸箍燭脱踉詞な要求があるとき + (<em>例えば</em>、追加したモジュ・踉札襪砲茲辰堂燭蕕離薀ぅ屮薀蠅鹿粡寂蝟赱齠洲痲筵娼必要な豺腓覆には <code>Configure</code> + ファイルの,離廛轡腑鵑里い弔鯤埆犬垢詆廚△襪發靴譴泙擦鵝蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳仕慥卅瀉凸素哮病哮墜盟排瀕談嫩途閼絋苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳暫闔肅苺鱚閼絋苳スクリプトを孫圓靴泙鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь闔肅苺鱚鹿粡寂蝟赱齠洲痲筵娼專蜴闔肅苺鱇闔癈闔肅肅跂鹿粡寂蝟赱齠洲痲筵娼闔肅苺鱚肬逅詞癆纐纈逅紫赱闥躰蝟昭粡竚癈鷭п粐Ь黼蜴竢逅蛹纈逅詞癆纐纈逅紫鹿粡寂蝟赱齠洲痲筵娼續鈑闕韈跂關迚闔纐繻逅詞癆纐纈逅紫鹿粡寂蝟赱齠洲痲筵娼粐蜴黼跂笏繖閼纉鹿粡寂蝟赱齠洲痲筵娼濶鈑瘤蜚竏繝闔闕韈跂瘤關闔鷦蝟昭粡竚癈鷭п粐Ь鱚癆蜴浴諷肅跂齦韶闥蝟昭粡竚癈鷭п粐Ь鱚癆蜴浴諷肅跂轣蜴鹿粡寂蝟赱齠洲痲筵娼鋳縺鈑瘠繙蛹蜴鶩蝌鹿粡寂蝟赱齠洲痲筵娼鋳縺鈑瘠繙蛹蜴閼纉鈔癇篌蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼┴設定内容とシステムによっては、Configure はこの通りに + 表┐靴覆い海箸△蠅泙垢△修譴婆簑蠅△蠅泙擦鵝蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これで 3 の段階で使われる Makefile が生成されます。 + また、オプションのサポ・踉札肇廛蹈哀薀爐鬟灰鵐僖ぅ襪垢襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼サポ・踉札肇妊譽肇蠅涼罎瘠繙蛹が生成されます。</p> + + <p>(もし、様々な設定を管理するつもりならば、 + <code>Configure</code> に <code>Configure -file + Configuration.ai</code> のよう瘢雹に、別の Configuration + ファイルを読み込むよう瘢雹にオプションを付けるといいでしょう瘢雹。)</p> + </li> + + <h3><a id="trad_compile" name="trad_compile">Apache のコンパイル</a></h3> + + <li><code>make</code> を孫圓靴討世気ぁ薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒闌鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢ配布物にあるモジュ・踉札襪鞜竏開発グル・踉札廚砲茲辰謄謄好箸圓錣譟鹿粡寂蝟赱齠洲痲筵娼多くのメンバ・踉擦砲茲辰篤苳誌的に使われているものです。 + メンバ・踉擦筌機ドパ・踉札謄砲茲辰導気譴親団蠅離法ズや機能をもつ + 追加モジュ・踉札襪蓮逅詞畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕瘰痺蒹鱧蜩蔗箝竢銓鱸皴迴糒跂鶩⊆蝟昭粡竚癈鷭п粐Ь苳肢雕瘰痺蒹鱧蜩蔗箝竢銓鱸皴迴糒跂鶩逅紫蝟昭粡竚癈鷭п粐Ьぢから入蠅垢襪海箸任泙后海離據ジには、これらのモジュ・踉札襪鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢコアコ・踉札匹縫螢鵐気擦襪燭瓩寮睫世颪い討△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就痲煢銖跛釶辣就痲煢銖跛▽苳餐鞜竏のインスト・踉札界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ьぢコンパイルを行う瘢雹と、<code>httpd</code> という瘢雹バイナリファイルが + <code>src</code> ディレクトリに作成されます。Apache + のバイナリ配布はこのファイルを提供します。 + + <p>,離好謄奪廚魯廛蹈哀薀爐鬟ぅ鵐好函ルし、それを設定することです。 + Apache はコンパイルされたディレクトリと同じディレクトリのセットで + 設定、孫圓気譴襪茲逅擦砲覆辰討い泙后鹿粡寂蝟赱齠洲痲筵娼もしどこか側苳擦里箸海蹐薤踉斬行させたい豺腓蓮▲妊譽肇蠅鮑鄒掘鹿粡寂蝟赱齠洲痲筵娼そこに <code>conf</code>, <code>logs</code> 及び <code>icons</code> + ディレクトリをコピ・踉擦靴討世気ぁ匹舛蕕陸苳詞合でも、 + サ・踉札丱襦トのディレクトリのパ・踉札潺奪轡腑鵑鬚匹逅酸瀋蠅垢襪砲弔い董鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹繝蜚頌譯黼鴟纈鳫阡▽苳雌繝蜚霾鹿粡寂蝟赱齠洲痲筵娼を読むべきです。</p> + + <p>,法▲機バの設定ファイルを編集します。3つの設定ファイルで + <strong>ディレクティブ</strong> を設定します。標準屬任蓮鹿粡寂蝟赱齠洲痲筵娼これらのファイルは <code>conf</code> ディレクトリに配置される、 + <code>srm.conf</code>, <code>access.conf</code>, <code>httpd.conf</code> + です。設定の参考になるよう瘢雹に、配布の <code>conf</code> + ディレクトリに同じ内容のファイル、<code>srm.conf-dist</code>, + <code>access.conf-dist</code>, <code>httpd.conf-dist</code> + があります。<code>-dist</code> なしで、 + その巳苳餐阿里海譴蕕離侫.ぅ襪鬟灰圈するか、巳苳餐阿鯤僂┐討世気ぁ鹿粡寂蝟赱齠洲痲筵娼それからそれう苳擦譴離侫.ぅ襪鯤埆犬靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼それう苳擦譴離侫.ぅ襪砲△襯灰瓮鵐箸鮹躇嫂く読んでください。 + これらのファイルの正確な設定に最圓垢襪函▲機バが動かなくなったり、 + セキュリティ的に危険になったりします。 + <code>conf</code> ディレクトリには <code>mime.types</code> + という瘢雹追加ファイルがあります。 + 通錣海離侫.ぅ襪鯤埆犬垢詆廚呂△蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ最初に <code>httpd.conf</code> を編集してください。 + このファイルはサ・踉札个亡悗垢覦貳姪並粟鮴瀋蠅靴泙纂蝟昭粡竚癈鷭п粐Ьぢポ・踉札犯峭罎箋哀罅ザ <em>等々</em>です。,踉祉閼絋苳雌鴉闔网踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ファイルを編集してください; これはドキュメントツリ・踉擦離襦ト、 + server-parsed HTML や内部的なイメ・踉札献泪奪廚硫鮴呂里茲逅擦米段未糞’鹿粡寂蝟赱齠洲痲筵娼纃等々</em> を設定します。最後にアクセスに関する基本事項を + 設定するために access.conf ファイルを編集します。</p> + + <p>これら3つのファイルに加えて、サ・踉札个瞭虻遒魯▲札垢気譴鹿粡寂蝟赱齠洲痲筵娼ディレクトリにある <code>.htaccess</code> ファイルを使う瘢雹ことによって、 + ディレクトリ毎に設定できます。</p> + + + <h3>サポ・踉札肇廛蹈哀薀爐離灰鵐僖ぅ界苳纂蝟昭粡竚癈鷭п粐Ьぢ綉妊灰鵐僖ぅ襦∪瀋蠅気譴襯瓮ぅ鵑踉祉閼絋苳肢鞣閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢサ・踉札个梁に、Apache には多数のサポ・踉札肇廛蹈哀薀爐泙泙譴討い泙后鹿粡寂蝟赱齠洲痲筵娼これらは標準ではコンパイルされません。サポ・踉札肇廛蹈哀薀爐鹿粡寂蝟赱齠洲痲筵娼竢粤齦韶闥熙踉晒竢粤ぢディレクトリにあります。 + サポ・踉札肇廛蹈哀薀爐鬟灰鵐僖ぅ襪垢襪砲蓮△海離妊譽肇蠅貌蝓鹿粡寂蝟赱齠洲痲筵娼以王踉擦里茲逅擦貌呂靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘠綣蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏♯纉鈑釶辣就齡蜴腆パッケ・踉札犬離謄好王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮ここで、以王踉擦離灰泪鵐匹鬢踉斬行することで、Apache HTTP をすぐに + 孫圓任襪茲逅擦砲覆辰討い泙后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь凖読惆砠遲瘰痺蒹笏齡癇蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮それから URL http://localhost/ (Apache を root としてあるいは + --without-confadjust オプションを使ってビルド、インスト・踉札襪靴職苳詞合) + または http://localhost:8080/ (Apache を普通のユ・踉札兇妊咼襯鼻鹿粡寂蝟赱齠洲痲筵娼インスト・踉札襪靴職苳詞合) により最初の文書をリクエストできます。 + それから以王踉擦砲茲螢機バを止めてください。</p> +<pre> + $ PREFIX/bin/apachectl stop +</pre> + + <h2><a id="time" name="time">正しいシステム時間の設定!</a></h2> + <p>公開されるウ瘢雹ェブサ・踉札个療擇柄犧遒砲蓮挽墅鹿粡寂蝟赱齠洲痲筵娼プロトコルの要素がその日の時間として┐気譴襪燭瓠鹿粡寂蝟赱齠洲痲筵娼正確な時間が必要とされます。ですから、これを機会に UNIX においては + NTP やなんらかの時間の同期を茲襯轡好謄燹淋鹿粡寂蝟赱齠洲痲筵娼においても何かそれと同じ働きをするものを導入してください。</p> + + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/invoking.html.en b/htdocs/manual/invoking.html.en new file mode 100644 index 0000000000..5beffce720 --- /dev/null +++ b/htdocs/manual/invoking.html.en @@ -0,0 +1,145 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Starting Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Starting Apache</h1> + + <ul> + <li><a href="#windows">Starting Apache on Windows</a></li> + + <li> + <a href="#unix">Starting Apache on Unix</a> + + <ul> + <li><a href="#errors">Errors During Start-up</a></li> + + <li><a href="#boot">Starting at Boot-Time</a></li> + + <li><a href="#info">Additional Information</a></li> + </ul> + </li> + </ul> + <hr /> + + <h2><a id="windows" name="windows">Starting Apache On + Windows</a></h2> + + <p>On Windows, Apache is normally run as a service on Windows + NT, or as a console application on Windows 95. This does not + apply in its full extend for the Cygwin platform. For details, + see <a href="windows.html#run">running Apache for + Windows</a>.</p> + + <h2><a id="unix" name="unix">Starting Apache on Unix</a></h2> + + <p>On Unix, the <a href="programs/httpd.html">httpd</a> program + is run as a daemon which executes continuously in the + background to handle requests. It is possible to have Apache + invoked by the Internet daemon <code>inetd</code> each time a + connection to the HTTP service is made using the <a + href="mod/core.html#servertype">ServerType</a> directive, but + this is not recommended.</p> + + <p>If the <a href="mod/core.html#port">Port</a> specified in + the configuration file is the default of 80 (or any other port + below 1024), then it is necessary to have root privileges in + order to start Apache, so that it can bind to this privileged + port. Once the server has started and completed a few + preliminary activities such as opening its log files, it will + launch several <em>child</em> processes which do the work of + listening for and answering requests from clients. The main + <code>httpd</code> process continues to run as the root user, + but the child processes run as a less privileged user. This is + controlled by Apache's <a + href="server-wide.html#process">process creation + directives</a>.</p> + + <p>The first thing that <code>httpd</code> does when it is + invoked is to locate and read the <a + href="configuring.html">configuration file</a> + <code>httpd.conf</code>. The location of this file is set at + compile-time, but it is possible to specify its location at run + time using the <code>-f</code> command-line option as in</p> + + <blockquote> + <code>/usr/local/apache/bin/httpd -f + /usr/local/apache/conf/httpd.conf</code> + </blockquote> + + <p>As an alternative to invoking the <code>httpd</code> binary + directly, a shell script called <a + href="programs/apachectl.html">apachectl</a> is provided which + can be used to control the daemon process with simple commands + such as <code>apachectl start</code> and <code>apachectl + stop</code>.</p> + + <p>If all goes well during startup, the server will detach from + the terminal and the command prompt will return almost + immediately. This indicates that the server is up and running. + You can then use your browser to connect to the server and view + the test page in the <a + href="mod/core.html#documentroot">DocumentRoot</a> directory + and the local copy of the documentation linked from that + page.</p> + + <h3><a id="errors" name="errors">Errors During + Start-up</a></h3> + + <p>If Apache suffers a fatal problem during startup, it will + write a message describing the problem either to the console or + to the <a href="mod/core.html#errorlog">ErrorLog</a> before + exiting. One of the most common error messages is "<code>Unable + to bind to Port ...</code>". This message is usually caused by + either:</p> + + <ul> + <li>Trying to start the server on a privileged port when not + logged in as the root user; or</li> + + <li>Trying to start the server when there is another instance + of Apache or some other web server already bound to the same + port.</li> + </ul> + + <p>For further trouble-shooting instructions, consult the + Apache <a href="misc/FAQ.html">FAQ</a>.</p> + + <h3><a id="boot" name="boot">Starting at Boot-Time</a></h3> + + <p>If you want your server to continue running after a system + reboot, you should add a call to <code>httpd</code> or + <code>apachectl</code> to your system startup files (typically + <code>rc.local</code> or a file in an <code>rc.N</code> + directory). This will start Apache as root. Before doing this + ensure that your server is properly configured for security and + access restrictions. The <code>apachectl</code> script is + designed so that it can often be linked directly as an init + script, but be sure to check the exact requirements of your + system.</p> + + <h3><a id="info" name="info">Additional Information</a></h3> + + <p>Additional information about the command-line options of <a + href="programs/httpd.html">httpd</a> and <a + href="programs/apachectl.html">apachectl</a> as well as other + support programs included with the server is available on the + <a href="programs/">Server and Supporting Programs</a> page. + There is also documentation on all the <a + href="mod/">modules</a> included with the Apache distribution + and the <a href="mod/directives.html">directives</a> that they + provide.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/invoking.html.fr b/htdocs/manual/invoking.html.fr new file mode 100644 index 0000000000..54666bd9f3 --- /dev/null +++ b/htdocs/manual/invoking.html.fr @@ -0,0 +1,168 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--English revision 1.34 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Démarrage d'Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Démarrage d'Apache</h1> + + <ul> + <li><a href="#windows">Démarrage d'Apache sur + Windows</a></li> + + <li> + <a href="#unix">Démarrage d'Apache sur Unix</a> + + <ul> + <li><a href="#errors">Erreurs durant + l'initialisation</a></li> + + <li><a href="#boot">Démarrage à + l'initialisation du système</a></li> + + <li><a href="#info">Informations + complémentaires</a></li> + </ul> + </li> + </ul> + <hr /> + + <h2><a id="windows" name="windows">Démarrage d'Apache + sur Windows</a></h2> + + <p>Sur Windows, Apache est normalement lancé en tant que + service sur Windows NT, ou en tant qu'application en mode + console sur Windows 95. Pour plus de détails, voir <a + href="windows.html#run">lancer Apache pour Windows</a>.</p> + + <h2>Démarrage d'Apache sur Unix</h2> + + <p>Sur Unix, le programme <code>httpd</code> est lancé + en tant que démon qui s'exécute en tâche de + fond pour traiter les requêtes. Il est possible + d'invoquer Apache par le démon Internet + <code>inetd</code> à chaque fois qu'une connexion au + service HTTP est faite (if faut pour cela utiliser la directive + <a href="mod/core.html#servertype">ServerType</a>) mais cela + n'est pas recommandé.</p> + + <p>Si le <a href="mod/core.html#port">Port</a> + spécifié dans le fichier de configuration est le + port par défaut 80 (ou tout autre port inérieur + à 1024), il est alors nécessaire d'avoir les + privilèges root pour lancer Apache. Une fois que + l'initialisation du serveur s'est achevée ainsi que + quelques activités préliminaires telles que + l'ouverture des fichiers de trace, le serveur lance un certain + nombre de processus <em>fils</em> ayant pour rôle + d'attendre et de répondre aux requêtes des + clients. Le processus père <code>httpd</code> continue + à s'exécuter avec les privilèges root, + mais les processus fils s'exécute sous un utilisateur + avec moins de privilèges. Ceci est contrôlé + par les directives de création de <a + href="server-wide.html#process">processus</a></p> + + <p>La première chose qu'<code>httpd</code> fait + lorsqu'il est appelé est de chercher et lire le <a + href="configuring.html">fichier de configuration</a> + <code>httpd.conf</code>. L'emplacement de ce fichier est + défini à la compilation, mais il est possible de + spécifier son emplacement à l'exécution en + utilisant l'option <code>-f</code>. Exemple :</p> + + <blockquote> + <code>/usr/local/apache/bin/httpd -f + /usr/local/apache/conf/httpd.conf</code> + </blockquote> + + <p>Comme alternative à l'appel direct de + l'exécutable <code>httpd</code> un script appelé + <a href="programs/apachectl.html">apachectl</a> est fourni qui + permet de contrôler le processus démon avec des + commandes simples telles que <code>apachectl start</code> ou + <code>apachectl stop</code>.</p> + + <p>Si tout ce passe correctement durant l'initialisation, le + serveur se détache du terminal et l'invite de commande + réapparaît presque immédiatement. Ceci + indique que le serveur est actif et s'exécute. Vous + pouvez utiliser un navigateur pour vous connecter au serveur et + voir la page de test située dans le répertoire <a + href="mod/core.html#documentroot">DocumentRoot</a> ainsi qu'une + copie locale de la documentation à partir d'un lien de + cette page.</p> + + <h3><a id="errors" name="errors">Erreurs durant + l'initialisation</a></h3> + + <p>Si Apache rencontre un problème fatal durant + l'initialisation, il écrira, avant de se terminer, un + message décrivant le problème, soit sur la + console, soit dans le fichier <a + href="mod/core.html#errorlog">ErrorLog</a>. Un des messages les + plus courants est "<code>Unable to bind to Port ...</code>". Ce + message est généralement dû à</p> + + <ul> + <li>une tentative de lancer le serveur sur un port + privilégié alors que vous n'êtes pas + connecté comme utilisateur root, ou à</li> + + <li>une tentative de lancer le serveur alors qu'une autre + instance d'Apache ou d'un autre serveur web est + déjà connectée à ce port.</li> + </ul> + + <p>Pour plus d'informations sur la correction des + problèmes, consultez la <a href="misc/FAQ.html">FAQ</a> + d'Apache.</p> + + <h3><a id="boot" name="boot">Démarrage à + l'initialisation du système</a></h3> + + <p>Si vous souhaitez que votre serveur continue à + s'exécuter après une relance du système, + vous devez ajouter un appel à <code>httpd</code> ou + <code>apachectl</code> dans votre fichier de lancement du + système (généralement + <code>rc.local</code> ou un fichier dans un répertoire + <code>rc.N</code>). Ceci lancera Apache sous l'utilisateur + root. Avant de le faire, vérifiez que votre serveur est + correctement configuré en termes de + sécurité et de restrictions d'accès. Le + script <code>apachectl</code> est conçu de + manière à ce qu'il soit directement lié + comme script d'initialisation, mais assurez vous qu'il + correspond aux besoins précis de votre + système.</p> + + <h3><a id="info" name="info">Informations + complémentaires</a></h3> + + <p>Des informations complémentaires sur les options en + ligne de commande d'<a href="programs/httpd.html">httpd</a> et + d'<a href="programs/apachectl.html">apachectl</a> ainsi que des + autres programmes d'assistance inclus avec le serveur, sont + disponibles à la page <a href="programs/">Serveur et + programmes d'assistance</a>. Il existe également une + documentation de tous les <a href="mod/">modules</a> inclus + dans la distribution Apache ainsi que les <a + href="mod/directives.html">directives</a> qu'ils + fournissent.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/invoking.html.html b/htdocs/manual/invoking.html.html new file mode 100644 index 0000000000..2817fc92a2 --- /dev/null +++ b/htdocs/manual/invoking.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="invoking.html.en" --> + diff --git a/htdocs/manual/invoking.html.ja.jis b/htdocs/manual/invoking.html.ja.jis new file mode 100644 index 0000000000..fbb79fb136 --- /dev/null +++ b/htdocs/manual/invoking.html.ja.jis @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache の開始</title> + + </head> + <!-- English Revision: 1.2 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache の開始</h1> + + <ul> + <li><a href="#windows">Apache を Windows で開始する</a></li> + + <li> + <a href="#unix">Apache を Unix で開始する</a> + + <ul> + <li><a href="#errors">開始時のエラ・踉薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■硼阡▽苳ぢブ・踉札隼粒薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蜴肬▽苳ぢ追加の霾薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鈔阯鵞瘢綵†蜴粹▽苳餐鞜竏を + Windows で開始する</a></h2> + + <p>Windows 紊任蓮草痺蒹ぢは通錙蜴粹坎旭穐仄蝟昭粡竚癈鷭п粐Ьぢではサ・踉札咼垢箸靴董怏鈔阯控妖蝟昭粡竚癈鷭п粐Ьぢではコンソ・踉札襯▲廛螢院ションとして孫圓気譴泙后海里海箸蓮鹿粡寂蝟赱齠洲痲筵娼貯范蜴ぢプラットフォ・踉札爐砲弔い討牢袷瓦砲呂△討呂泙蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼楮戮踉氏鱚羹†蜴粹譯鴣遐怏鈔阯用の Apache を孫圓垢鹿粡寂蝟赱齠洲痲筵娼を見てください。</p> + + <h2><a id="unix" name="unix">Apache を Unix で開始する</a></h2> + + <p>Unix では <a href="programs/httpd.html">httpd</a> + プログラムはバックグラウ瘢雹ンドで継続的に動作してリクエストを処理する + デ・踉札皀鵑箸靴豆踉斬行されます。Apache は <a + href="mod/core.html#servertype">ServerType</a> + ディレクティブによってHTTP サ・踉札咼垢悗寮楝海里燭咾鹿粡寂蝟赱齠洲痲筵娼インタ・踉札優奪肇如モン <code>inetd</code> から起動する事も + 可能ですがこれは推気譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢもし設定ファイルで指定した<a href="mod/core.html#port">ポ・踉札が + デフォルトの 80 (もしくは 1024 未満のポ・踉札箸里匹譴であるなら、 + この特権ポ・踉札箸縫丱ぅ鵐匹任襪茲逅擦法草痺蒹ぢの起動には root + 権限が必要です。サ・踉札个▲蹈哀侫.ぅ襪魍覆匹い弔猗瞭虻遒鮟┐襪函鹿粡寂蝟赱齠洲痲筵娼待ち韻謄薀ぅ▲鵐箸離螢┘好箸鳳垢纃子</em>プロセスをいくつか + スタ・踉札箸靴泙后瓮ぅ鵑踉祉閼絋苳肢鞣閼絋苳プロセスは root + ユ・踉札兇箸靴篤阿海韻泙垢∋劵廛蹈札垢呂茲蠶磴じ造離罅ザとして動きます。 + これは Apache の<a + href="server-wide.html#process">プロセス生成ディレクティブ</a> + により制御されます。</p> + + <p><code>httpd</code> の起動時に最初にすることは<a + href="configuring.html">設定ファイル</a> <code>httpd.conf</code> + を見つけて読み込むことです。このファイルの位置はコンパイル時に設定されますが、 + コマンドラインオプション <code>-f</code> を使って孫垰鹿粡寂蝟赱齠洲痲筵娼その位置を指定することが可能です。</p> + + <blockquote> + <code>/usr/local/apache/bin/httpd -f + /usr/local/apache/conf/httpd.conf</code> + </blockquote> + + <p><code>httpd</code> バイナリを彫苳酸楜阿垢訛紊錣蠅踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就頏閾鱇逑鞜竏繝譬瘰痺蒹笏讀踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢと呼ばれるシェルスクリプトを使う瘢雹ことも出来ます。これによりデ・踉札皀鵐廛蹈札垢鹿粡寂蝟赱齠洲痲筵娼竢粤瘰痺蒹笏齡癇熙踉晒竢粤ぢや <code>apachectl stop</code> + などの簡単なコマンドによって制御することができます。</p> + + <p>開始の段階がすべてう瘢雹まく行けば、サ・踉札个魯拭ミナルを切り離し、 + コマンドプロンプトがほぼ一瞬で戻って来ます。これは、 + サ・踉札个虻遒靴討い襪海箸鬢踉雑しています。その後で、ブラウ瘢雹ザを使用して + サ・踉札个棒楝海掘蓿繙就迴箝竢鱚譯粹笊辣銓鳫阡▽苳残閭緕闖熙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクトリのテストペ・踉札犬笋修離據ジからリンクされた文書の + ロ・踉札襯灰圈を見ることができます。</p> + + <h3><a id="errors" name="errors">開始時のエラ・踉界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮もし Apache が開始時に致命的な問題に遭う瘢雹と、 + 終了する前に問題を説明するメッセ・踉札犬鬟灰鵐宗ルまたは + <a href="mod/core.html#errorlog">ErrorLog</a> に書きだします。 + 最もよくあるエラ・踉札瓮奪察ジの一つは + "<code>Unable to bind to Port ...</code>" + です。このメッセ・踉札犬歪巳苳誌これらの原因があります:</p> + + <ul> + <li>root ユ・踉札兇箸靴謄蹈哀ぅ鵑靴討い覆せ貌淡▲檗トで + サ・踉札个鮖呂瓩茲逅擦箸靴殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚側苳擦鞜竏または側苳擦離逅札Д屮機バが既に同じポ・踉札箸鹿粡寂蝟赱齠洲痲筵娼バインドしている時にサ・踉札个鮖呂瓩茲逅擦箸靴拭薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢトラブルシュ・踉札謄鵐阿陸踉至順は、Apache + <a href="misc/FAQ.html">FAQ</a> を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就硼阡釶辣就硼阡▽苳ぢブ・踉札隼竜界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮システムのリブ・踉札噺紊砲皀機バを孫圓径海韻気擦燭う苳詞合は、 + <code>httpd</code> または <code>apachectl</code> + の呼び出しをシステムのスタ・踉札肇▲奪廛侫.ぅぢ標準では + <code>rc.local</code> または、<code>rc.N</code> + ディレクトリのファイル)に追加して王踉擦気ぁ海譴闖で Apache + を開始します。この設定をする前にセキュリティやアクセス制限が + サ・踉札个紡个靴禿擇棒瀋蠅気譴襪茲逅擦砲靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼竢粤瘰痺蒹笏讀踉晒竢粤ぢスクリプトは init + スクリプトとして彫苳酸椒螢鵐任襪茲逅擦棒澤廚気譴討い泙垢鹿粡寂蝟赱齠洲痲筵娼システムの正確な仕様を把握してから使用してください。</p> + + <h3><a id="info" name="info">追加の霾界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮サ・踉札个亡泙泙譴討い訛のサポ・踉札肇廛蹈哀薀爐汎瑛佑鹿粡寂蝟赱齠洲痲筵娼蓿繙就頏閾鱇逑鞣譬蔗筅踉晒瓲苳と + <a href="programs/apachectl.html">apachectl</a> + のコマンドラインオプションについての追加の霾鵑蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就頏閾鱇逑サ・踉札个肇汽檗トプログラム</a> + ペ・踉札犬覇踉至可能です。Apache 配布に含まれているすべての + <a href="mod/">モジュ・踉札ぢやそれにより提供される + <a href="mod/directives.html">ディレクティブ</a> + の文書もあります。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/keepalive.html.en b/htdocs/manual/keepalive.html.en new file mode 100644 index 0000000000..3f8ec14a60 --- /dev/null +++ b/htdocs/manual/keepalive.html.en @@ -0,0 +1,93 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Keep-Alive Support</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Keep-Alive Support</h1> + <hr /> + + <h2>What is Keep-Alive?</h2> + The Keep-Alive extension to HTTP, as defined by the + <code>HTTP/1.1</code> draft, allows persistent connections. + These long-lived HTTP sessions allow multiple requests to be + send over the same TCP connection, and in some cases have been + shown to result in an almost 50% speedup in latency times for + HTML documents with lots of images. + + <h2>Enabling Keep-Alive Support</h2> + Apache 1.1 comes with Keep-Alive support on by default, however + there are some directives you can use to modify Apache's + behavior: + + <p><strong>Note</strong>: Apache 1.2 uses a different syntax + for the <a href="mod/core.html#keepalive">KeepAlive</a> + directive.</p> + + <h3>KeepAlive</h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> KeepAlive + <em>max-requests</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>KeepAlive + 5</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p>This directive enables Keep-Alive support. Set + <em>max-requests</em> to the maximum number of requests you + want Apache to entertain per connection. A limit is imposed to + prevent a client from hogging your server resources. Set this + to <code>0</code> to disable support.</p> + + <h3>KeepAliveTimeout</h3> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> KeepAliveTimeout + <em>seconds</em><br /> + <a href="mod/directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>KeepAliveTimeout + 15</code><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core + + <p>The number of seconds Apache will wait for a subsequent + request before closing the connection. Once a request has been + received, the timeout value specified by the <a + href="mod/core.html#timeout"><code>Timeout</code></a> directive + applies.</p> + + <h2>When Keep-Alive Is Used</h2> + In order for Keep-Alive support to be used, first the browser + must support it. Many current browsers, including Netscape + Navigator 2.0, and Spyglass Mosaic-based browsers (including + Microsoft Internet Explorer) do. Note, however, that some + Windows 95-based browsers misbehave with Keep-Alive-supporting + servers; they may occasionally hang on a connect. This has been + observed with several Windows browsers, and occurs when + connecting to any Keep-Alive server, not just Apache. Netscape + 3.0b5 and later versions are known to work around this problem. + + + <p>However, Keep-Alive support only is active with files where + the length is known beforehand. This means that most CGI + scripts, server-side included files and directory listings will + not use the Keep-Alive protocol. While this should be + completely transparent to the end user, it is something the + web-master may want to keep in mind.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/keepalive.html.html b/htdocs/manual/keepalive.html.html new file mode 100644 index 0000000000..4a89f0d9c4 --- /dev/null +++ b/htdocs/manual/keepalive.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="keepalive.html.en" --> + diff --git a/htdocs/manual/keepalive.html.ja.jis b/htdocs/manual/keepalive.html.ja.jis new file mode 100644 index 0000000000..c1b8c42e70 --- /dev/null +++ b/htdocs/manual/keepalive.html.ja.jis @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache の keep-alive サポ・踉札蜚跂鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩鱚皷闔艮鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆草痺蒹ぢでサポ・踉札箸垢繞隲瘡蝟絋踉晒莟鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢諷辮跚ぢとは</h2> + <code>HTTP/1.1</code> ドラフトに定義されているよう瘢雹に、HTTP + の拡張機能である keep-alive によって持続的なコネクションが可能になります。 + これらの持続的な HTTP セッションのおかげで、複数のリクエストを同一の + TCP コネクションを経由して送信することが可能となります。 + 多数のイメ・踉札犬鯏修衂佞韻討△塒ドキュメントを送信するときに、 + 豺腓砲茲辰討蓮圓岨屬曚哀ぢとなるほど速くなることが┐気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢妹辮跚ぢのサポ・踉札箸鰺砲垢王苳纂蝟昭粡竚癈鷭п粐Ь鞜竏窺ではデフォルトで keep-alive のサポ・踉札箸詫砲覆辰討い泙后鹿粡寂蝟赱齠洲痲筵娼これだけではなく、Apache の動作を変更できるディレクティブが + 以王踉擦里茲逅擦砲い弔△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ注意</strong>: Apache 1.2 では <a + href="mod/core.html#keepalive">KeepAlive</a> + ディレクティブの構文は異なります。</p> + + <h3>KeepAlive</h3> + <a href="mod/directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> KeepAlive + <em>max-requests</em><br /> + <a href="mod/directive-dict.html#default" + rel="help"><strong>デフォルト:</strong></a> <code>KeepAlive + 5</code><br /> + <a href="mod/directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥綣蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このディレクティブで keep-alive のサポ・踉札箸鰺砲靴泙后鹿粡寂蝟赱齠洲痲筵娼纃轣鱚髟纉蹙苳については Apache に影譴気擦燭鹿粡寂蝟赱齠洲痲筵娼コネクション当たりのリクエストの最大数を設定してください。 + 制限を設けてクライアントにサ・踉札个了餮擦鯱家颪気擦覆い茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼サポ・踉札箸鯡妓砲垢襪砲呂海旅猝椶踉祉閼絋苳三閼絋苳を設定してください。</p> + + <h3>KeepAliveTimeout</h3> + <a href="mod/directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> KeepAliveTimeout + <em>seconds</em><br /> + <a href="mod/directive-dict.html#default" + rel="help"><strong>デフォルト:</strong></a> <code>KeepAliveTimeout + 15</code><br /> + <a href="mod/directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥綣蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢに後続のリクエストが到着するのを <em>seconds</em> + 秒だけ待たせた後、(リクエストが到着しない豺腓砲蝟昭粡竚癈鷭п粐Ьぢコネクションをクロ・踉札困靴泙后螢┘好箸鬢踉歯信した豺腓砲蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯辣阨槇竢粤夂辣阨熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブで指定した timeout 値を適用します。</p> + + <h2>keep-alive が使用される豺王苳纂蝟昭粡竚癈鷭п粐Ь繞隲瘡蝟サポ・踉札箸鮖藩僂垢襪砲蓮△泙此▲屮薀逅札兇繞隲瘡蝟をサポ・踉札鹿粡寂蝟赱齠洲痲筵娼していなければなりません。現在の多くのブラウ瘢雹ザ、例えば Netscape Navigator + 2.0 や (Microsoft Internet Explorer などの) Spyglass Mosaic + に基づくブラウ瘢雹ザはこの機能をサポ・踉札箸靴討い泙后靴掘怏鈔阯控鹿粡寂蝟赱齠洲痲筵娼ベ・踉札垢里い弔離屮薀逅札兇蓮諷辮跚ぢをサポ・踉札箸靴討い襯機バに + 対して誤動作することに注意してください。これらのブラウ瘢雹ザはコネクト + 時にハングすることがあります。この誤動作はいくつかの Windows + のブラウ瘢雹ザに見られ、Apache だけではなく keep-alive をサポ・踉札箸垢鹿粡寂蝟赱齠洲痲筵娼すべてのサ・踉札个肇灰優箸垢襪箸鉾犬靴泙后励竅鞳盖鹿粡寂蝟赱齠洲痲筵娼以降のバ・踉札献腑鵑砲弔い討呂海量簑蠅悗梁仆茲覆気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢただし、 keep-alive サポ・踉札箸砲覆襪里蓮鹿粡寂蝟赱齠洲痲筵娼あらかじめ長さが判明しているファイルに対してのみです。 + そのため、大部分の CGI スクリプト、サ・踉札丱汽ぅ疋ぅ鵐襦ドファイル、 + ディレクトリリストでは、keep-alive プロトコルを使用しないことになります。 + これはエンドユ・踉札兇砲牢袷瓦貌疆砲覆辰討い襪戮發里任垢鹿粡寂蝟赱齠洲痲筵娼ウ瘢雹ェブマスタは知っておいた方が良いことでしょう瘢雹。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/location.html.en b/htdocs/manual/location.html.en new file mode 100644 index 0000000000..beb55a4051 --- /dev/null +++ b/htdocs/manual/location.html.en @@ -0,0 +1,65 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Access Control by URL</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Access Control by URL</h1> + + <h2><a id="location" name="location">The + <code><Location></code> Directive</a></h2> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Location <em>URL + prefix</em>><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + + + <p>The <Location> directive provides for access control + by URL. It is comparable to the <a + href="mod/core.html#directory"><Directory></a> directive, + and should be matched with a </Location> directive. + Directives that apply to the URL given should be listed between + them. <code><Location></code> sections are processed in + the order they appear in the configuration file, after the + <Directory> sections and <code>.htaccess</code> files are + read.</p> + + <p>Note that, due to the way HTTP functions, <em>URL + prefix</em> should, save for proxy requests, be of the form + <code>/path/</code>, and should not include the + <code>http://servername</code>. It doesn't necessarily have to + protect a directory (it can be an individual file, or a number + of files), and can include wild-cards. In a wild-card string, + `?' matches any single character, and `*' matches any sequences + of characters.</p> + + <p>This functionality is especially useful when combined with + the <code><a + href="mod/mod_mime.html#sethandler">SetHandler</a></code> + directive. For example, to enable status requests, but allow + them only from browsers at foo.com, you might use:</p> +<pre> + <Location /status> + SetHandler server-status + Order Deny,Allow + Deny from all + Allow from .foo.com + </Location> +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/location.html.html b/htdocs/manual/location.html.html new file mode 100644 index 0000000000..4267dff23a --- /dev/null +++ b/htdocs/manual/location.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="location.html.en" --> + diff --git a/htdocs/manual/location.html.ja.jis b/htdocs/manual/location.html.ja.jis new file mode 100644 index 0000000000..8d72958472 --- /dev/null +++ b/htdocs/manual/location.html.ja.jis @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + <title>URL でのアクセス制御</title> + </head> + <!-- English revision: 1.15 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">URL でのアクセス制御</h1> + + <h2><a id="location" name="location"> + <code><Location></code> ディレクティブ</a></h2> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <Location + <em>URL プレフィクス</em>><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑ぢコア<br /> + + <p><Location> ディレクティブは URL + でのアクセス制御を提供します。これは<a + href="mod/core.html#directory"><Directory></a> + ディレクティブと匹敵し、</Location> と併せて使います。 + 指定された URL + に対して適用させるディレクティブは、それらの間に列挙します。 + <code><Location></code> セクションは <Directory> + セクション及び <code>.htaccess</code> + ファイルが読まれた後、設定ファイルに現れた順に処理されます。</p> + + <p>HTTP の動作方法のため、<em>URL + 接頭蹙苳ぢは、プロキシリクエストを除いて、<code>/path/</code> という瘢雹 + 形阿砲覆辰討い襪戮如竢粤蔗痕纈鴈瘢絋踉晒竢粤ぢを含めていは + いけないことに注意してください。また、必ずしもディレクトリ + を保護する必要があるわけではなく (個々のファイル、 + または多くのファイルでも構いません)、 + ワイルドカ・踉札匹魎泙爐海箸發任泙后錺ぅ襯疋ドについては、 + `?' は何か一文字、`*' はすべての文字列にマッチします。</p> + + <p>この機能は、<code><a + href="mod/mod_mime.html#sethandler">SetHandler</a></code> + ディレクティブと組み合わせて使う瘢雹と特に有益です。 + 例えば、ステ・踉札織考弋瓩魏椎修砲垢襪韻譴匹癲肬鎬竢躰蝟昭粡竚癈鷭п粐Ьぢから来たブラウ瘢雹ザだけに許可を限定したい豺腓楼焚を使う瘢雹ことができます:</p> +<pre> + <Location /status> + SetHandler server-status + Order Deny,Allow + Deny from all + Allow from .foo.com + </Location> +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/logs.html b/htdocs/manual/logs.html new file mode 100644 index 0000000000..cd4ea09ac8 --- /dev/null +++ b/htdocs/manual/logs.html @@ -0,0 +1,650 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Log Files - Apache HTTP Server</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Log Files</h1> + + <p>In order to effectively manage a web server, it is necessary + to get feedback about the activity and performance of the + server as well as any problems that may be occuring. The Apache + HTTP Server provides very comprehensive and flexible logging + capabilities. This document describes how to configure its + logging capabilities, and how to understand what the logs + contain.</p> + + <ul> + <li><a href="#security">Security Warning</a></li> + + <li><a href="#errorlog">Error Log</a></li> + + <li> + <a href="#accesslog">Access Log</a> + + <ul> + <li><a href="#common">Common Log Format</a></li> + + <li><a href="#combined">Combined Log Format</a></li> + + <li><a href="#multiple">Multiple Access Logs</a></li> + + <li><a href="#conditional">Conditional Logging</a></li> + </ul> + </li> + + <li><a href="#rotation">Log Rotation</a></li> + + <li><a href="#piped">Piped Logs</a></li> + + <li><a href="#virtualhosts">Virtual Hosts</a></li> + + <li> + <a href="#other">Other Log Files</a> + + <ul> + <li><a href="#pidfile">PID File</a></li> + + <li><a href="#scriptlog">Script Log</a></li> + + <li><a href="#rewritelog">Rewrite Log</a></li> + </ul> + </li> + </ul> + <hr /> + + <h2><a id="security" name="security">Security Warning</a></h2> + + <p>Anyone who can write to the directory where Apache is + writing a log file can almost certainly gain access to the uid + that the server is started as, which is normally root. Do + <em>NOT</em> give people write access to the directory the logs + are stored in without being aware of the consequences; see the + <a href="misc/security_tips.html">security tips</a> document + for details.</p> + + <p>In addition, log files may contain information supplied + directly by the client, without escaping. Therefore, it is + possible for malicious clients to insert control-characters in + the log files, so care must be taken in dealing with raw + logs.</p> + <hr /> + + <h2><a id="errorlog" name="errorlog">Error Log</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a href="mod/core.html#errorlog">ErrorLog</a><br /> + <a href="mod/core.html#loglevel">LogLevel</a> </td> + </tr> + </table> + + <p>The server error log, whose name and location is set by the + <a href="mod/core.html#errorlog">ErrorLog</a> directive, is the + most important log file. This is the place where Apache httpd + will send diagnostic information and record any errors that it + encounters in processing requests. It is the first place to + look when a problem occurs with starting the server or with the + operation of the server, since it will often contain details of + what went wrong and how to fix it.</p> + + <p>The error log is usually written to a file (typically + <code>error_log</code> on unix systems and + <code>error.log</code> on Windows and OS/2). On unix systems it + is also possible to have the server send errors to + <code>syslog</code> or <a href="#piped">pipe them to a + program</a>.</p> + + <p>The format of the error log is relatively free-form and + descriptive. But there is certain information that is contained + in most error log entries. For example, here is a typical + message.</p> + + <blockquote> + <code>[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] + client denied by server configuration: + /export/home/live/ap/htdocs/test</code> + </blockquote> + + <p>The first item in the log entry is the date and time of the + message. The second entry lists the severity of the error being + reported. The <a href="mod/core.html#loglevel">LogLevel</a> + directive is used to control the types of errors that are sent + to the error log by restricting the severity level. The third + entry gives the IP address of the client that generated the + error. Beyond that is the message itself, which in this case + indicates that the server has been configured to deny the + client access. The server reports the file-system path (as + opposed to the web path) of the requested document.</p> + + <p>A very wide variety of different messages can appear in the + error log. Most look similar to the example above. The error + log will also contain debugging output from CGI scripts. Any + information written to <code>stderr</code> by a CGI script will + be copied directly to the error log.</p> + + <p>It is not possible to customize the error log by adding or + removing information. However, error log entries dealing with + particular requests have corresponding entries in the <a + href="#accesslog">access log</a>. For example, the above example + entry corresponds to an access log entry with status code 403. + Since it is possible to customize the access log, you can + obtain more information about error conditions using that log + file.</p> + + <p>During testing, it is often useful to continuously monitor + the error log for any problems. On unix systems, you can + accomplish this using:</p> + + <blockquote> + <code>tail -f error_log</code> + </blockquote> + <hr /> + + <h2><a id="accesslog" name="accesslog">Access Log</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="mod/mod_log_config.html">mod_log_config</a><br /> + </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a + href="mod/mod_log_config.html#customlog">CustomLog</a><br /> + <a + href="mod/mod_log_config.html#logformat">LogFormat</a><br /> + <a href="mod/mod_setenvif.html#setenvif">SetEnvIf</a> + </td> + </tr> + </table> + + <p>The server access log records all requests processed by the + server. The location and content of the access log are + controlled by the <a + href="mod/mod_log_config.html#customlog">CustomLog</a> + directive. The <a + href="mod/mod_log_config.html#logformat">LogFormat</a> + directive can be used to simplify the selection of the contents + of the logs. This section describes how to configure the server + to record information in the access log.</p> + + <p>Of course, storing the information in the access log is only + the start of log management. The next step is to analyze this + information to produce useful statistics. Log analysis in + general is beyond the scope of this document, and not really + part of the job of the web server itself. For more information + about this topic, and for applications which perform log + analysis, check the <a + href="http://dmoz.org/Computers/Software/Internet/Site_Management/Log_Analysis/"> + Open Directory</a> or <a + href="http://dir.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Servers/Log_Analysis_Tools/"> + Yahoo</a>.</p> + + <p>Various versions of Apache httpd have used other modules and + directives to control access logging, including + mod_log_referer, mod_log_agent, and the + <code>TransferLog</code> directive. The <code>CustomLog</code> + directive now subsumes the functionality of all the older + directives.</p> + + <p>The format of the access log is highly configurable. The + format is specified using a <a + href="mod/mod_log_config.html#formats">format string</a> that + looks much like a C-style printf(1) format string. Some + examples are presented in the next sections. For a complete + list of the possible contents of the format string, see the <a + href="mod/mod_log_config.html">mod_log_config + documentation</a>.</p> + + <h3><a id="common" name="common">Common Log Format</a></h3> + + <p>A typical configuration for the access log might look as + follows.</p> + + <blockquote> + <code>LogFormat "%h %l %u %t \"%r\" %>s %b" common<br /> + CustomLog logs/access_log common</code> + </blockquote> + + <p>This defines the <em>nickname</em> <code>common</code> and + associates it with a particular log format string. The format + string consists of percent directives, each of which tell the + server to log a particular piece of information. Literal + characters may also be placed in the format string and will be + copied directly into the log output. The quote character + (<code>"</code>) must be escaped by placing a back-slash before + it to prevent it from being interpreted as the end of the + format string. The format string may also contain the special + control characters "<code>\n</code>" for new-line and + "<code>\t</code>" for tab.</p> + + <p>The <code>CustomLog</code> directive sets up a new log file + using the defined <em>nickname</em>. The filename for the + access log is relative to the <a + href="mod/core.html#serverroot">ServerRoot</a> unless it begins + with a slash.</p> + + <p>The above configuration will write log entries in a format + known as the Common Log Format (CLF). This standard format can + be produced by many different web servers and read by many log + analysis programs. The log file entries produced in CLF will + look something like this:</p> + + <blockquote> + <code>127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326</code> + </blockquote> + + <p>Each part of this log entry is described below.</p> + + <dl> + <dt><code>127.0.0.1</code> (<code>%h</code>)</dt> + + <dd>This is the IP address of the client (remote host) which + made the request to the server. If <a + href="mod/core.html#hostnamelookups">HostnameLookups</a> is + set to <code>On</code>, then the server will try to determine + the hostname and log it in place of the IP address. However, + this configuration is not recommended since it can + significantly slow the server. Instead, it is best to use a + log post-processor such as <a + href="programs/logresolve.html">logresolve</a> to determine + the hostnames. The IP address reported here is not + necessarily the address of the machine at which the user is + sitting. If a proxy server exists between the user and the + server, this address will be the address of the proxy, rather + than the originating machine.</dd> + + <dt><code>-</code> (<code>%l</code>)</dt> + + <dd>The "hyphen" in the output indicates that the requested + piece of information is not available. In this case, the + information that is not available is the RFC 1413 identity of + the client determined by <code>identd</code> on the clients + machine. This information is highly unreliable and should + almost never be used except on tightly controlled internal + networks. Apache httpd will not even attempt to determine + this information unless <a + href="mod/core.html#identitycheck">IdentityCheck</a> is set + to <code>On</code>.</dd> + + <dt><code>frank</code> (<code>%u</code>)</dt> + + <dd>This is the userid of the person requesting the document + as determined by HTTP authentication. The same value is + typically provided to CGI scripts in the + <code>REMOTE_USER</code> environment variable. If the status + code for the request (see below) is 401, then this value + should not be trusted because the user is not yet + authenticated. If the document is not password protected, + this entry will be "<code>-</code>" just like the previous + one.</dd> + + <dt><code>[10/Oct/2000:13:55:36 -0700]</code> + (<code>%t</code>)</dt> + + <dd> + The time that the server finished processing the request. + The format is: + + <blockquote> + <code>[day/month/year:hour:minute:second zone]<br /> + day = 2*digit<br /> + month = 3*letter<br /> + year = 4*digit<br /> + hour = 2*digit<br /> + minute = 2*digit<br /> + second = 2*digit<br /> + zone = (`+' | `-') 4*digit</code> + </blockquote> + It is possible to have the time displayed in another format + by specifying <code>%{format}t</code> in the log format + string, where <code>format</code> is as in + <code>strftime(3)</code> from the C standard library. + </dd> + + <dt><code>"GET /apache_pb.gif HTTP/1.0"</code> + (<code>\"%r\"</code>)</dt> + + <dd>The request line from the client is given in double + quotes. The request line contains a great deal of useful + information. First, the method used by the client is + <code>GET</code>. Second, the client requested the resource + <code>/apache_pb.gif</code>, and third, the client used the + protocol <code>HTTP/1.0</code>. It is also possible to log + one or more parts of the request line independently. For + example, the format string "<code>%m %U%q %H</code>" will log + the method, path, query-string, and protocol, resulting in + exactly the same output as "<code>%r</code>".</dd> + + <dt><code>200</code> (<code>%>s</code>)</dt> + + <dd>This is the status code that the server sends back to the + client. This information is very valuable, because it reveals + whether the request resulted in a successful response (codes + beginning in 2), a redirection (codes beginning in 3), an + error caused by the client (codes beginning in 4), or an + error in the server (codes beginning in 5). The full list of + possible status codes can be found in the <a + href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">HTTP + specification</a> (RFC2616 section 10).</dd> + + <dt><code>2326</code> (<code>%b</code>)</dt> + + <dd>The last entry indicates the size of the object returned + to the client, not including the response headers. If no + content was returned to the client, this value will be + "<code>-</code>". To log "<code>0</code>" for no content, use + <code>%B</code> instead.</dd> + </dl> + + <h4><a id="combined" name="combined">Combined Log + Format</a></h4> + + <p>Another commonly used format string is called the Combined + Log Format. It can be used as follows.</p> + + <blockquote> + <code>LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\"" combined<br /> + CustomLog log/acces_log combined</code> + </blockquote> + + <p>This format is exactly the same as the Common Log Format, + with the addition of two more fields. Each of the additional + fields uses the percent-directive + <code>%{<em>header</em>}i</code>, where <em>header</em> can be + any HTTP request header. The access log under this format will + look like:</p> + + <blockquote> + <code>127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 + "http://www.example.com/start.html" "Mozilla/4.08 [en] + (Win98; I ;Nav)"</code> + </blockquote> + + <p>The additional fields are:</p> + + <dl> + <dt><code>"http://www.example.com/start.html"</code> + (<code>\"%{Referer}i\"</code>)</dt> + + <dd>The "Referer" (sic) HTTP request header. This gives the + site that the client reports having been referred from. (This + should be the page that links to or includes + <code>/apache_pb.gif</code>).</dd> + + <dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code> + (<code>\"%{User-agent}i\"</code>)</dt> + + <dd>The User-Agent HTTP request header. This is the + identifying information that the client browser reports about + itself.</dd> + </dl> + + <h3><a id="multiple" name="multiple">Multiple Access + Logs</a></h3> + + <p>Multiple access logs can be created simply by specifying + multiple <code>CustomLog</code> directives in the configuration + file. For example, the following directives will create three + access logs. The first contains the basic CLF information, + while the second and third contain referer and browser + information. The last two <code>CustomLog</code> lines show how + to mimic the effects of the <code>ReferLog</code> and + <code>AgentLog</code> directives.</p> + + <blockquote> + <code>LogFormat "%h %l %u %t \"%r\" %>s %b" common<br /> + CustomLog logs/access_log common<br /> + CustomLog logs/referer_log "%{Referer}i -> %U"<br /> + CustomLog logs/agent_log "%{User-agent}i"</code> + </blockquote> + + <p>This example also shows that it is not necessary to define a + nickname with the <code>LogFormat</code> directive. Instead, + the log format can be specified directly in the + <code>CustomLog</code> directive.</p> + + <h3><a id="conditional" name="conditional">Conditional + Logging</a></h3> + + <p>There are times when it is convenient to exclude certain + entries from the access logs based on characteristics of the + client request. This is easily accomplished with the help of <a + href="env.html">environment variables</a>. First, an + environment variable must be set to indicate that the request + meets certain conditions. This is usually accomplished with <a + href="mod/mod_setenvif.html#setenvif">SetEnvIf</a>. Then the + <code>env=</code> clause of the <code>CustomLog</code> + directive is used to include or exclude requests where the + environment variable is set. Some examples:</p> + + <blockquote> + <code># Mark requests from the loop-back interface<br /> + SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog<br /> + # Mark requests for the robots.txt file<br /> + SetEnvIf Request_URI "^/robots\.txt$" dontlog<br /> + # Log what remains<br /> + CustomLog logs/access_log common env=!dontlog</code> + </blockquote> + + <p>As another example, consider logging requests from + english-speakers to one log file, and non-english speakers to a + different log file.</p> + + <blockquote> + <code>SetEnvIf Accept-Language "en" english<br /> + CustomLog logs/english_log common env=english<br /> + CustomLog logs/non_english_log common env=!english</code> + </blockquote> + + <p>Although we have just shown that conditional logging is very + powerful and flexibly, it is not the only way to control the + contents of the logs. Log files are more useful when they + contain a complete record of server activity. It is often + easier to simply post-process the log files to remove requests + that you do not want to consider.</p> + <hr /> + + <h2><a id="rotation" name="rotation">Log Rotation</a></h2> + + <p>On even a moderately busy server, the quantity of + information stored in the log files is very large. The access + log file typically grows 1 MB or more per 10,000 requests. It + will consequently be necessary to periodically rotate the log + files by moving or deleting the existing logs. This cannot be + done while the server is running, because Apache will continue + writing to the old log file as long as it holds the file open. + Instead, the server must be <a + href="stopping.html">restarted</a> after the log files are + moved or deleted so that it will open new log files.</p> + + <p>By using a <em>graceful</em> restart, the server can be + instructed to open new log files without losing any existing or + pending connections from clients. However, in order to + accomplish this, the server must continue to write to the old + log files while it finishes serving old requests. It is + therefore necessary to wait for some time after the restart + before doing any processing on the log files. A typical + scenario that simply rotates the logs and compresses the old + logs to save space is:</p> + + <blockquote> + <code>mv access_log access_log.old<br /> + mv error_log error_log.old<br /> + apachectl graceful<br /> + sleep 600<br /> + gzip access_log.old error_log.old</code> + </blockquote> + + <p>Another way to perform log rotation is using <a + href="#piped">piped logs</a> as discussed in the next + section.</p> + <hr /> + + <h2><a id="piped" name="piped">Piped Logs</a></h2> + + <p>Apache httpd is capable of writing error and access log + files through a pipe to another process, rather than directly + to a file. This capability dramatically increases the + flexibility of logging, without adding code to the main server. + In order to write logs to a pipe, simply replace the filename + with the pipe character "<code>|</code>", followed by the name + of the executable which should accept log entries on its + standard input. Apache will start the piped-log process when + the server starts, and will restart it if it crashes while the + server is running. (This last feature is why we can refer to + this technique as "reliable piped logging".)</p> + + <p>Piped log processes are spawned by the parent Apache httpd + process, and inherit the userid of that process. This means + that piped log programs usually run as root. It is therefore + very important to keep the programs simple and secure.</p> + + <p>One important use of piped logs is to allow log rotation + without having to restart the server. The Apache HTTP Server + includes a simple program called <a + href="programs/rotatelogs.html">rotatelogs</a> for this + purpose. For example, to rotate the logs every 24 hours, you + can use:</p> + + <blockquote> + <code>CustomLog "|/usr/local/apache/bin/rotatelogs + /var/log/access_log 86400" common</code> + </blockquote> + + <p>A similar, but much more flexible log rotation program + called <a href="http://www.cronolog.org/">cronolog</a> + is available at an external site.</p> + + <p>As with conditional logging, piped logs are a very powerful + tool, but they should not be used where a simpler solution like + off-line post-processing is available.</p> + <hr /> + + <h2><a id="virtualhosts" name="virtualhosts">Virtual + Hosts</a></h2> + + <p>When running a server with many <a href="vhosts/">virtual + hosts</a>, there are several options for dealing with log + files. First, it is possible to use logs exactly as in a + single-host server. Simply by placing the logging directives + outside the <code><VirtualHost></code> sections in the + main server context, it is possible to log all requests in the + same access log and error log. This technique does not allow + for easy collection of statistics on individual virtual + hosts.</p> + + <p>If <code>CustomLog</code> or <code>ErrorLog</code> + directives are placed inside a <code><VirtualHost></code> + section, all requests or errors for that virtual host will be + logged only to the specified file. Any virtual host which does + not have logging directives will still have its requests sent + to the main server logs. This technique is very useful for a + small number of virtual hosts, but if the number of hosts is + very large, it can be complicated to manage. In addition, it + can often create problems with <a + href="vhosts/fd-limits.html">insufficient file + descriptors</a>.</p> + + <p>For the access log, there is a very good compromise. By + adding information on the virtual host to the log format + string, it is possible to log all hosts to the same log, and + later split the log into individual files. For example, + consider the following directives.</p> + + <blockquote> + <code>LogFormat "%v %l %u %t \"%r\" %>s %b" + comonvhost<br /> + CustomLog logs/access_log comonvhost</code> + </blockquote> + + <p>The <code>%v</code> is used to log the name of the virtual + host that is serving the request. Then a program like <a + href="programs/other.html">split-logfile</a> can be used to + post-process the access log in order to split it into one file + per virtual host.</p> + + <p>Unfortunately, no similar technique is available for the + error log, so you must choose between mixing all virtual hosts + in the same error log and using one error log per virtual + host.</p> + <hr /> + + <h2><a id="other" name="other">Other Log Files</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>Related Modules</strong><br /> + <br /> + <a href="mod/mod_cgi.html">mod_cgi</a><br /> + <a href="mod/mod_rewrite.html">mod_rewrite</a> </td> + + <td valign="top"><strong>Related Directives</strong><br /> + <br /> + <a href="mod/core.html#pidfile">PidFile</a><br /> + <a + href="mod/mod_rewrite.html#RewriteLog">RewriteLog</a><br /> + <a + href="mod/mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</a><br /> + <a href="mod/mod_cgi.html#scriptlog">ScriptLog</a><br /> + <a + href="mod/mod_cgi.html#scriptloglength">ScriptLogLength</a><br /> + <a + href="mod/mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a> + </td> + </tr> + </table> + + <h3><a id="pidfile" name="pidfile">PID File</a></h3> + + <p>On startup, Apache httpd saves the process id of the parent + httpd process to the file <code>logs/httpd.pid</code>. This + filename can be changed with the <a + href="mod/core.html#pidfile">PidFile</a> directive. The + process-id is for use by the administrator in restarting and + terminating the daemon by sending signals to the parent + process; on Windows, use the -k command line option instead. + For more information see the <a href="stopping.html">Stopping + and Restarting</a> page.</p> + + <h3><a id="scriptlog" name="scriptlog">Script Log</a></h3> + + <p>In order to aid in debugging, the <a + href="mod/mod_cgi.html#scriptlog">ScriptLog</a> directive + allows you to record the input to and output from CGI scripts. + This should only be used in testing - not for live servers. + More information is available in the <a + href="mod/mod_cgi.html">mod_cgi documentation</a>.</p> + + <h3><a id="rewritelog" name="rewritelog">Rewrite Log</a></h3> + + <p>When using the powerful and complex features of <a + href="mod/mod_rewrite.html">mod_rewrite</a>, it is almost + always necessary to use the <a + href="mod/mod_rewrite.html#RewriteLog">RewriteLog</a> to help + in debugging. This log file produces a detailed analysis of how + the rewriting engine transforms requests. The level of detail + is controlled by the <a + href="mod/mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</a> + directive.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/man-template.html b/htdocs/manual/man-template.html new file mode 100644 index 0000000000..2203a16e98 --- /dev/null +++ b/htdocs/manual/man-template.html @@ -0,0 +1,101 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_foobar</title> + </head> + <!-- read and delete all blockquotes, and this comment --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_foobar</h1> + + <blockquote> + <em>Add this file as a link in mod/index.html</em> + </blockquote> + + <p>This module is contained in the <code>mod_foobar.c</code> + file, and <strong>is/is not</strong> compiled in by default. It + provides for <strong>the foobar feature</strong>. Any document + with the mime type <samp>foo/bar</samp> will be processed by + this module.</p> + + <blockquote> + <em>Add the magic mime type to the list in + magic_types.html</em> + </blockquote> + + <h2>Summary</h2> + + <p><em>General module documentation here.</em></p> + + <h2>Directives</h2> + + <ul> + <li><a href="#adirective">ADirective</a></li> + </ul> + + <blockquote> + <em>Add these directives to the list in directives.html</em> + </blockquote> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="adirective" name="adirective">ADirective + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ADirective <em>some + args</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <samp>ADirective + default value</samp><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> context-list<br /> + </p> + + <blockquote> + <em>context-list is where this directive can appear; allowed: + server config, virtual host, directory, .htaccess</em> + </blockquote> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> override <br /> + + + <blockquote> + <em>required if the directive is allowed in .htaccess files; + the AllowOverride option that allows the directive.</em> + </blockquote> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> status <br /> + + + <blockquote> + <em>Core if in core apache, Base if in one of the standard + modules, Extension if in an extension module (not compiled in + by default) or Experimental</em> + </blockquote> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_foobar <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> compatibility + notes + + <blockquote> + <em>Describe any compatibility issues, such as "Only + available in Apache 1.2 or later," or "The Apache syntax for + this directive is not compatible with the NCSA directive of + the same name."</em> + </blockquote> + + <p>The ADirective directive does something.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/API.html b/htdocs/manual/misc/API.html new file mode 100644 index 0000000000..6c9bd54499 --- /dev/null +++ b/htdocs/manual/misc/API.html @@ -0,0 +1,1243 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache API notes</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache API notes</h1> + These are some notes on the Apache API and the data structures + you have to deal with, <em>etc.</em> They are not yet nearly + complete, but hopefully, they will help you get your bearings. + Keep in mind that the API is still subject to change as we gain + experience with it. (See the TODO file for what <em>might</em> + be coming). However, it will be easy to adapt modules to any + changes that are made. (We have more modules to adapt than you + do). + + <p>A few notes on general pedagogical style here. In the + interest of conciseness, all structure declarations here are + incomplete --- the real ones have more slots that I'm not + telling you about. For the most part, these are reserved to one + component of the server core or another, and should be altered + by modules with caution. However, in some cases, they really + are things I just haven't gotten around to yet. Welcome to the + bleeding edge.</p> + + <p>Finally, here's an outline, to give you some bare idea of + what's coming up, and in what order:</p> + + <ul> + <li> + <a href="#basics">Basic concepts.</a> + + <ul> + <li><a href="#HMR">Handlers, Modules, and + Requests</a></li> + + <li><a href="#moduletour">A brief tour of a + module</a></li> + </ul> + </li> + + <li> + <a href="#handlers">How handlers work</a> + + <ul> + <li><a href="#req_tour">A brief tour of the + <code>request_rec</code></a></li> + + <li><a href="#req_orig">Where request_rec structures come + from</a></li> + + <li><a href="#req_return">Handling requests, declining, + and returning error codes</a></li> + + <li><a href="#resp_handlers">Special considerations for + response handlers</a></li> + + <li><a href="#auth_handlers">Special considerations for + authentication handlers</a></li> + + <li><a href="#log_handlers">Special considerations for + logging handlers</a></li> + </ul> + </li> + + <li><a href="#pools">Resource allocation and resource + pools</a></li> + + <li> + <a href="#config">Configuration, commands and the like</a> + + <ul> + <li><a href="#per-dir">Per-directory configuration + structures</a></li> + + <li><a href="#commands">Command handling</a></li> + + <li><a href="#servconf">Side notes --- per-server + configuration, virtual servers, <em>etc</em>.</a></li> + </ul> + </li> + </ul> + + <h2><a id="basics" name="basics">Basic concepts.</a></h2> + We begin with an overview of the basic concepts behind the API, + and how they are manifested in the code. + + <h3><a id="HMR" name="HMR">Handlers, Modules, and + Requests</a></h3> + Apache breaks down request handling into a series of steps, + more or less the same way the Netscape server API does + (although this API has a few more stages than NetSite does, as + hooks for stuff I thought might be useful in the future). These + are: + + <ul> + <li>URI -> Filename translation</li> + + <li>Auth ID checking [is the user who they say they + are?]</li> + + <li>Auth access checking [is the user authorized + <em>here</em>?]</li> + + <li>Access checking other than auth</li> + + <li>Determining MIME type of the object requested</li> + + <li>`Fixups' --- there aren't any of these yet, but the phase + is intended as a hook for possible extensions like + <code>SetEnv</code>, which don't really fit well + elsewhere.</li> + + <li>Actually sending a response back to the client.</li> + + <li>Logging the request</li> + </ul> + These phases are handled by looking at each of a succession of + <em>modules</em>, looking to see if each of them has a handler + for the phase, and attempting invoking it if so. The handler + can typically do one of three things: + + <ul> + <li><em>Handle</em> the request, and indicate that it has + done so by returning the magic constant <code>OK</code>.</li> + + <li><em>Decline</em> to handle the request, by returning the + magic integer constant <code>DECLINED</code>. In this case, + the server behaves in all respects as if the handler simply + hadn't been there.</li> + + <li>Signal an error, by returning one of the HTTP error + codes. This terminates normal handling of the request, + although an ErrorDocument may be invoked to try to mop up, + and it will be logged in any case.</li> + </ul> + Most phases are terminated by the first module that handles + them; however, for logging, `fixups', and non-access + authentication checking, all handlers always run (barring an + error). Also, the response phase is unique in that modules may + declare multiple handlers for it, via a dispatch table keyed on + the MIME type of the requested object. Modules may declare a + response-phase handler which can handle <em>any</em> request, + by giving it the key <code>*/*</code> (<em>i.e.</em>, a + wildcard MIME type specification). However, wildcard handlers + are only invoked if the server has already tried and failed to + find a more specific response handler for the MIME type of the + requested object (either none existed, or they all declined). + + <p>The handlers themselves are functions of one argument (a + <code>request_rec</code> structure. vide infra), which returns + an integer, as above.</p> + + <h3><a id="moduletour" name="moduletour">A brief tour of a + module</a></h3> + At this point, we need to explain the structure of a module. + Our candidate will be one of the messier ones, the CGI module + --- this handles both CGI scripts and the + <code>ScriptAlias</code> config file command. It's actually a + great deal more complicated than most modules, but if we're + going to have only one example, it might as well be the one + with its fingers in every place. + + <p>Let's begin with handlers. In order to handle the CGI + scripts, the module declares a response handler for them. + Because of <code>ScriptAlias</code>, it also has handlers for + the name translation phase (to recognize + <code>ScriptAlias</code>ed URIs), the type-checking phase (any + <code>ScriptAlias</code>ed request is typed as a CGI + script).</p> + + <p>The module needs to maintain some per (virtual) server + information, namely, the <code>ScriptAlias</code>es in effect; + the module structure therefore contains pointers to a functions + which builds these structures, and to another which combines + two of them (in case the main server and a virtual server both + have <code>ScriptAlias</code>es declared).</p> + + <p>Finally, this module contains code to handle the + <code>ScriptAlias</code> command itself. This particular module + only declares one command, but there could be more, so modules + have <em>command tables</em> which declare their commands, and + describe where they are permitted, and how they are to be + invoked.</p> + + <p>A final note on the declared types of the arguments of some + of these commands: a <code>pool</code> is a pointer to a + <em>resource pool</em> structure; these are used by the server + to keep track of the memory which has been allocated, files + opened, <em>etc.</em>, either to service a particular request, + or to handle the process of configuring itself. That way, when + the request is over (or, for the configuration pool, when the + server is restarting), the memory can be freed, and the files + closed, <em>en masse</em>, without anyone having to write + explicit code to track them all down and dispose of them. Also, + a <code>cmd_parms</code> structure contains various information + about the config file being read, and other status information, + which is sometimes of use to the function which processes a + config-file command (such as <code>ScriptAlias</code>). With no + further ado, the module itself:</p> +<pre> +/* Declarations of handlers. */ + +int translate_scriptalias (request_rec *); +int type_scriptalias (request_rec *); +int cgi_handler (request_rec *); + +/* Subsidiary dispatch table for response-phase handlers, by MIME type */ + +handler_rec cgi_handlers[] = { +{ "application/x-httpd-cgi", cgi_handler }, +{ NULL } +}; + +/* Declarations of routines to manipulate the module's configuration + * info. Note that these are returned, and passed in, as void *'s; + * the server core keeps track of them, but it doesn't, and can't, + * know their internal structure. + */ + +void *make_cgi_server_config (pool *); +void *merge_cgi_server_config (pool *, void *, void *); + +/* Declarations of routines to handle config-file commands */ + +extern char *script_alias(cmd_parms *, void *per_dir_config, char *fake, + char *real); + +command_rec cgi_cmds[] = { +{ "ScriptAlias", script_alias, NULL, RSRC_CONF, TAKE2, + "a fakename and a realname"}, +{ NULL } +}; + +module cgi_module = { + STANDARD_MODULE_STUFF, + NULL, /* initializer */ + NULL, /* dir config creator */ + NULL, /* dir merger --- default is to override */ + make_cgi_server_config, /* server config */ + merge_cgi_server_config, /* merge server config */ + cgi_cmds, /* command table */ + cgi_handlers, /* handlers */ + translate_scriptalias, /* filename translation */ + NULL, /* check_user_id */ + NULL, /* check auth */ + NULL, /* check access */ + type_scriptalias, /* type_checker */ + NULL, /* fixups */ + NULL, /* logger */ + NULL /* header parser */ +}; +</pre> + + <h2><a id="handlers" name="handlers">How handlers work</a></h2> + The sole argument to handlers is a <code>request_rec</code> + structure. This structure describes a particular request which + has been made to the server, on behalf of a client. In most + cases, each connection to the client generates only one + <code>request_rec</code> structure. + + <h3><a id="req_tour" name="req_tour">A brief tour of the + <code>request_rec</code></a></h3> + The <code>request_rec</code> contains pointers to a resource + pool which will be cleared when the server is finished handling + the request; to structures containing per-server and + per-connection information, and most importantly, information + on the request itself. + + <p>The most important such information is a small set of + character strings describing attributes of the object being + requested, including its URI, filename, content-type and + content-encoding (these being filled in by the translation and + type-check handlers which handle the request, + respectively).</p> + + <p>Other commonly used data items are tables giving the MIME + headers on the client's original request, MIME headers to be + sent back with the response (which modules can add to at will), + and environment variables for any subprocesses which are + spawned off in the course of servicing the request. These + tables are manipulated using the <code>ap_table_get</code> and + <code>ap_table_set</code> routines.</p> + + <blockquote> + Note that the <samp>Content-type</samp> header value + <em>cannot</em> be set by module content-handlers using the + <samp>ap_table_*()</samp> routines. Rather, it is set by + pointing the <samp>content_type</samp> field in the + <samp>request_rec</samp> structure to an appropriate string. + <em>E.g.</em>, +<pre> + r->content_type = "text/html"; +</pre> + </blockquote> + Finally, there are pointers to two data structures which, in + turn, point to per-module configuration structures. + Specifically, these hold pointers to the data structures which + the module has built to describe the way it has been configured + to operate in a given directory (via <code>.htaccess</code> + files or <code><Directory></code> sections), for private + data it has built in the course of servicing the request (so + modules' handlers for one phase can pass `notes' to their + handlers for other phases). There is another such configuration + vector in the <code>server_rec</code> data structure pointed to + by the <code>request_rec</code>, which contains per (virtual) + server configuration data. + + <p>Here is an abridged declaration, giving the fields most + commonly used:</p> +<pre> +struct request_rec { + + pool *pool; + conn_rec *connection; + server_rec *server; + + /* What object is being requested */ + + char *uri; + char *filename; + char *path_info; + char *args; /* QUERY_ARGS, if any */ + struct stat finfo; /* Set by server core; + * st_mode set to zero if no such file */ + + char *content_type; + char *content_encoding; + + /* MIME header environments, in and out. Also, an array containing + * environment variables to be passed to subprocesses, so people can + * write modules to add to that environment. + * + * The difference between headers_out and err_headers_out is that + * the latter are printed even on error, and persist across internal + * redirects (so the headers printed for ErrorDocument handlers will + * have them). + */ + + table *headers_in; + table *headers_out; + table *err_headers_out; + table *subprocess_env; + + /* Info about the request itself... */ + + int header_only; /* HEAD request, as opposed to GET */ + char *protocol; /* Protocol, as given to us, or HTTP/0.9 */ + char *method; /* GET, HEAD, POST, <em>etc.</em> */ + int method_number; /* M_GET, M_POST, <em>etc.</em> */ + + /* Info for logging */ + + char *the_request; + int bytes_sent; + + /* A flag which modules can set, to indicate that the data being + * returned is volatile, and clients should be told not to cache it. + */ + + int no_cache; + + /* Various other config info which may change with .htaccess files + * These are config vectors, with one void* pointer for each module + * (the thing pointed to being the module's business). + */ + + void *per_dir_config; /* Options set in config files, <em>etc.</em> */ + void *request_config; /* Notes on *this* request */ + +}; + +</pre> + + <h3><a id="req_orig" name="req_orig">Where request_rec + structures come from</a></h3> + Most <code>request_rec</code> structures are built by reading + an HTTP request from a client, and filling in the fields. + However, there are a few exceptions: + + <ul> + <li>If the request is to an imagemap, a type map + (<em>i.e.</em>, a <code>*.var</code> file), or a CGI script + which returned a local `Location:', then the resource which + the user requested is going to be ultimately located by some + URI other than what the client originally supplied. In this + case, the server does an <em>internal redirect</em>, + constructing a new <code>request_rec</code> for the new URI, + and processing it almost exactly as if the client had + requested the new URI directly.</li> + + <li>If some handler signaled an error, and an + <code>ErrorDocument</code> is in scope, the same internal + redirect machinery comes into play.</li> + + <li> + Finally, a handler occasionally needs to investigate `what + would happen if' some other request were run. For instance, + the directory indexing module needs to know what MIME type + would be assigned to a request for each directory entry, in + order to figure out what icon to use. + + <p>Such handlers can construct a <em>sub-request</em>, + using the functions <code>ap_sub_req_lookup_file</code>, + <code>ap_sub_req_lookup_uri</code>, and + <code>ap_sub_req_method_uri</code>; these construct a new + <code>request_rec</code> structure and processes it as you + would expect, up to but not including the point of actually + sending a response. (These functions skip over the access + checks if the sub-request is for a file in the same + directory as the original request).</p> + + <p>(Server-side includes work by building sub-requests and + then actually invoking the response handler for them, via + the function <code>ap_run_sub_req</code>).</p> + </li> + </ul> + + <h3><a id="req_return" name="req_return">Handling requests, + declining, and returning error codes</a></h3> + As discussed above, each handler, when invoked to handle a + particular <code>request_rec</code>, has to return an + <code>int</code> to indicate what happened. That can either be + + <ul> + <li>OK --- the request was handled successfully. This may or + may not terminate the phase.</li> + + <li>DECLINED --- no erroneous condition exists, but the + module declines to handle the phase; the server tries to find + another.</li> + + <li>an HTTP error code, which aborts handling of the + request.</li> + </ul> + Note that if the error code returned is <code>REDIRECT</code>, + then the module should put a <code>Location</code> in the + request's <code>headers_out</code>, to indicate where the + client should be redirected <em>to</em>. + + <h3><a id="resp_handlers" name="resp_handlers">Special + considerations for response handlers</a></h3> + Handlers for most phases do their work by simply setting a few + fields in the <code>request_rec</code> structure (or, in the + case of access checkers, simply by returning the correct error + code). However, response handlers have to actually send a + request back to the client. + + <p>They should begin by sending an HTTP response header, using + the function <code>ap_send_http_header</code>. (You don't have + to do anything special to skip sending the header for HTTP/0.9 + requests; the function figures out on its own that it shouldn't + do anything). If the request is marked + <code>header_only</code>, that's all they should do; they + should return after that, without attempting any further + output.</p> + + <p>Otherwise, they should produce a request body which responds + to the client as appropriate. The primitives for this are + <code>ap_rputc</code> and <code>ap_rprintf</code>, for + internally generated output, and <code>ap_send_fd</code>, to + copy the contents of some <code>FILE *</code> straight to the + client.</p> + + <p>At this point, you should more or less understand the + following piece of code, which is the handler which handles + <code>GET</code> requests which have no more specific handler; + it also shows how conditional <code>GET</code>s can be handled, + if it's desirable to do so in a particular response handler --- + <code>ap_set_last_modified</code> checks against the + <code>If-modified-since</code> value supplied by the client, if + any, and returns an appropriate code (which will, if nonzero, + be USE_LOCAL_COPY). No similar considerations apply for + <code>ap_set_content_length</code>, but it returns an error + code for symmetry.</p> +<pre> +int default_handler (request_rec *r) +{ + int errstatus; + FILE *f; + + if (r->method_number != M_GET) return DECLINED; + if (r->finfo.st_mode == 0) return NOT_FOUND; + + if ((errstatus = ap_set_content_length (r, r->finfo.st_size))) { + return errstatus; + } + + r->mtime = r->finfo.st_mtime; + ap_set_last_modified (r); + + f = ap_pfopen (r->pool, r->filename, "r"); + + if (f == NULL) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, r, + "file permissions deny server access: %s", r->filename); + return FORBIDDEN; + } + + ap_soft_timeout ("send", r); + ap_send_http_header (r); + + if (!r->header_only) ap_send_fd (f, r); + ap_pfclose (r->pool, f); + + ap_kill_timeout (r); + return OK; +} +</pre> + Finally, if all of this is too much of a challenge, there are a + few ways out of it. First off, as shown above, a response + handler which has not yet produced any output can simply return + an error code, in which case the server will automatically + produce an error response. Secondly, it can punt to some other + handler by invoking <code>ap_internal_redirect</code>, which is + how the internal redirection machinery discussed above is + invoked. A response handler which has internally redirected + should always return <code>OK</code>. + + <p>(Invoking <code>ap_internal_redirect</code> from handlers + which are <em>not</em> response handlers will lead to serious + confusion).</p> + + <h3><a id="auth_handlers" name="auth_handlers">Special + considerations for authentication handlers</a></h3> + Stuff that should be discussed here in detail: + + <ul> + <li>Authentication-phase handlers not invoked unless auth is + configured for the directory.</li> + + <li>Common auth configuration stored in the core per-dir + configuration; it has accessors <code>ap_auth_type</code>, + <code>ap_auth_name</code>, and <code>ap_requires</code>.</li> + + <li>Common routines, to handle the protocol end of things, at + least for HTTP basic authentication + (<code>ap_get_basic_auth_pw</code>, which sets the + <code>connection->user</code> structure field + automatically, and <code>ap_note_basic_auth_failure</code>, + which arranges for the proper <code>WWW-Authenticate:</code> + header to be sent back).</li> + </ul> + + <h3><a id="log_handlers" name="log_handlers">Special + considerations for logging handlers</a></h3> + When a request has internally redirected, there is the question + of what to log. Apache handles this by bundling the entire + chain of redirects into a list of <code>request_rec</code> + structures which are threaded through the + <code>r->prev</code> and <code>r->next</code> pointers. + The <code>request_rec</code> which is passed to the logging + handlers in such cases is the one which was originally built + for the initial request from the client; note that the + bytes_sent field will only be correct in the last request in + the chain (the one for which a response was actually sent). + + <h2><a id="pools" name="pools">Resource allocation and resource + pools</a></h2> + + <p>One of the problems of writing and designing a server-pool + server is that of preventing leakage, that is, allocating + resources (memory, open files, <em>etc.</em>), without + subsequently releasing them. The resource pool machinery is + designed to make it easy to prevent this from happening, by + allowing resource to be allocated in such a way that they are + <em>automatically</em> released when the server is done with + them.</p> + + <p>The way this works is as follows: the memory which is + allocated, file opened, <em>etc.</em>, to deal with a + particular request are tied to a <em>resource pool</em> which + is allocated for the request. The pool is a data structure + which itself tracks the resources in question.</p> + + <p>When the request has been processed, the pool is + <em>cleared</em>. At that point, all the memory associated with + it is released for reuse, all files associated with it are + closed, and any other clean-up functions which are associated + with the pool are run. When this is over, we can be confident + that all the resource tied to the pool have been released, and + that none of them have leaked.</p> + + <p>Server restarts, and allocation of memory and resources for + per-server configuration, are handled in a similar way. There + is a <em>configuration pool</em>, which keeps track of + resources which were allocated while reading the server + configuration files, and handling the commands therein (for + instance, the memory that was allocated for per-server module + configuration, log files and other files that were opened, and + so forth). When the server restarts, and has to reread the + configuration files, the configuration pool is cleared, and so + the memory and file descriptors which were taken up by reading + them the last time are made available for reuse.</p> + + <p>It should be noted that use of the pool machinery isn't + generally obligatory, except for situations like logging + handlers, where you really need to register cleanups to make + sure that the log file gets closed when the server restarts + (this is most easily done by using the function <code><a + href="#pool-files">ap_pfopen</a></code>, which also arranges + for the underlying file descriptor to be closed before any + child processes, such as for CGI scripts, are + <code>exec</code>ed), or in case you are using the timeout + machinery (which isn't yet even documented here). However, + there are two benefits to using it: resources allocated to a + pool never leak (even if you allocate a scratch string, and + just forget about it); also, for memory allocation, + <code>ap_palloc</code> is generally faster than + <code>malloc</code>.</p> + + <p>We begin here by describing how memory is allocated to + pools, and then discuss how other resources are tracked by the + resource pool machinery.</p> + + <h3>Allocation of memory in pools</h3> + + <p>Memory is allocated to pools by calling the function + <code>ap_palloc</code>, which takes two arguments, one being a + pointer to a resource pool structure, and the other being the + amount of memory to allocate (in <code>char</code>s). Within + handlers for handling requests, the most common way of getting + a resource pool structure is by looking at the + <code>pool</code> slot of the relevant + <code>request_rec</code>; hence the repeated appearance of the + following idiom in module code:</p> +<pre> +int my_handler(request_rec *r) +{ + struct my_structure *foo; + ... + + foo = (foo *)ap_palloc (r->pool, sizeof(my_structure)); +} +</pre> + + <p>Note that <em>there is no <code>ap_pfree</code></em> --- + <code>ap_palloc</code>ed memory is freed only when the + associated resource pool is cleared. This means that + <code>ap_palloc</code> does not have to do as much accounting + as <code>malloc()</code>; all it does in the typical case is to + round up the size, bump a pointer, and do a range check.</p> + + <p>(It also raises the possibility that heavy use of + <code>ap_palloc</code> could cause a server process to grow + excessively large. There are two ways to deal with this, which + are dealt with below; briefly, you can use <code>malloc</code>, + and try to be sure that all of the memory gets explicitly + <code>free</code>d, or you can allocate a sub-pool of the main + pool, allocate your memory in the sub-pool, and clear it out + periodically. The latter technique is discussed in the section + on sub-pools below, and is used in the directory-indexing code, + in order to avoid excessive storage allocation when listing + directories with thousands of files).</p> + + <h3>Allocating initialized memory</h3> + + <p>There are functions which allocate initialized memory, and + are frequently useful. The function <code>ap_pcalloc</code> has + the same interface as <code>ap_palloc</code>, but clears out + the memory it allocates before it returns it. The function + <code>ap_pstrdup</code> takes a resource pool and a <code>char + *</code> as arguments, and allocates memory for a copy of the + string the pointer points to, returning a pointer to the copy. + Finally <code>ap_pstrcat</code> is a varargs-style function, + which takes a pointer to a resource pool, and at least two + <code>char *</code> arguments, the last of which must be + <code>NULL</code>. It allocates enough memory to fit copies of + each of the strings, as a unit; for instance:</p> +<pre> + ap_pstrcat (r->pool, "foo", "/", "bar", NULL); +</pre> + + <p>returns a pointer to 8 bytes worth of memory, initialized to + <code>"foo/bar"</code>.</p> + + <h3><a id="pools-used" name="pools-used">Commonly-used pools in + the Apache Web server</a></h3> + + <p>A pool is really defined by its lifetime more than anything + else. There are some static pools in http_main which are passed + to various non-http_main functions as arguments at opportune + times. Here they are:</p> + + <dl compact="compact"> + <dt>permanent_pool</dt> + + <dd> + <ul> + <li>never passed to anything else, this is the ancestor + of all pools</li> + </ul> + </dd> + + <dt>pconf</dt> + + <dd> + <ul> + <li>subpool of permanent_pool</li> + + <li>created at the beginning of a config "cycle"; exists + until the server is terminated or restarts; passed to all + config-time routines, either via cmd->pool, or as the + "pool *p" argument on those which don't take pools</li> + + <li>passed to the module init() functions</li> + </ul> + </dd> + + <dt>ptemp</dt> + + <dd> + <ul> + <li>sorry I lie, this pool isn't called this currently in + 1.3, I renamed it this in my pthreads development. I'm + referring to the use of ptrans in the parent... contrast + this with the later definition of ptrans in the + child.</li> + + <li>subpool of permanent_pool</li> + + <li>created at the beginning of a config "cycle"; exists + until the end of config parsing; passed to config-time + routines <em>via</em> cmd->temp_pool. Somewhat of a + "bastard child" because it isn't available everywhere. + Used for temporary scratch space which may be needed by + some config routines but which is deleted at the end of + config.</li> + </ul> + </dd> + + <dt>pchild</dt> + + <dd> + <ul> + <li>subpool of permanent_pool</li> + + <li>created when a child is spawned (or a thread is + created); lives until that child (thread) is + destroyed</li> + + <li>passed to the module child_init functions</li> + + <li>destruction happens right after the child_exit + functions are called... (which may explain why I think + child_exit is redundant and unneeded)</li> + </ul> + </dd> + + <dt>ptrans</dt> + + <dd> + <ul> + <li>should be a subpool of pchild, but currently is a + subpool of permanent_pool, see above</li> + + <li>cleared by the child before going into the accept() + loop to receive a connection</li> + + <li>used as connection->pool</li> + </ul> + </dd> + + <dt>r->pool</dt> + + <dd> + <ul> + <li>for the main request this is a subpool of + connection->pool; for subrequests it is a subpool of + the parent request's pool.</li> + + <li>exists until the end of the request (<em>i.e.</em>, + ap_destroy_sub_req, or in child_main after + process_request has finished)</li> + + <li>note that r itself is allocated from r->pool; + <em>i.e.</em>, r->pool is first created and then r is + the first thing palloc()d from it</li> + </ul> + </dd> + </dl> + + <p>For almost everything folks do, r->pool is the pool to + use. But you can see how other lifetimes, such as pchild, are + useful to some modules... such as modules that need to open a + database connection once per child, and wish to clean it up + when the child dies.</p> + + <p>You can also see how some bugs have manifested themself, + such as setting connection->user to a value from r->pool + -- in this case connection exists for the lifetime of ptrans, + which is longer than r->pool (especially if r->pool is a + subrequest!). So the correct thing to do is to allocate from + connection->pool.</p> + + <p>And there was another interesting bug in + mod_include/mod_cgi. You'll see in those that they do this test + to decide if they should use r->pool or r->main->pool. + In this case the resource that they are registering for cleanup + is a child process. If it were registered in r->pool, then + the code would wait() for the child when the subrequest + finishes. With mod_include this could be any old #include, and + the delay can be up to 3 seconds... and happened quite + frequently. Instead the subprocess is registered in + r->main->pool which causes it to be cleaned up when the + entire request is done -- <em>i.e.</em>, after the output has + been sent to the client and logging has happened.</p> + + <h3><a id="pool-files" name="pool-files">Tracking open files, + etc.</a></h3> + + <p>As indicated above, resource pools are also used to track + other sorts of resources besides memory. The most common are + open files. The routine which is typically used for this is + <code>ap_pfopen</code>, which takes a resource pool and two + strings as arguments; the strings are the same as the typical + arguments to <code>fopen</code>, <em>e.g.</em>,</p> +<pre> + ... + FILE *f = ap_pfopen (r->pool, r->filename, "r"); + + if (f == NULL) { ... } else { ... } +</pre> + + <p>There is also a <code>ap_popenf</code> routine, which + parallels the lower-level <code>open</code> system call. Both + of these routines arrange for the file to be closed when the + resource pool in question is cleared.</p> + + <p>Unlike the case for memory, there <em>are</em> functions to + close files allocated with <code>ap_pfopen</code>, and + <code>ap_popenf</code>, namely <code>ap_pfclose</code> and + <code>ap_pclosef</code>. (This is because, on many systems, the + number of files which a single process can have open is quite + limited). It is important to use these functions to close files + allocated with <code>ap_pfopen</code> and + <code>ap_popenf</code>, since to do otherwise could cause fatal + errors on systems such as Linux, which react badly if the same + <code>FILE*</code> is closed more than once.</p> + + <p>(Using the <code>close</code> functions is not mandatory, + since the file will eventually be closed regardless, but you + should consider it in cases where your module is opening, or + could open, a lot of files).</p> + + <h3>Other sorts of resources --- cleanup functions</h3> + + <blockquote> + More text goes here. Describe the the cleanup primitives in + terms of which the file stuff is implemented; also, + <code>spawn_process</code>. + </blockquote> + + <p>Pool cleanups live until clear_pool() is called: + clear_pool(a) recursively calls destroy_pool() on all subpools + of a; then calls all the cleanups for a; then releases all the + memory for a. destroy_pool(a) calls clear_pool(a) and then + releases the pool structure itself. <em>i.e.</em>, + clear_pool(a) doesn't delete a, it just frees up all the + resources and you can start using it again immediately.</p> + + <h3>Fine control --- creating and dealing with sub-pools, with + a note on sub-requests</h3> + On rare occasions, too-free use of <code>ap_palloc()</code> and + the associated primitives may result in undesirably profligate + resource allocation. You can deal with such a case by creating + a <em>sub-pool</em>, allocating within the sub-pool rather than + the main pool, and clearing or destroying the sub-pool, which + releases the resources which were associated with it. (This + really <em>is</em> a rare situation; the only case in which it + comes up in the standard module set is in case of listing + directories, and then only with <em>very</em> large + directories. Unnecessary use of the primitives discussed here + can hair up your code quite a bit, with very little gain). + + <p>The primitive for creating a sub-pool is + <code>ap_make_sub_pool</code>, which takes another pool (the + parent pool) as an argument. When the main pool is cleared, the + sub-pool will be destroyed. The sub-pool may also be cleared or + destroyed at any time, by calling the functions + <code>ap_clear_pool</code> and <code>ap_destroy_pool</code>, + respectively. (The difference is that + <code>ap_clear_pool</code> frees resources associated with the + pool, while <code>ap_destroy_pool</code> also deallocates the + pool itself. In the former case, you can allocate new resources + within the pool, and clear it again, and so forth; in the + latter case, it is simply gone).</p> + + <p>One final note --- sub-requests have their own resource + pools, which are sub-pools of the resource pool for the main + request. The polite way to reclaim the resources associated + with a sub request which you have allocated (using the + <code>ap_sub_req_...</code> functions) is + <code>ap_destroy_sub_req</code>, which frees the resource pool. + Before calling this function, be sure to copy anything that you + care about which might be allocated in the sub-request's + resource pool into someplace a little less volatile (for + instance, the filename in its <code>request_rec</code> + structure).</p> + + <p>(Again, under most circumstances, you shouldn't feel obliged + to call this function; only 2K of memory or so are allocated + for a typical sub request, and it will be freed anyway when the + main request pool is cleared. It is only when you are + allocating many, many sub-requests for a single main request + that you should seriously consider the + <code>ap_destroy_...</code> functions).</p> + + <h2><a id="config" name="config">Configuration, commands and + the like</a></h2> + One of the design goals for this server was to maintain + external compatibility with the NCSA 1.3 server --- that is, to + read the same configuration files, to process all the + directives therein correctly, and in general to be a drop-in + replacement for NCSA. On the other hand, another design goal + was to move as much of the server's functionality into modules + which have as little as possible to do with the monolithic + server core. The only way to reconcile these goals is to move + the handling of most commands from the central server into the + modules. + + <p>However, just giving the modules command tables is not + enough to divorce them completely from the server core. The + server has to remember the commands in order to act on them + later. That involves maintaining data which is private to the + modules, and which can be either per-server, or per-directory. + Most things are per-directory, including in particular access + control and authorization information, but also information on + how to determine file types from suffixes, which can be + modified by <code>AddType</code> and <code>DefaultType</code> + directives, and so forth. In general, the governing philosophy + is that anything which <em>can</em> be made configurable by + directory should be; per-server information is generally used + in the standard set of modules for information like + <code>Alias</code>es and <code>Redirect</code>s which come into + play before the request is tied to a particular place in the + underlying file system.</p> + + <p>Another requirement for emulating the NCSA server is being + able to handle the per-directory configuration files, generally + called <code>.htaccess</code> files, though even in the NCSA + server they can contain directives which have nothing at all to + do with access control. Accordingly, after URI -> filename + translation, but before performing any other phase, the server + walks down the directory hierarchy of the underlying + filesystem, following the translated pathname, to read any + <code>.htaccess</code> files which might be present. The + information which is read in then has to be <em>merged</em> + with the applicable information from the server's own config + files (either from the <code><Directory></code> sections + in <code>access.conf</code>, or from defaults in + <code>srm.conf</code>, which actually behaves for most purposes + almost exactly like <code><Directory /></code>).</p> + + <p>Finally, after having served a request which involved + reading <code>.htaccess</code> files, we need to discard the + storage allocated for handling them. That is solved the same + way it is solved wherever else similar problems come up, by + tying those structures to the per-transaction resource + pool.</p> + + <h3><a id="per-dir" name="per-dir">Per-directory configuration + structures</a></h3> + Let's look out how all of this plays out in + <code>mod_mime.c</code>, which defines the file typing handler + which emulates the NCSA server's behavior of determining file + types from suffixes. What we'll be looking at, here, is the + code which implements the <code>AddType</code> and + <code>AddEncoding</code> commands. These commands can appear in + <code>.htaccess</code> files, so they must be handled in the + module's private per-directory data, which in fact, consists of + two separate <code>table</code>s for MIME types and encoding + information, and is declared as follows: +<pre> +typedef struct { + table *forced_types; /* Additional AddTyped stuff */ + table *encoding_types; /* Added with AddEncoding... */ +} mime_dir_config; +</pre> + When the server is reading a configuration file, or + <code><Directory></code> section, which includes one of + the MIME module's commands, it needs to create a + <code>mime_dir_config</code> structure, so those commands have + something to act on. It does this by invoking the function it + finds in the module's `create per-dir config slot', with two + arguments: the name of the directory to which this + configuration information applies (or <code>NULL</code> for + <code>srm.conf</code>), and a pointer to a resource pool in + which the allocation should happen. + + <p>(If we are reading a <code>.htaccess</code> file, that + resource pool is the per-request resource pool for the request; + otherwise it is a resource pool which is used for configuration + data, and cleared on restarts. Either way, it is important for + the structure being created to vanish when the pool is cleared, + by registering a cleanup on the pool if necessary).</p> + + <p>For the MIME module, the per-dir config creation function + just <code>ap_palloc</code>s the structure above, and a creates + a couple of <code>table</code>s to fill it. That looks like + this:</p> +<pre> +void *create_mime_dir_config (pool *p, char *dummy) +{ + mime_dir_config *new = + (mime_dir_config *) ap_palloc (p, sizeof(mime_dir_config)); + + new->forced_types = ap_make_table (p, 4); + new->encoding_types = ap_make_table (p, 4); + + return new; +} +</pre> + Now, suppose we've just read in a <code>.htaccess</code> file. + We already have the per-directory configuration structure for + the next directory up in the hierarchy. If the + <code>.htaccess</code> file we just read in didn't have any + <code>AddType</code> or <code>AddEncoding</code> commands, its + per-directory config structure for the MIME module is still + valid, and we can just use it. Otherwise, we need to merge the + two structures somehow. + + <p>To do that, the server invokes the module's per-directory + config merge function, if one is present. That function takes + three arguments: the two structures being merged, and a + resource pool in which to allocate the result. For the MIME + module, all that needs to be done is overlay the tables from + the new per-directory config structure with those from the + parent:</p> +<pre> +void *merge_mime_dir_configs (pool *p, void *parent_dirv, void *subdirv) +{ + mime_dir_config *parent_dir = (mime_dir_config *)parent_dirv; + mime_dir_config *subdir = (mime_dir_config *)subdirv; + mime_dir_config *new = + (mime_dir_config *)ap_palloc (p, sizeof(mime_dir_config)); + + new->forced_types = ap_overlay_tables (p, subdir->forced_types, + parent_dir->forced_types); + new->encoding_types = ap_overlay_tables (p, subdir->encoding_types, + parent_dir->encoding_types); + + return new; +} +</pre> + As a note --- if there is no per-directory merge function + present, the server will just use the subdirectory's + configuration info, and ignore the parent's. For some modules, + that works just fine (<em>e.g.</em>, for the includes module, + whose per-directory configuration information consists solely + of the state of the <code>XBITHACK</code>), and for those + modules, you can just not declare one, and leave the + corresponding structure slot in the module itself + <code>NULL</code>. + + <h3><a id="commands" name="commands">Command handling</a></h3> + Now that we have these structures, we need to be able to figure + out how to fill them. That involves processing the actual + <code>AddType</code> and <code>AddEncoding</code> commands. To + find commands, the server looks in the module's <code>command + table</code>. That table contains information on how many + arguments the commands take, and in what formats, where it is + permitted, and so forth. That information is sufficient to + allow the server to invoke most command-handling functions with + pre-parsed arguments. Without further ado, let's look at the + <code>AddType</code> command handler, which looks like this + (the <code>AddEncoding</code> command looks basically the same, + and won't be shown here): +<pre> +char *add_type(cmd_parms *cmd, mime_dir_config *m, char *ct, char *ext) +{ + if (*ext == '.') ++ext; + ap_table_set (m->forced_types, ext, ct); + return NULL; +} +</pre> + This command handler is unusually simple. As you can see, it + takes four arguments, two of which are pre-parsed arguments, + the third being the per-directory configuration structure for + the module in question, and the fourth being a pointer to a + <code>cmd_parms</code> structure. That structure contains a + bunch of arguments which are frequently of use to some, but not + all, commands, including a resource pool (from which memory can + be allocated, and to which cleanups should be tied), and the + (virtual) server being configured, from which the module's + per-server configuration data can be obtained if required. + + <p>Another way in which this particular command handler is + unusually simple is that there are no error conditions which it + can encounter. If there were, it could return an error message + instead of <code>NULL</code>; this causes an error to be + printed out on the server's <code>stderr</code>, followed by a + quick exit, if it is in the main config files; for a + <code>.htaccess</code> file, the syntax error is logged in the + server error log (along with an indication of where it came + from), and the request is bounced with a server error response + (HTTP error status, code 500).</p> + + <p>The MIME module's command table has entries for these + commands, which look like this:</p> +<pre> +command_rec mime_cmds[] = { +{ "AddType", add_type, NULL, OR_FILEINFO, TAKE2, + "a mime type followed by a file extension" }, +{ "AddEncoding", add_encoding, NULL, OR_FILEINFO, TAKE2, + "an encoding (<em>e.g.</em>, gzip), followed by a file extension" }, +{ NULL } +}; +</pre> + The entries in these tables are: + + <ul> + <li>The name of the command</li> + + <li>The function which handles it</li> + + <li>a <code>(void *)</code> pointer, which is passed in the + <code>cmd_parms</code> structure to the command handler --- + this is useful in case many similar commands are handled by + the same function.</li> + + <li>A bit mask indicating where the command may appear. There + are mask bits corresponding to each + <code>AllowOverride</code> option, and an additional mask + bit, <code>RSRC_CONF</code>, indicating that the command may + appear in the server's own config files, but <em>not</em> in + any <code>.htaccess</code> file.</li> + + <li>A flag indicating how many arguments the command handler + wants pre-parsed, and how they should be passed in. + <code>TAKE2</code> indicates two pre-parsed arguments. Other + options are <code>TAKE1</code>, which indicates one + pre-parsed argument, <code>FLAG</code>, which indicates that + the argument should be <code>On</code> or <code>Off</code>, + and is passed in as a boolean flag, <code>RAW_ARGS</code>, + which causes the server to give the command the raw, unparsed + arguments (everything but the command name itself). There is + also <code>ITERATE</code>, which means that the handler looks + the same as <code>TAKE1</code>, but that if multiple + arguments are present, it should be called multiple times, + and finally <code>ITERATE2</code>, which indicates that the + command handler looks like a <code>TAKE2</code>, but if more + arguments are present, then it should be called multiple + times, holding the first argument constant.</li> + + <li>Finally, we have a string which describes the arguments + that should be present. If the arguments in the actual config + file are not as required, this string will be used to help + give a more specific error message. (You can safely leave + this <code>NULL</code>).</li> + </ul> + Finally, having set this all up, we have to use it. This is + ultimately done in the module's handlers, specifically for its + file-typing handler, which looks more or less like this; note + that the per-directory configuration structure is extracted + from the <code>request_rec</code>'s per-directory configuration + vector by using the <code>ap_get_module_config</code> function. + +<pre> +int find_ct(request_rec *r) +{ + int i; + char *fn = ap_pstrdup (r->pool, r->filename); + mime_dir_config *conf = (mime_dir_config *) + ap_get_module_config(r->per_dir_config, &mime_module); + char *type; + + if (S_ISDIR(r->finfo.st_mode)) { + r->content_type = DIR_MAGIC_TYPE; + return OK; + } + + if((i=ap_rind(fn,'.')) < 0) return DECLINED; + ++i; + + if ((type = ap_table_get (conf->encoding_types, &fn[i]))) + { + r->content_encoding = type; + + /* go back to previous extension to try to use it as a type */ + + fn[i-1] = '\0'; + if((i=ap_rind(fn,'.')) < 0) return OK; + ++i; + } + + if ((type = ap_table_get (conf->forced_types, &fn[i]))) + { + r->content_type = type; + } + + return OK; +} + +</pre> + + <h3><a id="servconf" name="servconf">Side notes --- per-server + configuration, virtual servers, <em>etc</em>.</a></h3> + The basic ideas behind per-server module configuration are + basically the same as those for per-directory configuration; + there is a creation function and a merge function, the latter + being invoked where a virtual server has partially overridden + the base server configuration, and a combined structure must be + computed. (As with per-directory configuration, the default if + no merge function is specified, and a module is configured in + some virtual server, is that the base configuration is simply + ignored). + + <p>The only substantial difference is that when a command needs + to configure the per-server private module data, it needs to go + to the <code>cmd_parms</code> data to get at it. Here's an + example, from the alias module, which also indicates how a + syntax error can be returned (note that the per-directory + configuration argument to the command handler is declared as a + dummy, since the module doesn't actually have per-directory + config data):</p> +<pre> +char *add_redirect(cmd_parms *cmd, void *dummy, char *f, char *url) +{ + server_rec *s = cmd->server; + alias_server_conf *conf = (alias_server_conf *) + ap_get_module_config(s->module_config,&alias_module); + alias_entry *new = ap_push_array (conf->redirects); + + if (!ap_is_url (url)) return "Redirect to non-URL"; + + new->fake = f; new->real = url; + return NULL; +} +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/FAQ-A.html b/htdocs/manual/misc/FAQ-A.html new file mode 100644 index 0000000000..ff0d7e2a47 --- /dev/null +++ b/htdocs/manual/misc/FAQ-A.html @@ -0,0 +1,395 @@ +<!--#if expr="$FAQMASTER" --> +<!--#set var="STANDALONE" value="" --> +<!--#set var="INCLUDED" value="YES" --> +<!--#if expr="$QUERY_STRING = TOC" --> +<!--#set var="TOC" value="YES" --> +<!--#set var="CONTENT" value="" --> +<!--#else --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="YES" --> +<!--#endif --> +<!--#else --> +<!--#set var="STANDALONE" value="YES" --> +<!--#set var="INCLUDED" value="" --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="" --> +<!--#endif --> +<!--#if expr="$STANDALONE" --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Frequently Asked Questions</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Server Frequently Asked + Questions</h1> + + <p>$Revision: 1.13 $ ($Date: 2002/12/23 02:12:13 $)</p> + + <p>The latest version of this FAQ is always available from the + main Apache web site, at <<a + href="http://httpd.apache.org/docs/misc/FAQ.html" + rel="Help"><samp>http://httpd.apache.org/docs/misc/FAQ.html</samp></a>>.</p> + <!-- Notes about changes: --> + <!-- - If adding a relative link to another part of the --> + <!-- documentation, *do* include the ".html" portion. There's a --> + <!-- good chance that the user will be reading the documentation --> + <!-- on his own system, which may not be configured for --> + <!-- multiviews. --> + <!-- - When adding items, make sure they're put in the right place --> + <!-- - verify that the numbering matches up. --> + <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> + <!-- correctly in a reliable way when this is converted to text --> + <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> + <!-- blocks inside a <P></P> instead. This is necessary to get --> + <!-- the horizontal and vertical indenting right. --> + <!-- - Don't forget to include an HR tag after the last /P tag --> + <!-- but before the /LI in an item. --> + + <p>If you are reading a text-only version of this FAQ, you may + find numbers enclosed in brackets (such as "[12]"). These refer + to the list of reference URLs to be found at the end of the + document. These references do not appear, and are not needed, + for the hypertext version.</p> + + <h2>The Questions</h2> + + <ol type="A"> + <!--#endif --> + <!--#if expr="$TOC || $STANDALONE" --> + + <li value="1"> + <strong>Background</strong> + + <ol> + <li><a href="#what">What is Apache?</a></li> + + <li><a href="#why">How and why was Apache + created?</a></li> + + <li><a href="#name">Why the name "Apache"?</a></li> + + <li><a href="#compare">OK, so how does Apache compare to + other servers?</a></li> + + <li><a href="#tested">How thoroughly tested is + Apache?</a></li> + + <li><a href="#future">What are the future plans for + Apache?</a></li> + + <li><a href="#support">Whom do I contact for + support?</a></li> + + <li><a href="#more">Is there any more information on + Apache?</a></li> + + <li><a href="#where">Where can I get Apache?</a></li> + + <li><a href="#logo">May I use the Apache logo on my + product or Web site?</a></li> + </ol> + </li> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + </ol> + <hr /> + + <h2>The Answers</h2> + <!--#endif --> + <!--#if expr="! $TOC" --> + + <h3>A. Background</h3> + + <ol> + <li> + <a id="what" name="what"><strong>What is + Apache?</strong></a> + + <p>The Apache httpd server</p> + + <ul> + <li>is a powerful, flexible, HTTP/1.1 compliant web + server</li> + + <li>implements the latest protocols, including HTTP/1.1 + (RFC2616)</li> + + <li>is highly configurable and extensible with + third-party modules</li> + + <li>can be customised by writing 'modules' using the + Apache module API</li> + + <li>provides full source code and comes with an + unrestrictive license</li> + + <li>runs on Windows NT/9x, Netware 5.x and above, OS/2, and most + versions of Unix, as well as several other operating + systems</li> + + <li>is actively being developed</li> + + <li>encourages user feedback through new ideas, bug + reports and patches</li> + + <li> + implements many frequently requested features, + including:<br /> + <br /> + + + <dl> + <dt>DBM databases for authentication</dt> + + <dd>allows you to easily set up password-protected + pages with enormous numbers of authorized users, + without bogging down the server.</dd> + + <dt>Customized responses to errors and problems</dt> + + <dd>Allows you to set up files, or even CGI scripts, + which are returned by the server in response to + errors and problems, e.g. setup a script to intercept + <strong>500 Server Error</strong>s and perform + on-the-fly diagnostics for both users and + yourself.</dd> + + <dt>Multiple DirectoryIndex directives</dt> + + <dd>Allows you to say <code>DirectoryIndex index.html + index.cgi</code>, which instructs the server to + either send back <code>index.html</code> or run + <code>index.cgi</code> when a directory URL is + requested, whichever it finds in the directory.</dd> + + <dt>Unlimited flexible URL rewriting and + aliasing</dt> + + <dd>Apache has no fixed limit on the numbers of + Aliases and Redirects which may be declared in the + config files. In addition, a powerful rewriting + engine can be used to solve most URL manipulation + problems.</dd> + + <dt>Content negotiation</dt> + + <dd>i.e. the ability to automatically serve clients + of varying sophistication and HTML level compliance, + with documents which offer the best representation of + information that the client is capable of + accepting.</dd> + + <dt>Virtual Hosts</dt> + + <dd>A much requested feature, sometimes known as + multi-homed servers. This allows the server to + distinguish between requests made to different IP + addresses or names (mapped to the same machine). + Apache also offers dynamically configurable + mass-virtual hosting.</dd> + + <dt>Configurable Reliable Piped Logs</dt> + + <dd>You can configure Apache to generate logs in the + format that you want. In addition, on most Unix + architectures, Apache can send log files to a pipe, + allowing for log rotation, hit filtering, real-time + splitting of multiple vhosts into separate logs, and + asynchronous DNS resolving on the fly.</dd> + </dl> + </li> + </ul> + <hr /> + </li> + + <li> + <a id="why" name="why"><strong>How and why was Apache + created?</strong></a> + + <p>The <a + href="http://httpd.apache.org/ABOUT_APACHE.html">About + Apache</a> document explains how the Apache project evolved + from its beginnings as an outgrowth of the NCSA httpd + project to its current status as one of the fastest, most + efficient, and most functional web servers in + existence.</p> + <hr /> + </li> + + <li> + <a id="name" name="name"><strong>Why the name + "Apache"?</strong></a> + + <p>The name 'Apache' was chosen from respect for + the Native American Indian tribe of Apache (Indé), + <a href="http://www.indians.org/welker/apache.htm">well-known + for their superior skills in warfare strategy and their + inexhaustible endurance</a>. For more information on the + Apache Nation, we suggest searching + <a href="http://www.google.com/search?q=Apache+Nation">Google</a>, + <a href="http://www.northernlight.com/nlquery.fcg?qr=Apache+Nation" + >Northernlight</a>, or + <a href="http://www.alltheweb.com/cgi-bin/asearch?query=Apache+Nation" + >AllTheWeb</a>.</p> + + <p>Secondarily, and more popularly (though incorrectly) accepted, + it's a considered cute name which stuck. Apache is "<strong>A + PA</strong>t<strong>CH</strong>y server". It was based on + some existing code and a series of "patch files".</p> + + <hr /> + </li> + + <li> + <a id="compare" name="compare"><strong>OK, so how does + Apache compare to other servers?</strong></a> + + <p>For an independent assessment, see <a + href="http://webcompare.internet.com/">Web + Compare</a>.</p> + + <p>Apache has been shown to be substantially faster, more + stable, and more feature-full than many other web servers. + Although certain commercial servers have claimed to surpass + Apache's speed (it has not been demonstrated that any of + these "benchmarks" are a good way of measuring WWW server + speed at any rate), we feel that it is better to have a + mostly-fast free server than an extremely-fast server that + costs thousands of dollars. Apache is run on sites that get + millions of hits per day, and they have experienced no + performance difficulties.</p> + <hr /> + </li> + + <li> + <a id="tested" name="tested"><strong>How thoroughly tested + is Apache?</strong></a> + + <p>Apache is run on over 6 million Internet servers (as of + February 2000). It has been tested thoroughly by both + developers and users. The Apache Group maintains rigorous + standards before releasing new versions of their server, + and our server runs without a hitch on over one half of all + WWW servers available on the Internet. When bugs do show + up, we release patches and new versions as soon as they are + available.</p> + <hr /> + </li> + + <li> + <a id="future" name="future"><strong>What are the future + plans for Apache?</strong></a> + + <ul> + <li>to continue to be an "open source" no-charge-for-use + HTTP server,</li> + + <li>to keep up with advances in HTTP protocol and web + developments in general,</li> + + <li>to collect suggestions for fixes/improvements from + its users,</li> + + <li>to respond to needs of large volume providers as well + as occasional users.</li> + </ul> + <hr /> + </li> + + <li> + <a id="support" name="support"><strong>Whom do I contact + for support?</strong></a> + + <p>There is no official support for Apache. None of the + developers want to be swamped by a flood of trivial + questions that can be resolved elsewhere. Bug reports and + suggestions should be sent <em>via</em> <a + href="http://httpd.apache.org/bug_report.html">the bug + report page</a>. Other questions should be directed to the + <a href="http://httpd.apache.org/userslist.html">Apache HTTP + Server Users List</a> or the + <a + href="news:comp.infosystems.www.servers.unix">comp.infosystems.www.servers.unix</a> + or <a + href="news:comp.infosystems.www.servers.ms-windows">comp.infosystems.www.servers.ms-windows</a> + newsgroup (as appropriate for the platform you use), where + some of the Apache team lurk, in the company of many other + httpd gurus who should be able to help.</p> + + <p>Commercial support for Apache is, however, available + from a number of third parties.</p> + <hr /> + </li> + + <li> + <a id="more" name="more"><strong>Is there any more + information available on Apache?</strong></a> + + <p>Indeed there is. See the main <a + href="http://httpd.apache.org/">Apache web site</a>. There + is also a regular electronic publication called <a + href="http://www.apacheweek.com/" rel="Help"><cite>Apache + Week</cite></a> available. Links to relevant <cite>Apache + Week</cite> articles are included below where appropriate. + There are also some <a + href="http://httpd.apache.org/info/apache_books.html">Apache-specific + books</a> available.</p> + <hr /> + </li> + + <li> + <a id="where" name="where"><strong>Where can I get + Apache?</strong></a> + + <p>You can find out how to download the source for Apache + at the project's <a href="http://httpd.apache.org/">main + web page</a>.</p> + <hr /> + </li> + + <li> + <a id="logo" name="logo"><b>May I use the Apache logo on my + product or Web site?</b></a> + + <p>You may <b>NOT</b> use any original artwork from the + Apache Software Foundation, nor make or use modified + versions of such artwork, except under the following + conditions:</p> + + <ul> + <li>You may use the <a + href="../../apache_pb.gif">'Powered by Apache' + graphic</a> on a Web site that is being served by the + Apache HTTP server software.</li> + + <li>You may use the aforementioned 'Powered by Apache' + graphic or the <a + href="http://www.apache.org/images/asf_logo.gif"> + Apache Software Foundation logo</a> in product + description and promotional material <b>IF and ONLY + IF</b> such use can in no way be interpreted as anything + other than an attribution. Using the Apache name and + artwork in a manner that implies endorsement of a product + or service is <b>strictly forbidden</b>.</li> + </ul> + <hr /> + </li> + </ol> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + <!-- Don't forget to add HR tags at the end of each list item.. --> + <!--#include virtual="footer.html" --> + <!--#endif --> + </body> +</html> + diff --git a/htdocs/manual/misc/FAQ-B.html b/htdocs/manual/misc/FAQ-B.html new file mode 100644 index 0000000000..2a89938b34 --- /dev/null +++ b/htdocs/manual/misc/FAQ-B.html @@ -0,0 +1,464 @@ +<!--#if expr="$FAQMASTER" --> +<!--#set var="STANDALONE" value="" --> +<!--#set var="INCLUDED" value="YES" --> +<!--#if expr="$QUERY_STRING = TOC" --> +<!--#set var="TOC" value="YES" --> +<!--#set var="CONTENT" value="" --> +<!--#else --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="YES" --> +<!--#endif --> +<!--#else --> +<!--#set var="STANDALONE" value="YES" --> +<!--#set var="INCLUDED" value="" --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="" --> +<!--#endif --> +<!--#if expr="$STANDALONE" --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Frequently Asked Questions</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Server Frequently Asked + Questions</h1> + + <p>$Revision: 1.14 $ ($Date: 2003/06/07 06:01:40 $)</p> + + <p>The latest version of this FAQ is always available from the + main Apache web site, at <<a + href="http://httpd.apache.org/docs/misc/FAQ.html" + rel="Help"><samp>http://httpd.apache.org/docs/misc/FAQ.html</samp></a>>.</p> + <!-- Notes about changes: --> + <!-- - If adding a relative link to another part of the --> + <!-- documentation, *do* include the ".html" portion. There's a --> + <!-- good chance that the user will be reading the documentation --> + <!-- on his own system, which may not be configured for --> + <!-- multiviews. --> + <!-- - When adding items, make sure they're put in the right place --> + <!-- - verify that the numbering matches up. --> + <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> + <!-- correctly in a reliable way when this is converted to text --> + <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> + <!-- blocks inside a <P></P> instead. This is necessary to get --> + <!-- the horizontal and vertical indenting right. --> + <!-- - Don't forget to include an HR tag after the last /P tag --> + <!-- but before the /LI in an item. --> + + <p>If you are reading a text-only version of this FAQ, you may + find numbers enclosed in brackets (such as "[12]"). These refer + to the list of reference URLs to be found at the end of the + document. These references do not appear, and are not needed, + for the hypertext version.</p> + + <h2>The Questions</h2> + + <ol type="A"> + <!--#endif --> + <!--#if expr="$TOC || $STANDALONE" --> + + <li value="2"> + <strong>General Technical Questions</strong> + + <ol> + <li><a href="#what2do">"Why can't I ...? Why won't ... + work?" What to do in case of problems</a></li> + + <li><a href="#compatible">How compatible is Apache with + my existing NCSA 1.3 setup?</a></li> + + <li><a href="#year2000">Is Apache Year 2000 + compliant?</a></li> + + <li><a href="#submit_patch">How do I submit a patch to + the Apache Group?</a></li> + + <li><a href="#domination">Why has Apache stolen my + favourite site's Internet address?</a></li> + + <li><a href="#apspam">Why am I getting spam mail from the + Apache site?</a></li> + + <li><a href="#redist">May I include the Apache software + on a CD or other package I'm distributing?</a></li> + + <li><a href="#zoom">What's the best hardware/operating + system/... How do I get the most out of my Apache Web + server?</a></li> + + <li><a href="#regex">What are "regular + expressions"?</a></li> + + <li><a href="#binaries">Why isn't there a binary for my + platform?</a></li> + </ol> + </li> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + </ol> + <hr /> + + <h2>The Answers</h2> + <!--#endif --> + <!--#if expr="! $TOC" --> + + <h3>B. General Technical Questions</h3> + + <ol> + <li> + <a id="what2do" name="what2do"><strong>"Why can't I ...? + Why won't ... work?" What to do in case of + problems</strong></a> + + <p>If you are having trouble with your Apache server + software, you should take the following steps:</p> + + <ol> + <li> + <strong>Check the errorlog!</strong> + + <p>Apache tries to be helpful when it encounters a + problem. In many cases, it will provide some details by + writing one or messages to the server error log. + Sometimes this is enough for you to diagnose & fix + the problem yourself (such as file permissions or the + like). The default location of the error log is + <samp>/usr/local/apache/logs/error_log</samp>, but see + the <a + href="../mod/core.html#errorlog"><samp>ErrorLog</samp></a> + directive in your config files for the location on your + server.</p> + </li> + + <li> + <strong>Check the <a + href="http://httpd.apache.org/docs/misc/FAQ.html">FAQ</a>!</strong> + + + <p>The latest version of the Apache Frequently-Asked + Questions list can always be found at the main Apache + web site.</p> + </li> + + <li> + <strong>Check the Apache bug database</strong> + + <p>Most problems that get reported to The Apache Group + are recorded in the <a + href="http://bugs.apache.org/">bug database</a>. + <em><strong>Please</strong> check the existing reports, + open <strong>and</strong> closed, before adding + one.</em> If you find that your issue has already been + reported, please <em>don't</em> add a "me, too" report. + If the original report isn't closed yet, we suggest + that you check it periodically. You might also consider + contacting the original submitter, because there may be + an email exchange going on about the issue that isn't + getting recorded in the database.</p> + </li> + + <li> + <strong>Ask in a user support group.</strong> + + <p>A lot of common problems never make it to the bug + database because there's already high Q&A traffic + about them in the <a + href="http://httpd.apache.org/userslist.html">Users + mailing list</a> or <a + href="news:comp.infosystems.www.servers.unix"><samp>comp.infosystems.www.servers.unix</samp></a> + and related newsgroups. These newsgroups are also + available via <a + href="http://groups.google.com/groups?group=comp.infosystems.www.servers"> + Google</a>. Many Apache users, and some of the developers, + can be found roaming their virtual halls, so it is suggested + that you seek wisdom there. The chances are good that + you'll get a faster answer there than from the bug + database, even if you <em>don't</em> see your question + already posted.</p> + </li> + + <li> + <strong>If all else fails, report the problem in the + bug database</strong> + + <p>If you've gone through those steps above that are + appropriate and have obtained no relief, then please + <em>do</em> let The Apache Group know about the problem + by <a + href="http://httpd.apache.org/bug_report.html">logging + a bug report</a>.</p> + + <p>If your problem involves the server crashing and + generating a core dump, please include a backtrace (if + possible). As an example,</p> + + <dl> + <dd><code># cd <em>ServerRoot</em><br /> + # dbx httpd core<br /> + (dbx) where</code></dd> + </dl> + + <p>(Substitute the appropriate locations for your + <samp>ServerRoot</samp> and your <samp>httpd</samp> and + <samp>core</samp> files. You may have to use + <code>gdb</code> instead of <code>dbx</code>.)</p> + </li> + </ol> + <hr /> + </li> + + <li> + <a id="compatible" name="compatible"><strong>How compatible + is Apache with my existing NCSA 1.3 setup?</strong></a> + + <p>Apache attempts to offer all the features and + configuration options of NCSA httpd 1.3, as well as many of + the additional features found in NCSA httpd 1.4 and NCSA + httpd 1.5.</p> + + <p>NCSA httpd appears to be moving toward adding + experimental features which are not generally required at + the moment. Some of the experiments will succeed while + others will inevitably be dropped. The Apache philosophy is + to add what's needed as and when it is needed.</p> + + <p>Friendly interaction between Apache and NCSA developers + should ensure that fundamental feature enhancements stay + consistent between the two servers for the foreseeable + future.</p> + <hr /> + </li> + + <li> + <a id="year2000" name="year2000"><strong>Is Apache Year + 2000 compliant?</strong></a> + + <p>Yes, Apache is Year 2000 compliant.</p> + + <p>Apache internally never stores years as two digits. On + the HTTP protocol level RFC1123-style addresses are + generated which is the only format a HTTP/1.1-compliant + server should generate. To be compatible with older + applications Apache recognizes ANSI C's + <code>asctime()</code> and RFC850-/RFC1036-style date + formats, too. The <code>asctime()</code> format uses + four-digit years, but the RFC850 and RFC1036 date formats + only define a two-digit year. If Apache sees such a date + with a value less than 70 it assumes that the century is + <samp>20</samp> rather than <samp>19</samp>.</p> + + <p>Although Apache is Year 2000 compliant, you may still + get problems if the underlying OS has problems with dates + past year 2000 (<em>e.g.</em>, OS calls which accept or + return year numbers). Most (UNIX) systems store dates + internally as signed 32-bit integers which contain the + number of seconds since 1<sup>st</sup> January 1970, so the + magic boundary to worry about is the year 2038 and not + 2000. But modern operating systems shouldn't cause any + trouble at all.</p> + + <p>Users of Apache 1.2.x should upgrade to a current + version of Apache 1.3 (see <a + href="../new_features_1_3.html#misc">year-2000 improvements + in Apache 1.3</a> for details).</p> + + <p>The Apache HTTP Server project is an open-source + software product of the Apache Software Foundation. The + project and the Foundation <b>cannot</b> offer legal + assurances regarding any suitability of the software for + your application. There are several commercial Apache + support organizations and derivative server products + available that may be able to stand behind the software and + provide you with any assurances you may require. You may + find links to some of these vendors at <samp><<a + href="http://www.apache.org/info/support.cgi">http://www.apache.org/info/support.cgi</a>></samp>.</p> + + <p>The Apache HTTP server software is distributed with the + following disclaimer, found in the software license:</p> +<pre> + THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR + ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + +</pre> + <hr /> + </li> + + <li> + <a id="submit_patch" name="submit_patch"><strong>How do I + submit a patch to the Apache Group?</strong></a> + + <p>The Apache Group encourages patches from outside + developers. There are 2 main "types" of patches: small + bugfixes and general improvements. Bugfixes should be + submitting using the Apache <a + href="http://httpd.apache.org/bug_report.html">bug report + page</a>. Improvements, modifications, and additions should + follow the instructions below.</p> + + <p>In general, the first course of action is to be a member + of the <samp>dev@httpd.apache.org</samp> mailing list. This + indicates to the Group that you are closely following the + latest Apache developments. Your patch file should be + generated using either '<code>diff -c</code>' or + '<code>diff -u</code>' against the latest CVS tree. To + submit your patch, send email to + <samp>dev@httpd.apache.org</samp> with a + <samp>Subject:</samp> line that starts with + <samp>[PATCH]</samp> and includes a general description of + the patch. In the body of the message, the patch should be + clearly described and then included at the end of the + message. If the patch-file is long, you can note a URL to + the file instead of the file itself. Use of MIME + enclosures/attachments should be avoided.</p> + + <p>Be prepared to respond to any questions about your + patches and possibly defend your code. If your patch + results in a lot of discussion, you may be asked to submit + an updated patch that incorporates all changes and + suggestions.</p> + <hr /> + </li> + + <li> + <a id="domination" name="domination"><strong>Why has Apache + stolen my favourite site's Internet address?</strong></a> + + <p>The simple answer is: "It hasn't." This misconception is + usually caused by the site in question having migrated to + the Apache Web server software, but not having migrated the + site's content yet. When Apache is installed, the default + page that gets installed tells the Webmaster the + installation was successful. The expectation is that this + default page will be replaced with the site's real content. + If it doesn't, complain to the Webmaster, not to the Apache + project -- we just make the software and aren't responsible + for what people do (or don't do) with it.</p> + <hr /> + </li> + + <li> + <a id="apspam" name="apspam"><strong>Why am I getting spam + mail from the Apache site?</strong></a> + + <p>The short answer is: "You aren't." Usually when someone + thinks the Apache site is originating spam, it's because + they've traced the spam to a Web site, and the Web site + says it's using Apache. See the <a + href="#domination">previous FAQ entry</a> for more details + on this phenomenon.</p> + + <p>No marketing spam originates from the Apache site. The + only mail that comes from the site goes only to addresses + that have been <em>requested</em> to receive the mail.</p> + <hr /> + </li> + + <li> + <a id="redist" name="redist"><strong>May I include the + Apache software on a CD or other package I'm + distributing?</strong></a> + + <p>The detailed answer to this question can be found in the + Apache license, which is included in the Apache + distribution in the file <code>LICENSE</code>. You can also + find it on the Web at <samp><<a + href="http://www.apache.org/LICENSE.txt">http://www.apache.org/LICENSE.txt</a>></samp>.</p> + <hr /> + </li> + + <li> + <a id="zoom" name="zoom"><strong>What's the best + hardware/operating system/... How do I get the most out of + my Apache Web server?</strong></a> + + <p>Check out Dean Gaudet's <a + href="perf-tuning.html">performance tuning page</a>.</p> + <hr /> + </li> + + <li> + <a id="regex" name="regex"><strong>What are "regular + expressions"?</strong></a> + + <p>Regular expressions are a way of describing a pattern - + for example, "all the words that begin with the letter A" + or "every 10-digit phone number" or even "Every sentence + with two commas in it, and no capital letter Q". Regular + expressions (aka "regex"s) are useful in Apache because + they let you apply certain attributes against collections + of files or resources in very flexible ways - for example, + all .gif and .jpg files under any "images" directory could + be written as /\/images\/.*(jpg|gif)$/.</p> + + <p>The best overview around is probably the one which comes + with Perl. We implement a simple subset of Perl's regex + support, but it's still a good way to learn what they mean. + You can start by going to the <a + href="http://www.perl.com/doc/manual/html/pod/perlre.html">CPAN + page on regular expressions</a>, and branching out from + there.</p> <hr /> + </li> + + <li> + <a id="binaries" name="binaries"><b>Why isn't there a + binary for my platform?</b></a> + + <p>The developers make sure that the software builds and + works correctly on the platforms available to them; this + does <i>not</i> necessarily mean that <i>your</i> platform + is one of them. In addition, the Apache HTTP server project + is primarily source oriented, meaning that distributing + valid and buildable source code is the purpose of a + release, not making sure that there is a binary package for + all of the supported platforms.</p> + + <p>If you don't see a kit for your platform listed in the + binary distribution area (<URL:<a + href="http://httpd.apache.org/dist/httpd/binaries/">http://httpd.apache.org/dist/httpd/binaries/</a>>), + it means either that the platform isn't available to any of + the developers, or that they just haven't gotten around to + preparing a binary for it. As this is a voluntary project, + they are under no obligation to do so. Users are encouraged + and expected to build the software themselves.</p> + + <p>The sole exception to these practices is the Windows + package. Unlike most Unix and Unix-like platforms, Windows + systems do not come with a bundled software development + environment, so we <i>do</i> prepare binary kits for + Windows when we make a release. Again, however, it's a + voluntary thing and only a limited number of the developers + have the capability to build the InstallShield package, so + the Windows release may lag somewhat behind the source + release. This lag should be no more than a few days at + most.</p> + <hr /> + </li> + </ol> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + <!-- Don't forget to add HR tags at the end of each list item.. --> + <!--#include virtual="footer.html" --> + <!--#endif --> + </body> +</html> + diff --git a/htdocs/manual/misc/FAQ-C.html b/htdocs/manual/misc/FAQ-C.html new file mode 100644 index 0000000000..56ef2852b3 --- /dev/null +++ b/htdocs/manual/misc/FAQ-C.html @@ -0,0 +1,276 @@ +<!--#if expr="$FAQMASTER" --> +<!--#set var="STANDALONE" value="" --> +<!--#set var="INCLUDED" value="YES" --> +<!--#if expr="$QUERY_STRING = TOC" --> +<!--#set var="TOC" value="YES" --> +<!--#set var="CONTENT" value="" --> +<!--#else --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="YES" --> +<!--#endif --> +<!--#else --> +<!--#set var="STANDALONE" value="YES" --> +<!--#set var="INCLUDED" value="" --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="" --> +<!--#endif --> +<!--#if expr="$STANDALONE" --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Frequently Asked Questions</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Server Frequently Asked + Questions</h1> + + <p>$Revision: 1.3 $ ($Date: 2001/10/08 01:26:54 $)</p> + + <p>The latest version of this FAQ is always available from the + main Apache web site, at <<a + href="http://httpd.apache.org/docs/misc/FAQ.html" + rel="Help"><samp>http://httpd.apache.org/docs/misc/FAQ.html</samp></a>>.</p> + <!-- Notes about changes: --> + <!-- - If adding a relative link to another part of the --> + <!-- documentation, *do* include the ".html" portion. There's a --> + <!-- good chance that the user will be reading the documentation --> + <!-- on his own system, which may not be configured for --> + <!-- multiviews. --> + <!-- - When adding items, make sure they're put in the right place --> + <!-- - verify that the numbering matches up. --> + <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> + <!-- correctly in a reliable way when this is converted to text --> + <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> + <!-- blocks inside a <P></P> instead. This is necessary to get --> + <!-- the horizontal and vertical indenting right. --> + <!-- - Don't forget to include an HR tag after the last /P tag --> + <!-- but before the /LI in an item. --> + + <p>If you are reading a text-only version of this FAQ, you may + find numbers enclosed in brackets (such as "[12]"). These refer + to the list of reference URLs to be found at the end of the + document. These references do not appear, and are not needed, + for the hypertext version.</p> + + <h2>The Questions</h2> + + <ol type="A"> + <!--#endif --> + <!--#if expr="$TOC || $STANDALONE" --> + + <li value="3"> + <strong>Building Apache</strong> + + <ol> + <li><a href="#bind8.1">Why do I get an error about an + undefined reference to "<samp>__inet_ntoa</samp>" or + other <samp>__inet_*</samp> symbols?</a></li> + + <li><a href="#cantbuild">Why won't Apache compile with my + system's <samp>cc</samp>?</a></li> + + <li><a href="#linuxiovec">Why do I get complaints about + redefinition of "<code>struct iovec</code>" when + compiling under Linux?</a></li> + + <li><a href="#broken-gcc">I'm using gcc and I get some + compilation errors, what is wrong?</a></li> + + <li><a href="#glibc-crypt">I'm using RedHat Linux 5.0, or + some other <samp>glibc</samp>-based Linux system, and I + get errors with the <code>crypt</code> function when I + attempt to build Apache 1.2.</a></li> + </ol> + </li> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + </ol> + <hr /> + + <h2>The Answers</h2> + <!--#endif --> + <!--#if expr="! $TOC" --> + + <h3>C. Building Apache</h3> + + <ol> + <li> + <a id="bind8.1" name="bind8.1"><strong>Why do I get an + error about an undefined reference to + "<samp>__inet_ntoa</samp>" or other <samp>__inet_*</samp> + symbols?</strong></a> + + <p>If you have installed <a + href="http://www.isc.org/bind.html">BIND-8</a> then this is + normally due to a conflict between your include files and + your libraries. BIND-8 installs its include files and + libraries <code>/usr/local/include/</code> and + <code>/usr/local/lib/</code>, while the resolver that comes + with your system is probably installed in + <code>/usr/include/</code> and <code>/usr/lib/</code>. If + your system uses the header files in + <code>/usr/local/include/</code> before those in + <code>/usr/include/</code> but you do not use the new + resolver library, then the two versions will conflict.</p> + + <p>To resolve this, you can either make sure you use the + include files and libraries that came with your system or + make sure to use the new include files and libraries. + Adding <code>-lbind</code> to the + <code>EXTRA_LDFLAGS</code> line in your + <samp>Configuration</samp> file, then re-running + <samp>Configure</samp>, should resolve the problem. (Apache + versions 1.2.* and earlier use <code>EXTRA_LFLAGS</code> + instead.)</p> + + <p><strong>Note:</strong>As of BIND 8.1.1, the bind + libraries and files are installed under + <samp>/usr/local/bind</samp> by default, so you should not + run into this problem. Should you want to use the bind + resolvers you'll have to add the following to the + respective lines:</p> + + <dl> + <dd><code>EXTRA_CFLAGS=-I/usr/local/bind/include<br /> + EXTRA_LDFLAGS=-L/usr/local/bind/lib<br /> + EXTRA_LIBS=-lbind</code></dd> + </dl> + <hr /> + </li> + + <li> + <a id="cantbuild" name="cantbuild"><strong>Why won't Apache + compile with my system's <samp>cc</samp>?</strong></a> + + <p>If the server won't compile on your system, it is + probably due to one of the following causes:</p> + + <ul> + <li><strong>The <samp>Configure</samp> script doesn't + recognize your system environment.</strong><br /> + This might be either because it's completely unknown or + because the specific environment (include files, OS + version, <em>et cetera</em>) isn't explicitly handled. If + this happens, you may need to port the server to your OS + yourself.</li> + + <li><strong>Your system's C compiler is + garbage.</strong><br /> + Some operating systems include a default C compiler that + is either not ANSI C-compliant or suffers from other + deficiencies. The usual recommendation in cases like this + is to acquire, install, and use <samp>gcc</samp>.</li> + + <li><strong>Your <samp>include</samp> files may be + confused.</strong><br /> + In some cases, we have found that a compiler + installation or system upgrade has left the C header + files in an inconsistent state. Make sure that your + include directory tree is in sync with the compiler and + the operating system.</li> + + <li><strong>Your operating system or compiler may be out + of revision.</strong><br /> + Software vendors (including those that develop operating + systems) issue new releases for a reason; sometimes to + add functionality, but more often to fix bugs that have + been discovered. Try upgrading your compiler and/or your + operating system.</li> + </ul> + + <p>The Apache Group tests the ability to build the server + on many different platforms. Unfortunately, we can't test + all of the OS platforms there are. If you have verified + that none of the above issues is the cause of your problem, + and it hasn't been reported before, please submit a <a + href="http://httpd.apache.org/bug_report.html">problem + report</a>. Be sure to include <em>complete</em> details, + such as the compiler & OS versions and exact error + messages.</p> + <hr /> + </li> + + <li> + <a id="linuxiovec" name="linuxiovec"><strong>Why do I get + complaints about redefinition of "<code>struct + iovec</code>" when compiling under Linux?</strong></a> + + <p>This is a conflict between your C library includes and + your kernel includes. You need to make sure that the + versions of both are matched properly. There are two + workarounds, either one will solve the problem:</p> + + <ul> + <li>Remove the definition of <code>struct iovec</code> + from your C library includes. It is located in + <code>/usr/include/sys/uio.h</code>. + <strong>Or,</strong></li> + + <li>Add <code>-DNO_WRITEV</code> to the + <code>EXTRA_CFLAGS</code> line in your + <samp>Configuration</samp> and reconfigure/rebuild. This + hurts performance and should only be used as a last + resort.</li> + </ul> + <hr /> + </li> + + <li> + <a id="broken-gcc" name="broken-gcc"><strong>I'm using gcc + and I get some compilation errors, what is + wrong?</strong></a> + + <p>GCC parses your system header files and produces a + modified subset which it uses for compiling. This behavior + ties GCC tightly to the version of your operating system. + So, for example, if you were running IRIX 5.3 when you + built GCC and then upgrade to IRIX 6.2 later, you will have + to rebuild GCC. Similarly for Solaris 2.4, 2.5, or 2.5.1 + when you upgrade to 2.6. Sometimes you can type "gcc -v" + and it will tell you the version of the operating system it + was built against.</p> + + <p>If you fail to do this, then it is very likely that + Apache will fail to build. One of the most common errors is + with <code>readv</code>, <code>writev</code>, or + <code>uio.h</code>. This is <strong>not</strong> a bug with + Apache. You will need to re-install GCC.</p> + <hr /> + </li> + + <li> + <a id="glibc-crypt" name="glibc-crypt"><strong>I'm using + RedHat Linux 5.0, or some other <samp>glibc</samp>-based + Linux system, and I get errors with the <code>crypt</code> + function when I attempt to build Apache 1.2.</strong></a> + + <p><samp>glibc</samp> puts the <code>crypt</code> function + into a separate library. Edit your + <code>src/Configuration</code> file and set this:</p> + + <dl> + <dd><code>EXTRA_LIBS=-lcrypt</code></dd> + </dl> + + <p>Then re-run <samp>src/Configure</samp> and re-execute + the make.</p> + <hr /> + </li> + </ol> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + <!-- Don't forget to add HR tags at the end of each list item.. --> + <!--#include virtual="footer.html" --> + <!--#endif --> + </body> +</html> + diff --git a/htdocs/manual/misc/FAQ-D.html b/htdocs/manual/misc/FAQ-D.html new file mode 100644 index 0000000000..1c768f27fd --- /dev/null +++ b/htdocs/manual/misc/FAQ-D.html @@ -0,0 +1,569 @@ +<!--#if expr="$FAQMASTER" --> +<!--#set var="STANDALONE" value="" --> +<!--#set var="INCLUDED" value="YES" --> +<!--#if expr="$QUERY_STRING = TOC" --> +<!--#set var="TOC" value="YES" --> +<!--#set var="CONTENT" value="" --> +<!--#else --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="YES" --> +<!--#endif --> +<!--#else --> +<!--#set var="STANDALONE" value="YES" --> +<!--#set var="INCLUDED" value="" --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="" --> +<!--#endif --> +<!--#if expr="$STANDALONE" --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Frequently Asked Questions</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Server Frequently Asked + Questions</h1> + + <p>$Revision: 1.21 $ ($Date: 2003/07/01 22:42:13 $)</p> + + <p>The latest version of this FAQ is always available from the + main Apache web site, at <<a + href="http://httpd.apache.org/docs/misc/FAQ.html" + rel="Help"><samp>http://httpd.apache.org/docs/misc/FAQ.html</samp></a>>.</p> + <!-- Notes about changes: --> + <!-- - If adding a relative link to another part of the --> + <!-- documentation, *do* include the ".html" portion. There's a --> + <!-- good chance that the user will be reading the documentation --> + <!-- on his own system, which may not be configured for --> + <!-- multiviews. --> + <!-- - When adding items, make sure they're put in the right place --> + <!-- - verify that the numbering matches up. --> + <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> + <!-- correctly in a reliable way when this is converted to text --> + <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> + <!-- blocks inside a <P></P> instead. This is necessary to get --> + <!-- the horizontal and vertical indenting right. --> + <!-- - Don't forget to include an HR tag after the last /P tag --> + <!-- but before the /LI in an item. --> + + <p>If you are reading a text-only version of this FAQ, you may + find numbers enclosed in brackets (such as "[12]"). These refer + to the list of reference URLs to be found at the end of the + document. These references do not appear, and are not needed, + for the hypertext version.</p> + + <h2>The Questions</h2> + + <ol type="A"> + <!--#endif --> + <!--#if expr="$TOC || $STANDALONE" --> + + <li value="4"> + <strong>Error Log Messages and Problems Starting + Apache</strong> + + <ol> + <li><a href="#setgid">Why do I get "<samp>setgid: Invalid + argument</samp>" at startup?</a></li> + + <li><a href="#nodelay">Why am I getting "<samp>httpd: + could not set socket option TCP_NODELAY</samp>" in my + error log?</a></li> + + <li><a href="#peerreset">Why am I getting + "<samp>connection reset by peer</samp>" in my error + log?</a></li> + + <li><a href="#wheres-the-dump">The errorlog says Apache + dumped core, but where's the dump file?</a></li> + + <li><a href="#linux-shmget">When I run it under Linux I + get "shmget: function not found", what should I + do?</a></li> + + <li><a href="#nfslocking">Server hangs, or fails to + start, and/or error log fills with "<samp>fcntl: + F_SETLKW: No record locks available</samp>" or similar + messages</a></li> + + <li><a href="#aixccbug">Why am I getting "<samp>Expected + </Directory> but saw </Directory></samp>" + when I try to start Apache?</a></li> + + <li><a href="#redhat">I'm using RedHat Linux and I have + problems with httpd dying randomly or not restarting + properly</a></li> + + <li><a href="#stopping">I upgraded from an Apache version + earlier than 1.2.0 and suddenly I have problems with + Apache dying randomly or not restarting properly</a></li> + + <li><a href="#setservername">When I try to start Apache + from a DOS window, I get a message like "<samp>Cannot + determine host name. Use ServerName directive to set it + manually.</samp>" What does this mean?</a></li> + + <li><a href="#ws2_32dll">When I try to start Apache for + Windows, I get a message like "<samp>Unable To Locate + WS2_32.DLL...</samp>". What should I do?</a></li> + + <li><a href="#WSADuplicateSocket">Apache for Windows does + not start. Error log contains this message "<samp>[crit] + (10045) The attempted operation is not supported for the + type of object referenced: Parent: WSADuplicateSocket + failed for socket ###</samp>". What does this + mean?</a></li> + + <li><a href="#err1067">When I try to start Apache on + Windows, I get a message like "<code>System error 1067 + has occurred. The process terminated + unexpectedly.</code>" What does this mean?</a></li> + + <li><a href="#suseFDN">On a SuSE Linux system, I try and + configure access control using basic authentication. + Although I follow the example exactly, authentication + fails, and an error message "<code>admin: not a valid + FDN: ....</code>" is logged.</a></li> + + <li><a href="#codered">Why do I have weird entries in my + logs asking for <code>default.ida</code> and + <code>cmd.exe</code>?</a></li> + + <li><a href="#restart">Why am I getting server restart + messages periodically, when I did not restart the + server?</a></li> + + <li><a href="#modulemagic">Why am I getting "module + <em>module-name</em> is not compatible with this version of + Apache" messages in my error log?</a></li> + + </ol> + </li> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + </ol> + <hr /> + + <h2>The Answers</h2> + <!--#endif --> + <!--#if expr="! $TOC" --> + + <h3>D. Error Log Messages and Problems Starting Apache</h3> + + <ol> + <li> + <a id="setgid" name="setgid"><strong>Why do I get + "<samp>setgid: Invalid argument</samp>" at + startup?</strong></a> + + <p>Your <a + href="../mod/core.html#group"><samp>Group</samp></a> + directive (probably in <samp>conf/httpd.conf</samp>) needs + to name a group that actually exists in the + <samp>/etc/group</samp> file (or your system's equivalent). + This problem is also frequently seen when a negative number + is used in the <code>Group</code> directive (<em>e.g.</em>, + "<code>Group #-1</code>"). Using a group name -- not + group number -- found in your system's group database + should solve this problem in all cases.</p> + <hr /> + </li> + + <li> + <a id="nodelay" name="nodelay"><strong>Why am I getting + "<samp>httpd: could not set socket option + TCP_NODELAY</samp>" in my error log?</strong></a> + + <p>This message almost always indicates that the client + disconnected before Apache reached the point of calling + <code>setsockopt()</code> for the connection. It shouldn't + occur for more than about 1% of the requests your server + handles, and it's advisory only in any case.</p> + <hr /> + </li> + + <li> + <a id="peerreset" name="peerreset"><strong>Why am I getting + "<samp>connection reset by peer</samp>" in my error + log?</strong></a> + + <p>This is a normal message and nothing about which to be + alarmed. It simply means that the client canceled the + connection before it had been completely set up - such as + by the end-user pressing the "Stop" button. People's + patience being what it is, sites with response-time + problems or slow network links may experience this more + than high capacity ones or those with large pipes to the + network.</p> + <hr /> + </li> + + <li> + <a id="wheres-the-dump" name="wheres-the-dump"><strong>The + errorlog says Apache dumped core, but where's the dump + file?</strong></a> + + <p>In Apache version 1.2, the error log message about + dumped core includes the directory where the dump file + should be located. However, many Unixes do not allow a + process that has called <code>setuid()</code> to dump core + for security reasons; the typical Apache setup has the + server started as root to bind to port 80, after which it + changes UIDs to a non-privileged user to serve + requests.</p> + + <p>Dealing with this is extremely operating + system-specific, and may require rebuilding your system + kernel. Consult your operating system documentation or + vendor for more information about whether your system does + this and how to bypass it. If there <em>is</em> a + documented way of bypassing it, it is recommended that you + bypass it only for the <samp>httpd</samp> server process if + possible.</p> + + <p>The canonical location for Apache's core-dump files is + the <a href="../mod/core.html#serverroot">ServerRoot</a> + directory. As of Apache version 1.3, the location can be + set <em>via</em> the <a + href="../mod/core.html#coredumpdirectory"><samp>CoreDumpDirectory</samp></a> + directive to a different directory. Make sure that this + directory is writable by the user the server runs as (as + opposed to the user the server is <em>started</em> as).</p> + <hr /> + </li> + + <li> + <a id="linux-shmget" name="linux-shmget"><strong>When I run + it under Linux I get "shmget: function not found", what + should I do?</strong></a> + + <p>Your kernel has been built without SysV IPC support. You + will have to rebuild the kernel with that support enabled + (it's under the "General Setup" submenu). Documentation for + kernel building is beyond the scope of this FAQ; you should + consult the <a + href="http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO.html"> + Kernel HOWTO</a>, or the documentation provided with your + distribution, or a <a + href="http://www.redhat.com/mirrors/LDP/HOWTO/META-FAQ.html"> + Linux newsgroup/mailing list</a>. As a last-resort + workaround, you can comment out the + <code>#define USE_SHMGET_SCOREBOARD</code> definition + in the <samp>LINUX</samp> section of + <samp>src/conf.h</samp> and rebuild the server (prior to + 1.3b4, simply removing + <code>#define HAVE_SHMGET</code> would have sufficed). + This will produce a server which is slower and less + reliable.</p> + <hr /> + </li> + + <li> + <a id="nfslocking" name="nfslocking"><strong>Server hangs, + or fails to start, and/or error log fills with + "<samp>fcntl: F_SETLKW: No record locks available</samp>" + or similar messages</strong></a> + + <p>These are symptoms of a fine locking problem, which + usually means that the server is trying to use a + synchronization file on an NFS filesystem.</p> + + <p>Because of its parallel-operation model, the Apache Web + server needs to provide some form of synchronization when + accessing certain resources. One of these synchronization + methods involves taking out locks on a file, which means + that the filesystem whereon the lockfile resides must + support locking. In many cases this means it <em>can't</em> + be kept on an NFS-mounted filesystem.</p> + + <p>To cause the Web server to work around the NFS locking + limitations, include a line such as the following in your + server configuration files:</p> + + <dl> + <dd><code>LockFile /var/run/apache-lock</code></dd> + </dl> + + <p>The directory should not be generally writable + (<em>e.g.</em>, don't use <samp>/var/tmp</samp>). See the + <a + href="../mod/core.html#lockfile"><samp>LockFile</samp></a> + documentation for more information.</p> + <hr /> + </li> + + <li> + <a id="aixccbug" name="aixccbug"><strong>Why am I getting + "<samp>Expected </Directory> but saw + </Directory></samp>" when I try to start + Apache?</strong></a> + + <p>This is a known problem with certain versions of the AIX + C compiler. IBM are working on a solution, and the issue is + being tracked by <a + href="http://bugs.apache.org/index/full/2312">problem + report #2312</a>.</p> + <hr /> + </li> + + <li> + <a id="redhat" name="redhat"><strong>I'm using RedHat Linux + and I have problems with httpd dying randomly or not + restarting properly</strong></a> + + <p>RedHat Linux versions 4.x (and possibly earlier) RPMs + contain various nasty scripts which do not stop or restart + Apache properly. These can affect you even if you're not + running the RedHat supplied RPMs.</p> + + <p>If you're using the default install then you're probably + running Apache 1.1.3, which is outdated. From RedHat's ftp + site you can pick up a more recent RPM for Apache 1.2.x. + This will solve one of the problems.</p> + + <p>If you're using a custom built Apache rather than the + RedHat RPMs then you should <code>rpm -e apache</code>. In + particular you want the mildly broken + <code>/etc/logrotate.d/apache</code> script to be removed, + and you want the broken <code>/etc/rc.d/init.d/httpd</code> + (or <code>httpd.init</code>) script to be removed. The + latter is actually fixed by the apache-1.2.5 RPMs but if + you're building your own Apache then you probably don't + want the RedHat files.</p> + + <p>We can't stress enough how important it is for folks, + <em>especially vendors</em> to follow the <a + href="../stopping.html">stopping Apache directions</a> + given in our documentation. In RedHat's defense, the broken + scripts were necessary with Apache 1.1.x because the Linux + support in 1.1.x was very poor, and there were various race + conditions on all platforms. None of this should be + necessary with Apache 1.2 and later.</p> + <hr /> + </li> + + <li> + <a id="stopping" name="stopping"><strong>I upgraded from an + Apache version earlier than 1.2.0 and suddenly I have + problems with Apache dying randomly or not restarting + properly</strong></a> + + <p>You should read <a href="#redhat">the previous note</a> + about problems with RedHat installations. It is entirely + likely that your installation has start/stop/restart + scripts which were built for an earlier version of Apache. + Versions earlier than 1.2.0 had various race conditions + that made it necessary to use <code>kill -9</code> at times + to take out all the httpd servers. But that should not be + necessary any longer. You should follow the <a + href="../stopping.html">directions on how to stop and + restart Apache</a>.</p> + + <p>As of Apache 1.3 there is a script + <code>src/support/apachectl</code> which, after a bit of + customization, is suitable for starting, stopping, and + restarting your server.</p> + <hr /> + </li> + + <li> + <a id="setservername" name="setservername"><b>When I try to + start Apache from a DOS window, I get a message like + "<samp>Cannot determine host name. Use ServerName directive + to set it manually.</samp>" What does this mean?</b></a> + + <p>It means what it says; the Apache software can't + determine the hostname of your system. Edit your + <samp>conf\httpd.conf</samp> file, look for the string + "ServerName", and make sure there's an uncommented + directive such as</p> + + <dl> + <dd><code>ServerName localhost</code></dd> + </dl> + + <p>or</p> + + <dl> + <dd><code>ServerName www.foo.com</code></dd> + </dl> + + <p>in the file. Correct it if there one there with wrong + information, or add one if you don't already have one.</p> + + <p>Also, make sure that your Windows system has DNS + enabled. See the TCP/IP setup component of the Networking + or Internet Options control panel.</p> + + <p>After verifying that DNS is enabled and that you have a + valid hostname in your <samp>ServerName</samp> directive, + try to start the server again.</p> + <hr /> + </li> + + <li> + <a id="ws2_32dll" name="ws2_32dll"><b>When I try to start + Apache for Windows, I get a message like "<samp>Unable To + Locate WS2_32.DLL...</samp>". What should I do?</b></a> + + <p>Short answer: You need to install Winsock 2, available + from <a + href="http://www.microsoft.com/windows95/downloads/">http://www.microsoft.com/windows95/downloads/</a></p> + + <p>Detailed answer: Prior to version 1.3.9, Apache for + Windows used Winsock 1.1. Beginning with version 1.3.9, + Apache began using Winsock 2 features (specifically, + WSADuplicateSocket()). WS2_32.DLL implements the Winsock 2 + API. Winsock 2 ships with Windows NT 4.0 and Windows 98. + Some of the earlier releases of Windows 95 did not include + Winsock 2.</p> + <hr /> + </li> + + <li> + <a id="WSADuplicateSocket" + name="WSADuplicateSocket"><b>Apache for Windows does not + start. Error log contains this message: "<samp>[crit] + (10045) The attempted operation is not supported for the + type of object referenced: Parent: WSADuplicateSocket + failed for socket ###</samp>". What does this mean?</b></a> + + + <p>We have seen this problem when Apache is run on systems + along with Virtual Private Networking clients like Aventail + Connect. Aventail Connect is a Layered Service Provider + (LSP) that inserts itself, as a "shim," between the Winsock + 2 API and Window's native Winsock 2 implementation. The + Aventail Connect shim does not implement + WSADuplicateSocket, which is the cause of the failure.</p> + + <p>The shim is not unloaded when Aventail Connect is shut + down. Once observed, the problem persists until the shim is + either explicitly unloaded or the machine is rebooted. + Another potential solution (not tested) is to add + <code>apache.exe</code> to the Aventail "Connect Exclusion + List".</p> + + <p>Apache is affected in a similar way by <em>any</em> + firewall program that isn't correctly configured. Assure + you exclude your Apache server ports (usually port 80) from + the list of ports to block. Refer to your firewall + program's documentation for the how-to.</p> + <hr /> + </li> + + <li> + <a id="err1067" name="err1067"><b>When I try to start + Apache on Windows, I get a message like "<code>System error + 1067 has occurred. The process terminated + unexpectedly</code>." What does this mean?</b></a> + + <p>This message means that the Web server was unable to + start correctly for one reason or another. To find out why, + execute the following commands in a DOS window:</p> +<pre> + c: + cd "\Program Files\Apache Group\Apache" + apache + +</pre> + + <p>(If you don't get the prompt back, hit Control-C to + cause Apache to exit.)</p> + + <p>The error you see will probably be one of those + preceding this question in the FAQ.</p> + + <p>As of Apache 1.3.14, first check the Windows NT Event + Log for Application errors using the Windows NT/2000 Event + Viewer program. Any errors that occur prior to opening the + Apache error log will be stored here, if Apache is run as a + Service on NT or 2000. As with any error, also check your + Apache error log.</p> + <hr /> + </li> + + <li><a id="suseFDN" name="suseFDN"><b>On a SuSE Linux system, I try and + configure access control using basic authentication. + Although I follow the example exactly, authentication + fails, and an error message "<code>admin: not a valid + FDN: ....</code>" is logged.</b></a> + + <p> + In the SuSE distribution, additional 3rd party authentication + modules have been added and activated by default. These modules + interfere with the Apache standard modules and cause Basic + authentication to fail. Our recommendation is to comment all + those modules in <code>/etc/httpd/suse_addmodule.conf</code> + and <code>/etc/httpd/suse_loadmodule.conf</code> which are not + actually required for running your server. + </p><hr /> + </li> + + <li><a id="codered" name="codered"><b>Why do I have weird entries in my + logs asking for <code>default.ida</code> and + <code>cmd.exe</code>?</b></a> + + <p>The host requesting pages from your website and creating + those entries is a Windows machine running IIS that has been + infected by an Internet worm such as Nimda or Code Red. You + can safely ignore these error messages as they do not affect + Apache. ApacheWeek has an <a + href="http://www.apacheweek.com/features/codered">article</a> + with more information.</p><hr /> + </li> + + <li><a id="restart" name="restart"><b>Why am I getting server restart + messages periodically, when I did not restart the server?</b></a> + + <p>Problem: You are noticing restart messages in your error log, + periodically, when you know you did not restart the server + yourself:</p> + +<pre> +[Thu Jun 6 04:02:01 2002] [notice] SIGHUP received. Attempting to restart +[Thu Jun 6 04:02:02 2002] [notice] Apache configured -- resuming normal operations +</pre> + + <p>Check your cron jobs to see when/if your server logs are being + rotated. Compare the time of rotation to the error message time. + If they are the same, you can somewhat safely assume that the + restart is due to your server logs being rotated.</p><hr /> + </li> + + <li><a id="modulemagic" name="modulemagic"><b>Why am I getting + "module <em>module-name</em> is not compatible with this version + of Apache" messages in my error log?</b></a> + + <p>Module Magic Number (MMN) is a constant defined in Apache + source that is associated with binary compatibility of + modules. It is changed when internal Apache structures, + function calls and other significant parts of API change in + such a way that binary compatibility cannot be guaranteed any + more. On MMN change, all third party modules have to be at + least recompiled, sometimes even slightly changed in order + to work with the new version of Apache.</p> + + <p>If you're getting the above error messages, contact the + vendor of the module for the new binary, or compile it if + you have access to the source code.</p><hr /> + </li> + + </ol> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + <!-- Don't forget to add HR tags at the end of each list item.. --> + <!--#include virtual="footer.html" --> + <!--#endif --> + </body> +</html> + diff --git a/htdocs/manual/misc/FAQ-E.html b/htdocs/manual/misc/FAQ-E.html new file mode 100644 index 0000000000..19b44f3deb --- /dev/null +++ b/htdocs/manual/misc/FAQ-E.html @@ -0,0 +1,972 @@ +<!--#if expr="$FAQMASTER" --> +<!--#set var="STANDALONE" value="" --> +<!--#set var="INCLUDED" value="YES" --> +<!--#if expr="$QUERY_STRING = TOC" --> +<!--#set var="TOC" value="YES" --> +<!--#set var="CONTENT" value="" --> +<!--#else --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="YES" --> +<!--#endif --> +<!--#else --> +<!--#set var="STANDALONE" value="YES" --> +<!--#set var="INCLUDED" value="" --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="" --> +<!--#endif --> +<!--#if expr="$STANDALONE" --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Frequently Asked Questions</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Server Frequently Asked + Questions</h1> + + <p>$Revision: 1.26 $ ($Date: 2004/03/16 17:48:46 $)</p> + + <p>The latest version of this FAQ is always available from the + main Apache web site, at <<a + href="http://httpd.apache.org/docs/misc/FAQ.html" + rel="Help"><samp>http://httpd.apache.org/docs/misc/FAQ.html</samp></a>>.</p> + <!-- Notes about changes: --> + <!-- - If adding a relative link to another part of the --> + <!-- documentation, *do* include the ".html" portion. There's a --> + <!-- good chance that the user will be reading the documentation --> + <!-- on his own system, which may not be configured for --> + <!-- multiviews. --> + <!-- - When adding items, make sure they're put in the right place --> + <!-- - verify that the numbering matches up. --> + <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> + <!-- correctly in a reliable way when this is converted to text --> + <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> + <!-- blocks inside a <P></P> instead. This is necessary to get --> + <!-- the horizontal and vertical indenting right. --> + <!-- - Don't forget to include an HR tag after the last /P tag --> + <!-- but before the /LI in an item. --> + + <p>If you are reading a text-only version of this FAQ, you may + find numbers enclosed in brackets (such as "[12]"). These refer + to the list of reference URLs to be found at the end of the + document. These references do not appear, and are not needed, + for the hypertext version.</p> + + <h2>The Questions</h2> + + <ol type="A"> + <!--#endif --> + <!--#if expr="$TOC || $STANDALONE" --> + + <li value="5"> + <strong>Configuration Questions</strong> + + <ol> + <li><a href="#fdlim">Why can't I run more than + <<em>n</em>> virtual hosts?</a></li> + + <li><a href="#freebsd-setsize">Can I increase + <samp>FD_SETSIZE</samp> on FreeBSD?</a></li> + + <li><a href="#errordoc401">Why doesn't my + <code>ErrorDocument 401</code> work?</a></li> + + <li><a href="#cookies1">Why does Apache send a cookie on + every response?</a></li> + + <li><a href="#cookies2">Why don't my cookies work, I even + compiled in <samp>mod_cookies</samp>?</a></li> + + <li><a href="#jdk1-and-http1.1">Why do my Java app[let]s + give me plain text when I request an URL from an Apache + server?</a></li> + + <li><a href="#midi">How do I get Apache to send a MIDI + file so the browser can play it?</a></li> + + <li><a href="#addlog">How do I add browsers and referrers + to my logs?</a></li> + + <li><a href="#set-servername">Why does accessing + directories only work when I include the trailing "/" + (<em>e.g.</em>, <samp>http://foo.domain.com/~user/</samp>) + but not when I omit it + (<em>e.g.</em>, <samp>http://foo.domain.com/~user</samp>)?</a></li> + + <li><a href="#no-info-directives">Why doesn't mod_info + list any directives?</a></li> + + <li><a href="#namevhost">I upgraded to Apache 1.3 and now + my virtual hosts don't work!</a></li> + + <li><a href="#redhat-htm">I'm using RedHat Linux and my + .htm files are showing up as HTML source rather than + being formatted!</a></li> + + <li><a href="#htaccess-work">My <code>.htaccess</code> + files are being ignored.</a></li> + + <li><a href="#forbidden">Why do I get a + "<samp>Forbidden</samp>" message whenever I try to access + a particular directory?</a></li> + + <li><a href="#malfiles">Why do I get a + "<samp>Forbidden/You don't have permission to access / on + this server</samp>" message whenever I try to access my + server?</a></li> + + <li><a href="#ie-ignores-mime">Why do my files appear + correctly in Internet Explorer, but show up as source or + trigger a save window with Netscape; or, Why doesn't + Internet Explorer render my text/plain document + correctly?</a></li> + + <li><a href="#canonical-hostnames">My site is accessible + under many different hostnames; how do I redirect clients + so that they see only a single name?</a></li> + + <li><a href="#firewall">Why can I access my website from the + server or from my local network, but I can't access it from + elsewhere on the Internet?</a></li> + + <li><a href="#indexes">How do I turn automatic directory listings + on or off?</a></li> + + <li><a href="#options">Why do my Options directives not have + the desired effect?</a></li> + + <li><a href="#serverheader">How can I change the information + that Apache returns about itself in the headers?</a></li> + + <li><a href="#proxyscan">Why do I see requests for other sites + appearing in my log files?</a></li> + + </ol> + </li> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + </ol> + <hr /> + + <h2>The Answers</h2> + <!--#endif --> + <!--#if expr="! $TOC" --> + + <h3>E. Configuration Questions</h3> + + <ol> + <li> + <a id="fdlim" name="fdlim"><strong>Why can't I run more + than <<em>n</em>> virtual hosts?</strong></a> + + <p>You are probably running into resource limitations in + your operating system. The most common limitation is the + <em>per</em>-process limit on <strong>file + descriptors</strong>, which is almost always the cause of + problems seen when adding virtual hosts. Apache often does + not give an intuitive error message because it is normally + some library routine (such as <code>gethostbyname()</code>) + which needs file descriptors and doesn't complain + intelligibly when it can't get them.</p> + + <p>Each log file requires a file descriptor, which means + that if you are using separate access and error logs for + each virtual host, each virtual host needs two file + descriptors. Each <a + href="../mod/core.html#listen"><samp>Listen</samp></a> + directive also needs a file descriptor.</p> + + <p>Typical values for <<em>n</em>> that we've seen + are in the neighborhood of 128 or 250. When the server + bumps into the file descriptor limit, it may dump core with + a SIGSEGV, it might just hang, or it may limp along and + you'll see (possibly meaningful) errors in the error log. + One common problem that occurs when you run into a file + descriptor limit is that CGI scripts stop being executed + properly.</p> + + <p>As to what you can do about this:</p> + + <ol> + <li>Reduce the number of <a + href="../mod/core.html#listen"><samp>Listen</samp></a> + directives. If there are no other servers running on the + machine on the same port then you normally don't need any + Listen directives at all. By default Apache listens to + all addresses on port 80.</li> + + <li>Reduce the number of log files. You can use <a + href="../mod/mod_log_config.html"><samp>mod_log_config</samp></a> + to log all requests to a single log file while including + the name of the virtual host in the log file. You can + then write a script to split the logfile into separate + files later if necessary. Such a script is provided with + the Apache 1.3 distribution in the + <samp>src/support/split-logfile</samp> file.</li> + + <li> + Increase the number of file descriptors available to + the server (see your system's documentation on the + <code>limit</code> or <code>ulimit</code> commands). + For some systems, information on how to do this is + available in the <a href="perf.html">performance + hints</a> page. There is a specific note for <a + href="#freebsd-setsize">FreeBSD</a> below. + + <p>For Windows 95, try modifying your + <samp>C:\CONFIG.SYS</samp> file to include a line + like</p> + + <dl> + <dd><code>FILES=300</code></dd> + </dl> + + <p>Remember that you'll need to reboot your Windows 95 + system in order for the new value to take effect.</p> + </li> + + <li>"Don't do that" - try to run with fewer virtual + hosts</li> + + <li>Spread your operation across multiple server + processes (using <a + href="../mod/core.html#listen"><samp>Listen</samp></a> + for example, but see the first point) and/or ports.</li> + </ol> + + <p>Since this is an operating-system limitation, there's + not much else available in the way of solutions.</p> + + <p>As of 1.2.1 we have made attempts to work around various + limitations involving running with many descriptors. <a + href="descriptors.html">More information is + available.</a></p> + <hr /> + </li> + + <li> + <a id="freebsd-setsize" name="freebsd-setsize"><strong>Can + I increase <samp>FD_SETSIZE</samp> on FreeBSD?</strong></a> + + + <p>On versions of FreeBSD before 3.0, the + <samp>FD_SETSIZE</samp> define defaults to 256. This means + that you will have trouble usefully using more than 256 + file descriptors in Apache. This can be increased, but + doing so can be tricky.</p> + + <p>If you are using a version prior to 2.2, you need to + recompile your kernel with a larger + <samp>FD_SETSIZE</samp>. This can be done by adding a line + such as:</p> + + <dl> + <dd><code>options FD_SETSIZE <em>nnn</em></code></dd> + </dl> + + <p>to your kernel config file. Starting at version 2.2, + this is no longer necessary.</p> + + <p>If you are using a version of 2.1-stable from after + 1997/03/10 or 2.2 or 3.0-current from before 1997/06/28, + there is a limit in the resolver library that prevents it + from using more file descriptors than what + <samp>FD_SETSIZE</samp> is set to when libc is compiled. To + increase this, you have to recompile libc with a higher + <samp>FD_SETSIZE</samp>.</p> + + <p>In FreeBSD 3.0, the default <samp>FD_SETSIZE</samp> has + been increased to 1024 and the above limitation in the + resolver library has been removed.</p> + + <p>After you deal with the appropriate changes above, you + can increase the setting of <samp>FD_SETSIZE</samp> at + Apache compilation time by adding + "<samp>-DFD_SETSIZE=<em>nnn</em></samp>" to the + <samp>EXTRA_CFLAGS</samp> line in your + <samp>Configuration</samp> file.</p> + <hr /> + </li> + + <li> + <a id="errordoc401" name="errordoc401"><strong>Why doesn't + my <code>ErrorDocument 401</code> work?</strong></a> + + <p>You need to use it with a URL in the form + "<samp>/foo/bar</samp>" and not one with a method and + hostname such as "<samp>http://host/foo/bar</samp>". See + the <a + href="../mod/core.html#errordocument"><samp>ErrorDocument</samp></a> + documentation for details. This was incorrectly documented + in the past.</p> + <hr /> + </li> + + <li> + <a id="cookies1" name="cookies1"><strong>Why does Apache + send a cookie on every response?</strong></a> + + <p>Apache does <em>not</em> automatically send a cookie on + every response, unless you have re-compiled it with the <a + href="../mod/mod_usertrack.html"><samp>mod_usertrack</samp></a> + module, and specifically enabled it with the <a + href="../mod/mod_usertrack.html#cookietracking"><samp>CookieTracking</samp></a> + directive. This module has been in Apache since version + 1.2. This module may help track users, and uses cookies to + do this. If you are not using the data generated by + <samp>mod_usertrack</samp>, do not compile it into + Apache.</p> + <hr /> + </li> + + <li> + <a id="cookies2" name="cookies2"><strong>Why don't my + cookies work, I even compiled in + <samp>mod_cookies</samp>?</strong></a> + + <p>Firstly, you do <em>not</em> need to compile in + <samp>mod_cookies</samp> in order for your scripts to work + (see the <a href="#cookies1">previous question</a> for more + about <samp>mod_cookies</samp>). Apache passes on your + <samp>Set-Cookie</samp> header fine, with or without this + module. If cookies do not work it will be because your + script does not work properly or your browser does not use + cookies or is not set-up to accept them.</p> + <hr /> + </li> + + <li> + <a id="jdk1-and-http1.1" + name="jdk1-and-http1.1"><strong>Why do my Java app[let]s + give me plain text when I request an URL from an Apache + server?</strong></a> + + <p>As of version 1.2, Apache is an HTTP/1.1 (HyperText + Transfer Protocol version 1.1) server. This fact is + reflected in the protocol version that's included in the + response headers sent to a client when processing a + request. Unfortunately, low-level Web access classes + included in the Java Development Kit (JDK) version 1.0.2 + expect to see the version string "HTTP/1.0" and do not + correctly interpret the "HTTP/1.1" value Apache is sending + (this part of the response is a declaration of what the + server can do rather than a declaration of the dialect of + the response). The result is that the JDK methods do not + correctly parse the headers, and include them with the + document content by mistake.</p> + + <p>This is definitely a bug in the JDK 1.0.2 foundation + classes from Sun, and it has been fixed in version 1.1. + However, the classes in question are part of the virtual + machine environment, which means they're part of the Web + browser (if Java-enabled) or the Java environment on the + client system - so even if you develop <em>your</em> + classes with a recent JDK, the eventual users might + encounter the problem. The classes involved are replaceable + by vendors implementing the Java virtual machine + environment, and so even those that are based upon the + 1.0.2 version may not have this problem.</p> + + <p>In the meantime, a workaround is to tell Apache to + "fake" an HTTP/1.0 response to requests that come from the + JDK methods; this can be done by including a line such as + the following in your server configuration files:</p> + + <dl> + <dd><code>BrowserMatch Java1.0 force-response-1.0<br /> + BrowserMatch JDK/1.0 force-response-1.0</code></dd> + </dl> + + <p>More information about this issue can be found in the <a + href="http://httpd.apache.org/info/jdk-102.html"><cite>Java + and HTTP/1.1</cite></a> page at the Apache web site.</p> + <hr /> + </li> + + <li> + <a id="midi" name="midi"><strong>How do I get Apache to + send a MIDI file so the browser can play it?</strong></a> + + <p>Even though the registered MIME type for MIDI files is + <samp>audio/midi</samp>, some browsers are not set up to + recognize it as such; instead, they look for + <samp>audio/x-midi</samp>. There are two things you can do + to address this:</p> + + <ol> + <li>Configure your browser to treat documents of type + <samp>audio/midi</samp> correctly. This is the type that + Apache sends by default. This may not be workable, + however, if you have many client installations to change, + or if some or many of the clients are not under your + control.</li> + + <li> + Instruct Apache to send a different + <samp>Content-type</samp> header for these files by + adding the following line to your server's + configuration files: + + <dl> + <dd><code>AddType audio/x-midi .mid .midi + .kar</code></dd> + </dl> + + <p>Note that this may break browsers that <em>do</em> + recognize the <samp>audio/midi</samp> MIME type unless + they're prepared to also handle + <samp>audio/x-midi</samp> the same way.</p> + </li> + </ol> + <hr /> + </li> + + <li> + <a id="addlog" name="addlog"><strong>How do I add browsers + and referrers to my logs?</strong></a> + + <p>Apache provides a couple of different ways of doing + this. The recommended method is to compile the <a + href="../mod/mod_log_config.html"><samp>mod_log_config</samp></a> + module into your configuration and use the <a + href="../mod/mod_log_config.html#customlog"><samp>CustomLog</samp></a> + directive.</p> + + <p>You can either log the additional information in files + other than your normal transfer log, or you can add them to + the records already being written. For example:</p> + + <p> + <code>CustomLog logs/access_log "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\""</code></p> + + <p>This will add the values of the <samp>User-agent:</samp> + and <samp>Referer:</samp> headers, which indicate the + client and the referring page, respectively, to the end of + each line in the access log.</p> + + <p>You may want to check out the <cite>Apache Week</cite> + article entitled: "<a + href="http://www.apacheweek.com/features/logfiles" + rel="Help"><cite>Gathering Visitor Information: Customizing + Your Logfiles</cite></a>".</p> + <hr /> + </li> + + <li> + <a id="set-servername" name="set-servername"><strong>Why + does accessing directories only work when I include the + trailing "/" + (<em>e.g.</em>, <samp>http://foo.domain.com/~user/</samp>) + but not when I omit it + (<em>e.g.</em>, <samp>http://foo.domain.com/~user</samp>)?</strong></a> + + + <p>When you access a directory without a trailing "/", + Apache needs to send what is called a redirect to the + client to tell it to add the trailing slash. If it did not + do so, relative URLs would not work properly. When it sends + the redirect, it needs to know the name of the server so + that it can include it in the redirect. There are two ways + for Apache to find this out; either it can guess, or you + can tell it. If your DNS is configured correctly, it can + normally guess without any problems. If it is not, however, + then you need to tell it.</p> + + <p>Add a <a + href="../mod/core.html#servername">ServerName</a> directive + to the config file to tell it what the domain name of the + server is.</p> + + <p>The other thing that can occasionally cause this symptom is a + misunderstanding of the <a + href="../mod/mod_alias.html#alias">Alias</a> directive, + resulting in an alias working with a trailing slash, and not + without one. The <code>Alias</code> directive is very literal, + and aliases what you tell it to. Consider the following + example:</p> + + <pre> + Alias /example/ /home/www/example/ + </pre> + + <p>The above directive creates an alias for URLs starting with + <code>/example/</code>, but does <em>not</em> alias URLs + starting with <code>/example</code>. That is to say, a URL such + as <code>http://servername.com/example/</code> will get the + desired content, but a URL such as + <code>http://servername.com/example</code> will result in a + "file not found" error.</p> + + <p>The following <code>Alias</code>, on the other hand, will + work for both cases:</p> + + <pre> + Alias /example /home/www/example + </pre> + + <hr /> + </li> + + <li> + <a id="no-info-directives" + name="no-info-directives"><strong>Why doesn't mod_info list + any directives?</strong></a> + + <p>The <a + href="../mod/mod_info.html"><samp>mod_info</samp></a> + module allows you to use a Web browser to see how your + server is configured. Among the information it displays is + the list modules and their configuration directives. The + "current" values for the directives are not necessarily + those of the running server; they are extracted from the + configuration files themselves at the time of the request. + If the files have been changed since the server was last + reloaded, the display will not match the values actively in + use. If the files and the path to the files are not + readable by the user as which the server is running (see + the <a href="../mod/core.html#user"><samp>User</samp></a> + directive), then <samp>mod_info</samp> cannot read them in + order to list their values. An entry <em>will</em> be made + in the error log in this event, however.</p> + <hr /> + </li> + + <li> + <a id="namevhost" name="namevhost"><strong>I upgraded to + Apache 1.3 and now my virtual hosts don't + work!</strong></a> + + <p>In versions of Apache prior to 1.3b2, there was a lot of + confusion regarding address-based virtual hosts and + (HTTP/1.1) name-based virtual hosts, and the rules + concerning how the server processed + <samp><VirtualHost></samp> definitions were very + complex and not well documented.</p> + + <p>Apache 1.3b2 introduced a new directive, <a + href="../mod/core.html#namevirtualhost"><samp>NameVirtualHost</samp></a>, + which simplifies the rules quite a bit. However, changing + the rules like this means that your existing name-based + <samp><VirtualHost></samp> containers probably won't + work correctly immediately following the upgrade.</p> + + <p>To correct this problem, add the following line to the + beginning of your server configuration file, before + defining any virtual hosts:</p> + + <dl> + <dd><code>NameVirtualHost <em>n.n.n.n</em></code></dd> + </dl> + + <p>Replace the "<samp>n.n.n.n</samp>" with the IP address + to which the name-based virtual host names resolve; if you + have multiple name-based hosts on multiple addresses, + repeat the directive for each address.</p> + + <p>Make sure that your name-based + <samp><VirtualHost></samp> blocks contain + <samp>ServerName</samp> and possibly + <samp>ServerAlias</samp> directives so Apache can be sure + to tell them apart correctly.</p> + + <p>Please see the <a href="../vhosts/">Apache Virtual Host + documentation</a> for further details about + configuration.</p> + <hr /> + </li> + + <li> + <a id="redhat-htm" name="redhat-htm"><strong>I'm using + RedHat Linux and my .htm files are showing up as HTML + source rather than being formatted!</strong></a> + + <p>RedHat messed up and forgot to put a content type for + <code>.htm</code> files into <code>/etc/mime.types</code>. + Edit <code>/etc/mime.types</code>, find the line containing + <code>html</code> and add <code>htm</code> to it. Then + restart your httpd server:</p> + + <dl> + <dd><code>kill -HUP `cat /var/run/httpd.pid`</code></dd> + </dl> + + <p>Then <strong>clear your browsers' caches</strong>. (Many + browsers won't re-examine the content type after they've + reloaded a page.)</p> + <hr /> + </li> + + <li> + <a id="htaccess-work" name="htaccess-work"><strong>My + <code>.htaccess</code> files are being + ignored.</strong></a> + + <p>This is almost always due to your <a + href="../mod/core.html#allowoverride">AllowOverride</a> + directive being set incorrectly for the directory in + question. If it is set to <code>None</code> then .htaccess + files will not even be looked for. If you do have one that + is set, then be certain it covers the directory you are + trying to use the .htaccess file in. This is normally + accomplished by ensuring it is inside the proper <a + href="../mod/core.html#directory">Directory</a> + container.</p> + <hr /> + </li> + + <li> + <a id="forbidden" name="forbidden"><strong>Why do I get a + "<samp>Forbidden</samp>" message whenever I try to access a + particular directory?</strong></a> + + <p>This message is generally caused because either</p> + + <ul> + <li>The underlying file system permissions do not allow + the User/Group under which Apache is running to access + the necessary files; or</li> + + <li>The Apache configuration has some access restrictions + in place which forbid access to the files.</li> + </ul> + + <p>You can determine which case applies to your situation + by checking the error log.</p> + + <p>In the case where file system permission are at fault, + remember that not only must the directory and files in + question be readable, but also all parent directories must + be at least searchable (i.e., <i>chmod +x /directory/path</i>) + by the web server in order for the content to be accessible.</p> + <hr /> + </li> + + <li> + <a id="malfiles" name="malfiles"><b>Why do I get a + "<samp>Forbidden/You don't have permission to access / on + this server</samp>" message whenever I try to access my + server?</b></a> + + <p>Search your <code>conf/httpd.conf</code> file for this + exact string: <code><Files ~></code>. If you find it, + that's your problem -- that particular <Files> + container is malformed. Delete it or replace it with + <code><Files ~ "^\.ht"></code> and restart your + server and things should work as expected.</p> + + <p>This error appears to be caused by a problem with the + version of linuxconf distributed with Redhat 6.x. It may + reappear if you use linuxconf again.</p> + + <p>If you don't find this string, check out the <a + href="#forbidden">previous question</a>.</p> + <hr /> + </li> + + <li> + <a id="ie-ignores-mime" name="ie-ignores-mime"><strong>Why + do my files appear correctly in Internet Explorer, but show + up as source or trigger a save window with + Netscape; or, Why doesn't Internet Explorer render + my text/plain document correctly?</strong></a> + + <p>MS Internet Explorer (MSIE) and Netscape handle mime type + detection in different ways, and therefore will display the + document differently. In particular, IE sometimes relies on + the file extension or the contents of the file to determine + the mime type. This can happen when the server specifies a + mime type of <code>application/octet-stream</code> or + <code>text/plain</code>. This behavior violates the the HTTP + standard and makes it impossible to deliver plain text + documents to MSIE clients in some cases. More details are + available on MSIE's mime type detection behavior in an <a + href="http://msdn.microsoft.com/workshop/networking/moniker/overview/appendix_a.asp"> + MSDN article</a> and a <a + href="http://ppewww.ph.gla.ac.uk/~flavell/www/content-type.html">note</a> + by Alan J. Flavell.</p> + + <p>The best you can do as a server administrator is to + accurately configure the mime type of your documents by editing + the <code>mime.types</code> file or using an <a + href="../mod/mod_mime.html#addtype"><code>AddType</code></a> + directive in the Apache configuration files. In some cases, + you may be able to fool MSIE into rendering text/plain documents + correctly by assuring they have a <code>.txt</code> filename + extension, but this will not work if MSIE thinks the content + looks like another file type. +</p> <hr /> + </li> + <li> + <a name="canonical-hostnames"><strong>My site is accessible + under many different hostnames; how do I redirect clients + so that they see only a single name?</strong></a> + + <p>Many sites map a variety of hostnames to the same content. + For example, <code>www.example.com</code>, + <code>example.com</code> and <code>www.example.net</code> may + all refer to the same site. It is best to make sure that, + regardless of the name clients use to access the site, they + will be redirected to a single, canonical hostname. This + makes the site easier to maintain and assures that there will + be only one version of the site in proxy caches and search + engines.</p> + + <p>There are two techniques to implement canonical hostnames:</p> + + <ol> + <li>Use <a href="../mod/mod_rewrite.html">mod_rewrite</a> + as described in the "Canonical Hostnames" section of the + <a href="rewriteguide.html">URL Rewriting Guide</a>.</li> + + <li>Use <a href="../vhosts/name-based.html">name-based + virtual hosting</a>: + +<blockquote><code> +NameVirtualHost *<br /> +<br /> +<VirtualHost *><br /> + ServerName www.example.net<br /> + ServerAlias example.com<br /> + Redirect permanent / http://www.example.com/<br /> +</VirtualHost><br /> +<br /> +<VirtualHost *><br /> + ServerName www.example.com<br /> + DocumentRoot /usr/local/apache/htdocs<br /> +</VirtualHost> +</code></blockquote> + </li></ol> + <hr /></li> + + <li><a id="firewall" name="firewall"><strong>Why can I access my + website from the server or from my local network, but I + can't access it from elsewhere on the Internet?</strong></a> + + <p>There are many possible reasons for this, and almost all + of them are related to the configuration of your network, not + the configuration of the Apache HTTP Server. One of the most + common problems is that a firewall blocks access to the + default HTTP port 80. In particular, many consumer ISPs + block access to this port. You can see if this is the case + by changing any <code>Port</code> and <code>Listen</code> + directives in <code>httpd.conf</code> to use port 8000 and + then request your site using + <code>http://yourhost.example.com:8000/</code>. (Of course, + a very restrictive firewall may block this port as well.)</p> + + <hr /></li> + + <li><a id="indexes" name="indexes"><strong>How do I turn automatic + directory listings on or off?</strong></a> + + <p>If a client requests a URL that designates a directory and + the directory does not contain a filename that matches the <a + href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a> + directive, then <a + href="../mod/mod_autoindex.html">mod_autoindex</a> can be + configured to present a listing of the directory contents.</p> + + <p>To turn on automatic directory indexing, find the + <a href="../mod/core.html#options">Options</a> directive that + applies to the directory and add the <code>Indexes</code> + keyword. For example:</p> + + <blockquote><code> + <Directory /path/to/directory><br /> + Options +Indexes<br /> + </Directory> + </code></blockquote> + + <p>To turn off automatic directory indexing, remove + the <code>Indexes</code> keyword from the appropriate + <code>Options</code> line. To turn off directory listing + for a particular subdirectory, you can use + <code>Options -Indexes</code>. For example:</p> + + <blockquote><code> + <Directory /path/to/directory><br /> + Options -Indexes<br /> + </Directory> + </code></blockquote> + + <hr /></li> + + <li><a id="options" name="options"><strong>Why do my Options + directives not have the desired effect?</strong></a> + + <p>Directives placed in the configuration files are applied + in a very particular order, as described by <a + href="../sections.html">How Directory, Location, and Files + sections work</a>. In addition, each <a + href="../mod/core.html#options">Options</a> directive has the + effect of resetting the options to <code>none</code> before + adding the specified options (unless only "+" and "-" options + are used). The consequence is that <code>Options</code> set + in the main server or virtual host context (outside any + directory, location, or files section) will usually have no + effect, because they are overridden by more specific + <code>Options</code> directives. For example, in the following</p> + +<blockquote><code> +<Directory /usr/local/apache/htdocs><br /> + Options Indexes<br /> +</Directory><br /> +Options Includes ExecCGI<br /> +</code></blockquote> + + <p><code>Includes</code> and <code>ExecCGI</code> will be + <strong>off</strong> in the <code>/usr/local/apache/htdocs</code> + directory.</p> + + <p>You can usually avoid problems by either finding the + <code>Options</code> directive that already applies to a + specific directory and changing it, or by putting your + <code>Options</code> directive inside the most specific possible + <code><Directory></code> section.</p> + + <hr /></li> + + + <li><a id="serverheader" name="serverheader"><strong>How can I change + the information that Apache returns about itself in the + headers?</strong></a> + + <p>When a client connects to Apache, part of the information returned in + the headers is the name "Apache" Additional information that can be sent + is the version number, such as "1.3.26", the operating system, and a + list of non-standard modules you have installed.</p> + + <p>For example:</p> + +<blockquote><code> +Server: Apache/1.3.26 (Unix) mod_perl/1.26 +</code></blockquote> + + <p>Frequently, people want to remove this information, under the mistaken + understanding that this will make the system more secure. This is + probably not the case, as the same exploits will likely be attempted + regardless of the header information you provide.</p> + + <p>There are, however, two answers to this question: the correct answer, + and the answer that you are probably looking for.</p> + + <p>The correct answer to this question is that you should use the + ServerTokens directive to alter the quantity of information which is + passed in the headers. Setting this directive to <code>Prod</code> will + pass the least possible amount of information:</p> + +<blockquote><code> +Server: Apache +</code></blockquote> + + <p>The answer you are probably looking for is how to make Apache lie + about what what it is, ie send something like:</p> + +<blockquote><code> +Server: Bob's Happy HTTPd Server +</code></blockquote> + + <p>In order to do this, you will need to modify the Apache source code and + rebuild Apache. This is not advised, as it is almost certain not to + provide you with the added security you think that you are gaining. The + exact method of doing this is left as an exercise for the reader, as we + are not keen on helping you do something that is intrinsically a bad + idea.</p> + + <hr /></li> + + <li><a id="proxyscan" name="proxyscan"><strong>Why do I see requests + for other sites appearing in my log files?</strong></a> + + <p>A an access_log entry showing this situation could look + like this:</p> + + <blockquote><code> 63.251.56.142 - - + [25/Jul/2002:12:48:04 -0700] "GET http://www.yahoo.com/ + HTTP/1.0" 200 1456 </code></blockquote> + + <p>The question is: why did a request for + <code>www.yahoo.com</code> come to your server instead of + Yahoo's server? And why does the response have a status + code of 200 (success)?</p> + + <p>This is usually the result of malicious clients trying to + exploit open proxy servers to access a website without + revealing their true location. If you find entries like this + in your log, the first thing to do is to make sure you have + properly configured your server not to proxy for unknown + clients. If you don't need to provide a proxy server at all, + you should simply assure that the <a + href="../mod/mod_proxy.html#proxyrequests">ProxyRequests</a> + directive is <strong>not</strong> set <code>on</code>. + If you do need to run a proxy server, then you must ensure + that you <a href="../mod/mod_proxy.html#access">secure your + server properly</a> so that only authorized clients can use + it.</p> + + <p>If your server is configured properly, then the attempt to + proxy through your server will fail. If you see a status + code of <code>404</code> (file not found) in the log, then + you know that the request failed. If you see a status code + of <code>200</code> (success), that does not necessarily mean + that the attempt to proxy succeeded. RFC2616 section 5.1.2 + mandates that Apache must accept requests with absolute URLs + in the request-URI, even for non-proxy requests. Since + Apache has no way to know all the different names that your + server may be known under, it cannot simply reject hostnames + it does not recognize. Instead, it will serve requests for + unknown sites locally by stripping off the hostname and using + the default server or virtual host. Therefore you can + compare the size of the file (1456 in the above example) to + the size of the corresponding file in your default server. + If they are the same, then the proxy attempt failed, since a + document from your server was delivered, not a document from + <code>www.yahoo.com</code>.</p> + + <p>If you wish to prevent this type of request entirely, then + you need to let Apache know what hostnames to accept and what + hostnames to reject. You do this by configuring name-virtual + hosts, where the first listed host is the default host that + will catch and reject unknown hostnames. For example:</p> + +<blockquote> +<pre> +NameVirtualHost * + +<VirtualHost *> + ServerName default.only + <Location /> + Order allow,deny + Deny from all + </Location> +</VirtualHost> + +<VirtualHost *> + ServerName realhost1.example.com + ServerAlias alias1.example.com alias2.example.com + DocumentRoot /path/to/site1 +</VirtualHost> + +... +</pre> +</blockquote> + <hr /></li> + + </ol> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + <!-- Don't forget to add HR tags at the end of each list item.. --> + <!--#include virtual="footer.html" --> + <!--#endif --> + </body> +</html> + diff --git a/htdocs/manual/misc/FAQ-F.html b/htdocs/manual/misc/FAQ-F.html new file mode 100644 index 0000000000..8f1cc8c48f --- /dev/null +++ b/htdocs/manual/misc/FAQ-F.html @@ -0,0 +1,574 @@ +<!--#if expr="$FAQMASTER" --> +<!--#set var="STANDALONE" value="" --> +<!--#set var="INCLUDED" value="YES" --> +<!--#if expr="$QUERY_STRING = TOC" --> +<!--#set var="TOC" value="YES" --> +<!--#set var="CONTENT" value="" --> +<!--#else --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="YES" --> +<!--#endif --> +<!--#else --> +<!--#set var="STANDALONE" value="YES" --> +<!--#set var="INCLUDED" value="" --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="" --> +<!--#endif --> +<!--#if expr="$STANDALONE" --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Frequently Asked Questions</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Server Frequently Asked + Questions</h1> + + <p>$Revision: 1.11 $ ($Date: 2002/06/07 01:48:13 $)</p> + + <p>The latest version of this FAQ is always available from the + main Apache web site, at <<a + href="http://httpd.apache.org/docs/misc/FAQ.html" + rel="Help"><samp>http://httpd.apache.org/docs/misc/FAQ.html</samp></a>>.</p> + <!-- Notes about changes: --> + <!-- - If adding a relative link to another part of the --> + <!-- documentation, *do* include the ".html" portion. There's a --> + <!-- good chance that the user will be reading the documentation --> + <!-- on his own system, which may not be configured for --> + <!-- multiviews. --> + <!-- - When adding items, make sure they're put in the right place --> + <!-- - verify that the numbering matches up. --> + <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> + <!-- correctly in a reliable way when this is converted to text --> + <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> + <!-- blocks inside a <P></P> instead. This is necessary to get --> + <!-- the horizontal and vertical indenting right. --> + <!-- - Don't forget to include an HR tag after the last /P tag --> + <!-- but before the /LI in an item. --> + + <p>If you are reading a text-only version of this FAQ, you may + find numbers enclosed in brackets (such as "[12]"). These refer + to the list of reference URLs to be found at the end of the + document. These references do not appear, and are not needed, + for the hypertext version.</p> + + <h2>The Questions</h2> + + <ol type="A"> + <!--#endif --> + <!--#if expr="$TOC || $STANDALONE" --> + + <li value="6"> + <strong>Dynamic Content (CGI and SSI)</strong> + + <ol> + <li><a href="#CGIoutsideScriptAlias">How do I enable CGI + execution in directories other than the + ScriptAlias?</a></li> + + <li><a href="#premature-script-headers">What does it mean + when my CGIs fail with "<samp>Premature end of script + headers</samp>"?</a></li> + + <li><a href="#POSTnotallowed">Why do I keep getting + "Method Not Allowed" for form POST requests?</a></li> + + <li><a href="#nph-scripts">How can I get my script's + output without Apache buffering it? Why doesn't my server + push work?</a></li> + + <li><a href="#cgi-spec">Where can I find the "CGI + specification"?</a></li> + + <li><a href="#fastcgi">Why isn't FastCGI included with + Apache any more?</a></li> + + <li><a href="#ssi-part-i">How do I enable SSI (parsed + HTML)?</a></li> + + <li><a href="#ssi-part-ii">Why don't my parsed files get + cached?</a></li> + + <li><a href="#ssi-part-iii">How can I have my script + output parsed?</a></li> + + <li><a href="#ssi-part-iv">SSIs don't work for + VirtualHosts and/or user home directories</a></li> + + <li><a href="#errordocssi">How can I use + <code>ErrorDocument</code> and SSI to simplify customized + error messages?</a></li> + + <li><a href="#remote-user-var">Why is the environment + variable <samp>REMOTE_USER</samp> not set?</a></li> + + <li><a href="#user-cgi">How do I allow each of my user + directories to have a cgi-bin directory?</a></li> + </ol> + </li> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + </ol> + <hr /> + + <h2>The Answers</h2> + <!--#endif --> + <!--#if expr="! $TOC" --> + + <h3>F. Dynamic Content (CGI and SSI)</h3> + + <ol> + <li> + <a id="CGIoutsideScriptAlias" + name="CGIoutsideScriptAlias"><strong>How do I enable CGI + execution in directories other than the + ScriptAlias?</strong></a> + + <p>Apache recognizes all files in a directory named as a <a + href="../mod/mod_alias.html#scriptalias"><samp>ScriptAlias</samp></a> + as being eligible for execution rather than processing as + normal documents. This applies regardless of the file name, + so scripts in a ScriptAlias directory don't need to be + named "<samp>*.cgi</samp>" or "<samp>*.pl</samp>" or + whatever. In other words, <em>all</em> files in a + ScriptAlias directory are scripts, as far as Apache is + concerned.</p> + + <p>To persuade Apache to execute scripts in other + locations, such as in directories where normal documents + may also live, you must tell it how to recognize them - and + also that it's okay to execute them. For this, you need to + use something like the <a + href="../mod/mod_mime.html#addhandler"><samp>AddHandler</samp></a> + directive.</p> + + <ol> + <li> + In an appropriate section of your server configuration + files, add a line such as + + <dl> + <dd><code>AddHandler cgi-script .cgi</code></dd> + </dl> + + <p>The server will then recognize that all files in + that location (and its logical descendants) that end in + "<samp>.cgi</samp>" are script files, not + documents.</p> + </li> + + <li>Make sure that the directory location is covered by + an <a + href="../mod/core.html#options"><samp>Options</samp></a> + declaration that includes the <samp>ExecCGI</samp> + option.</li> + </ol> + + <p>In some situations, you might not want to actually allow + all files named "<samp>*.cgi</samp>" to be executable. + Perhaps all you want is to enable a particular file in a + normal directory to be executable. This can be + alternatively accomplished <em>via</em> <a + href="../mod/mod_rewrite.html"><samp>mod_rewrite</samp></a> + and the following steps:</p> + + <ol> + <li> + Locally add to the corresponding <samp>.htaccess</samp> + file a ruleset similar to this one: + + <dl> + <dd><code>RewriteEngine on<br /> + RewriteBase /~foo/bar/<br /> + RewriteRule ^quux\.cgi$ - + [T=application/x-httpd-cgi]</code></dd> + </dl> + </li> + + <li>Make sure that the directory location is covered by + an <a + href="../mod/core.html#options"><samp>Options</samp></a> + declaration that includes the <samp>ExecCGI</samp> and + <samp>FollowSymLinks</samp> option.</li> + </ol> + <hr /> + </li> + + <li> + <a id="premature-script-headers" + name="premature-script-headers"><strong>What does it mean + when my CGIs fail with "<samp>Premature end of script + headers</samp>"?</strong></a> + + <p>It means just what it says: the server was expecting a + complete set of HTTP headers (one or more followed by a + blank line), and didn't get them.</p> + + <p>The most common cause of this problem is the script + dying before sending the complete set of headers, or + possibly any at all, to the server. To see if this is the + case, try running the script standalone from an interactive + session, rather than as a script under the server. If you + get error messages, this is almost certainly the cause of + the "premature end of script headers" message. Even if the + CGI runs fine from the command line, remember that the + environment and permissions may be different when running + under the web server. The CGI can only access resources + allowed for the <a + href="../mod/core.html#user"><code>User</code></a> and <a + href="../mod/core.html#group"><code>Group</code></a> + specified in your Apache configuration. In addition, the + environment will not be the same as the one provided on the + command line, but it can be adjusted using the directives + provided by <a href="../mod/mod_env.html">mod_env</a>.</p> + + <p>The second most common cause of this (aside from people + not outputting the required headers at all) is a result of + an interaction with Perl's output buffering. To make Perl + flush its buffers after each output statement, insert the + following statements around the <code>print</code> or + <code>write</code> statements that send your HTTP + headers:</p> + + <dl> + <dd><code>{<br /> + local ($oldbar) = $|;<br /> + $cfh = select (STDOUT);<br /> + $| = 1;<br /> + #<br /> + # print your HTTP headers here<br /> + #<br /> + $| = $oldbar;<br /> + select ($cfh);<br /> + }</code></dd> + </dl> + + <p>This is generally only necessary when you are calling + external programs from your script that send output to + stdout, or if there will be a long delay between the time + the headers are sent and the actual content starts being + emitted. To maximize performance, you should turn + buffer-flushing back <em>off</em> (with <code>$| = 0</code> + or the equivalent) after the statements that send the + headers, as displayed above.</p> + + <p>If your script isn't written in Perl, do the equivalent + thing for whatever language you <em>are</em> using + (<em>e.g.</em>, for C, call <code>fflush()</code> after + writing the headers).</p> + + <p>Another cause for the "premature end of script headers" + message are the RLimitCPU and RLimitMEM directives. You may + get the message if the CGI script was killed due to a + resource limit.</p> + + <p>In addition, a configuration problem in <a + href="../suexec.html">suEXEC</a>, mod_perl, or another + third party module can often interfere with the execution + of your CGI and cause the "premature end of script headers" + message.</p> + <hr /> + </li> + + <li> + <a id="POSTnotallowed" name="POSTnotallowed"><strong>Why do + I keep getting "Method Not Allowed" for form POST + requests?</strong></a> + + <p>This is almost always due to Apache not being configured + to treat the file you are trying to POST to as a CGI + script. You can not POST to a normal HTML file; the + operation has no meaning. See the FAQ entry on <a + href="#CGIoutsideScriptAlias">CGIs outside ScriptAliased + directories</a> for details on how to configure Apache to + treat the file in question as a CGI.</p> + <hr /> + </li> + + <li> + <a id="nph-scripts" name="nph-scripts"><strong>How can I + get my script's output without Apache buffering it? Why + doesn't my server push work?</strong></a> + + <p>As of Apache 1.3, CGI scripts are essentially not + buffered. Every time your script does a "flush" to output + data, that data gets relayed on to the client. Some + scripting languages, for example Perl, have their own + buffering for output - this can be disabled by setting the + <code>$|</code> special variable to 1. Of course this does + increase the overall number of packets being transmitted, + which can result in a sense of slowness for the end + user.</p> + + <p>Prior to 1.3, you needed to use "nph-" scripts to + accomplish non-buffering. Today, the only difference + between nph scripts and normal scripts is that nph scripts + require the full HTTP headers to be sent.</p> + <hr /> + </li> + + <li> + <a id="cgi-spec" name="cgi-spec"><strong>Where can I find + the "CGI specification"?</strong></a> + + <p>The Common Gateway Interface (CGI) specification can be + found at the original NCSA site < <a + href="http://hoohoo.ncsa.uiuc.edu/cgi/interface.html"><samp> + http://hoohoo.ncsa.uiuc.edu/cgi/interface.html</samp></a>>. + This version hasn't been updated since 1995, and there have + been some efforts to update it.</p> + + <p>A new draft is being worked on with the intent of making + it an informational RFC; you can find out more about this + project at <<a + href="http://web.golux.com/coar/cgi/"><samp>http://web.golux.com/coar/cgi/</samp></a>>.</p> + <hr /> + </li> + + <li> + <a id="fastcgi" name="fastcgi"><strong>Why isn't FastCGI + included with Apache any more?</strong></a> + + <p>The simple answer is that it was becoming too difficult + to keep the version being included with Apache synchronized + with the master copy at the <a + href="http://www.fastcgi.com/">FastCGI web site</a>. When a + new version of Apache was released, the version of the + FastCGI module included with it would soon be out of + date.</p> + + <p>You can still obtain the FastCGI module for Apache from + the master FastCGI web site.</p> + <hr /> + </li> + + <li> + <a id="ssi-part-i" name="ssi-part-i"><strong>How do I + enable SSI (parsed HTML)?</strong></a> + + <p>SSI (an acronym for Server-Side Include) directives + allow static HTML documents to be enhanced at run-time + (<em>e.g.</em>, when delivered to a client by Apache). The + format of SSI directives is covered in the <a + href="../mod/mod_include.html">mod_include manual</a>; + suffice it to say that Apache supports not only SSI but + xSSI (eXtended SSI) directives.</p> + + <p>Processing a document at run-time is called + <em>parsing</em> it; hence the term "parsed HTML" sometimes + used for documents that contain SSI instructions. Parsing + tends to be resource-consumptive compared to serving static + files, and is not enabled by default. It can also interfere + with the cachability of your documents, which can put a + further load on your server. (See the <a + href="#ssi-part-ii">next question</a> for more information + about this.)</p> + + <p>To enable SSI processing, you need to</p> + + <ul> + <li>Build your server with the <a + href="../mod/mod_include.html"><samp>mod_include</samp></a> + module. This is normally compiled in by default.</li> + + <li>Make sure your server configuration files have an <a + href="../mod/core.html#options"><samp>Options</samp></a> + directive which permits <samp>Includes</samp>.</li> + + <li> + Make sure that the directory where you want the SSI + documents to live is covered by the "server-parsed" + content handler, either explicitly or in some ancestral + location. That can be done with the following <a + href="../mod/mod_mime.html#addhandler"><samp>AddHandler</samp></a> + directive: + + <dl> + <dd><code>AddHandler server-parsed .shtml</code></dd> + </dl> + + <p>This indicates that all files ending in ".shtml" in + that location (or its descendants) should be parsed. + Note that using ".html" will cause all normal HTML + files to be parsed, which may put an inordinate load on + your server.</p> + </li> + </ul> + + <p>For additional information, see the <cite>Apache + Week</cite> article on <a + href="http://www.apacheweek.com/features/ssi" + rel="Help"><cite>Using Server Side Includes</cite></a>.</p> + <hr /> + </li> + + <li> + <a id="ssi-part-ii" name="ssi-part-ii"><strong>Why don't my + parsed files get cached?</strong></a> + + <p>Since the server is performing run-time processing of + your SSI directives, which may change the content shipped + to the client, it can't know at the time it starts parsing + what the final size of the result will be, or whether the + parsed result will always be the same. This means that it + can't generate <samp>Content-Length</samp> or + <samp>Last-Modified</samp> headers. Caches commonly work by + comparing the <samp>Last-Modified</samp> of what's in the + cache with that being delivered by the server. Since the + server isn't sending that header for a parsed document, + whatever's doing the caching can't tell whether the + document has changed or not - and so fetches it again to be + on the safe side.</p> + + <p>You can work around this in some cases by causing an + <samp>Expires</samp> header to be generated. (See the <a + href="../mod/mod_expires.html" + rel="Help"><samp>mod_expires</samp></a> documentation for + more details.) Another possibility is to use the <a + href="../mod/mod_include.html#xbithack" + rel="Help"><samp>XBitHack Full</samp></a> mechanism, which + tells Apache to send (under certain circumstances detailed + in the XBitHack directive description) a + <samp>Last-Modified</samp> header based upon the last + modification time of the file being parsed. Note that this + may actually be lying to the client if the parsed file + doesn't change but the SSI-inserted content does; if the + included content changes often, this can result in stale + copies being cached.</p> + <hr /> + </li> + + <li> + <a id="ssi-part-iii" name="ssi-part-iii"><strong>How can I + have my script output parsed?</strong></a> + + <p>So you want to include SSI directives in the output from + your CGI script, but can't figure out how to do it? The + short answer is "you can't." This is potentially a security + liability and, more importantly, it can not be cleanly + implemented under the current server API. The best + workaround is for your script itself to do what the SSIs + would be doing. After all, it's generating the rest of the + content.</p> + + <p>This is a feature The Apache Group hopes to add in the + next major release after 1.3.</p> + <hr /> + </li> + + <li> + <a id="ssi-part-iv" name="ssi-part-iv"><strong>SSIs don't + work for VirtualHosts and/or user home + directories.</strong></a> + + <p>This is almost always due to having some setting in your + config file that sets "Options Includes" or some other + setting for your DocumentRoot but not for other + directories. If you set it inside a Directory section, then + that setting will only apply to that directory.</p> + <hr /> + </li> + + <li> + <a id="errordocssi" name="errordocssi"><strong>How can I + use <code>ErrorDocument</code> and SSI to simplify + customized error messages?</strong></a> + + <p>Have a look at <a href="custom_errordocs.html">this + document</a>. It shows in example form how you can a + combination of XSSI and negotiation to tailor a set of + <code>ErrorDocument</code>s to your personal taste, and + returning different internationalized error responses based + on the client's native language.</p> + <hr /> + </li> + + <li> + <a id="remote-user-var" name="remote-user-var"><strong>Why + is the environment variable <samp>REMOTE_USER</samp> not + set?</strong></a> + + <p>This variable is set and thus available in SSI or CGI + scripts <strong>if and only if</strong> the requested + document was protected by access authentication. For an + explanation on how to implement these restrictions, see <a + href="http://www.apacheweek.com/"><cite>Apache + Week</cite></a>'s articles on <a + href="http://www.apacheweek.com/features/userauth"><cite>Using + User Authentication</cite></a> or <a + href="http://www.apacheweek.com/features/dbmauth"><cite>DBM + User Authentication</cite></a>.</p> + + <p>Hint: When using a CGI script to receive the data of a + HTML <samp>FORM</samp> notice that protecting the document + containing the <samp>FORM</samp> is not sufficient to + provide <samp>REMOTE_USER</samp> to the CGI script. You + have to protect the CGI script, too. Or alternatively only + the CGI script (then authentication happens only after + filling out the form).</p> + <hr /> + </li> + + <li> + <a id="user-cgi" name="user-cgi"><strong>How do I allow + each of my user directories to have a cgi-bin + directory?</strong></a> + + <p>Remember that CGI execution does not need to be + restricted only to cgi-bin directories. You can <a + href="#CGIoutsideScriptAlias">allow CGI script execution in + arbitrary parts of your filesystem</a>.</p> + + <p>There are many ways to give each user directory a + cgi-bin directory such that anything requested as + <samp>http://example.com/~user/cgi-bin/program</samp> will + be executed as a CGI script. Two alternatives are:</p> + + <ol> + <li> + Place the cgi-bin directory next to the public_html + directory: + + <dl> + <dd><code>ScriptAliasMatch ^/~([^/]*)/cgi-bin/(.*) + /home/$1/cgi-bin/$2</code></dd> + </dl> + </li> + + <li> + Place the cgi-bin directory underneath the public_html + directory: + + <dl> + <dd><code><Directory + /home/*/public_html/cgi-bin><br /> + Options ExecCGI<br /> + SetHandler cgi-script<br /> + </Directory></code></dd> + </dl> + </li> + </ol> + <p>If you are using suexec, the first technique will not work + because CGI scripts must be stored under the <code>public_html</code> + directory.</p> + + <hr /> + </li> + </ol> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + <!-- Don't forget to add HR tags at the end of each list item.. --> + <!--#include virtual="footer.html" --> + <!--#endif --> + </body> +</html> + diff --git a/htdocs/manual/misc/FAQ-G.html b/htdocs/manual/misc/FAQ-G.html new file mode 100644 index 0000000000..9732c2bbbb --- /dev/null +++ b/htdocs/manual/misc/FAQ-G.html @@ -0,0 +1,461 @@ +<!--#if expr="$FAQMASTER" --> +<!--#set var="STANDALONE" value="" --> +<!--#set var="INCLUDED" value="YES" --> +<!--#if expr="$QUERY_STRING = TOC" --> +<!--#set var="TOC" value="YES" --> +<!--#set var="CONTENT" value="" --> +<!--#else --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="YES" --> +<!--#endif --> +<!--#else --> +<!--#set var="STANDALONE" value="YES" --> +<!--#set var="INCLUDED" value="" --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="" --> +<!--#endif --> +<!--#if expr="$STANDALONE" --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Frequently Asked Questions</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Server Frequently Asked + Questions</h1> + + <p>$Revision: 1.11 $ ($Date: 2003/01/13 03:29:32 $)</p> + + <p>The latest version of this FAQ is always available from the + main Apache web site, at <<a + href="http://httpd.apache.org/docs/misc/FAQ.html" + rel="Help"><samp>http://httpd.apache.org/docs/misc/FAQ.html</samp></a>>.</p> + <!-- Notes about changes: --> + <!-- - If adding a relative link to another part of the --> + <!-- documentation, *do* include the ".html" portion. There's a --> + <!-- good chance that the user will be reading the documentation --> + <!-- on his own system, which may not be configured for --> + <!-- multiviews. --> + <!-- - When adding items, make sure they're put in the right place --> + <!-- - verify that the numbering matches up. --> + <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> + <!-- correctly in a reliable way when this is converted to text --> + <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> + <!-- blocks inside a <P></P> instead. This is necessary to get --> + <!-- the horizontal and vertical indenting right. --> + <!-- - Don't forget to include an HR tag after the last /P tag --> + <!-- but before the /LI in an item. --> + + <p>If you are reading a text-only version of this FAQ, you may + find numbers enclosed in brackets (such as "[12]"). These refer + to the list of reference URLs to be found at the end of the + document. These references do not appear, and are not needed, + for the hypertext version.</p> + + <h2>The Questions</h2> + + <ol type="A"> + <!--#endif --> + <!--#if expr="$TOC || $STANDALONE" --> + + <li value="7"> + <strong>Authentication and Access Restrictions</strong> + + <ol> + <li><a href="#dnsauth">Why isn't restricting access by + host or domain name working correctly?</a></li> + + <li><a href="#user-authentication">How do I set up Apache + to require a username and password to access certain + documents?</a></li> + + <li><a href="#remote-auth-only">How do I set up Apache to + allow access to certain documents only if a site is + either a local site <em>or</em> the user supplies a + password and username?</a></li> + + <li><a href="#authauthoritative">Why does my + authentication give me a server error?</a></li> + + <li><a href="#auth-on-same-machine">Do I have to keep the + (mSQL) authentication information on the same + machine?</a></li> + + <li><a href="#msql-slow">Why is my mSQL authentication + terribly slow?</a></li> + + <li><a href="#passwdauth">Can I use my + <samp>/etc/passwd</samp> file for Web page + authentication?</a></li> + + <li><a href="#prompted-twice">Why does Apache ask for my + password twice before serving a file?</a></li> + + <li><a href="#image-theft">How can I prevent people from + "stealing" the images from my web site?</a></li> + + </ol> + </li> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + </ol> + <hr /> + + <h2>The Answers</h2> + <!--#endif --> + <!--#if expr="! $TOC" --> + + <h3>G. Authentication and Access Restrictions</h3> + + <ol> + <li> + <a id="dnsauth" name="dnsauth"><strong>Why isn't + restricting access by host or domain name working + correctly?</strong></a> + + <p>Two of the most common causes of this are:</p> + + <ol> + <li><strong>An error, inconsistency, or unexpected + mapping in the DNS registration</strong><br /> + This happens frequently: your configuration restricts + access to <samp>Host.FooBar.Com</samp>, but you can't get + in from that host. The usual reason for this is that + <samp>Host.FooBar.Com</samp> is actually an alias for + another name, and when Apache performs the + address-to-name lookup it's getting the <em>real</em> + name, not <samp>Host.FooBar.Com</samp>. You can verify + this by checking the reverse lookup yourself. The easiest + way to work around it is to specify the correct host name + in your configuration.</li> + + <li> + <strong>Inadequate checking and verification in your + configuration of Apache</strong><br /> + If you intend to perform access checking and + restriction based upon the client's host or domain + name, you really need to configure Apache to + double-check the origin information it's supplied. You + do this by adding the <samp>-DMAXIMUM_DNS</samp> clause + to the <samp>EXTRA_CFLAGS</samp> definition in your + <samp>Configuration</samp> file. For example: + + <dl> + <dd><code>EXTRA_CFLAGS=-DMAXIMUM_DNS</code></dd> + </dl> + + <p>This will cause Apache to be very paranoid about + making sure a particular host address is + <em>really</em> assigned to the name it claims to be. + Note that this <em>can</em> incur a significant + performance penalty, however, because of all the name + resolution requests being sent to a nameserver.</p> + </li> + </ol> + <hr /> + </li> + + <li> + <a id="user-authentication" + name="user-authentication"><strong>How do I set up Apache + to require a username and password to access certain + documents?</strong></a> + + <p>There are several ways to do this; some of the more + popular ones are to use the <a + href="../mod/mod_auth.html">mod_auth</a>, <a + href="../mod/mod_auth_db.html">mod_auth_db</a>, or <a + href="../mod/mod_auth_dbm.html">mod_auth_dbm</a> + modules.</p> + + <p>For an explanation on how to implement these + restrictions, see <a + href="http://www.apacheweek.com/"><cite>Apache + Week</cite></a>'s articles on <a + href="http://www.apacheweek.com/features/userauth"><cite>Using + User Authentication</cite></a> or <a + href="http://www.apacheweek.com/features/dbmauth"><cite>DBM + User Authentication</cite></a>, or see the <a + href="../howto/auth.html">authentication tutorial</a> in the + Apache documentation.</p> + <hr /> + </li> + + <li> + <a id="remote-auth-only" + name="remote-auth-only"><strong>How do I set up Apache to + allow access to certain documents only if a site is either + a local site <em>or</em> the user supplies a password and + username?</strong></a> + + <p>Use the <a href="../mod/core.html#satisfy">Satisfy</a> + directive, in particular the <code>Satisfy Any</code> + directive, to require that only one of the access + restrictions be met. For example, adding the following + configuration to a <samp>.htaccess</samp> or server + configuration file would restrict access to people who + either are accessing the site from a host under domain.com + or who can supply a valid username and password:</p> + + <dl> + <dd><code>Deny from all<br /> + Allow from .domain.com<br /> + AuthType Basic<br /> + AuthUserFile /usr/local/apache/conf/htpasswd.users<br /> + AuthName "special directory"<br /> + Require valid-user<br /> + Satisfy any</code></dd> + </dl> + + <p>See the <a href="#user-authentication">user + authentication</a> question and the <a + href="../mod/mod_access.html">mod_access</a> module for + details on how the above directives work.</p> + <hr /> + </li> + + <li> + <a id="authauthoritative" + name="authauthoritative"><strong>Why does my authentication + give me a server error?</strong></a> + + <p>Under normal circumstances, the Apache access control + modules will pass unrecognized user IDs on to the next + access control module in line. Only if the user ID is + recognized and the password is validated (or not) will it + give the usual success or "authentication failed" + messages.</p> + + <p>However, if the last access module in line 'declines' + the validation request (because it has never heard of the + user ID or because it is not configured), the + <samp>http_request</samp> handler will give one of the + following, confusing, errors:</p> + + <ul> + <li><samp>check access</samp></li> + + <li><samp>check user. No user file?</samp></li> + + <li><samp>check access. No groups file?</samp></li> + </ul> + + <p>This does <em>not</em> mean that you have to add an + '<samp>AuthUserFile /dev/null</samp>' line as some + magazines suggest!</p> + + <p>The solution is to ensure that at least the last module + is authoritative and <strong>CONFIGURED</strong>. By + default, <samp>mod_auth</samp> is authoritative and will + give an OK/Denied, but only if it is configured with the + proper <samp>AuthUserFile</samp>. Likewise, if a valid + group is required. (Remember that the modules are processed + in the reverse order from that in which they appear in your + compile-time <samp>Configuration</samp> file.)</p> + + <p>A typical situation for this error is when you are using + the <samp>mod_auth_dbm</samp>, <samp>mod_auth_msql</samp>, + <samp>mod_auth_mysql</samp>, <samp>mod_auth_anon</samp> or + <samp>mod_auth_cookie</samp> modules on their own. These + are by default <strong>not</strong> authoritative, and this + will pass the buck on to the (non-existent) next + authentication module when the user ID is not in their + respective database. Just add the appropriate + '<samp><em>XXX</em>Authoritative yes</samp>' line to the + configuration.</p> + + <p>In general it is a good idea (though not terribly + efficient) to have the file-based <samp>mod_auth</samp> a + module of last resort. This allows you to access the web + server with a few special passwords even if the databases + are down or corrupted. This does cost a file + open/seek/close for each request in a protected area.</p> + <hr /> + </li> + + <li> + <a id="auth-on-same-machine" + name="auth-on-same-machine"><strong>Do I have to keep the + (mSQL) authentication information on the same + machine?</strong></a> + + <p>Some organizations feel very strongly about keeping the + authentication information on a different machine than the + webserver. With the <samp>mod_auth_msql</samp>, + <samp>mod_auth_mysql</samp>, and other SQL modules + connecting to (R)DBMses this is quite possible. Just + configure an explicit host to contact.</p> + + <p>Be aware that with mSQL and Oracle, opening and closing + these database connections is very expensive and time + consuming. You might want to look at the code in the + <samp>auth_*</samp> modules and play with the compile time + flags to alleviate this somewhat, if your RDBMS licences + allow for it.</p> + <hr /> + </li> + + <li> + <a id="msql-slow" name="msql-slow"><strong>Why is my mSQL + authentication terribly slow?</strong></a> + + <p>You have probably configured the Host by specifying a + FQHN, and thus the <samp>libmsql</samp> will use a full + blown TCP/IP socket to talk to the database, rather than a + fast internal device. The <samp>libmsql</samp>, the mSQL + FAQ, and the <samp>mod_auth_msql</samp> documentation warn + you about this. If you have to use different hosts, check + out the <samp>mod_auth_msql</samp> code for some compile + time flags which might - or might not - suit you.</p> + <hr /> + </li> + + <li> + <a id="passwdauth" name="passwdauth"><strong>Can I use my + <samp>/etc/passwd</samp> file for Web page + authentication?</strong></a> + + <p>Yes, you can - but it's a <strong>very bad + idea</strong>. Here are some of the reasons:</p> + + <ul> + <li>The Web technology provides no governors on how often + or how rapidly password (authentication failure) retries + can be made. That means that someone can hammer away at + your system's <samp>root</samp> password using the Web, + using a dictionary or similar mass attack, just as fast + as the wire and your server can handle the requests. Most + operating systems these days include attack detection + (such as <em>n</em> failed passwords for the same account + within <em>m</em> seconds) and evasion (breaking the + connection, disabling the account under attack, disabling + <em>all</em> logins from that source, <em>et + cetera</em>), but the Web does not.</li> + + <li>An account under attack isn't notified (unless the + server is heavily modified); there's no "You have 19483 + login failures" message when the legitimate owner logs + in.</li> + + <li>Without an exhaustive and error-prone examination of + the server logs, you can't tell whether an account has + been compromised. Detecting that an attack has occurred, + or is in progress, is fairly obvious, though - + <em>if</em> you look at the logs.</li> + + <li>Web authentication passwords (at least for Basic + authentication) generally fly across the wire, and + through intermediate proxy systems, in what amounts to + plain text. "O'er the net we go/Caching all the way;/O + what fun it is to surf/Giving my password away!"</li> + + <li>Since HTTP is stateless, information about the + authentication is transmitted <em>each and every + time</em> a request is made to the server. Essentially, + the client caches it after the first successful access, + and transmits it without asking for all subsequent + requests to the same server.</li> + + <li>It's relatively trivial for someone on your system to + put up a page that will steal the cached password from a + client's cache without them knowing. Can you say + "password grabber"?</li> + </ul> + + <p>If you still want to do this in light of the above + disadvantages, the method is left as an exercise for the + reader. It'll void your Apache warranty, though, and you'll + lose all accumulated UNIX guru points.</p> + <hr /> + </li> + + <li> + <a id="prompted-twice" name="prompted-twice"><strong>Why + does Apache ask for my password twice before serving a + file?</strong></a> + + <p>If the hostname under which you are accessing the server + is different than the hostname specified in the <a + href="../mod/core.html#servername"><code>ServerName</code></a> + directive, then depending on the setting of the <a + href="../mod/core.html#usecanonicalname"><code>UseCanonicalName</code></a> + directive, Apache will redirect you to a new hostname when + constructing self-referential URLs. This happens, for + example, in the case where you request a directory without + including the trailing slash.</p> + + <p>When this happens, Apache will ask for authentication + once under the original hostname, perform the redirect, and + then ask again under the new hostname. For security + reasons, the browser must prompt again for the password + when the host name changes.</p> + + <p>To eliminate this problem you should</p> + + <ol> + <li>Always use the trailing slash when requesting + directories;</li> + + <li>Change the <code>ServerName</code> to match the name + you are using in the URL; and/or</li> + + <li>Set <code>UseCanonicalName off</code>.</li> + </ol> + <hr /> + </li> + + <li> + <a id="image-theft" name="image-theft"><strong>How can I prevent + people from "stealing" the images from my web site?</strong></a> + + <p>The goal here is to prevent people from inlining your images + directly from their web site, but accessing them only if they + appear inline in your pages.<p> + + <p>This can be accomplished with a combination of SetEnvIf and + the Deny and Allow directives. However, it is important to + understand that any access restriction based on the REFERER + header is intrinsically problematic due to the fact that + browsers can send an incorrect REFERER, either because they + want to circumvent your restriction or simply because they don't + send the right thing (or anything at all).</p> + + <p>The following configuration will produce the desired effect + if the browser passes correct REFERER headers.</p> + +<pre> +SetEnvIf REFERER "www\.mydomain\.com" linked_from_here +SetEnvIf REFERER "^$" linked_from_here + +<Directory /www/images> + Order deny,allow + Deny from all + Allow from env=linked_from_here +</Directory> +</pre> + +<p>Further examples can be found in the <a +href="../env.html#examples">Environment Variables</a> documentation.</p> + + <hr /> + </li> + + + </ol> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + <!-- Don't forget to add HR tags at the end of each list item.. --> + <!--#include virtual="footer.html" --> + <!--#endif --> + </body> +</html> + diff --git a/htdocs/manual/misc/FAQ-H.html b/htdocs/manual/misc/FAQ-H.html new file mode 100644 index 0000000000..d2c33967c2 --- /dev/null +++ b/htdocs/manual/misc/FAQ-H.html @@ -0,0 +1,272 @@ +<!--#if expr="$FAQMASTER" --> +<!--#set var="STANDALONE" value="" --> +<!--#set var="INCLUDED" value="YES" --> +<!--#if expr="$QUERY_STRING = TOC" --> +<!--#set var="TOC" value="YES" --> +<!--#set var="CONTENT" value="" --> +<!--#else --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="YES" --> +<!--#endif --> +<!--#else --> +<!--#set var="STANDALONE" value="YES" --> +<!--#set var="INCLUDED" value="" --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="" --> +<!--#endif --> +<!--#if expr="$STANDALONE" --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Frequently Asked Questions</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Server Frequently Asked + Questions</h1> + + <p>$Revision: 1.4 $ ($Date: 2001/10/08 01:26:54 $)</p> + + <p>The latest version of this FAQ is always available from the + main Apache web site, at <<a + href="http://httpd.apache.org/docs/misc/FAQ.html" + rel="Help"><samp>http://httpd.apache.org/docs/misc/FAQ.html</samp></a>>.</p> + <!-- Notes about changes: --> + <!-- - If adding a relative link to another part of the --> + <!-- documentation, *do* include the ".html" portion. There's a --> + <!-- good chance that the user will be reading the documentation --> + <!-- on his own system, which may not be configured for --> + <!-- multiviews. --> + <!-- - When adding items, make sure they're put in the right place --> + <!-- - verify that the numbering matches up. --> + <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> + <!-- correctly in a reliable way when this is converted to text --> + <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> + <!-- blocks inside a <P></P> instead. This is necessary to get --> + <!-- the horizontal and vertical indenting right. --> + <!-- - Don't forget to include an HR tag after the last /P tag --> + <!-- but before the /LI in an item. --> + + <p>If you are reading a text-only version of this FAQ, you may + find numbers enclosed in brackets (such as "[12]"). These refer + to the list of reference URLs to be found at the end of the + document. These references do not appear, and are not needed, + for the hypertext version.</p> + + <h2>The Questions</h2> + + <ol type="A"> + <!--#endif --> + <!--#if expr="$TOC || $STANDALONE" --> + + <li value="8"> + <strong>URL Rewriting</strong> + + <ol> + <li><a href="#rewrite-more-config">Where can I find + mod_rewrite rulesets which already solve particular + URL-related problems?</a></li> + + <li><a href="#rewrite-article">Where can I find any + published information about URL-manipulations and + mod_rewrite?</a></li> + + <li><a href="#rewrite-complexity">Why is mod_rewrite so + difficult to learn and seems so complicated?</a></li> + + <li><a href="#rewrite-dontwork">What can I do if my + RewriteRules don't work as expected?</a></li> + + <li><a href="#rewrite-prefixdocroot">Why don't some of my + URLs get prefixed with DocumentRoot when using + mod_rewrite?</a></li> + + <li><a href="#rewrite-nocase">How can I make all my URLs + case-insensitive with mod_rewrite?</a></li> + + <li><a href="#rewrite-virthost">Why are RewriteRules in + my VirtualHost parts ignored?</a></li> + + <li><a href="#rewrite-envwhitespace">How can I use + strings with whitespaces in RewriteRule's ENV + flag?</a></li> + </ol> + </li> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + </ol> + <hr /> + + <h2>The Answers</h2> + <!--#endif --> + <!--#if expr="! $TOC" --> + + <h3>H. URL Rewriting</h3> + + <ol> + <li> + <a id="rewrite-more-config" + name="rewrite-more-config"><strong>Where can I find + mod_rewrite rulesets which already solve particular + URL-related problems?</strong></a> + + <p>There is a collection of <a + href="http://www.engelschall.com/pw/apache/rewriteguide/">Practical + Solutions for URL-Manipulation</a> where you can find all + typical solutions the author of <a + href="../mod/mod_rewrite.html"><samp>mod_rewrite</samp></a> + currently knows of. If you have more interesting rulesets + which solve particular problems not currently covered in + this document, send it to <a + href="mailto:rse@apache.org">Ralf S. Engelschall</a> for + inclusion. The other webmasters will thank you for avoiding + the reinvention of the wheel.</p> + <hr /> + </li> + + <li> + <a id="rewrite-article" + name="rewrite-article"><strong>Where can I find any + published information about URL-manipulations and + mod_rewrite?</strong></a> + + <p>There is an article from <a + href="mailto:rse@apache.org">Ralf S. Engelschall</a> about + URL-manipulations based on <a + href="../mod/mod_rewrite.html"><samp>mod_rewrite</samp></a> + in the "iX Multiuser Multitasking Magazin" issue #12/96. + The german (original) version can be read online at <<a + href="http://www.heise.de/ix/artikel/9612149/">http://www.heise.de/ix/artikel/9612149/</a>>, + the English (translated) version can be found at <<a + href="http://www.heise.de/ix/artikel/E/9612149/">http://www.heise.de/ix/artikel/E/9612149/</a>>.</p> + <hr /> + </li> + + <li> + <a id="rewrite-complexity" + name="rewrite-complexity"><strong>Why is mod_rewrite so + difficult to learn and seems so complicated?</strong></a> + + <p>Hmmm... there are a lot of reasons. First, mod_rewrite + itself is a powerful module which can help you in really + <strong>all</strong> aspects of URL rewriting, so it can be + no trivial module per definition. To accomplish its hard + job it uses software leverage and makes use of a powerful + regular expression library by Henry Spencer which is an + integral part of Apache since its version 1.2. And regular + expressions itself can be difficult to newbies, while + providing the most flexible power to the advanced + hacker.</p> + + <p>On the other hand mod_rewrite has to work inside the + Apache API environment and needs to do some tricks to fit + there. For instance the Apache API as of 1.x really was not + designed for URL rewriting at the <tt>.htaccess</tt> level + of processing. Or the problem of multiple rewrites in + sequence, which is also not handled by the API per design. + To provide this features mod_rewrite has to do some special + (but API compliant!) handling which leads to difficult + processing inside the Apache kernel. While the user usually + doesn't see anything of this processing, it can be + difficult to find problems when some of your RewriteRules + seem not to work.</p> + <hr /> + </li> + + <li> + <a id="rewrite-dontwork" + name="rewrite-dontwork"><strong>What can I do if my + RewriteRules don't work as expected?</strong></a> + + <p>Use "<samp>RewriteLog somefile</samp>" and + "<samp>RewriteLogLevel 9</samp>" and have a precise look at + the steps the rewriting engine performs. This is really the + only one and best way to debug your rewriting + configuration.</p> + <hr /> + </li> + + <li> + <a id="rewrite-prefixdocroot" + name="rewrite-prefixdocroot"><strong>Why don't some of my + URLs get prefixed with DocumentRoot when using + mod_rewrite?</strong></a> + + <p>If the rule starts with <samp>/somedir/...</samp> make + sure that really no <samp>/somedir</samp> exists on the + filesystem if you don't want to lead the URL to match this + directory, <em>i.e.</em>, there must be no root directory + named <samp>somedir</samp> on the filesystem. Because if + there is such a directory, the URL will not get prefixed + with DocumentRoot. This behavior looks ugly, but is really + important for some other aspects of URL rewriting.</p> + <hr /> + </li> + + <li> + <a id="rewrite-nocase" name="rewrite-nocase"><strong>How + can I make all my URLs case-insensitive with + mod_rewrite?</strong></a> + + <p>You can't! The reasons are: first, that, case + translations for arbitrary length URLs cannot be done + <em>via</em> regex patterns and corresponding + substitutions. One needs a per-character pattern like the + sed/Perl <samp>tr|..|..|</samp> feature. Second, just + making URLs always upper or lower case does not solve the + whole problem of case-INSENSITIVE URLs, because URLs + actually have to be rewritten to the correct case-variant + for the file residing on the filesystem in order to allow + Apache to access the file. And the Unix filesystem is + always case-SENSITIVE.</p> + + <p>But there is a module named <code><a + href="../mod/mod_speling.html">mod_speling.c</a></code> in + the Apache distribution. Try this module to help correct + people who use mis-cased URLs.</p> + <hr /> + </li> + + <li> + <a id="rewrite-virthost" + name="rewrite-virthost"><strong>Why are RewriteRules in my + VirtualHost parts ignored?</strong></a> + + <p>Because you have to enable the engine for every virtual + host explicitly due to security concerns. Just add a + "RewriteEngine on" to your virtual host configuration + parts.</p> + <hr /> + </li> + + <li> + <a id="rewrite-envwhitespace" + name="rewrite-envwhitespace"><strong>How can I use strings + with whitespaces in RewriteRule's ENV flag?</strong></a> + + <p>There is only one ugly solution: You have to surround + the complete flag argument by quotation marks + (<samp>"[E=...]"</samp>). Notice: The argument to quote + here is not the argument to the E-flag, it is the argument + of the Apache config file parser, <em>i.e.</em>, the third + argument of the RewriteRule here. So you have to write + <samp>"[E=any text with whitespaces]"</samp>.</p> + <hr /> + </li> + </ol> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + <!-- Don't forget to add HR tags at the end of each list item.. --> + <!--#include virtual="footer.html" --> + <!--#endif --> + </body> +</html> + diff --git a/htdocs/manual/misc/FAQ-I.html b/htdocs/manual/misc/FAQ-I.html new file mode 100644 index 0000000000..fe5f2c0850 --- /dev/null +++ b/htdocs/manual/misc/FAQ-I.html @@ -0,0 +1,336 @@ +<!--#if expr="$FAQMASTER" --> +<!--#set var="STANDALONE" value="" --> +<!--#set var="INCLUDED" value="YES" --> +<!--#if expr="$QUERY_STRING = TOC" --> +<!--#set var="TOC" value="YES" --> +<!--#set var="CONTENT" value="" --> +<!--#else --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="YES" --> +<!--#endif --> +<!--#else --> +<!--#set var="STANDALONE" value="YES" --> +<!--#set var="INCLUDED" value="" --> +<!--#set var="TOC" value="" --> +<!--#set var="CONTENT" value="" --> +<!--#endif --> +<!--#if expr="$STANDALONE" --> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Frequently Asked Questions</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Server Frequently Asked + Questions</h1> + + <p>$Revision: 1.18 $ ($Date: 2004/05/13 13:11:38 $)</p> + + <p>The latest version of this FAQ is always available from the + main Apache web site, at <<a + href="http://httpd.apache.org/docs/misc/FAQ.html" + rel="Help"><samp>http://httpd.apache.org/docs/misc/FAQ.html</samp></a>>.</p> + <!-- Notes about changes: --> + <!-- - If adding a relative link to another part of the --> + <!-- documentation, *do* include the ".html" portion. There's a --> + <!-- good chance that the user will be reading the documentation --> + <!-- on his own system, which may not be configured for --> + <!-- multiviews. --> + <!-- - When adding items, make sure they're put in the right place --> + <!-- - verify that the numbering matches up. --> + <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> + <!-- correctly in a reliable way when this is converted to text --> + <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> + <!-- blocks inside a <P></P> instead. This is necessary to get --> + <!-- the horizontal and vertical indenting right. --> + <!-- - Don't forget to include an HR tag after the last /P tag --> + <!-- but before the /LI in an item. --> + + <p>If you are reading a text-only version of this FAQ, you may + find numbers enclosed in brackets (such as "[12]"). These refer + to the list of reference URLs to be found at the end of the + document. These references do not appear, and are not needed, + for the hypertext version.</p> + + <h2>The Questions</h2> + + <ol type="A"> + <!--#endif --> + <!--#if expr="$TOC || $STANDALONE" --> + + <li value="9"> + <strong>Features</strong> + + <ol> + <li><a href="#proxy">Does or will Apache act as a Proxy + server?</a></li> + + <li><a href="#multiviews">What are "multiviews"?</a></li> + + <li><a href="#putsupport">Why can't I publish to my + Apache server using PUT on Netscape Gold and other + programs?</a></li> + + <li><a href="#SSL-i">Why doesn't Apache include + SSL?</a></li> + + <li><a href="#footer">How can I attach a footer to my + documents without using SSI?</a></li> + + <li><a href="#search">Does Apache include a search + engine?</a></li> + + <li><a href="#rotate">How can I rotate my log + files?</a></li> + + <li><a href="#conditional-logging">How do I keep certain + requests from appearing in my logs?</a></li> + + <li><a href="#dbinteg">Does Apache include any sort of + database integration?</a></li> + + <li><a href="#asp">Can I use Active Server Pages (ASP) + with Apache?</a></li> + + <li><a href="#java">Does Apache come with Java + support?</a></li> + </ol> + </li> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + </ol> + <hr /> + + <h2>The Answers</h2> + <!--#endif --> + <!--#if expr="! $TOC" --> + + <h3>I. Features</h3> + + <ol> + <li> + <a id="proxy" name="proxy"><strong>Does or will Apache act + as a Proxy server?</strong></a> + + <p>Apache version 1.1 and above comes with a <a + href="../mod/mod_proxy.html">proxy module</a>. If compiled + in, this will make Apache act as a caching-proxy + server.</p> + <hr /> + </li> + + <li> + <a id="multiviews" name="multiviews"><strong>What are + "multiviews"?</strong></a> + + <p>"Multiviews" is the general name given to the Apache + server's ability to provide language-specific document + variants in response to a request. This is documented quite + thoroughly in the <a href="../content-negotiation.html" + rel="Help">content negotiation</a> description page. In + addition, <cite>Apache Week</cite> carried an article on + this subject entitled "<a + href="http://www.apacheweek.com/features/negotiation" + rel="Help"><cite>Content Negotiation + Explained</cite></a>".</p> + <hr /> + </li> + + <li> + <a id="putsupport" name="putsupport"><strong>Why can't I + publish to my Apache server using PUT on Netscape Gold and + other programs?</strong></a> + + <p>Because you need to install and configure a script to + handle the uploaded files. This script is often called a + "PUT" handler. There are several available, but they may + have security problems. Using FTP uploads may be easier and + more secure, at least for now. For more information, see + the <cite>Apache Week</cite> article <a + href="http://www.apacheweek.com/features/put"><cite>Publishing + Pages with PUT</cite></a>.</p> + <hr /> + </li> + + <li> + <a id="SSL-i" name="SSL-i"><strong>Why doesn't Apache + include SSL?</strong></a> + + <p>SSL (Secure Socket Layer) data transport requires + encryption, and many governments have restrictions upon the + import, export, and use of encryption technology. If Apache + included SSL in the base package, its distribution would + involve all sorts of legal and bureaucratic issues, and it + would no longer be freely available. Also, some of the + technology required to talk to current clients using SSL is + patented by <a href="http://www.rsa.com/">RSA Data + Security</a>, who restricts its use without a license.</p> + + <p>Some SSL implementations of Apache are available, + however; see the "<a + href="http://httpd.apache.org/related_projects.html">related + projects</a>" page at the main Apache web site.</p> + + <p>You can find out more about this topic in the + <cite>Apache Week</cite> article about <a + href="http://www.apacheweek.com/features/ssl" + rel="Help"><cite>Apache and Secure + Transactions</cite></a>.</p> + <hr /> + </li> + + <li> + <a id="footer" name="footer"><strong>How can I attach a + footer to my documents without using SSI?</strong></a> + + <p>You can make arbitrary changes to static documents by + configuring an <a + href="../mod/mod_actions.html#action">Action</a> which + launches a CGI script. The CGI is then responsible for + setting a content-type and delivering the requested + document (the location of which is passed in the + <samp>PATH_TRANSLATED</samp> environment variable), along + with whatever footer is needed.</p> + + <p>Busy sites may not want to run a CGI script on every + request, and should consider using an Apache module to add + the footer. There are several third party modules available + through the <a href="http://modules.apache.org/">Apache + Module Registry</a> which will add footers to documents. + These include mod_trailer, PHP + (<samp>php3_auto_append_file</samp>), mod_layout, and + mod_perl (<samp>Apache::Sandwich</samp>).</p> + <hr /> + </li> + + <li> + <a id="search" name="search"><strong>Does Apache include a + search engine?</strong></a> + + <p>Apache does not include a search engine, but there are + many good commercial and free search engines which can be + used easily with Apache. Some of them are listed on the <a + href="http://www.searchtools.com/tools/tools.html">Web Site + Search Tools</a> page. Open source search engines that are + often used with Apache include <a + href="http://www.htdig.org/">ht://Dig</a> and <a + href="http://sunsite.berkeley.edu/SWISH-E/">SWISH-E</a>.</p> + <hr /> + </li> + + <li> + <a id="rotate" name="rotate"><strong>How can I rotate my + log files?</strong></a> + + <p>The simple answer: by piping the transfer log into an + appropriate log file rotation utility.</p> + + <p>The longer answer: In the src/support/ directory, you + will find a utility called <a + href="../programs/rotatelogs.html">rotatelogs</a> which can + be used like this:</p> +<pre> + TransferLog "|/path/to/rotatelogs /path/to/logs/access_log 86400" +</pre> + + <p>to enable daily rotation of the log files.<br /> + A more sophisticated solution of a logfile rotation + utility is available under the name <code>cronolog</code> + from Andrew Ford's site at <a + href="http://www.cronolog.org/">http://www.cronolog.org/</a>. + It can automatically create logfile subdirectories based on + time and date, and can have a constant symlink point to the + rotating logfiles. (As of version 1.6.1, cronolog is + available under the <a href="../LICENSE">Apache + License</a>). Use it like this:</p> +<pre> + CustomLog "|/path/to/cronolog --symlink=/usr/local/apache/logs/access_log /usr/local/apache/logs/%Y/%m/access_log" combined +</pre> + <hr /> + </li> + + <li> + <a id="conditional-logging" + name="conditional-logging"><strong>How do I keep certain + requests from appearing in my logs?</strong></a> + + <p>The maximum flexibility for removing unwanted + information from log files is obtained by post-processing + the logs, or using piped-logs to feed the logs through a + program which does whatever you want. However, Apache does + offer the ability to prevent requests from ever appearing + in the log files. You can do this by using the <a + href="../mod/mod_setenvif.html#setenvif"><code>SetEnvIf</code></a> + directive to set an environment variable for certain + requests and then using the conditional <a + href="../mod/mod_log_config.html#customlog-conditional"><code> + CustomLog</code></a> syntax to prevent logging when the + environment variable is set.</p> + <hr /> + </li> + + <li> + <a id="dbinteg" name="dbinteg"><b>Does Apache support any + sort of database integration?</b></a> + + <p>No. Apache is a Web (HTTP) server, not an application + server. The base package does not include any such + functionality. See the <a href="http://www.php.net/">PHP + project</a> and the <a + href="http://perl.apache.org/">mod_perl project</a> for + examples of modules that allow you to work with databases + from within the Apache environment.</p> + <hr /> + </li> + + <li> + <a id="asp" name="asp"><b>Can I use Active Server Pages + (ASP) with Apache?</b></a> + + <p>The base Apache Web Server package does not include ASP + support. However, a number of projects provide ASP or + ASP-like functionality for Apache. Some of these are:</p> + <ul> + <li><a + href="http://www.apache-asp.org/">Apache::ASP</a></li> + <li><a + href="http://go-mono.com/archive/xsp-0.10.html">mod_mono</a></li> + <li><a + href="http://wwws.sun.com/software/chilisoft/">Chilisoft + ASP</a></li> + </ul> + <p>See also the <a + href="http://httpd.apache.org/related_projects.html">related + projects</a> page to find out more.</p> + <hr /> + </li> + + <li> + <a id="java" name="java"><b>Does Apache come with Java + support?</b></a> + + <p>The base Apache Web server package does not include + support for Java, Java Server Pages, Enterprise Java Beans, + or Java servlets. Those features are available as add-ons + from the Apache/Java project site, <URL:<a + href="http://jakarta.apache.org">http://jakarta.apache.org/</a>>.</p> + <hr /> + </li> + </ol> + <!--#endif --> + <!--#if expr="$STANDALONE" --> + <!-- Don't forget to add HR tags at the end of each list item.. --> + <!--#include virtual="footer.html" --> + <!--#endif --> + </body> +</html> + diff --git a/htdocs/manual/misc/FAQ.html b/htdocs/manual/misc/FAQ.html new file mode 100644 index 0000000000..54ebee0839 --- /dev/null +++ b/htdocs/manual/misc/FAQ.html @@ -0,0 +1,108 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Frequently Asked Questions</title> + <!--#set var="FAQMASTER" value="YES" --> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Server Frequently Asked + Questions</h1> + + <p>The latest version of this FAQ is always available from the + main Apache web site, at <<a + href="http://httpd.apache.org/docs/misc/FAQ.html" + rel="Help"><samp>http://httpd.apache.org/docs/misc/FAQ.html</samp></a>>.</p> + <!-- Notes about changes: --> + <!-- - If adding a relative link to another part of the --> + <!-- documentation, *do* include the ".html" portion. There's a --> + <!-- good chance that the user will be reading the documentation --> + <!-- on his own system, which may not be configured for --> + <!-- multiviews. --> + <!-- - When adding items, make sure they're put in the right place --> + <!-- - verify that the numbering matches up. --> + <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> + <!-- correctly in a reliable way when this is converted to text --> + <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> + <!-- blocks inside a <P></P> instead. This is necessary to get --> + <!-- the horizontal and vertical indenting right. --> + <!-- - Don't forget to include an HR tag after the last /P tag --> + <!-- but before the /LI in an item. --> + + <p>If you are reading a text-only version of this FAQ, you may + find numbers enclosed in brackets (such as "[12]"). These refer + to the list of reference URLs to be found at the end of the + document. These references do not appear, and are not needed, + for the hypertext version.</p> + + <h2>The Questions</h2> + <!-- Stuff to Add: --> + <!-- - can't bind to port 80 --> + <!-- - permission denied --> + <!-- - address already in use --> + <!-- - mod_auth & passwd lines "user:pw:.*" - ++1st colon onward is --> + <!-- treated as pw, not just ++1st to \-\-2nd. --> + <!-- - SSL: --> + <!-- - Can I use Apache-SSL for free in Canada? --> + <!-- - Why can't I use Apache-SSL in the U.S.? --> + <!-- - How can I found out how many visitors my site gets? --> + <!-- - How do I add a counter? --> + <!-- - How do I configure Apache as a proxy? --> + <!-- - What browsers support HTTP/1.1? --> + <!-- - What's the point of vhosts-by-name is there aren't any --> + <!-- HTTP/1.1 browsers? --> + <!-- - Is there an Apache for W95/WNT? --> + <!-- - Why does Apache die when a vhost can't be DNS-resolved? --> + <!-- - Why do I get "send lost connection" messages in my error --> + <!-- log? --> + <!-- - specifically consider .pdf files which seem to cause this --> + <!-- a lot when accessed via the plugin ... and also mention --> + <!-- how range-requests can cause bytes served < file size --> + <!-- - Why do directory indexes appear as garbage? (A: -lucb) --> + <!-- - How do I add a footer to all pages offered by my server? --> + <!-- - Fix midi question; a bigger problem than midi vs. x-midi is --> + <!-- the simple fact that older versions of Apache (and new ones --> + <!-- that have been upgraded without upgrading the mime.types --> + <!-- file) don't have the type listed at all. --> + <!-- - RewriteRule /~fraggle/* /cgi-bin/fraggle.pl does not work --> + <!-- - how do I disable authentication for a subdirectory? --> + <!-- (A: you can't but "Satisfy any; Allow from all" can be close --> + <!-- - '400 malformed request' on Win32 might mean stale proxy; see --> + <!-- PR #2300. --> + <!-- - how do I tell what version of Apache I am running? --> + + <ol type="A"> + <!--#include virtual="FAQ-A.html?TOC" --> + <!--#include virtual="FAQ-B.html?TOC" --> + <!--#include virtual="FAQ-C.html?TOC" --> + <!--#include virtual="FAQ-D.html?TOC" --> + <!--#include virtual="FAQ-E.html?TOC" --> + <!--#include virtual="FAQ-F.html?TOC" --> + <!--#include virtual="FAQ-G.html?TOC" --> + <!--#include virtual="FAQ-H.html?TOC" --> + <!--#include virtual="FAQ-I.html?TOC" --> + </ol> + <hr /> + + <h2>The Answers</h2> + <!--#include virtual="FAQ-A.html?" --> + <!--#include virtual="FAQ-B.html?" --> + <!--#include virtual="FAQ-C.html?" --> + <!--#include virtual="FAQ-D.html?" --> + <!--#include virtual="FAQ-E.html?" --> + <!--#include virtual="FAQ-F.html?" --> + <!--#include virtual="FAQ-G.html?" --> + <!--#include virtual="FAQ-H.html?" --> + <!--#include virtual="FAQ-I.html?" --> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/HTTP_Features.tsv b/htdocs/manual/misc/HTTP_Features.tsv new file mode 100644 index 0000000000..893403d898 --- /dev/null +++ b/htdocs/manual/misc/HTTP_Features.tsv @@ -0,0 +1,142 @@ +This tab-separated-value file is for use as a checklist +for features against <draft-ietf-http-v11-spec-rev-03.txt>, +since two independently developed and interoperable +implementations are needed for each feature. For each entry, + ? means not filled-in + - means not applicable + n means no + y means yes + Y means yes with the addition of a module that uses feature + +The contents should be placed in the form at <http://www.agranat.com:1998/> +by someone who wants to be the contact for the Apache Group. + +Section Feature Implemented Tested +8.1 Persistent Connections y y +8.2.3 Automatic retrying of requests - - +8.2.4 Use of the 100 (Continue) status n n +9.2 OPTIONS y y +9.3 GET y y +9.4 HEAD y y +9.5 POST y y +9.6 PUT Y y +9.7 DELETE Y y +9.8 TRACE y y +9.9 CONNECT y y +10.1.1 100 Continue y y +10.1.2 101 Switching Protocols Y n +10.2.1 200 OK y y +10.2.2 201 Created y y +10.2.3 202 Accepted y y +10.2.4 203 Non-Authoritative Information y y +10.2.5 204 No Content y y +10.2.6 205 Reset Content y y +10.2.7 206 Partial Content y y +10.3.1 300 Multiple Choices y y +10.3.2 301 Moved Permanently y y +10.3.3 302 Found y y +10.3.4 303 See Other y y +10.3.5 304 Not Modified y y +10.3.6 305 Use Proxy y n +10.3.7 307 Temporary Redirect n n +10.4.1 400 Bad Request y y +10.4.2 401 Unauthorized y y +10.4.3 402 Payment Required Y n +10.4.4 403 Forbidden y y +10.4.5 404 Not Found y y +10.4.6 405 Method Not Allowed y y +10.4.7 406 Not Acceptable y y +10.4.8 407 Proxy Authentication Required y y +10.4.9 408 Request Timeout y y +10.4.10 409 Conflict Y n +10.4.11 410 Gone y y +10.4.12 411 Length Required y y +10.4.13 412 Precondition Failed y y +10.4.14 413 Request Entity Too Large y y +10.4.15 414 Request-URI Too Long y y +10.4.16 415 Unsupported Media Type y n +10.4.17 416 Requested range not satisfiable n n +10.4.18 417 Expectation Failed n n +10.5.1 500 Internal Server Error y y +10.5.2 501 Not Implemented y y +10.5.3 502 Bad Gateway y y +10.5.4 503 Service Unavailable y y +10.5.5 504 Gateway Timeout y y +10.5.6 505 HTTP Version Not Supported Y n +13.3.3 Strong entity tags y y +13.3.3 Weak entity tags y y +14.1 Accept y y +14.2 Accept-Charset y y +14.3 Accept-Encoding n n +14.4 Accept-Language y y +14.5 Accept-Ranges y y +14.6 Age - - +14.7 Allow y y +14.8 Authorization y y +14.9 Cache-Control y y +14.10 Connection y y +14.11 Content-Encoding y y +14.12 Content-Language y y +14.13 Content-Length y y +14.14 Content-Location Y n +14.15 Content-MD5 y n +14.16 Content-Range y y +14.17 Content-Type y y +14.18 Date y y +14.19 ETag y y +14.20 Expect n n +14.21 Expires y y +14.22 From - - +14.23 Host y y +14.24 If-Modified-Since y y +14.25 If-Match y y +14.26 If-None-Match y y +14.27 If-Range y y +14.28 If-Unmodified-Since y y +14.29 Last-Modified y y +14.30 Location y y +14.31 Max-Forwards n n +14.32 Pragma y y +14.33 Proxy-Authenticate y y +14.34 Proxy-Authorization y y +14.35 Range y y +14.36 Referer y y +14.37 Retry-After y y +14.38 Server y y +14.39 TE n n +14.40 Trailer n n +14.41 Transfer-Encoding y y +14.42 Upgrade Y n +14.43 User-Agent - - +14.44 Vary y y +14.45 Via n n +14.46 Warning Y n +14.47 WWW-Authenticate y y +===== ===================================== +Same for <draft-ietf-http-authentication-01.txt>: + +A 2 Basic Authentication y y +A 3.2.1 WWW-Authenticate Digest y n +A 3.2.1 qop-options auth n n +A 3.2.1 qop-options auth-int n n +A 3.2.2 Authorization Digest y n +A 3.2.2 request qop auth n n +A 3.2.2 request qop auth-int n n +A 3.2.3 Authentication-Info Digest n n +A 3.2.3 response qop auth n n +A 3.2.3 response qop auth-int n n +A 4.1 Proxy-Authenticate Basic y y +A 4.2 Proxy-Authenticate Digest y n +A 4.2 Proxy qop-options auth n n +A 4.2 Proxy qop-options auth-int n n +A 4.2 Proxy Authorization Digest y n +A 4.2 Proxy request qop auth n n +A 4.2 Proxy request qop auth-int n n +A 4.2 Proxy Authentication-Info Digest n n +A 4.2 Proxy response qop auth n n +A 4.2 Proxy response qop auth-int n n + + +NOTES: +100 Continue sent on all bodied requests, as per RFC 2068. +Accept-Encoding does not allow q-values, as per RFC 2068. diff --git a/htdocs/manual/misc/client_block_api.html b/htdocs/manual/misc/client_block_api.html new file mode 100644 index 0000000000..3e8ba74b2e --- /dev/null +++ b/htdocs/manual/misc/client_block_api.html @@ -0,0 +1,87 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Reading Client Input in Apache 1.2</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Reading Client Input in Apache 1.2</h1> + <hr /> + + <p>Apache 1.1 and earlier let modules handle POST and PUT + requests by themselves. The module would, on its own, determine + whether the request had an entity, how many bytes it was, and + then called a function (<code>read_client_block</code>) to get + the data.</p> + + <p>However, HTTP/1.1 requires several things of POST and PUT + request handlers that did not fit into this module, and all + existing modules have to be rewritten. The API calls for + handling this have been further abstracted, so that future HTTP + protocol changes can be accomplished while remaining + backwards-compatible.</p> + <hr /> + + <h3>The New API Functions</h3> +<pre> + int ap_setup_client_block (request_rec *, int read_policy); + int ap_should_client_block (request_rec *); + long ap_get_client_block (request_rec *, char *buffer, int buffer_size); +</pre> + + <ol> + <li> + Call <code>ap_setup_client_block()</code> near the + beginning of the request handler. This will set up all the + necessary properties, and will return either OK, or an + error code. If the latter, the module should return that + error code. The second parameter selects the policy to + apply if the request message indicates a body, and how a + chunked transfer-coding should be interpreted. Choose one + of +<pre> + REQUEST_NO_BODY Send 413 error if message has any body + REQUEST_CHUNKED_ERROR Send 411 error if body without Content-Length + REQUEST_CHUNKED_DECHUNK If chunked, remove the chunks for me. + REQUEST_CHUNKED_PASS Pass the chunks to me without removal. +</pre> + In order to use the last two options, the caller MUST + provide a buffer large enough to hold a chunk-size line, + including any extensions. + </li> + + <li>When you are ready to possibly accept input, call + <code>ap_should_client_block()</code>. This will tell the + module whether or not to read input. If it is 0, the module + should assume that the input is of a non-entity type + (<em>e.g.</em>, a GET request). A nonzero response indicates + that the module should proceed (to step 3). This step also + sends a 100 Continue response to HTTP/1.1 clients, so should + not be called until the module is + <strong>*definitely*</strong> ready to read content. + (otherwise, the point of the 100 response is defeated). Never + call this function more than once.</li> + + <li>Finally, call <code>ap_get_client_block</code> in a loop. + Pass it a buffer and its size. It will put data into the + buffer (not necessarily the full buffer, in the case of + chunked inputs), and return the length of the input block. + When it is done reading, it will return 0 if EOF, or -1 if + there was an error.</li> + </ol> + + <p>As an example, please look at the code in + <code>mod_cgi.c</code>. This is properly written to the new API + guidelines.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/compat_notes.html b/htdocs/manual/misc/compat_notes.html new file mode 100644 index 0000000000..a84fa943ca --- /dev/null +++ b/htdocs/manual/misc/compat_notes.html @@ -0,0 +1,125 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache HTTP Server: Notes about Compatibility with + NCSA's Server</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Compatibility Notes with NCSA's Server</h1> + <hr /> + While Apache is for the most part a drop-in replacement for + NCSA's httpd, there are a couple gotcha's to watch out for. + These are mostly due to the fact that the parser for config and + access control files was rewritten from scratch, so certain + liberties the earlier servers took may not be available here. + These are all easily fixable. If you know of other problems + that belong here, <a + href="http://httpd.apache.org/bug_report.html">let us know.</a> + + + <p>Please also check the <a + href="known_client_problems.html">known client problems</a> + page.</p> + + <ol> + <li>As of Apache 1.3.1, methods named in a <a + href="../mod/core.html#limit"><samp><Limit></samp></a> + section <em>must</em> be listed in upper-case. Lower- or + mixed-case method names will result in a configuration + error.</li> + + <li>The basic mod_auth <code>AuthGroupFile</code>-specified + group file format allows commas between user names - Apache + does not.</li> + + <li>If you follow the NCSA guidelines for setting up access + restrictions based on client domain, you may well have added + entries for <code>AuthType, AuthName, AuthUserFile</code> or + <code>AuthGroupFile</code>. <strong>None</strong> of these + are needed (or appropriate) for restricting access based on + client domain. When Apache sees <code>AuthType</code> it + (reasonably) assumes you are using some authorization type + based on username and password. Please remove + <code>AuthType</code>, it's unnecessary even for NCSA.</li> + + <li><code>OldScriptAlias</code> is no longer supported.</li> + + <li><code>exec cgi=""</code> produces reasonable + <strong>malformed header</strong> responses when used to + invoke non-CGI scripts.<br /> + The NCSA code ignores the missing header (bad idea).<br /> + Solution: write CGI to the CGI spec and use + <code>include virtual</code>, or use <code>exec + cmd=""</code> instead.</li> + + <li>Icons for FancyIndexing broken - well, no, they're not + broken, we've just upgraded the icons from flat .xbm files to + pretty and much smaller .gif files, courtesy of <a + href="mailto:kevinh@eit.com">Kevin Hughes</a> at <a + href="http://www.eit.com/">EIT</a>. If you are using the same + srm.conf from an old distribution, make sure you add the new + <a href="../mod/mod_autoindex.html#addicon">AddIcon</a>, <a + href="../mod/mod_autoindex.html#addiconbytype">AddIconByType</a>, + and <a + href="../mod/mod_autoindex.html#defaulticon">DefaultIcon</a> + directives.</li> + + <li>Apache versions before 1.2b1 will ignore the last line of + configuration files if the last line does not have a trailing + newline. This affects configuration files (httpd.conf, + access.conf and srm.conf), and htpasswd and htgroup + files.</li> + + <li>Apache does not permit commas delimiting the methods in + <Limit>.</li> + + <li>Apache's <code><VirtualHost></code> treats all + addresses as "optional" (<em>i.e.</em>, the server should + continue booting if it can't resolve the address). Whereas in + NCSA the default is to fail booting unless an added + <code>optional</code> keyword is included.</li> + + <li>Apache does not implement <code>OnDeny</code>; use <a + href="../mod/core.html#errordocument"><code>ErrorDocument</code></a> + instead.</li> + + <li>Apache (as of 1.3) always performs the equivalent of + <code>HostnameLookups minimal</code>. <code>minimal</code> is + not an option to <a + href="../mod/core.html#hostnamelookups"><code>HostnameLookups</code></a>.</li> + + <li>To embed spaces in directive arguments NCSA used a + backslash before the space. Apache treats backslashes as + normal characters. To embed spaces surround the argument with + double-quotes instead.</li> + + <li>Apache does not implement the NCSA <code>referer</code> + directive. See <a + href="http://bugs.apache.org/index/full/968">PR#968</a> for a + few brief suggestions on alternative ways to implement the + same thing under Apache.</li> + + <li>Apache does not allow ServerRoot settings inside a + VirtualHost container. There is only one global ServerRoot in + Apache; any desired changes in paths for virtual hosts need + to be made with the explicit directives, <em>e.g.</em>, + DocumentRoot, TransferLog, <em>etc.</em></li> + + <li>The <code>AddType</code> directive cannot be used to set + the type of particular files. Instead, you can scope you + directives using <Files> blocks.</li> + </ol> + More to come when we notice them.... + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/custom_errordocs.html b/htdocs/manual/misc/custom_errordocs.html new file mode 100644 index 0000000000..0d7ab2fbd9 --- /dev/null +++ b/htdocs/manual/misc/custom_errordocs.html @@ -0,0 +1,483 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>International Customized Server Error Messages</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Using XSSI and <samp>ErrorDocument</samp> to + configure customized international server error responses</h1> + + <h2>Index</h2> + + <ul> + <li><a href="#intro">Introduction</a></li> + + <li><a href="#createdir">Creating an ErrorDocument + directory</a></li> + + <li><a href="#docnames">Naming the individual error document + files</a></li> + + <li><a href="#headfoot">The common header and footer + files</a></li> + + <li><a href="#createdocs">Creating ErrorDocuments in + different languages</a></li> + + <li><a href="#fallback">The fallback language</a></li> + + <li><a href="#proxy">Customizing Proxy Error + Messages</a></li> + + <li><a href="#listings">HTML listing of the discussed + example</a></li> + </ul> + <hr /> + + <h2><a id="intro" name="intro">Introduction</a></h2> + + <p>This document describes an easy way to provide your apache + WWW server with a set of customized error messages which take + advantage of <a href="../content-negotiation.html">Content + Negotiation</a> and <a href="../mod/mod_include.html">eXtended + Server Side Includes (XSSI)</a> to return error messages + generated by the server in the client's native language.</p> + + <p>By using XSSI, all <a + href="../mod/core.html#errordocument">customized messages</a> + can share a homogenous and consistent style and layout, and + maintenance work (changing images, changing links) is kept to a + minimum because all layout information can be kept in a single + file.<br /> + Error documents can be shared across different servers, or + even hosts, because all varying information is inserted at the + time the error document is returned on behalf of a failed + request.</p> + + <p>Content Negotiation then selects the appropriate language + version of a particular error message text, honoring the + language preferences passed in the client's request. (Users + usually select their favorite languages in the preferences + options menu of today's browsers). When an error document in + the client's primary language version is unavailable, the + secondary languages are tried or a default (fallback) version + is used.</p> + + <p>You have full flexibility in designing your error documents + to your personal taste (or your company's conventions). For + demonstration purposes, we present a simple generic error + document scheme. For this hypothetic server, we assume that all + error messages...</p> + + <ul> + <li>possibly are served by different virtual hosts (different + host name, different IP address, or different port) on the + server machine,</li> + + <li>show a predefined company logo in the right top of the + message (selectable by virtual host),</li> + + <li>print the error title first, followed by an explanatory + text and (depending on the error context) help on how to + resolve the error,</li> + + <li>have some kind of standardized background image,</li> + + <li>display an apache logo and a feedback email address at + the bottom of the error message.</li> + </ul> + + <p>An example of a "document not found" message for a german + client might look like this:<br /> + <img src="../images/custom_errordocs.gif" + alt="[Needs graphics capability to display]" /><br /> + All links in the document as well as links to the server's + administrator mail address, and even the name and port of the + serving virtual host are inserted in the error document at + "run-time", <em>i.e.</em>, when the error actually occurs.</p> + + <h2><a id="createdir" name="createdir">Creating an + ErrorDocument directory</a></h2> + For this concept to work as easily as possible, we must take + advantage of as much server support as we can get: + + <ol> + <li>By defining the <a + href="../mod/core.html#options">MultiViews option</a>, we + enable the language selection of the most appropriate + language alternative (content negotiation).</li> + + <li>By setting the <a + href="../mod/mod_negotiation.html#languagepriority">LanguagePriority</a> + directive we define a set of default fallback languages in + the situation where the client's browser did not express any + preference at all.</li> + + <li>By enabling <a href="../mod/mod_include.html">Server Side + Includes</a> (and disallowing execution of cgi scripts for + security reasons), we allow the server to include building + blocks of the error message, and to substitute the value of + certain environment variables into the generated document + (dynamic HTML) or even to conditionally include or omit parts + of the text.</li> + + <li>The <a + href="../mod/mod_mime.html#addhandler">AddHandler</a> and <a + href="../mod/mod_mime.html#addtype">AddType</a> directives + are useful for automatically XSSI-expanding all files with a + <samp>.shtml</samp> suffix to <em>text/html</em>.</li> + + <li>By using the <a + href="../mod/mod_alias.html#alias">Alias</a> directive, we + keep the error document directory outside of the document + tree because it can be regarded more as a server part than + part of the document tree.</li> + + <li>The <a + href="../mod/core.html#directory"><Directory></a>-Block + restricts these "special" settings to the error document + directory and avoids an impact on any of the settings for the + regular document tree.</li> + + <li>For each of the error codes to be handled (see RFC2068 + for an exact description of each error code, or look at + <code>src/main/http_protocol.c</code> if you wish to see + apache's standard messages), an <a + href="../mod/core.html#errordocument">ErrorDocument</a> in + the aliased <samp>/errordocs</samp> directory is defined. + Note that we only define the basename of the document here + because the MultiViews option will select the best candidate + based on the language suffixes and the client's preferences. + Any error situation with an error code <em>not</em> handled + by a custom document will be dealt with by the server in the + standard way (<em>i.e.</em>, a plain error message in + english).</li> + + <li>Finally, the <a + href="../mod/core.html#allowoverride">AllowOverride</a> + directive tells apache that it is not necessary to look for a + .htaccess file in the /errordocs directory: a minor speed + optimization.</li> + </ol> + The resulting <samp>httpd.conf</samp> configuration would then + look similar to this: <small>(Note that you can define your own + error messages using this method for only part of the document + tree, e.g., a /~user/ subtree. In this case, the configuration + could as well be put into the .htaccess file at the root of the + subtree, and the <Directory> and </Directory> + directives -but not the contained directives- must be + omitted.)</small> +<pre> + LanguagePriority en fr de + Alias /errordocs /usr/local/apache/errordocs + <Directory /usr/local/apache/errordocs> + AllowOverride none + Options MultiViews IncludesNoExec FollowSymLinks + AddType text/html .shtml + AddHandler server-parsed .shtml + </Directory> + # "400 Bad Request", + ErrorDocument 400 /errordocs/400 + # "401 Authorization Required", + ErrorDocument 401 /errordocs/401 + # "403 Forbidden", + ErrorDocument 403 /errordocs/403 + # "404 Not Found", + ErrorDocument 404 /errordocs/404 + # "500 Internal Server Error", + ErrorDocument 500 /errordocs/500 +</pre> + The directory for the error messages (here: + <samp>/usr/local/apache/errordocs/</samp>) must then be created + with the appropriate permissions (readable and executable by + the server uid or gid, only writable for the administrator). + + <h3><a id="docnames" name="docnames">Naming the individual + error document files</a></h3> + By defining the <samp>MultiViews</samp> option, the server was + told to automatically scan the directory for matching variants + (looking at language and content type suffixes) when a + requested document was not found. In the configuration, we + defined the names for the error documents to be just their + error number (without any suffix). + + <p>The names of the individual error documents are now + determined like this (I'm using 403 as an example, think of it + as a placeholder for any of the configured error + documents):</p> + + <ul> + <li>No file errordocs/403 should exist. Otherwise, it would + be found and served (with the DefaultType, usually + text/plain), all negotiation would be bypassed.</li> + + <li>For each language for which we have an internationalized + version (note that this need not be the same set of languages + for each error code - you can get by with a single language + version until you actually <em>have</em> translated + versions), a document + <samp>errordocs/403.shtml.<em>lang</em></samp> is created and + filled with the error text in that language (<a + href="#createdocs">see below</a>).</li> + + <li>One fallback document called + <samp>errordocs/403.shtml</samp> is created, usually by + creating a symlink to the default language variant (<a + href="#fallback">see below</a>).</li> + </ul> + + <h3><a id="headfoot" name="headfoot">The common header and + footer files</a></h3> + By putting as much layout information in two special "include + files", the error documents can be reduced to a bare minimum. + + <p>One of these layout files defines the HTML document header + and a configurable list of paths to the icons to be shown in + the resulting error document. These paths are exported as a set + of XSSI environment variables and are later evaluated by the + "footer" special file. The title of the current error (which is + put into the TITLE tag and an H1 header) is simply passed in + from the main error document in a variable called + <code>title</code>.<br /> + <strong>By changing this file, the layout of all generated + error messages can be changed in a second.</strong> (By + exploiting the features of XSSI, you can easily define + different layouts based on the current virtual host, or even + based on the client's domain name).</p> + + <p>The second layout file describes the footer to be displayed + at the bottom of every error message. In this example, it shows + an apache logo, the current server time, the server version + string and adds a mail reference to the site's webmaster.</p> + + <p>For simplicity, the header file is simply called + <code>head.shtml</code> because it contains server-parsed + content but no language specific information. The footer file + exists once for each language translation, plus a symlink for + the default language.</p> + + <p><strong>Example:</strong> for English, French and German + versions (default english)<br /> + <code>foot.shtml.en</code>,<br /> + <code>foot.shtml.fr</code>,<br /> + <code>foot.shtml.de</code>,<br /> + <code>foot.shtml</code> symlink to + <code>foot.shtml.en</code></p> + + <p>Both files are included into the error document by using the + directives <code><!--#include virtual="head" --></code> + and <code><!--#include virtual="foot" --></code> + respectively: the rest of the magic occurs in mod_negotiation + and in mod_include.</p> + + <p>See <a href="#listings">the listings below</a> to see an + actual HTML implementation of the discussed example.</p> + + <h3><a id="createdocs" name="createdocs">Creating + ErrorDocuments in different languages</a></h3> + After all this preparation work, little remains to be said + about the actual documents. They all share a simple common + structure: +<pre> +<!--#set var="title" value="<em>error description title</em>" --> +<!--#include virtual="head" --> + <em>explanatory error text</em> +<!--#include virtual="foot" --> +</pre> + In the <a href="#listings">listings section</a>, you can see an + example of a [400 Bad Request] error document. Documents as + simple as that certainly cause no problems to translate or + expand. + + <h3><a id="fallback" name="fallback">The fallback + language</a></h3> + Do we need a special handling for languages other than those we + have translations for? We did set the LanguagePriority, didn't + we?! + + <p>Well, the LanguagePriority directive is for the case where + the client does not express any language priority at all. But + what happens in the situation where the client wants one of the + languages we do not have, and none of those we do have?</p> + + <p>Without doing anything, the Apache server will usually + return a [406 no acceptable variant] error, listing the choices + from which the client may select. But we're in an error message + already, and important error information might get lost when + the client had to choose a language representation first.</p> + + <p>So, in this situation it appears to be easier to define a + fallback language (by copying or linking, <em>e.g.</em>, the + english version to a language-less version). Because the + negotiation algorithm prefers "more specialized" variants over + "more generic" variants, these generic alternatives will only + be chosen when the normal negotiation did not succeed.</p> + + <p>A simple shell script to do it (execute within the + errordocs/ dir):</p> +<pre> + for f in *.shtml.en + do + ln -s $f `basename $f .en` + done +</pre> + + <h2><a id="proxy" name="proxy">Customizing Proxy Error + Messages</a></h2> + + <p>As of Apache-1.3, it is possible to use the + <code>ErrorDocument</code> mechanism for proxy error messages + as well (previous versions always returned fixed predefined + error messages).</p> + + <p>Most proxy errors return an error code of [500 Internal + Server Error]. To find out whether a particular error document + was invoked on behalf of a proxy error or because of some other + server error, and what the reason for the failure was, you can + check the contents of the new <code>ERROR_NOTES</code> CGI + environment variable: if invoked for a proxy error, this + variable will contain the actual proxy error message text in + HTML form.</p> + + <p>The following excerpt demonstrates how to exploit the + <code>ERROR_NOTES</code> variable within an error document:</p> +<pre> + <!--#if expr="$REDIRECT_ERROR_NOTES = ''" --> + <p> + The server encountered an unexpected condition + which prevented it from fulfilling the request. + </p> + <p> + <A HREF="mailto:<!--#echo var="SERVER_ADMIN" -->" + SUBJECT="Error message [<!--#echo var="REDIRECT_STATUS" -->] <!--#echo var="title" --> for <!--#echo var="REQUEST_URI" -->"> + Please forward this error screen to <!--#echo var="SERVER_NAME" -->'s + WebMaster</A>; it includes useful debugging information about + the Request which caused the error. + <pre><!--#printenv --></pre> + </p> + <!--#else --> + <!--#echo var="REDIRECT_ERROR_NOTES" --> + <!--#endif --> +</pre> + + <h2><a id="listings" name="listings">HTML listing of the + discussed example</a></h2> + So, to summarize our example, here's the complete listing of + the <samp>400.shtml.en</samp> document. You will notice that it + contains almost nothing but the error text (with conditional + additions). Starting with this example, you will find it easy + to add more error documents, or to translate the error + documents to different languages. + <hr /> +<pre> +<!--#set var="title" value="Bad Request" +--><!--#include virtual="head" --><P> + Your browser sent a request that this server could not understand: + <BLOCKQUOTE> + <STRONG><!--#echo var="REQUEST_URI" --></STRONG> + </BLOCKQUOTE> + The request could not be understood by the server due to malformed + syntax. The client should not repeat the request without + modifications. + </P> + <P> + <!--#if expr="$HTTP_REFERER != ''" --> + Please inform the owner of + <A HREF="<!--#echo var="HTTP_REFERER" -->">the referring page</A> about + the malformed link. + <!--#else --> + Please check your request for typing errors and retry. + <!--#endif --> + </P> +<!--#include virtual="foot" --> +</pre> + <hr /> + Here is the complete <samp>head.shtml</samp> file (the funny + line breaks avoid empty lines in the document after XSSI + processing). Note the configuration section at top. That's + where you configure the images and logos as well as the apache + documentation directory. Look how this file displays two + different logos depending on the content of the virtual host + name ($SERVER_NAME), and that an animated apache logo is shown + if the browser appears to support it (the latter requires + server configuration lines of the form <br /> + <code>BrowserMatch "^Mozilla/[2-4]" anigif</code><br /> + for browser types which support animated GIFs). + <hr /> +<pre> +<!--#if expr="$SERVER_NAME = /.*\.mycompany\.com$/" +--><!--#set var="IMG_CorpLogo" + value="http://$SERVER_NAME:$SERVER_PORT/errordocs/CorpLogo.gif" +--><!--#set var="ALT_CorpLogo" value="Powered by Linux!" +--><!--#else +--><!--#set var="IMG_CorpLogo" + value="http://$SERVER_NAME:$SERVER_PORT/errordocs/PrivLogo.gif" +--><!--#set var="ALT_CorpLogo" value="Powered by Linux!" +--><!--#endif +--><!--#set var="IMG_BgImage" value="http://$SERVER_NAME:$SERVER_PORT/errordocs/BgImage.gif" +--><!--#set var="DOC_Apache" value="http://$SERVER_NAME:$SERVER_PORT/Apache/" +--><!--#if expr="$anigif" +--><!--#set var="IMG_Apache" value="http://$SERVER_NAME:$SERVER_PORT/icons/apache_anim.gif" +--><!--#else +--><!--#set var="IMG_Apache" value="http://$SERVER_NAME:$SERVER_PORT/icons/apache_pb.gif" +--><!--#endif +--><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<HTML> + <HEAD> + <TITLE> + [<!--#echo var="REDIRECT_STATUS" -->] <!--#echo var="title" --> + </TITLE> + </HEAD> + <BODY BGCOLOR="white" BACKGROUND="<!--#echo var="IMG_BgImage" -->"><UL> + <H1 ALIGN="center"> + [<!--#echo var="REDIRECT_STATUS" -->] <!--#echo var="title" --> + <IMG SRC="<!--#echo var="IMG_CorpLogo" -->" + ALT="<!--#echo var="ALT_CorpLogo" -->" ALIGN=right> + </H1> + <HR><!-- ======================================================== --> + <DIV> +</pre> + <hr /> + and this is the <samp>foot.shtml.en</samp> file: + <hr /> +<pre> + </DIV> + <HR> + <DIV ALIGN="right"><SMALL><SUP>Local Server time: + <!--#echo var="DATE_LOCAL" --> + </SUP></SMALL></DIV> + <DIV ALIGN="center"> + <A HREF="<!--#echo var="DOC_Apache" -->"> + <IMG SRC="<!--#echo var="IMG_Apache" -->" BORDER=0 ALIGN="bottom" + ALT="Powered by <!--#echo var="SERVER_SOFTWARE" -->"></A><BR> + <SMALL><SUP><!--#set var="var" + value="Powered by $SERVER_SOFTWARE -- File last modified on $LAST_MODIFIED" + --><!--#echo var="var" --></SUP></SMALL> + </DIV> + <ADDRESS>If the indicated error looks like a misconfiguration, please inform + <A HREF="mailto:<!--#echo var="SERVER_ADMIN" -->" + SUBJECT="Feedback about Error message [<!--#echo var="REDIRECT_STATUS" + -->] <!--#echo var="title" -->, req=<!--#echo var="REQUEST_URI" -->"> + <!--#echo var="SERVER_NAME" -->'s WebMaster</A>. + </ADDRESS> + </UL></BODY> +</HTML> +</pre> + <hr /> + + <h3>More welcome!</h3> + If you have tips to contribute, send mail to <a + href="mailto:martin@apache.org">martin@apache.org</a> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/descriptors.html b/htdocs/manual/misc/descriptors.html new file mode 100644 index 0000000000..c1b098ae93 --- /dev/null +++ b/htdocs/manual/misc/descriptors.html @@ -0,0 +1,208 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Descriptors and Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Descriptors and Apache</h1> + + <p>A <em>descriptor</em>, also commonly called a <em>file + handle</em> is an object that a program uses to read or write + an open file, or open network socket, or a variety of other + devices. It is represented by an integer, and you may be + familiar with <code>stdin</code>, <code>stdout</code>, and + <code>stderr</code> which are descriptors 0, 1, and 2 + respectively. Apache needs a descriptor for each log file, plus + one for each network socket that it listens on, plus a handful + of others. Libraries that Apache uses may also require + descriptors. Normal programs don't open up many descriptors at + all, and so there are some latent problems that you may + experience should you start running Apache with many + descriptors (<em>i.e.</em>, with many virtual hosts).</p> + + <p>The operating system enforces a limit on the number of + descriptors that a program can have open at a time. There are + typically three limits involved here. One is a kernel + limitation, depending on your operating system you will either + be able to tune the number of descriptors available to higher + numbers (this is frequently called <em>FD_SETSIZE</em>). Or you + may be stuck with a (relatively) low amount. The second limit + is called the <em>hard resource</em> limit, and it is sometimes + set by root in an obscure operating system file, but frequently + is the same as the kernel limit. The third limit is called the + <em>soft resource</em> limit. The soft limit is always less + than or equal to the hard limit. For example, the hard limit + may be 1024, but the soft limit only 64. Any user can raise + their soft limit up to the hard limit. Root can raise the hard + limit up to the system maximum limit. The soft limit is the + actual limit that is used when enforcing the maximum number of + files a process can have open.</p> + + <p>To summarize:</p> + + <center> +<pre> + #open files <= soft limit <= hard limit <= kernel limit +</pre> + </center> + + <p>You control the hard and soft limits using the + <code>limit</code> (csh) or <code>ulimit</code> (sh) + directives. See the respective man pages for more information. + For example you can probably use <code>ulimit -n + unlimited</code> to raise your soft limit up to the hard limit. + You should include this command in a shell script which starts + your webserver.</p> + + <p>Unfortunately, it's not always this simple. As mentioned + above, you will probably run into some system limitations that + will need to be worked around somehow. Work was done in version + 1.2.1 to improve the situation somewhat. Here is a partial list + of systems and workarounds (assuming you are using 1.2.1 or + later):</p> + + <dl> + <dt><strong>BSDI 2.0</strong></dt> + + <dd>Under BSDI 2.0 you can build Apache to support more + descriptors by adding <code>-DFD_SETSIZE=nnn</code> to + <code>EXTRA_CFLAGS</code> (where nnn is the number of + descriptors you wish to support, keep it less than the hard + limit). But it will run into trouble if more than + approximately 240 Listen directives are used. This may be + cured by rebuilding your kernel with a higher + FD_SETSIZE.</dd> + + <dt><strong>FreeBSD 2.2, BSDI 2.1+</strong></dt> + + <dd>Similar to the BSDI 2.0 case, you should define + <code>FD_SETSIZE</code> and rebuild. But the extra Listen + limitation doesn't exist.</dd> + + <dt><strong>Linux</strong></dt> + + <dd>By default Linux has a kernel maximum of 256 open + descriptors per process. There are several patches available + for the 2.0.x series which raise this to 1024 and beyond, and + you can find them in the "unofficial patches" section of <a + href="http://www.linuxhq.com/">the Linux Information HQ</a>. + None of these patches are perfect, and an entirely different + approach is likely to be taken during the 2.1.x development. + Applying these patches will raise the FD_SETSIZE used to + compile all programs, and unless you rebuild all your + libraries you should avoid running any other program with a + soft descriptor limit above 256. As of this writing the + patches available for increasing the number of descriptors do + not take this into account. On a dedicated webserver you + probably won't run into trouble.</dd> + + <dt><strong>Solaris through 2.5.1</strong></dt> + + <dd>Solaris has a kernel hard limit of 1024 (may be lower in + earlier versions). But it has a limitation that files using + the stdio library cannot have a descriptor above 255. Apache + uses the stdio library for the ErrorLog directive. When you + have more than approximately 110 virtual hosts (with an error + log and an access log each) you will need to build Apache + with <code>-DHIGH_SLACK_LINE=256</code> added to + <code>EXTRA_CFLAGS</code>. You will be limited to + approximately 240 error logs if you do this.</dd> + + <dt><strong>AIX</strong></dt> + + <dd>AIX version 3.2?? appears to have a hard limit of 128 + descriptors. End of story. Version 4.1.5 has a hard limit of + 2000. Version 4.3.3 and 5.1 say + <pre> +/* + * Select uses bit masks of file descriptors. + * These macros manipulate such bit fields. + * FD_SETSIZE may be defined by the user to the maximum valued file + * descriptor to be selected; the default here should be == OPEN_MAX + */ +#ifndef FD_SETSIZE +#define FD_SETSIZE 32767 /* must be == OPEN_MAX in <limits.h> */ +#endif +</pre></dd> + + <dt><strong>SCO OpenServer</strong></dt> + + <dd>Edit the <code>/etc/conf/cf.d/stune</code> file or use + <code>/etc/conf/cf.d/configure</code> choice 7 (User and + Group configuration) and modify the <code>NOFILES</code> + kernel parameter to a suitably higher value. SCO recommends a + number between 60 and 11000, the default is 110. Relink and + reboot, and the new number of descriptors will be + available.</dd> + + <dt><strong>Compaq Tru64 UNIX/Digital UNIX/OSF</strong></dt> + + <dd> + <ol> + <li>Raise <code>open_max_soft</code> and + <code>open_max_hard</code> to 4096 in the proc subsystem. + Do a man on sysconfig, sysconfigdb, and + sysconfigtab.</li> + + <li>Raise <code>max-vnodes</code> to a large number which + is greater than the number of apache processes * 4096 + (Setting it to 250,000 should be good for most people). + Do a man on sysconfig, sysconfigdb, and + sysconfigtab.</li> + + <li>If you are using Tru64 5.0, 5.0A, or 5.1, define + <code>NO_SLACK</code> to work around a bug in the OS. + <code>CFLAGS="-DNO_SLACK" ./configure</code></li> + </ol> + </dd> + + <dt><strong>Others</strong></dt> + + <dd>If you have details on another operating system, please + submit it through our <a + href="http://httpd.apache.org/bug_report.html">Bug Report + Page</a>.</dd> + </dl> + + <p>In addition to the problems described above there are + problems with many libraries that Apache uses. The most common + example is the bind DNS resolver library that is used by pretty + much every unix, which fails if it ends up with a descriptor + above 256. We suspect there are other libraries that similar + limitations. So the code as of 1.2.1 takes a defensive stance + and tries to save descriptors less than 16 for use while + processing each request. This is called the <em>low slack + line</em>.</p> + + <p>Note that this shouldn't waste descriptors. If you really + are pushing the limits and Apache can't get a descriptor above + 16 when it wants it, it will settle for one below 16.</p> + + <p>In extreme situations you may want to lower the low slack + line, but you shouldn't ever need to. For example, lowering it + can increase the limits 240 described above under Solaris and + BSDI 2.0. But you'll play a delicate balancing game with the + descriptors needed to serve a request. Should you want to play + this game, the compile time parameter is + <code>LOW_SLACK_LINE</code> and there's a tiny bit of + documentation in the header file <code>httpd.h</code>.</p> + + <p>Finally, if you suspect that all this slack stuff is causing + you problems, you can disable it. Add <code>-DNO_SLACK</code> + to <code>EXTRA_CFLAGS</code> and rebuild. But please report it + to our <a href="http://httpd.apache.org/bug_report.html">Bug + Report Page</a> so that we can investigate. + <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/misc/fin_wait_2.html b/htdocs/manual/misc/fin_wait_2.html new file mode 100644 index 0000000000..d2e6bdc28c --- /dev/null +++ b/htdocs/manual/misc/fin_wait_2.html @@ -0,0 +1,388 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Connections in FIN_WAIT_2 and Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Connections in the FIN_WAIT_2 state and + Apache</h1> + + <ol> + <li> + <h2>What is the FIN_WAIT_2 state?</h2> + Starting with the Apache 1.2 betas, people are reporting + many more connections in the FIN_WAIT_2 state (as reported + by <code>netstat</code>) than they saw using older + versions. When the server closes a TCP connection, it sends + a packet with the FIN bit sent to the client, which then + responds with a packet with the ACK bit set. The client + then sends a packet with the FIN bit set to the server, + which responds with an ACK and the connection is closed. + The state that the connection is in during the period + between when the server gets the ACK from the client and + the server gets the FIN from the client is known as + FIN_WAIT_2. See the <a + href="ftp://ds.internic.net/rfc/rfc793.txt">TCP RFC</a> for + the technical details of the state transitions. + + <p>The FIN_WAIT_2 state is somewhat unusual in that there + is no timeout defined in the standard for it. This means + that on many operating systems, a connection in the + FIN_WAIT_2 state will stay around until the system is + rebooted. If the system does not have a timeout and too + many FIN_WAIT_2 connections build up, it can fill up the + space allocated for storing information about the + connections and crash the kernel. The connections in + FIN_WAIT_2 do not tie up an httpd process.</p> + </li> + + <li> + <h2>But why does it happen?</h2> + There are numerous reasons for it happening, some of them + may not yet be fully clear. What is known follows. + + <h3>Buggy clients and persistent connections</h3> + Several clients have a bug which pops up when dealing with + <a href="../keepalive.html">persistent connections</a> (aka + keepalives). When the connection is idle and the server + closes the connection (based on the <a + href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a>), + the client is programmed so that the client does not send + back a FIN and ACK to the server. This means that the + connection stays in the FIN_WAIT_2 state until one of the + following happens: + + <ul> + <li>The client opens a new connection to the same or a + different site, which causes it to fully close the older + connection on that socket.</li> + + <li>The user exits the client, which on some (most?) + clients causes the OS to fully shutdown the + connection.</li> + + <li>The FIN_WAIT_2 times out, on servers that have a + timeout for this state.</li> + </ul> + + <p>If you are lucky, this means that the buggy client will + fully close the connection and release the resources on + your server. However, there are some cases where the socket + is never fully closed, such as a dialup client + disconnecting from their provider before closing the + client. In addition, a client might sit idle for days + without making another connection, and thus may hold its + end of the socket open for days even though it has no + further use for it. <strong>This is a bug in the browser or + in its operating system's TCP implementation.</strong></p> + + <p>The clients on which this problem has been verified to + exist:</p> + + <ul> + <li>Mozilla/3.01 (X11; I; FreeBSD 2.1.5-RELEASE + i386)</li> + + <li>Mozilla/2.02 (X11; I; FreeBSD 2.1.5-RELEASE + i386)</li> + + <li>Mozilla/3.01Gold (X11; I; SunOS 5.5 sun4m)</li> + + <li>MSIE 3.01 on the Macintosh</li> + + <li>MSIE 3.01 on Windows 95</li> + </ul> + + <p>This does not appear to be a problem on:</p> + + <ul> + <li>Mozilla/3.01 (Win95; I)</li> + </ul> + + <p>It is expected that many other clients have the same + problem. What a client <strong>should do</strong> is + periodically check its open socket(s) to see if they have + been closed by the server, and close their side of the + connection if the server has closed. This check need only + occur once every few seconds, and may even be detected by a + OS signal on some systems (<em>e.g.</em>, Win95 and NT + clients have this capability, but they seem to be ignoring + it).</p> + + <p>Apache <strong>cannot</strong> avoid these FIN_WAIT_2 + states unless it disables persistent connections for the + buggy clients, just like we recommend doing for Navigator + 2.x clients due to other bugs. However, non-persistent + connections increase the total number of connections needed + per client and slow retrieval of an image-laden web page. + Since non-persistent connections have their own resource + consumptions and a short waiting period after each closure, + a busy server may need persistence in order to best serve + its clients.</p> + + <p>As far as we know, the client-caused FIN_WAIT_2 problem + is present for all servers that support persistent + connections, including Apache 1.1.x and 1.2.</p> + + <h3>A necessary bit of code introduced in 1.2</h3> + While the above bug is a problem, it is not the whole + problem. Some users have observed no FIN_WAIT_2 problems + with Apache 1.1.x, but with 1.2b enough connections build + up in the FIN_WAIT_2 state to crash their server. The most + likely source for additional FIN_WAIT_2 states is a + function called <code>lingering_close()</code> which was + added between 1.1 and 1.2. This function is necessary for + the proper handling of persistent connections and any + request which includes content in the message body + (<em>e.g.</em>, PUTs and POSTs). What it does is read any + data sent by the client for a certain time after the server + closes the connection. The exact reasons for doing this are + somewhat complicated, but involve what happens if the + client is making a request at the same time the server + sends a response and closes the connection. Without + lingering, the client might be forced to reset its TCP + input buffer before it has a chance to read the server's + response, and thus understand why the connection has + closed. See the <a href="#appendix">appendix</a> for more + details. + + <p>The code in <code>lingering_close()</code> appears to + cause problems for a number of factors, including the + change in traffic patterns that it causes. The code has + been thoroughly reviewed and we are not aware of any bugs + in it. It is possible that there is some problem in the BSD + TCP stack, aside from the lack of a timeout for the + FIN_WAIT_2 state, exposed by the + <code>lingering_close</code> code that causes the observed + problems.</p> + </li> + + <li> + What can I do about it? There are several possible + workarounds to the problem, some of which work better than + others. + + <h3>Add a timeout for FIN_WAIT_2</h3> + The obvious workaround is to simply have a timeout for the + FIN_WAIT_2 state. This is not specified by the RFC, and + could be claimed to be a violation of the RFC, but it is + widely recognized as being necessary. The following systems + are known to have a timeout: + + <ul> + <li><a href="http://www.freebsd.org/">FreeBSD</a> + versions starting at 2.0 or possibly earlier.</li> + + <li><a href="http://www.netbsd.org/">NetBSD</a> version + 1.2(?)</li> + + <li><a href="http://www.openbsd.org/">OpenBSD</a> all + versions(?)</li> + + <li><a href="http://www.bsdi.com/">BSD/OS</a> 2.1, with + the <a + href="ftp://ftp.bsdi.com/bsdi/patches/patches-2.1/K210-027"> + K210-027</a> patch installed.</li> + + <li><a href="http://www.sun.com/">Solaris</a> as of + around version 2.2. The timeout can be tuned by using + <code>ndd</code> to modify + <code>tcp_fin_wait_2_flush_interval</code>, but the + default should be appropriate for most servers and + improper tuning can have negative impacts.</li> + + <li><a href="http://www.linux.org/">Linux</a> 2.0.x and + earlier(?)</li> + + <li><a href="http://www.hp.com/">HP-UX</a> 10.x defaults + to terminating connections in the FIN_WAIT_2 state after + the normal keepalive timeouts. This does not refer to the + persistent connection or HTTP keepalive timeouts, but the + <code>SO_LINGER</code> socket option which is enabled by + Apache. This parameter can be adjusted by using + <code>nettune</code> to modify parameters such as + <code>tcp_keepstart</code> and <code>tcp_keepstop</code>. + In later revisions, there is an explicit timer for + connections in FIN_WAIT_2 that can be modified; contact + HP support for details.</li> + + <li><a href="http://www.sgi.com/">SGI IRIX</a> can be + patched to support a timeout. For IRIX 5.3, 6.2, and 6.3, + use patches 1654, 1703 and 1778 respectively. If you have + trouble locating these patches, please contact your SGI + support channel for help.</li> + + <li><a href="http://www.ncr.com/">NCR's MP RAS Unix</a> + 2.xx and 3.xx both have FIN_WAIT_2 timeouts. In 2.xx it + is non-tunable at 600 seconds, while in 3.xx it defaults + to 600 seconds and is calculated based on the tunable + "max keep alive probes" (default of 8) multiplied by the + "keep alive interval" (default 75 seconds).</li> + + <li><a href="http://www.sequent.com">Sequent's ptx/TCP/IP + for DYNIX/ptx</a> has had a FIN_WAIT_2 timeout since + around release 4.1 in mid-1994.</li> + </ul> + + <p>The following systems are known to not have a + timeout:</p> + + <ul> + <li><a href="http://www.sun.com/">SunOS 4.x</a> does not + and almost certainly never will have one because it as at + the very end of its development cycle for Sun. If you + have kernel source should be easy to patch.</li> + </ul> + + <p>There is a <a + href="http://www.apache.org/dist/httpd/contrib/patches/1.2/fin_wait_2.patch"> + patch available</a> for adding a timeout to the FIN_WAIT_2 + state; it was originally intended for BSD/OS, but should be + adaptable to most systems using BSD networking code. You + need kernel source code to be able to use it. + + <h3>Compile without using + <code>lingering_close()</code></h3> + It is possible to compile Apache 1.2 without using the + <code>lingering_close()</code> function. This will result + in that section of code being similar to that which was in + 1.1. If you do this, be aware that it can cause problems + with PUTs, POSTs and persistent connections, especially if + the client uses pipelining. That said, it is no worse than + on 1.1, and we understand that keeping your server running + is quite important. + + <p>To compile without the <code>lingering_close()</code> + function, add <code>-DNO_LINGCLOSE</code> to the end of the + <code>EXTRA_CFLAGS</code> line in your + <code>Configuration</code> file, rerun + <code>Configure</code> and rebuild the server.</p> + + <h3>Use <code>SO_LINGER</code> as an alternative to + <code>lingering_close()</code></h3> + On most systems, there is an option called + <code>SO_LINGER</code> that can be set with + <code>setsockopt(2)</code>. It does something very similar + to <code>lingering_close()</code>, except that it is broken + on many systems so that it causes far more problems than + <code>lingering_close</code>. On some systems, it could + possibly work better so it may be worth a try if you have + no other alternatives. + + <p>To try it, add <code>-DUSE_SO_LINGER + -DNO_LINGCLOSE</code> to the end of the + <code>EXTRA_CFLAGS</code> line in your + <code>Configuration</code> file, rerun + <code>Configure</code> and rebuild the server.</p> + + <p><strong>NOTE:</strong> Attempting to use + <code>SO_LINGER</code> and <code>lingering_close()</code> + at the same time is very likely to do very bad things, so + don't.</p> + + <h3>Increase the amount of memory used for storing + connection state</h3> + + <dl> + <dt>BSD based networking code:</dt> + + <dd> + BSD stores network data, such as connection states, in + something called an mbuf. When you get so many + connections that the kernel does not have enough mbufs + to put them all in, your kernel will likely crash. You + can reduce the effects of the problem by increasing the + number of mbufs that are available; this will not + prevent the problem, it will just make the server go + longer before crashing. + + <p>The exact way to increase them may depend on your + OS; look for some reference to the number of "mbufs" or + "mbuf clusters". On many systems, this can be done by + adding the line <code>NMBCLUSTERS="n"</code>, where + <code>n</code> is the number of mbuf clusters you want + to your kernel config file and rebuilding your + kernel.</p> + </dd> + </dl> + + <h3>Disable KeepAlive</h3> + + <p>If you are unable to do any of the above then you + should, as a last resort, disable KeepAlive. Edit your + httpd.conf and change "KeepAlive On" to "KeepAlive + Off".</p> + </li> + + + <li> + <h2><a id="appendix" name="appendix">Appendix</a></h2> + + <p>Below is a message from Roy Fielding, one of the authors + of HTTP/1.1.</p> + + <h3>Why the lingering close functionality is necessary with + HTTP</h3> + The need for a server to linger on a socket after a close + is noted a couple times in the HTTP specs, but not + explained. This explanation is based on discussions between + myself, Henrik Frystyk, Robert S. Thau, Dave Raggett, and + John C. Mallery in the hallways of MIT while I was at W3C. + + <p>If a server closes the input side of the connection + while the client is sending data (or is planning to send + data), then the server's TCP stack will signal an RST + (reset) back to the client. Upon receipt of the RST, the + client will flush its own incoming TCP buffer back to the + un-ACKed packet indicated by the RST packet argument. If + the server has sent a message, usually an error response, + to the client just before the close, and the client + receives the RST packet before its application code has + read the error message from its incoming TCP buffer and + before the server has received the ACK sent by the client + upon receipt of that buffer, then the RST will flush the + error message before the client application has a chance to + see it. The result is that the client is left thinking that + the connection failed for no apparent reason.</p> + + <p>There are two conditions under which this is likely to + occur:</p> + + <ol> + <li>sending POST or PUT data without proper + authorization</li> + + <li>sending multiple requests before each response + (pipelining) and one of the middle requests resulting in + an error or other break-the-connection result.</li> + </ol> + + <p>The solution in all cases is to send the response, close + only the write half of the connection (what shutdown is + supposed to do), and continue reading on the socket until + it is either closed by the client (signifying it has + finally read the response) or a timeout occurs. That is + what the kernel is supposed to do if SO_LINGER is set. + Unfortunately, SO_LINGER has no effect on some systems; on + some other systems, it does not have its own timeout and + thus the TCP memory segments just pile-up until the next + reboot (planned or not).</p> + + <p>Please note that simply removing the linger code will + not solve the problem -- it only moves it to a different + and much harder one to detect.</p> + </li> + </ol> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/footer.html b/htdocs/manual/misc/footer.html new file mode 100644 index 0000000000..70ddfccdcd --- /dev/null +++ b/htdocs/manual/misc/footer.html @@ -0,0 +1,5 @@ + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> diff --git a/htdocs/manual/misc/header.html b/htdocs/manual/misc/header.html new file mode 100644 index 0000000000..09a28d8ca6 --- /dev/null +++ b/htdocs/manual/misc/header.html @@ -0,0 +1,5 @@ + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> diff --git a/htdocs/manual/misc/howto.html b/htdocs/manual/misc/howto.html new file mode 100644 index 0000000000..207c0cc9aa --- /dev/null +++ b/htdocs/manual/misc/howto.html @@ -0,0 +1,229 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta name="description" + content="Some 'how to' tips for the Apache httpd server" /> + <meta name="keywords" + content="apache,redirect,robots,rotate,logfiles" /> + + <title>Apache HOWTO documentation</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache HOWTO documentation</h1> + How to: + + <ul> + <li><a href="#redirect">redirect an entire server or + directory to a single URL</a></li> + + <li><a href="#logreset">reset your log files</a></li> + + <li><a href="#stoprob">stop/restrict robots</a></li> + + <li><a href="#proxyssl">proxy SSL requests <em>through</em> + your non-SSL server</a></li> + </ul> + <hr /> + + <h2><a id="redirect" name="redirect">How to redirect an entire + server or directory to a single URL</a></h2> + + <p>There are two chief ways to redirect all requests for an + entire server to a single location: one which requires the use + of <code>mod_rewrite</code>, and another which uses a CGI + script.</p> + + <p>First: if all you need to do is migrate a server from one + name to another, simply use the <code>Redirect</code> + directive, as supplied by <code>mod_alias</code>:</p> + + <blockquote> +<pre> + Redirect / http://www.apache.org/ +</pre> + </blockquote> + + <p>Since <code>Redirect</code> will forward along the complete + path, however, it may not be appropriate - for example, when + the directory structure has changed after the move, and you + simply want to direct people to the home page.</p> + + <p>The best option is to use the standard Apache module + <code>mod_rewrite</code>. If that module is compiled in, the + following lines</p> + + <blockquote> +<pre> +RewriteEngine On +RewriteRule /.* http://www.apache.org/ [R] +</pre> + </blockquote> + will send an HTTP 302 Redirect back to the client, and no + matter what they gave in the original URL, they'll be sent to + "http://www.apache.org/". + + <p>The second option is to set up a <code>ScriptAlias</code> + pointing to a <strong>CGI script</strong> which outputs a 301 + or 302 status and the location of the other server.</p> + + <p>By using a <strong>CGI script</strong> you can intercept + various requests and treat them specially, <em>e.g.</em>, you + might want to intercept <strong>POST</strong> requests, so that + the client isn't redirected to a script on the other server + which expects POST information (a redirect will lose the POST + information.) You might also want to use a CGI script if you + don't want to compile mod_rewrite into your server.</p> + + <p>Here's how to redirect all requests to a script... In the + server configuration file,</p> + + <blockquote> +<pre> +ScriptAlias / /usr/local/httpd/cgi-bin/redirect_script/ +</pre> + </blockquote> + and here's a simple perl script to redirect requests: + + <blockquote> +<pre> +#!/usr/local/bin/perl + +print "Status: 302 Moved Temporarily\r\n" . + "Location: http://www.some.where.else.com/\r\n" . + "\r\n"; + +</pre> + </blockquote> + <hr /> + + <h2><a id="logreset" name="logreset">How to reset your log + files</a></h2> + + <p>Sooner or later, you'll want to reset your log files + (access_log and error_log) because they are too big, or full of + old information you don't need.</p> + + <p><code>access.log</code> typically grows by 1Mb for each + 10,000 requests.</p> + + <p>Most people's first attempt at replacing the logfile is to + just move the logfile or remove the logfile. This doesn't + work.</p> + + <p>Apache will continue writing to the logfile at the same + offset as before the logfile moved. This results in a new + logfile being created which is just as big as the old one, but + it now contains thousands (or millions) of null characters.</p> + + <p>The correct procedure is to move the logfile, then signal + Apache to tell it to reopen the logfiles.</p> + + <p>Apache is signaled using the <strong>SIGHUP</strong> (-1) + signal. <em>e.g.</em></p> + + <blockquote> + <code>mv access_log access_log.old<br /> + kill -1 `cat httpd.pid`</code> + </blockquote> + + <p>Note: <code>httpd.pid</code> is a file containing the + <strong>p</strong>rocess <strong>id</strong> of the Apache + httpd daemon, Apache saves this in the same directory as the + log files.</p> + + <p>Many people use this method to replace (and backup) their + logfiles on a nightly or weekly basis.</p> + <hr /> + + <h2><a id="stoprob" name="stoprob">How to stop or restrict + robots</a></h2> + + <p>Ever wondered why so many clients are interested in a file + called <code>robots.txt</code> which you don't have, and never + did have?</p> + + <p>These clients are called <strong>robots</strong> (also known + as crawlers, spiders and other cute names) - special automated + clients which wander around the web looking for interesting + resources.</p> + + <p>Most robots are used to generate some kind of <em>web + index</em> which is then used by a <em>search engine</em> to + help locate information.</p> + + <p><code>robots.txt</code> provides a means to request that + robots limit their activities at the site, or more often than + not, to leave the site alone.</p> + + <p>When the first robots were developed, they had a bad + reputation for sending hundreds/thousands of requests to each + site, often resulting in the site being overloaded. Things have + improved dramatically since then, thanks to <a + href="http://www.robotstxt.org/wc/guidelines.html"> + Guidelines for Robot Writers</a>, but even so, some robots may + exhibit unfriendly behavior which the webmaster isn't willing + to tolerate, and will want to stop.</p> + + <p>Another reason some webmasters want to block access to + robots, is to stop them indexing dynamic information. Many + search engines will use the data collected from your pages for + months to come - not much use if you're serving stock quotes, + news, weather reports or anything else that will be stale by + the time people find it in a search engine.</p> + + <p>If you decide to exclude robots completely, or just limit + the areas in which they can roam, create a + <code>robots.txt</code> file; refer to the <a + href="http://www.robotstxt.org/wc/robots.html"> + robot information pages</a> provided by Martijn Koster for the + syntax.</p> + <hr /> + + <h2><a id="proxyssl" name="proxyssl">How to proxy SSL requests + <em>through</em> your non-SSL Apache server</a><br /> + <small>(<em>submitted by David Sedlock</em>)</small></h2> + + <p>SSL uses port 443 for requests for secure pages. If your + browser just sits there for a long time when you attempt to + access a secure page over your Apache proxy, then the proxy may + not be configured to handle SSL. You need to instruct Apache to + listen on port 443 in addition to any of the ports on which it + is already listening:</p> +<pre> + Listen 80 + Listen 443 +</pre> + + <p>Then set the security proxy in your browser to 443. That + might be it!</p> + + <p>If your proxy is sending requests to another proxy, then you + may have to set the directive ProxyRemote differently. Here are + my settings:</p> +<pre> + ProxyRemote http://nicklas:80/ http://proxy.mayn.franken.de:8080 + ProxyRemote http://nicklas:443/ http://proxy.mayn.franken.de:443 +</pre> + + <p>Requests on port 80 of my proxy <samp>nicklas</samp> are + forwarded to <samp>proxy.mayn.franken.de:8080</samp>, while + requests on port 443 are forwarded to + <samp>proxy.mayn.franken.de:443</samp>. If the remote proxy is + not set up to handle port 443, then the last directive can be + left out. SSL requests will only go over the first proxy.</p> + + <p>Note that your Apache does NOT have to be set up to serve + secure pages with SSL. Proxying SSL is a different thing from + using it.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/index.html b/htdocs/manual/misc/index.html new file mode 100644 index 0000000000..7eb116e661 --- /dev/null +++ b/htdocs/manual/misc/index.html @@ -0,0 +1,138 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Miscellaneous Documentation</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Miscellaneous Documentation</h1> + + <p>Below is a list of additional documentation pages that apply + to the Apache web server development project.</p> + + <dl> + <dt><a href="API.html">API</a></dt> + + <dd>Description of Apache's Application Programming + Interface.</dd> + + <dt><a href="FAQ.html">FAQ</a></dt> + + <dd>Frequently-Asked Questions concerning the Apache project + and server.</dd> + + <dt><a href="client_block_api.html">Reading Client Input in + Apache 1.2</a></dt> + + <dd>Describes differences between Apache 1.1 and 1.2 in how + modules read information from the client.</dd> + + <dt><a href="compat_notes.html">Compatibility with + NCSA</a></dt> + + <dd>Notes about Apache's compatibility with the NCSA + server.</dd> + + <dt><a href="custom_errordocs.html">How to use XSSI and + Negotiation for custom ErrorDocuments</a></dt> + + <dd>Describes a solution which uses XSSI and negotiation to + custom-tailor the Apache ErrorDocuments to taste, adding the + advantage of returning internationalized versions of the + error messages depending on the client's language + preferences.</dd> + + <dt><a href="descriptors.html">File Descriptor use in + Apache</a></dt> + + <dd>Describes how Apache uses file descriptors and talks + about various limits imposed on the number of descriptors + available by various operating systems.</dd> + + <dt><a + href="fin_wait_2.html"><samp>FIN_WAIT_2</samp></a></dt> + + <dd>A description of the causes of Apache processes going + into the <samp>FIN_WAIT_2</samp> state, and what you can do + about it.</dd> + + <dt><a href="howto.html">"How-To"</a></dt> + + <dd>Instructions about how to accomplish some + commonly-desired server functionality changes.</dd> + + <dt><a href="HTTP_Features.tsv">HTTP Features list</a></dt> + + <dd>A tab-separate table of HTTP features implemented and + tested in Apache.</dd> + + <dt><a href="known_client_problems.html">Known Client + Problems</a></dt> + + <dd>A list of problems in HTTP clients which can be mitigated + by Apache.</dd> + + <dt><a href="nopgp.html">No PGP</a></dt> + + <dd>Why we took PEM and PGP support out of the base Apache + distribution.</dd> + + <dt><a href="perf-bsd44.html">Performance Notes (BSD + 4.4)</a></dt> + + <dd>Some notes about ways to improve/optimize Apache + performance on BSD 4.4 systems.</dd> + + <dt><a href="perf-dec.html">Performance Notes (Digital + UNIX)</a></dt> + + <dd>Extracts of USENET postings describing how to optimize + Apache performance on Digital UNIX systems.</dd> + + <dt><a href="perf-hp.html">Performance Notes (HPUX)</a></dt> + + <dd>Email from an HP engineer on how to optimize HP-UX + 10.20.</dd> + + <dt><a href="perf.html">Performance Notes (General)</a></dt> + + <dd>Some generic notes about how to improve the performance + of your machine/OS.</dd> + + <dt><a href="perf-tuning.html">Performance Notes -- Apache + Tuning</a></dt> + + <dd>Notes about how to (run-time and compile-time) configure + Apache for highest performance. Notes explaining why Apache + does some things, and why it doesn't do other things (which + make it slower/faster).</dd> + + <dt><a href="security_tips.html">Security Tips</a></dt> + + <dd>Some "do"s - and "don't"s - for keeping your Apache web + site secure.</dd> + + <dt><a href="vif-info.html">Virtual Hosts (IP-based)</a></dt> + + <dd>Excerpts and notes about configuring and using Apache + IP-based virtual hosts.</dd> + + <dt><a href="windoz_keepalive.html">Windows Bug with Web + Keepalive</a></dt> + + <dd>A brief description of a known problem with Microsoft + Windows and web sites accessed using keepalive + connections.</dd> + </dl> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/known_client_problems.html b/htdocs/manual/misc/known_client_problems.html new file mode 100644 index 0000000000..cb26578c9c --- /dev/null +++ b/htdocs/manual/misc/known_client_problems.html @@ -0,0 +1,346 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache HTTP Server Project</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Known Problems in Clients</h1> + + <p>Over time the Apache Group has discovered or been notified + of problems with various clients which we have had to work + around, or explain. This document describes these problems and + the workarounds available. It's not arranged in any particular + order. Some familiarity with the standards is assumed, but not + necessary.</p> + + <p>For brevity, <em>Navigator</em> will refer to Netscape's + Navigator product (which in later versions was renamed + "Communicator" and various other names), and <em>MSIE</em> will + refer to Microsoft's Internet Explorer product. All trademarks + and copyrights belong to their respective companies. We welcome + input from the various client authors to correct + inconsistencies in this paper, or to provide us with exact + version numbers where things are broken/fixed.</p> + + <p>For reference, <a + href="ftp://ds.internic.net/rfc/rfc1945.txt">RFC1945</a> + defines HTTP/1.0, and <a + href="ftp://ds.internic.net/rfc/rfc2068.txt">RFC2068</a> + defines HTTP/1.1. Apache as of version 1.2 is an HTTP/1.1 + server (with an optional HTTP/1.0 proxy).</p> + + <p>Various of these workarounds are triggered by environment + variables. The admin typically controls which are set, and for + which clients, by using <a + href="../mod/mod_browser.html">mod_browser</a>. Unless + otherwise noted all of these workarounds exist in versions 1.2 + and later.</p> + + <h3><a id="trailing-crlf" name="trailing-crlf">Trailing CRLF on + POSTs</a></h3> + + <p>This is a legacy issue. The CERN webserver required + <code>POST</code> data to have an extra <code>CRLF</code> + following it. Thus many clients send an extra <code>CRLF</code> + that is not included in the <code>Content-Length</code> of the + request. Apache works around this problem by eating any empty + lines which appear before a request.</p> + + <h3><a id="broken-keepalive" name="broken-keepalive">Broken + keepalive</a></h3> + + <p>Various clients have had broken implementations of + <em>keepalive</em> (persistent connections). In particular the + Windows versions of Navigator 2.0 get very confused when the + server times out an idle connection. The workaround is present + in the default config files:</p> + + <blockquote> + <code>BrowserMatch Mozilla/2 nokeepalive</code> + </blockquote> + Note that this matches some earlier versions of MSIE, which + began the practice of calling themselves <em>Mozilla</em> in + their user-agent strings just like Navigator. + + <p>MSIE 4.0b2, which claims to support HTTP/1.1, does not + properly support keepalive when it is used on 301 or 302 + (redirect) responses. Unfortunately Apache's + <code>nokeepalive</code> code prior to 1.2.2 would not work + with HTTP/1.1 clients. You must apply <a + href="http://www.apache.org/dist/httpd/patches/apply_to_1.2.1/msie_4_0b2_fixes.patch"> + this patch</a> to version 1.2.1. Then add this to your + config:</p> + + <blockquote> + <code>BrowserMatch "MSIE 4\.0b2;" nokeepalive</code> + </blockquote> + + <h3><a id="force-response-1.0" + name="force-response-1.0">Incorrect interpretation of + <code>HTTP/1.1</code> in response</a></h3> + + <p>To quote from section 3.1 of RFC1945:</p> + + <blockquote> + HTTP uses a "<MAJOR>.<MINOR>" numbering scheme to + indicate versions of the protocol. The protocol versioning + policy is intended to allow the sender to indicate the format + of a message and its capacity for understanding further HTTP + communication, rather than the features obtained via that + communication. + </blockquote> + Since Apache is an HTTP/1.1 server, it indicates so as part of + its response. Many client authors mistakenly treat this part of + the response as an indication of the protocol that the response + is in, and then refuse to accept the response. + + <p>The first major indication of this problem was with AOL's + proxy servers. When Apache 1.2 went into beta it was the first + wide-spread HTTP/1.1 server. After some discussion, AOL fixed + their proxies. In anticipation of similar problems, the + <code>force-response-1.0</code> environment variable was added + to Apache. When present Apache will indicate "HTTP/1.0" in + response to an HTTP/1.0 client, but will not in any other way + change the response.</p> + + <p>The pre-1.1 Java Development Kit (JDK) that is used in many + clients (including Navigator 3.x and MSIE 3.x) exhibits this + problem. As do some of the early pre-releases of the 1.1 JDK. + We think it is fixed in the 1.1 JDK release. In any event the + workaround:</p> + + <blockquote> + <code>BrowserMatch Java/1.0 force-response-1.0<br /> + BrowserMatch JDK/1.0 force-response-1.0</code> + </blockquote> + + <p>RealPlayer 4.0 from Progressive Networks also exhibits this + problem. However they have fixed it in version 4.01 of the + player, but version 4.01 uses the same <code>User-Agent</code> + as version 4.0. The workaround is still:</p> + + <blockquote> + <code>BrowserMatch "RealPlayer 4.0" force-response-1.0</code> + </blockquote> + + <h3><a id="msie4.0b2" name="msie4.0b2">Requests use HTTP/1.1 + but responses must be in HTTP/1.0</a></h3> + + <p>MSIE 4.0b2 has this problem. Its Java VM makes requests in + HTTP/1.1 format but the responses must be in HTTP/1.0 format + (in particular, it does not understand <em>chunked</em> + responses). The workaround is to fool Apache into believing the + request came in HTTP/1.0 format.</p> + + <blockquote> + <code>BrowserMatch "MSIE 4\.0b2;" downgrade-1.0 + force-response-1.0</code> + </blockquote> + This workaround is available in 1.2.2, and in a <a + href="http://www.apache.org/dist/httpd/patches/apply_to_1.2.1/msie_4_0b2_fixes.patch"> + patch</a> against 1.2.1. + + <h3><a id="257th-byte" name="257th-byte">Boundary problems with + header parsing</a></h3> + + <p>All versions of Navigator from 2.0 through 4.0b2 (and + possibly later) have a problem if the trailing CRLF of the + response header starts at offset 256, 257 or 258 of the + response. A BrowserMatch for this would match on nearly every + hit, so the workaround is enabled automatically on all + responses. The workaround implemented detects when this + condition would occur in a response and adds extra padding to + the header to push the trailing CRLF past offset 258 of the + response.</p> + + <h3><a id="boundary-string" name="boundary-string">Multipart + responses and Quoted Boundary Strings</a></h3> + + <p>On multipart responses some clients will not accept quotes + (") around the boundary string. The MIME standard recommends + that such quotes be used. But the clients were probably written + based on one of the examples in RFC2068, which does not include + quotes. Apache does not include quotes on its boundary strings + to workaround this problem.</p> + + <h3><a id="byterange-requests" + name="byterange-requests">Byterange requests</a></h3> + + <p>A byterange request is used when the client wishes to + retrieve a portion of an object, not necessarily the entire + object. There was a very old draft which included these + byteranges in the URL. Old clients such as Navigator 2.0b1 and + MSIE 3.0 for the MAC exhibit this behavior, and it will appear + in the servers' access logs as (failed) attempts to retrieve a + URL with a trailing ";xxx-yyy". Apache does not attempt to + implement this at all.</p> + + <p>A subsequent draft of this standard defines a header + <code>Request-Range</code>, and a response type + <code>multipart/x-byteranges</code>. The HTTP/1.1 standard + includes this draft with a few fixes, and it defines the header + <code>Range</code> and type + <code>multipart/byteranges</code>.</p> + + <p>Navigator (versions 2 and 3) sends both <code>Range</code> + and <code>Request-Range</code> headers (with the same value), + but does not accept a <code>multipart/byteranges</code> + response. The response must be + <code>multipart/x-byteranges</code>. As a workaround, if Apache + receives a <code>Request-Range</code> header it considers it + "higher priority" than a <code>Range</code> header and in + response uses <code>multipart/x-byteranges</code>.</p> + + <p>The Adobe Acrobat Reader plugin makes extensive use of + byteranges and prior to version 3.01 supports only the + <code>multipart/x-byterange</code> response. Unfortunately + there is no clue that it is the plugin making the request. If + the plugin is used with Navigator, the above workaround works + fine. But if the plugin is used with MSIE 3 (on Windows) the + workaround won't work because MSIE 3 doesn't give the + <code>Range-Request</code> clue that Navigator does. To + workaround this, Apache special cases "MSIE 3" in the + <code>User-Agent</code> and serves + <code>multipart/x-byteranges</code>. Note that the necessity + for this with MSIE 3 is actually due to the Acrobat plugin, not + due to the browser.</p> + + <p>Netscape Communicator appears to not issue the non-standard + <code>Request-Range</code> header. When an Acrobat plugin prior + to version 3.01 is used with it, it will not properly + understand byteranges. The user must upgrade their Acrobat + reader to 3.01.</p> + + <h3><a id="cookie-merge" + name="cookie-merge"><code>Set-Cookie</code> header is + unmergeable</a></h3> + + <p>The HTTP specifications say that it is legal to merge + headers with duplicate names into one (separated by commas). + Some browsers that support Cookies don't like merged headers + and prefer that each <code>Set-Cookie</code> header is sent + separately. When parsing the headers returned by a CGI, Apache + will explicitly avoid merging any <code>Set-Cookie</code> + headers.</p> + + <h3><a id="gif89-expires" + name="gif89-expires"><code>Expires</code> headers and GIF89A + animations</a></h3> + + <p>Navigator versions 2 through 4 will erroneously re-request + GIF89A animations on each loop of the animation if the first + response included an <code>Expires</code> header. This happens + regardless of how far in the future the expiry time is set. + There is no workaround supplied with Apache, however there are + hacks for <a + href="http://arctic.org/~dean/patches/apache-1.2-gif89-expires-hack.patch"> + 1.2</a> and for <a + href="http://arctic.org/~dean/patches/apache-1.3-gif89-expires-hack.patch"> + 1.3</a>.</p> + + <h3><a id="no-content-length" + name="no-content-length"><code>POST</code> without + <code>Content-Length</code></a></h3> + + <p>In certain situations Navigator 3.01 through 3.03 appear to + incorrectly issue a POST without the request body. There is no + known workaround. It has been fixed in Navigator 3.04, + Netscapes provides some <a + href="http://help.netscape.com/kb/client/971014-42.html">information</a>. + There's also <a + href="http://arctic.org/~dean/apache/no-content-length/"> + some information</a> about the actual problem.</p> + + <h3><a id="jdk-12-bugs" name="jdk-12-bugs">JDK 1.2 betas lose + parts of responses.</a></h3> + + <p>The http client in the JDK1.2beta2 and beta3 will throw away + the first part of the response body when both the headers and + the first part of the body are sent in the same network packet + AND keep-alive's are being used. If either condition is not met + then it works fine.</p> + + <p>See also Bug-ID's 4124329 and 4125538 at the java developer + connection.</p> + + <p>If you are seeing this bug yourself, you can add the + following BrowserMatch directive to work around it:</p> + + <blockquote> + <code>BrowserMatch "Java1\.2beta[23]" nokeepalive</code> + </blockquote> + + <p>We don't advocate this though since bending over backwards + for beta software is usually not a good idea; ideally it gets + fixed, new betas or a final release comes out, and no one uses + the broken old software anymore. In theory.</p> + + <h3><a id="content-type-persistence" + name="content-type-persistence"><code>Content-Type</code> + change is not noticed after reload</a></h3> + + <p>Navigator (all versions?) will cache the + <code>content-type</code> for an object "forever". Using reload + or shift-reload will not cause Navigator to notice a + <code>content-type</code> change. The only work-around is for + the user to flush their caches (memory and disk). By way of an + example, some folks may be using an old <code>mime.types</code> + file which does not map <code>.htm</code> to + <code>text/html</code>, in this case Apache will default to + sending <code>text/plain</code>. If the user requests the page + and it is served as <code>text/plain</code>. After the admin + fixes the server, the user will have to flush their caches + before the object will be shown with the correct + <code>text/html</code> type.</p> + + <h3><a id="msie-cookie-y2k" name="msie-cookie-y2k">MSIE Cookie + problem with expiry date in the year 2000</a></h3> + + <p>MSIE versions 3.00 and 3.02 (without the Y2K patch) do not + handle cookie expiry dates in the year 2000 properly. Years + after 2000 and before 2000 work fine. This is fixed in IE4.01 + service pack 1, and in the Y2K patch for IE3.02. Users should + avoid using expiry dates in the year 2000.</p> + + <h3><a id="lynx-negotiate-trans" + name="lynx-negotiate-trans">Lynx incorrectly asking for + transparent content negotiation</a></h3> + + <p>The Lynx browser versions 2.7 and 2.8 send a "negotiate: + trans" header in their requests, which is an indication the + browser supports transparent content negotiation (TCN). However + the browser does not support TCN. As of version 1.3.4, Apache + supports TCN, and this causes problems with these versions of + Lynx. As a workaround future versions of Apache will ignore + this header when sent by the Lynx client.</p> + + <h3><a id="ie40-vary" name="ie40-vary">MSIE 4.0 mishandles Vary + response header</a></h3> + + <p>MSIE 4.0 does not handle a Vary header properly. The Vary + header is generated by mod_rewrite in apache 1.3. The result is + an error from MSIE saying it cannot download the requested + file. There are more details in <a + href="http://bugs.apache.org/index/full/4118">PR#4118</a>.</p> + + <p>A workaround is to add the following to your server's + configuration files:</p> +<pre> + BrowserMatch "MSIE 4\.0" force-no-vary +</pre> + + <p>(This workaround is only available with releases + <strong>after</strong> 1.3.6 of the Apache Web server.)</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/nopgp.html b/htdocs/manual/misc/nopgp.html new file mode 100644 index 0000000000..e2263c74ba --- /dev/null +++ b/htdocs/manual/misc/nopgp.html @@ -0,0 +1,89 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Why We Took PEM Out of Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Why We Took PEM Out of Apache</h1> + On May 17th, 1995, we were asked by a representative of NCSA to + remove any copies of NCSA httpd prior to 1.4.1 from our web + site. They were mandated by the NSA to inform us that + redistribution of pre-1.4.1 code violated the same laws that + make distributing Phill Zimmerman's PGP package to other + countries illegal. There was <strong>no</strong> encryption in + NCSA's httpd, only hooks to publicly available libraries of PEM + code. By the NSA's rules, even hooks to this type of + application is illegal. + + <p>Because Apache is based on NCSA code, and we had basically + not touched that part of the software, we were informed that + Apache was also illegal to distribute to foreign countries, and + advised (not mandated) by NCSA to remove it. So, we removed + both the copies of the NCSA httpd we had, and all versions of + Apache previous to 0.6.5.</p> + + <p>The Apache members are strong advocates of the right to + digital privacy, so the decision to submit to the NSA and + remove the code was not an easy one. Here are some elements in + our rationale:</p> + + <ul> + <li>The PEM code in httpd was not widely used. No major site + relied upon its use, so its loss is not a blow to encryption + and security on the world wide web. There are other efforts + designed to give much more flexible security - SSL and SHTTP + - so this wasn't a function whose absence would really be + missed on a functional level.</li> + + <li>We didn't feel like being just a couple more martyrs in a + fight being fought very well by many other people. Rather + than have the machine that supports the project confiscated + or relocated to South Africa, <em>etc.</em>, we think there + are more efficient methods to address the issue.</li> + </ul> + It kind of sickens us that we had to do it, but so be it. + + <p>Patches that re-implement the PEM code may be available at a + foreign site soon. If it does show up, we'll point to it - that + can't be illegal!</p> + + <p>Finally, here is a compendium of pointers to sites related + to encryption and export law. We can't promise this list will + be up to date, so send us mail when you see a problem or want a + link added. Thanks.</p> + + <ul> + <li><a + href="http://dir.yahoo.com/Computers_and_Internet/security_and_encryption/"> + Yahoo - Science: Mathematics: Security and + Encryption</a></li> + + <li><a href="http://www.eff.org/Privacy/Crypto/">EFF + Crypto/Privacy/Security Archive</a></li> + + <li><a + href="http://www.quadralay.com/www/Crypt/Crypt.html">Crypto + page at Quadralay</a></li> + + <li><a + href="ftp://ftp.cygnus.com/pub/export/export.html">Cryptography + Export Control Archives (Cygnus)</a></li> + + <li><a href="http://www.law.indiana.edu/law/iclu.html">ICLU - + Your Rights in Cyberspace</a></li> + </ul> + <a href="http://www.behlendorf.com/~brian/">Brian</a>, <a + href="mailto:brian@hyperreal.com">brian@hyperreal.com</a> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/perf-bsd44.html b/htdocs/manual/misc/perf-bsd44.html new file mode 100644 index 0000000000..bcd4964bf8 --- /dev/null +++ b/htdocs/manual/misc/perf-bsd44.html @@ -0,0 +1,271 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Running a High-Performance Web Server for BSD</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <a id="initial" name="initial"> + <!--#include virtual="header.html" --> + </a> + + <h1 align="CENTER">Running a High-Performance Web Server for + BSD</h1> + + <p>This document assumes that you have read the appropriate + overview documentation for + <a href="http://www.FreeBSD.org/docs.html">FreeBSD</a>, + <a href="http://www.NetBSD.org/Documentation/">NetBSD</a>, or + <a href="http://www.OpenBSD.org/docum.html">OpenBSD</a>. + In addition, the FreeBSD + <a href="http://www.FreeBSD.org/cgi/man.cgi?query=tuning">tuning</a> + manual page contains lots of wisdom, especially regarding sysctl + options.</p> + + <p>Like other OS's, the listen queue is often the <strong>first + limit hit</strong>. The following are comments from "Aaron + Gifford <agifford@InfoWest.COM>" on how to fix this on + BSDI 1.x, 2.x, and FreeBSD 2.0 (and earlier):</p> + + <p>Edit the following two files:</p> + + <blockquote> + <code>/usr/include/sys/socket.h<br /> + /usr/src/sys/sys/socket.h</code> + </blockquote> + In each file, look for the following: +<pre> + /* + * Maximum queue length specifiable by listen. + */ + #define SOMAXCONN 5 +</pre> + Just change the "5" to whatever appears to work. I bumped the + two machines I was having problems with up to 32 and haven't + noticed the problem since. + + <p>After the edit, recompile the kernel and recompile the + Apache server then reboot.</p> + + <p>FreeBSD 2.1 seems to be perfectly happy, with SOMAXCONN set + to 32 already.</p> + + <p><a id="detail" name="detail"><strong>Addendum for + <em>very</em> heavily loaded BSD servers</strong><br /> + </a> from Chuck Murcko <chuck@telebase.com></p> + + <p>If you're running a really busy BSD Apache server, the + following are useful things to do if the system is acting + sluggish:</p> + + <ul> + <li>Run vmstat to check memory usage, page/swap rates, + <em>etc.</em></li> + + <li>Run netstat -m to check mbuf usage</li> + + <li>Run fstat to check file descriptor usage</li> + </ul> + These utilities give you an idea what you'll need to tune in + your kernel, and whether it'll help to buy more RAM. Here are + some BSD kernel config parameters (actually BSDI, but pertinent + to FreeBSD and other 4.4-lite derivatives) from a system + getting heavy usage. The tools mentioned above were used, and + the system memory was increased to 48 MB before these tuneups. + Other system parameters remained unchanged. +<pre> +maxusers 256 +</pre> + Maxusers drives a <em>lot</em> of other kernel parameters: + + <ul> + <li>Maximum # of processes</li> + + <li>Maximum # of processes per user</li> + + <li>System wide open files limit</li> + + <li>Per-process open files limit</li> + + <li>Maximum # of mbuf clusters</li> + + <li>Proc/pgrp hash table size</li> + </ul> + The actual formulae for these derived parameters are in + <em>/usr/src/sys/conf/param.c</em>. These calculated parameters + can also be overridden (in part) by specifying your own values + in the kernel configuration file: +<pre> +# Network options. NMBCLUSTERS defines the number of mbuf clusters and +# defaults to 256. This machine is a server that handles lots of traffic, +# so we crank that value. +options NMBCLUSTERS=4096 # mbuf clusters at 4096 + +# +# Misc. options +# +options CHILD_MAX=512 # maximum number of child processes +options OPEN_MAX=512 # maximum fds (breaks RPC svcs) +</pre> + + <p>In many cases, NMBCLUSTERS must be set much larger than + would appear necessary at first glance. The reason for this is + that if the browser disconnects in mid-transfer, the socket fd + associated with that particular connection ends up in the + TIME_WAIT state for several minutes, during which time its + mbufs are not yet freed. Another reason is that, on server + timeouts, some connections end up in FIN_WAIT_2 state forever, + because this state doesn't time out on the server, and the + browser never sent a final FIN. For more details see the <a + href="fin_wait_2.html">FIN_WAIT_2</a> page.</p> + + <p>Some more info on mbuf clusters (from sys/mbuf.h):</p> +<pre> +/* + * Mbufs are of a single size, MSIZE (machine/machparam.h), which + * includes overhead. An mbuf may add a single "mbuf cluster" of size + * MCLBYTES (also in machine/machparam.h), which has no additional overhead + * and is used instead of the internal data area; this is done when + * at least MINCLSIZE of data must be stored. + */ +</pre> + + <p>CHILD_MAX and OPEN_MAX are set to allow up to 512 child + processes (different than the maximum value for processes per + user ID) and file descriptors. These values may change for your + particular configuration (a higher OPEN_MAX value if you've got + modules or CGI scripts opening lots of connections or files). + If you've got a lot of other activity besides httpd on the same + machine, you'll have to set NPROC higher still. In this + example, the NPROC value derived from maxusers proved + sufficient for our load.</p> + + <p>To increase the size of the <code>listen()</code> queue, you + need to adjust the value of SOMAXCONN. SOMAXCONN is not derived + from maxusers, so you'll always need to increase that yourself. + We use a value guaranteed to be larger than Apache's default + for the listen() of 128, currently. The actual value for + SOMAXCONN is set in <code>sys/socket.h</code>. The best way to + adjust this parameter is run-time, rather than changing it in + this header file and thus hardcoding a value in the kernel and + elsewhere. To do this, edit <code>/etc/rc.local</code> and add + the following line:</p> +<pre> + /usr/sbin/sysctl -w kern.somaxconn=256 +</pre> + + <p>We used <code>256</code> but you can tune it for your own + setup. In many cases, however, even the default value of + <code>128</code> (for later versions of FreeBSD) is OK.</p> + + <p><strong>Caveats</strong></p> + + <p>Be aware that your system may not boot with a kernel that is + configured to use more resources than you have available system + RAM. <strong>ALWAYS</strong> have a known bootable kernel + available when tuning your system this way, and use the system + tools beforehand to learn if you need to buy more memory before + tuning.</p> + + <p>RPC services will fail when the value of OPEN_MAX is larger + than 256. This is a function of the original implementations of + the RPC library, which used a byte value for holding file + descriptors. BSDI has partially addressed this limit in its 2.1 + release, but a real fix may well await the redesign of RPC + itself.</p> + + <p>Finally, there's the hard limit of child processes + configured in Apache.</p> + + <p>For versions of Apache later than 1.0.5 you'll need to + change the definition for <strong>HARD_SERVER_LIMIT</strong> in + <em>httpd.h</em> and recompile if you need to run more than the + default 150 instances of httpd.</p> + + <p>From conf/httpd.conf-dist:</p> +<pre> +# Limit on total number of servers running, <em>i.e.</em>, limit on the number +# of clients who can simultaneously connect --- if this limit is ever +# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW. +# It is intended mainly as a brake to keep a runaway server from taking +# Unix with it as it spirals down... + +MaxClients 150 +</pre> + Know what you're doing if you bump this value up, and make sure + you've done your system monitoring, RAM expansion, and kernel + tuning beforehand. Then you're ready to service some serious + hits! + + <p>Thanks to <em>Tony Sanders</em> and <em>Chris Torek</em> at + BSDI for their helpful suggestions and information.</p> + + <p>"M. Teterin" <mi@ALDAN.ziplink.net> writes:</p> + + <blockquote> + It really does help if your kernel and frequently used + utilities are fully optimized. Rebuilding the FreeBSD kernel + on an AMD-133 (486-class CPU) web-server with<br /> + <code>-m486 -fexpensive-optimizations -fomit-frame-pointer + -O2</code><br /> + helped reduce the number of "unable" errors, because the CPU + was often maxed out. + </blockquote> + + <h2><a id="accf" name="accf">Accept filtering on + FreeBSD</a></h2> + + <p>Versions of FreeBSD from August 2000 onwards include a + feature called "accept filters" which delay the return from + accept() until a condition has been met, e.g. an HTTP request + has arrived. This postpones the requirement for a child process + to handle the new connection which therefore increases the + number of connections that a given number of child processes + can handle. It also allows a child process to accomplish more + immediately after accept() returns (because the request is + already available to be read) so there is less context + switching.</p> + + <p>Accept filters provide the most benefit on servers that are + already so busy that they are configured with "<code>KeepAlive + Off</code>". <a href="../keepalive.html">HTTP KeepAlive (aka + persistent connections)</a> avoids the cost of setting up a new + connection for every request, but connections that are being + kept alive use up one of the available child processes. Since + there is a limited number of child processes this can + significantly reduce the capacity of the server. The viewers of + a web site will still get a lot of the benefit of persistent + connections even with a very small + <code>KeepAliveTimeout</code> so you should try reducing it + before turning it off altogether.</p> + + <p>To enable accept filtering, you must either load the + appropriate accept filter module, e.g. with the command + <code>kldload accf_http</code>, or compile a kernel with + <code>options ACCEPT_FILTER_HTTP</code>. Apache will then + enable filtering when it is restarted.</p> + + <p>Accept filters are compiled in if the symbol + <code>SO_ACCEPTFILTER</code> is defined on the machine on which + Apache is built. Additionally there is a directive <a + href="../mod/core.html#acceptfilter">AcceptFilter</a> to switch + the filters on or off. The default is on; except when apache is + compiled with <code>-D AP_ACCEPTFILTER_ON</code>.</p> + + <p>See the manual page + <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_http">accf_http(9)</a> + for more information.</p> + + <h3>More welcome!</h3> + If you have tips to contribute, send mail to <a + href="mailto:apache@apache.org">apache@apache.org</a> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/perf-dec.html b/htdocs/manual/misc/perf-dec.html new file mode 100644 index 0000000000..611bed6884 --- /dev/null +++ b/htdocs/manual/misc/perf-dec.html @@ -0,0 +1,287 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Performance Tuning Tips for Digital Unix</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Performance Tuning Tips for Digital + Unix</h1> + Below is a set of newsgroup posts made by an engineer from DEC + in response to queries about how to modify DEC's Digital Unix + OS for more heavily loaded web sites. Copied with permission. + <hr /> + + <h2>Update</h2> + From: Jeffrey Mogul <mogul@pa.dec.com><br /> + Date: Fri, 28 Jun 96 16:07:56 MDT<br /> + + + <ol> + <li>The advice given in the README file regarding the + "tcbhashsize" variable is incorrect. The largest value this + should be set to is 1024. Setting it any higher will have the + perverse result of disabling the hashing mechanism.</li> + + <li> + Patch ID OSF350-146 has been superseded by + + <blockquote> + Patch ID OSF350-195 for V3.2C<br /> + Patch ID OSF360-350195 for V3.2D + </blockquote> + Patch IDs for V3.2E and V3.2F should be available soon. + There is no known reason why the Patch ID OSF360-350195 + won't work on these releases, but such use is not + officially supported by Digital. This patch kit will not be + needed for V3.2G when it is released. + </li> + </ol> + <hr /> +<pre> +From mogul@pa.dec.com (Jeffrey Mogul) +Organization DEC Western Research +Date 30 May 1996 00:50:25 GMT +Newsgroups <a +href="news:comp.unix.osf.osf1">comp.unix.osf.osf1</a> +Message-ID <4oirch$bc8@usenet.pa.dec.com> +Subject Re: Web Site Performance +References 1 + + + +In article <skoogDs54BH.9pF@netcom.com> skoog@netcom.com (Jim Skoog) writes: +>Where are the performance bottlenecks for Alpha AXP running the +>Netscape Commerce Server 1.12 with high volume internet traffic? +>We are evaluating network performance for a variety of Alpha AXP +>runing DEC UNIX 3.2C, which run DEC's seal firewall and behind +>that Alpha 1000 and 2100 webservers. + +Our experience (running such Web servers as <a +href="http://altavista.digital.com">altavista.digital.com</a> +and <a +href="http://www.digital.com">www.digital.com</a>) is that there is one important kernel tuning +knob to adjust in order to get good performance on V3.2C. You +need to patch the kernel global variable "somaxconn" (use dbx -k +to do this) from its default value of 8 to something much larger. + +How much larger? Well, no larger than 32767 (decimal). And +probably no less than about 2048, if you have a really high volume +(millions of hits per day), like AltaVista does. + +This change allows the system to maintain more than 8 TCP +connections in the SYN_RCVD state for the HTTP server. (You +can use "netstat -An |grep SYN_RCVD" to see how many such +connections exist at any given instant). + +If you don't make this change, you might find that as the load gets +high, some connection attempts take a very long time. And if a lot +of your clients disconnect from the Internet during the process of +TCP connection establishment (this happens a lot with dialup +users), these "embryonic" connections might tie up your somaxconn +quota of SYN_RCVD-state connections. Until the kernel times out +these embryonic connections, no other connections will be accepted, +and it will appear as if the server has died. + +The default value for somaxconn in Digital UNIX V4.0 will be quite +a bit larger than it has been in previous versions (we inherited +this default from 4.3BSD). + +Digital UNIX V4.0 includes some other performance-related changes +that significantly improve its maximum HTTP connection rate. However, +we've been using V3.2C systems to front-end for altavista.digital.com +with no obvious performance bottlenecks at the millions-of-hits-per-day +level. + +We have some Webstone performance results available at + http://www.digital.com/info/alphaserver/news/webff.html + +<em>[The document referenced above is no longer at that URL -- Ed.]</em> + +I'm not sure if these were done using V4.0 or an earlier version +of Digital UNIX, although I suspect they were done using a test +version of V4.0. + +-Jeff + +---------------------------------------------------------------------------- + +From mogul@pa.dec.com (Jeffrey Mogul) +Organization DEC Western Research +Date 31 May 1996 21:01:01 GMT +Newsgroups <a +href="news:comp.unix.osf.osf1">comp.unix.osf.osf1</a> +Message-ID <4onmmd$mmd@usenet.pa.dec.com> +Subject Digital UNIX V3.2C Internet tuning patch info + +---------------------------------------------------------------------------- + +Something that probably few people are aware of is that Digital +has a patch kit available for Digital UNIX V3.2C that may improve +Internet performance, especially for busy web servers. + +This patch kit is one way to increase the value of somaxconn, +which I discussed in a message here a day or two ago. + +I've included in this message the revised README file for this +patch kit below. Note that the original README file in the patch +kit itself may be an earlier version; I'm told that the version +below is the right one. + +Sorry, this patch kit is NOT available for other versions of Digital +UNIX. Most (but not quite all) of these changes also made it into V4.0, +so the description of the various tuning parameters in this README +file might be useful to people running V4.0 systems. + +This patch kit does not appear to be available (yet?) from + <a +href="http://www.service.digital.com/html/patch_service.html">http://www.service.digital.com/html/patch_service.html</a> +so I guess you'll have to call Digital's Customer Support to get it. + +-Jeff + +DESCRIPTION: Digital UNIX Network tuning patch + + Patch ID: OSF350-146 + + SUPERSEDED PATCHES: OSF350-151, OSF350-158 + + This set of files improves the performance of the network + subsystem on a system being used as a web server. There are + additional tunable parameters included here, to be used + cautiously by an informed system administrator. + +TUNING + + To tune the web server, the number of simultaneous socket + connection requests are limited by: + + somaxconn Sets the maximum number of pending requests + allowed to wait on a listening socket. The + default value in Digital UNIX V3.2 is 8. + This patch kit increases the default to 1024, + which matches the value in Digital UNIX V4.0. + + sominconn Sets the minimum number of pending connections + allowed on a listening socket. When a user + process calls listen with a backlog less + than sominconn, the backlog will be set to + sominconn. sominconn overrides somaxconn. + The default value is 1. + + The effectiveness of tuning these parameters can be monitored by + the sobacklog variables available in the kernel: + + sobacklog_hiwat Tracks the maximum pending requests to any + socket. The initial value is 0. + + sobacklog_drops Tracks the number of drops exceeding the + socket set backlog limit. The initial + value is 0. + + somaxconn_drops Tracks the number of drops exceeding the + somaxconn limit. When sominconn is larger + than somaxconn, tracks the number of drops + exceeding sominconn. The initial value is 0. + + TCP timer parameters also affect performance. Tuning the following + require some knowledge of the characteristics of the network. + + tcp_msl Sets the tcp maximum segment lifetime. + This is the maximum lifetime in half + seconds that a packet can be in transit + on the network. This value, when doubled, + is the length of time a connection remains + in the TIME_WAIT state after a incoming + close request is processed. The unit is + specified in 1/2 seconds, the initial + value is 60. + + tcp_rexmit_interval_min + Sets the minimum TCP retransmit interval. + For some WAN networks the default value may + be too short, causing unnecessary duplicate + packets to be sent. The unit is specified + in 1/2 seconds, the initial value is 1. + + tcp_keepinit This is the amount of time a partially + established connection will sit on the listen + queue before timing out (<em>e.g.</em>, if a client + sends a SYN but never answers our SYN/ACK). + Partially established connections tie up slots + on the listen queue. If the queue starts to + fill with connections in SYN_RCVD state, + tcp_keepinit can be decreased to make those + partial connects time out sooner. This should + be used with caution, since there might be + legitimate clients that are taking a while + to respond to SYN/ACK. The unit is specified + in 1/2 seconds, the default value is 150 + (ie. 75 seconds). + + The hashlist size for the TCP inpcb lookup table is regulated by: + + tcbhashsize The number of hash buckets used for the + TCP connection table used in the kernel. + The initial value is 32. For best results, + should be specified as a power of 2. For + busy Web servers, set this to 2048 or more. + + The hashlist size for the interface alias table is regulated by: + + inifaddr_hsize The number of hash buckets used for the + interface alias table used in the kernel. + The initial value is 32. For best results, + should be specified as a power of 2. + + ipport_userreserved The maximum number of concurrent non-reserved, + dynamically allocated ports. Default range + is 1025-5000. The maximum value is 65535. + This limits the numer of times you can + simultaneously telnet or ftp out to connect + to other systems. + + tcpnodelack Don't delay acknowledging TCP data; this + can sometimes improve performance of locally + run CAD packages. Default is value is 0, + the enabled value is 1. + + Digital UNIX version: + + V3.2C +Feature V3.2C patch V4.0 +======= ===== ===== ==== +somaxconn X X X +sominconn - X X +sobacklog_hiwat - X - +sobacklog_drops - X - +somaxconn_drops - X - +tcpnodelack X X X +tcp_keepidle X X X +tcp_keepintvl X X X +tcp_keepcnt - X X +tcp_keepinit - X X +TCP keepalive per-socket - - X +tcp_msl - X - +tcp_rexmit_interval_min - X - +TCP inpcb hashing - X X +tcbhashsize - X X +interface alias hashing - X X +inifaddr_hsize - X X +ipport_userreserved - X - +sysconfig -q inet - - X +sysconfig -q socket - - X + +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/perf-hp.html b/htdocs/manual/misc/perf-hp.html new file mode 100644 index 0000000000..55af9c2176 --- /dev/null +++ b/htdocs/manual/misc/perf-hp.html @@ -0,0 +1,97 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Running a High-Performance Web Server on HPUX</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <a id="initial" name="initial"> </a> + <!--#include virtual="header.html" --> + + + <h1 align="center">Running a High-Performance Web Server for + HPUX</h1> +<pre> +Date: Wed, 05 Nov 1997 16:59:34 -0800 +From: Rick Jones <<a +href="mailto:raj@cup.hp.com">raj@cup.hp.com</a>> +Reply-To: raj@cup.hp.com +Organization: Network Performance +Subject: HP-UX tuning tips +</pre> + Here are some tuning tips for HP-UX to add to the tuning page. + + <p>For HP-UX 9.X: Upgrade to 10.20<br /> + For HP-UX 10.[00|01|10]: Upgrade to 10.20</p> + + <p>For HP-UX 10.20:</p> + + <p>Install the latest cumulative ARPA Transport Patch. This + will allow you to configure the size of the TCP connection + lookup hash table. The default is 256 buckets and must be set + to a power of two. This is accomplished with adb against the + *disc* image of the kernel. The variable name is tcp_hash_size. + Notice that it's critically important that you use "W" to write + a 32 bit quantity, not "w" to write a 16 bit value when + patching the disc image because the tcp_hash_size variable is a + 32 bit quantity.</p> + + <p>How to pick the value? Examine the output of <a + href="ftp://ftp.cup.hp.com/dist/networking/tools/connhist">ftp://ftp.cup.hp.com/dist/networking/tools/connhist</a> + and see how many total TCP connections exist on the system. You + probably want that number divided by the hash table size to be + reasonably small, say less than 10. Folks can look at HP's + SPECweb96 disclosures for some common settings. These can be + found at <a + href="http://www.specbench.org/">http://www.specbench.org/</a>. + If an HP-UX system was performing at 1000 SPECweb96 connections + per second, the TIME_WAIT time of 60 seconds would mean 60,000 + TCP "connections" being tracked.</p> + + <p>Folks can check their listen queue depths with <a + href="ftp://ftp.cup.hp.com/dist/networking/misc/listenq">ftp://ftp.cup.hp.com/dist/networking/misc/listenq</a>.</p> + + <p>If folks are running Apache on a PA-8000 based system, they + should consider "chatr'ing" the Apache executable to have a + large page size. This would be "chatr +pi L <BINARY>." + The GID of the running executable must have MLOCK privileges. + Setprivgrp(1m) should be consulted for assigning MLOCK. The + change can be validated by running Glance and examining the + memory regions of the server(s) to make sure that they show a + non-trivial fraction of the text segment being locked.</p> + + <p>If folks are running Apache on MP systems, they might + consider writing a small program that uses mpctl() to bind + processes to processors. A simple pid % numcpu algorithm is + probably sufficient. This might even go into the source + code.</p> + + <p>If folks are concerned about the number of FIN_WAIT_2 + connections, they can use nettune to shrink the value of + tcp_keepstart. However, they should be careful there - + certainly do not make it less than oh two to four minutes. If + tcp_hash_size has been set well, it is probably OK to let the + FIN_WAIT_2's take longer to timeout (perhaps even the default + two hours) - they will not on average have a big impact on + performance.</p> + + <p>There are other things that could go into the code base, but + that might be left for another email. Feel free to drop me a + message if you or others are interested.</p> + + <p>sincerely,</p> + + <p>rick jones<br /> + <a + href="http://www.cup.hp.com/netperf/NetperfPage.html">http://www.cup.hp.com/netperf/NetperfPage.html</a> + <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/misc/perf-tuning.html b/htdocs/manual/misc/perf-tuning.html new file mode 100644 index 0000000000..482b924d9c --- /dev/null +++ b/htdocs/manual/misc/perf-tuning.html @@ -0,0 +1,1047 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Performance Notes</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#000080" + alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache Performance Notes</h1> + + <p>Author: Dean Gaudet</p> + + <ul> + <li><a href="#introduction">Introduction</a></li> + + <li><a href="#hardware">Hardware and Operating System Issues</a></li> + + <li><a href="#runtime">Run-Time Configuration Issues</a></li> + + <!-- + Contains subsections: + #dns + #symlinks + #htaccess + #negotiation + #process + #modules + #mmap + --> + + <li><a href="#compiletime">Compile-Time Configuration Issues</a></li> + + <li> + Appendixes + + <ul> + <li><a href="#trace">Detailed Analysis of a Trace</a></li> + + <li><a href="#patches">Patches Available</a></li> + + <li><a href="#preforking">The Pre-Forking Model</a></li> + </ul> + </li> + </ul> + <hr /> + + <h3><a id="introduction" name="introduction">Introduction</a></h3> + + <p>Apache is a general webserver, which is designed to be correct + first, and fast second. Even so, its performance is quite satisfactory. + Most sites have less than 10Mbits of outgoing bandwidth, which Apache + can fill using only a low end Pentium-based webserver. In practice, + sites with more bandwidth require more than one machine to fill the + bandwidth due to other constraints (such as CGI or database transaction + overhead). For these reasons, the development focus has been mostly on + correctness and configurability.</p> + + <p>Unfortunately many folks overlook these facts and cite raw + performance numbers as if they are some indication of the quality of a + web server product. There is a bare minimum performance that is + acceptable, beyond that, extra speed only caters to a much smaller + segment of the market. But in order to avoid this hurdle to the + acceptance of Apache in some markets, effort was put into Apache 1.3 to + bring performance up to a point where the difference with other + high-end webservers is minimal.</p> + + <p>Finally there are the folks who just want to see how fast something + can go. The author falls into this category. The rest of this document + is dedicated to these folks who want to squeeze every last bit of + performance out of Apache's current model, and want to understand why + it does some things which slow it down.</p> + + <p>Note that this is tailored towards Apache 1.3 on Unix. Some of it + applies to Apache on NT. Apache on NT has not been tuned for + performance yet; in fact it probably performs very poorly because NT + performance requires a different programming model.</p> + <hr /> + + <h3><a id="hardware" name="hardware">Hardware and Operating System + Issues</a></h3> + + <p>The single biggest hardware issue affecting webserver performance is + RAM. A webserver should never ever have to swap, as swapping increases + the latency of each request beyond a point that users consider "fast + enough". This causes users to hit stop and reload, further increasing + the load. You can, and should, control the <code>MaxClients</code> + setting so that your server does not spawn so many children it starts + swapping. The procedure for doing this is simple: determine the size of + your average Apache process, by looking at your process list via a tool + such as <code>top</code>, and divide this into your total available + memory, leaving some room for other processes.</p> + + <p>Beyond that the rest is mundane: get a fast enough CPU, a fast + enough network card, and fast enough disks, where "fast enough" is + something that needs to be determined by experimentation.</p> + + <p>Operating system choice is largely a matter of local concerns. But a + general guideline is to always apply the latest vendor TCP/IP + patches.</p> + <hr /> + + <h3><a id="runtime" name="runtime">Run-Time Configuration + Issues</a></h3> + + <h4><a id="dns" name="dns"><code>HostnameLookups</code> and other DNS considerations</a></h4> + + <p>Prior to Apache 1.3, <a + href="../mod/core.html#hostnamelookups"><code>HostnameLookups</code></a> + defaulted to <code>On</code>. This adds latency to every request + because it requires a DNS lookup to complete before the request is + finished. In Apache 1.3 this setting defaults to <code>Off</code>. If + you need to have addresses in your log files resolved to hostnames, use + the <a href="../programs/logresolve.html">logresolve</a> program that + comes with Apache, or one of the numerous log reporting packages which + are available.</p> + + <p>It is recommended that you do this sort of postprocessing of your + log files on some machine other than the production web server machine, + in order that this activity not adversely affect server + performance.</p> + + <p>If you use any <code><a + href="../mod/mod_access.html#allow">Allow</a> from domain</code> or + <code><a href="../mod/mod_access.html#deny">Deny</a> from domain</code> + directives (i.e., using a hostname, or a domain name, rather than an IP + address) then you will pay for a double reverse DNS lookup (a reverse, + followed by a forward to make sure that the reverse is not being + spoofed). For best performance, therefore, use IP addresses, rather + than names, when using these directives, if possible.</p> + + <p>Note that it's possible to scope the directives, such as within a + <code><Location /server-status></code> section. In this case the + DNS lookups are only performed on requests matching the criteria. + Here's an example which disables lookups except for .html and .cgi + files:</p> + + <blockquote> +<pre> +HostnameLookups off +<Files ~ "\.(html|cgi)$"> + HostnameLookups on +</Files> +</pre> + </blockquote> + + <p>But even still, if you just need DNS names in some CGIs you could + consider doing the <code>gethostbyname</code> call in the specific CGIs + that need it.</p> + + <h4><a id="symlinks" name="symlinks">FollowSymLinks and SymLinksIfOwnerMatch</a></h4> + + <p>Wherever in your URL-space you do not have an <code>Options + FollowSymLinks</code>, or you do have an <code>Options + SymLinksIfOwnerMatch</code> Apache will have to issue extra system + calls to check up on symlinks. One extra call per filename component. + For example, if you had:</p> + + <blockquote> +<pre> +DocumentRoot /www/htdocs +<Directory /> + Options SymLinksIfOwnerMatch +</Directory> +</pre> + </blockquote> + + <p>and a request is made for the URI <code>/index.html</code>. Then + Apache will perform <code>lstat(2)</code> on <code>/www</code>, + <code>/www/htdocs</code>, and <code>/www/htdocs/index.html</code>. The + results of these <code>lstats</code> are never cached, so they will + occur on every single request. If you really desire the symlinks + security checking you can do something like this:</p> + + <blockquote> +<pre> +DocumentRoot /www/htdocs +<Directory /> + Options FollowSymLinks +</Directory> +<Directory /www/htdocs> + Options -FollowSymLinks +SymLinksIfOwnerMatch +</Directory> +</pre> + </blockquote> + + <p>This at least avoids the extra checks for the + <code>DocumentRoot</code> path. Note that you'll need to add similar + sections if you have any <code>Alias</code> or <code>RewriteRule</code> + paths outside of your document root. For highest performance, and no + symlink protection, set <code>FollowSymLinks</code> everywhere, and + never set <code>SymLinksIfOwnerMatch</code>.</p> + + <h4><a id="htaccess" name="htaccess">AllowOverride</a></h4> + + <p>Wherever in your URL-space you allow overrides (typically + <code>.htaccess</code> files) Apache will attempt to open + <code>.htaccess</code> for each filename component. For example,</p> + + <blockquote> +<pre> +DocumentRoot /www/htdocs +<Directory /> + AllowOverride all +</Directory> +</pre> + </blockquote> + + <p>and a request is made for the URI <code>/index.html</code>. Then + Apache will attempt to open <code>/.htaccess</code>, + <code>/www/.htaccess</code>, and <code>/www/htdocs/.htaccess</code>. + The solutions are similar to the previous case of <code>Options + FollowSymLinks</code>. For highest performance use <code>AllowOverride + None</code> everywhere in your filesystem.</p> + + <p>See also the <a href="../howto/htaccess.html">.htaccess tutorial</a> + for further discussion of this.</p> + + <h4><a id="negotiation" name="negotiation">Negotiation</a></h4> + + <p>If at all possible, avoid content-negotiation if you're really + interested in every last ounce of performance. In practice the benefits + of negotiation outweigh the performance penalties. There's one case + where you can speed up the server. Instead of using a wildcard such + as:</p> + + <blockquote> +<pre> +DirectoryIndex index +</pre> + </blockquote> + + <p>Use a complete list of options:</p> + + <blockquote> +<pre> +DirectoryIndex index.cgi index.pl index.shtml index.html +</pre> + </blockquote> + + <p>where you list the most common choice first.</p> + + <p>If your site needs content negotiation, consider using + <code>type-map</code> files rather than the <code>Options + MultiViews</code> directive to accomplish the negotiation. See the <a + href="../content-negotiation.html">Content Negotiation</a> + documentation for a full discussion of the methods of negotiation, and + instructions for creating <code>type-map</code> files.</p> + + <h4><a name="process" id="process">Process Creation</a></h4> + + <p>Prior to Apache 1.3 the <a + href="../mod/core.html#minspareservers"><code>MinSpareServers</code></a>, + <a + href="../mod/core.html#maxspareservers"><code>MaxSpareServers</code></a>, + and <a + href="../mod/core.html#startservers"><code>StartServers</code></a> + settings all had drastic effects on benchmark results. In particular, + Apache required a "ramp-up" period in order to reach a number of + children sufficient to serve the load being applied. After the initial + spawning of <code>StartServers</code> children, only one child per + second would be created to satisfy the <code>MinSpareServers</code> + setting. So a server being accessed by 100 simultaneous clients, using + the default <code>StartServers</code> of 5 would take on the order 95 + seconds to spawn enough children to handle the load. This works fine in + practice on real-life servers, because they aren't restarted + frequently. But results in poor performance on benchmarks, which might + only run for ten minutes.</p> + + <p>The one-per-second rule was implemented in an effort to avoid + swamping the machine with the startup of new children. If the machine + is busy spawning children it can't service requests. But it has such a + drastic effect on the perceived performance of Apache that it had to be + replaced. As of Apache 1.3, the code will relax the one-per-second + rule. It will spawn one, wait a second, then spawn two, wait a second, + then spawn four, and it will continue exponentially until it is + spawning 32 children per second. It will stop whenever it satisfies the + <code>MinSpareServers</code> setting.</p> + + <p>This appears to be responsive enough that it's almost unnecessary to + adjust the <code>MinSpareServers</code>, <code>MaxSpareServers</code> + and <code>StartServers</code> settings. When more than 4 children are + spawned per second, a message will be emitted to the + <code>ErrorLog</code>. If you see a lot of these errors then consider + tuning these settings. Use the <code>mod_status</code> output as a + guide.</p> + + <p>In particular, you may need to set <code>MinSpareServers</code> + higher if traffic on your site is extremely bursty - that is, if the + number of connections to your site fluctuates radically in short + periods of time. This may be the case, for example, if traffic to your + site is highly event-driven, such as sites for major sports events, or + other sites where users are encouraged to visit the site at a + particular time.</p> + + <p>Related to process creation is process death induced by the + <code>MaxRequestsPerChild</code> setting. By default this is 0, which + means that there is no limit to the number of requests handled per + child. If your configuration currently has this set to some very low + number, such as 30, you may want to bump this up significantly. If you + are running SunOS or an old version of Solaris, limit this to 10000 or + so because of memory leaks.</p> + + <p>When keep-alives are in use, children will be kept busy doing + nothing waiting for more requests on the already open connection. The + default <code>KeepAliveTimeout</code> of 15 seconds attempts to + minimize this effect. The tradeoff here is between network bandwidth + and server resources. In no event should you raise this above about 60 + seconds, as <a + href="http://www.research.compaq.com/wrl/techreports/abstracts/95.4.html"> + most of the benefits are lost</a>.</p> + + <h4><a name="modules" id="modules">Modules</a></h4> + + <p>Since memory usage is such an important consideration in + performance, you should attempt to eliminate modules that you are not + actually using. If you have built the modules as <a + href="../dso.html">DSOs</a>, eliminating modules is a simple matter of + commenting out the associated <a + href="../mod/core.html#addmodule.html">AddModule</a> and <a + href="../mod/mod_so.html#loadmodule.html">LoadModule</a> directives for + that module. This allows you to experiment with removing modules, and + seeing if your site still functions in their absence.</p> + + <p>If, on the other hand, you have modules statically linked into your + Apache binary, you will need to recompile Apache in order to remove + unwanted modules.</p> + + <p>An associated question that arises here is, of course, what modules + you need, and which ones you don't. The answer here will, of course, + vary from one web site to another. However, the <i>minimal</i> list of + modules which you can get by with tends to include <a + href="../mod/mod_mime.html">mod_mime</a>, <a + href="../mod/mod_dir.html">mod_dir</a>, and <a + href="../mod/mod_log_config.html">mod_log_config</a>. + <code>mod_log_config</code> is, of course, optional, as you can run a + web site without log files. This is, however, not recommended.</p> + + <h4><a name="mmap" id="mmap">mod_mmap_static</a></h4> + + <p>Apache comes with a module, <a + href="../mod/mod_mmap_static.html">mod_mmap_static</a>, which is not + enabled by default, which allows you to map files into RAM, and + serve them directly from memory rather than from the disc, which + should result in substantial performance improvement for + frequently-requests files. Note that when files are modified, you + will need to restart your server in order to serve the latest + version of the file, so this is not appropriate for files which + change frequently. See the documentation for this module for more + complete details.</p> + + <hr /> + + <h3><a id="compiletime" name="compiletime">Compile-Time Configuration + Issues</a></h3> + + <h4>mod_status and ExtendedStatus On</h4> + + <p>If you include <a + href="../mod/mod_status.html"><code>mod_status</code></a> and you also + set <code>ExtendedStatus On</code> when building and running Apache, + then on every request Apache will perform two calls to + <code>gettimeofday(2)</code> (or <code>times(2)</code> depending on + your operating system), and (pre-1.3) several extra calls to + <code>time(2)</code>. This is all done so that the status report + contains timing indications. For highest performance, set + <code>ExtendedStatus off</code> (which is the default).</p> + + <p><code>mod_status</code> should probably be configured to allow + access by only a few users, rather than to the general public, so this + will likely have very low impact on your overall performance.</p> + + <h4>accept Serialization - multiple sockets</h4> + + <p>This discusses a shortcoming in the Unix socket API. Suppose your + web server uses multiple <code>Listen</code> statements to listen on + either multiple ports or multiple addresses. In order to test each + socket to see if a connection is ready Apache uses + <code>select(2)</code>. <code>select(2)</code> indicates that a socket + has <em>zero</em> or <em>at least one</em> connection waiting on it. + Apache's model includes multiple children, and all the idle ones test + for new connections at the same time. A naive implementation looks + something like this (these examples do not match the code, they're + contrived for pedagogical purposes):</p> + + <blockquote> +<pre> + for (;;) { + for (;;) { + fd_set accept_fds; + + FD_ZERO (&accept_fds); + for (i = first_socket; i <= last_socket; ++i) { + FD_SET (i, &accept_fds); + } + rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL); + if (rc < 1) continue; + new_connection = -1; + for (i = first_socket; i <= last_socket; ++i) { + if (FD_ISSET (i, &accept_fds)) { + new_connection = accept (i, NULL, NULL); + if (new_connection != -1) break; + } + } + if (new_connection != -1) break; + } + process the new_connection; + } +</pre> + </blockquote> + But this naive implementation has a serious starvation problem. Recall + that multiple children execute this loop at the same time, and so + multiple children will block at <code>select</code> when they are in + between requests. All those blocked children will awaken and return + from <code>select</code> when a single request appears on any socket + (the number of children which awaken varies depending on the operating + system and timing issues). They will all then fall down into the loop + and try to <code>accept</code> the connection. But only one will + succeed (assuming there's still only one connection ready), the rest + will be <em>blocked</em> in <code>accept</code>. This effectively locks + those children into serving requests from that one socket and no other + sockets, and they'll be stuck there until enough new requests appear on + that socket to wake them all up. This starvation problem was first + documented in <a + href="http://bugs.apache.org/index/full/467">PR#467</a>. There are at + least two solutions. + + <p>One solution is to make the sockets non-blocking. In this case the + <code>accept</code> won't block the children, and they will be allowed + to continue immediately. But this wastes CPU time. Suppose you have ten + idle children in <code>select</code>, and one connection arrives. Then + nine of those children will wake up, try to <code>accept</code> the + connection, fail, and loop back into <code>select</code>, accomplishing + nothing. Meanwhile none of those children are servicing requests that + occurred on other sockets until they get back up to the + <code>select</code> again. Overall this solution does not seem very + fruitful unless you have as many idle CPUs (in a multiprocessor box) as + you have idle children, not a very likely situation.</p> + + <p>Another solution, the one used by Apache, is to serialize entry into + the inner loop. The loop looks like this (differences highlighted):</p> + + <blockquote> +<pre> + for (;;) { + <strong>accept_mutex_on ();</strong> + for (;;) { + fd_set accept_fds; + + FD_ZERO (&accept_fds); + for (i = first_socket; i <= last_socket; ++i) { + FD_SET (i, &accept_fds); + } + rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL); + if (rc < 1) continue; + new_connection = -1; + for (i = first_socket; i <= last_socket; ++i) { + if (FD_ISSET (i, &accept_fds)) { + new_connection = accept (i, NULL, NULL); + if (new_connection != -1) break; + } + } + if (new_connection != -1) break; + } + <strong>accept_mutex_off ();</strong> + process the new_connection; + } +</pre> + </blockquote> + <a id="serialize" name="serialize">The functions</a> + <code>accept_mutex_on</code> and <code>accept_mutex_off</code> + implement a mutual exclusion semaphore. Only one child can have the + mutex at any time. There are several choices for implementing these + mutexes. The choice is defined in <code>src/conf.h</code> (pre-1.3) or + <code>src/include/ap_config.h</code> (1.3 or later). Some architectures + do not have any locking choice made, on these architectures it is + unsafe to use multiple <code>Listen</code> directives. + + <dl> + <dt><code>HAVE_FLOCK_SERIALIZED_ACCEPT</code></dt> + + <dd>This method uses the <code>flock(2)</code> system call to lock a + lock file (located by the <code>LockFile</code> directive).</dd> + + <dt><code>HAVE_FCNTL_SERIALIZED_ACCEPT</code></dt> + + <dd>This method uses the <code>fcntl(2)</code> system call to lock a + lock file (located by the <code>LockFile</code> directive).</dd> + + <dt><code>HAVE_SYSVSEM_SERIALIZED_ACCEPT</code></dt> + + <dd>(1.3 or later) This method uses SysV-style semaphores to + implement the mutex. Unfortunately SysV-style semaphores have some + bad side-effects. One is that it's possible Apache will die without + cleaning up the semaphore (see the <code>ipcs(8)</code> man page). + The other is that the semaphore API allows for a denial of service + attack by any CGIs running under the same uid as the webserver + (<em>i.e.</em>, all CGIs, unless you use something like suexec or + cgiwrapper). For these reasons this method is not used on any + architecture except IRIX (where the previous two are prohibitively + expensive on most IRIX boxes).</dd> + + <dt><code>HAVE_USLOCK_SERIALIZED_ACCEPT</code></dt> + + <dd>(1.3 or later) This method is only available on IRIX, and uses + <code>usconfig(2)</code> to create a mutex. While this method avoids + the hassles of SysV-style semaphores, it is not the default for IRIX. + This is because on single processor IRIX boxes (5.3 or 6.2) the + uslock code is two orders of magnitude slower than the SysV-semaphore + code. On multi-processor IRIX boxes the uslock code is an order of + magnitude faster than the SysV-semaphore code. Kind of a messed up + situation. So if you're using a multiprocessor IRIX box then you + should rebuild your webserver with + <code>-DHAVE_USLOCK_SERIALIZED_ACCEPT</code> on the + <code>EXTRA_CFLAGS</code>.</dd> + + <dt><code>HAVE_PTHREAD_SERIALIZED_ACCEPT</code></dt> + + <dd>(1.3 or later) This method uses POSIX mutexes and should work on + any architecture implementing the full POSIX threads specification, + however appears to only work on Solaris (2.5 or later), and even then + only in certain configurations. If you experiment with this you + should watch out for your server hanging and not responding. Static + content only servers may work just fine.</dd> + </dl> + + <p>If your system has another method of serialization which isn't in + the above list then it may be worthwhile adding code for it (and + submitting a patch back to Apache). The above + <code>HAVE_METHOD_SERIALIZED_ACCEPT</code> defines specify which method + is available and works on the platform (you can have more than one); + <code>USE_METHOD_SERIALIZED_ACCEPT</code> is used to specify the + default method (see the <code>AcceptMutex</code> directive).</p> + + <p>Another solution that has been considered but never implemented is + to partially serialize the loop -- that is, let in a certain number of + processes. This would only be of interest on multiprocessor boxes where + it's possible multiple children could run simultaneously, and the + serialization actually doesn't take advantage of the full bandwidth. + This is a possible area of future investigation, but priority remains + low because highly parallel web servers are not the norm.</p> + + <p>Ideally you should run servers without multiple <code>Listen</code> + statements if you want the highest performance. But read on.</p> + + <h4>accept Serialization - single socket</h4> + + <p>The above is fine and dandy for multiple socket servers, but what + about single socket servers? In theory they shouldn't experience any of + these same problems because all children can just block in + <code>accept(2)</code> until a connection arrives, and no starvation + results. In practice this hides almost the same "spinning" behavior + discussed above in the non-blocking solution. The way that most TCP + stacks are implemented, the kernel actually wakes up all processes + blocked in <code>accept</code> when a single connection arrives. One of + those processes gets the connection and returns to user-space, the rest + spin in the kernel and go back to sleep when they discover there's no + connection for them. This spinning is hidden from the user-land code, + but it's there nonetheless. This can result in the same load-spiking + wasteful behavior that a non-blocking solution to the multiple sockets + case can.</p> + + <p>For this reason we have found that many architectures behave more + "nicely" if we serialize even the single socket case. So this is + actually the default in almost all cases. Crude experiments under Linux + (2.0.30 on a dual Pentium pro 166 w/128Mb RAM) have shown that the + serialization of the single socket case causes less than a 3% decrease + in requests per second over unserialized single-socket. But + unserialized single-socket showed an extra 100ms latency on each + request. This latency is probably a wash on long haul lines, and only + an issue on LANs. If you want to override the single socket + serialization you can define + <code>SINGLE_LISTEN_UNSERIALIZED_ACCEPT</code> and then single-socket + servers will not serialize at all.</p> + + <h4>Lingering Close</h4> + + <p>As discussed in <a + href="http://ftp.ics.uci.edu/pub/ietf/http/draft-ietf-http-connection-00.txt"> + draft-ietf-http-connection-00.txt</a> section 8, in order for an HTTP + server to <strong>reliably</strong> implement the protocol it needs to + shutdown each direction of the communication independently (recall that + a TCP connection is bi-directional, each half is independent of the + other). This fact is often overlooked by other servers, but is + correctly implemented in Apache as of 1.2.</p> + + <p>When this feature was added to Apache it caused a flurry of problems + on various versions of Unix because of a shortsightedness. The TCP + specification does not state that the FIN_WAIT_2 state has a timeout, + but it doesn't prohibit it. On systems without the timeout, Apache 1.2 + induces many sockets stuck forever in the FIN_WAIT_2 state. In many + cases this can be avoided by simply upgrading to the latest TCP/IP + patches supplied by the vendor. In cases where the vendor has never + released patches (<em>i.e.</em>, SunOS4 -- although folks with a source + license can patch it themselves) we have decided to disable this + feature.</p> + + <p>There are two ways of accomplishing this. One is the socket option + <code>SO_LINGER</code>. But as fate would have it, this has never been + implemented properly in most TCP/IP stacks. Even on those stacks with a + proper implementation (<em>i.e.</em>, Linux 2.0.31) this method proves + to be more expensive (cputime) than the next solution.</p> + + <p>For the most part, Apache implements this in a function called + <code>lingering_close</code> (in <code>http_main.c</code>). The + function looks roughly like this:</p> + + <blockquote> +<pre> + void lingering_close (int s) + { + char junk_buffer[2048]; + + /* shutdown the sending side */ + shutdown (s, 1); + + signal (SIGALRM, lingering_death); + alarm (30); + + for (;;) { + select (s for reading, 2 second timeout); + if (error) break; + if (s is ready for reading) { + if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) { + break; + } + /* just toss away whatever is read */ + } + } + + close (s); + } +</pre> + </blockquote> + This naturally adds some expense at the end of a connection, but it is + required for a reliable implementation. As HTTP/1.1 becomes more + prevalent, and all connections are persistent, this expense will be + amortized over more requests. If you want to play with fire and disable + this feature you can define <code>NO_LINGCLOSE</code>, but this is not + recommended at all. In particular, as HTTP/1.1 pipelined persistent + connections come into use <code>lingering_close</code> is an absolute + necessity (and <a + href="http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html">pipelined + connections are faster</a>, so you want to support them). + + <h4>Scoreboard File</h4> + + <p>Apache's parent and children communicate with each other through + something called the scoreboard. Ideally this should be implemented in + shared memory. For those operating systems that we either have access + to, or have been given detailed ports for, it typically is implemented + using shared memory. The rest default to using an on-disk file. The + on-disk file is not only slow, but it is unreliable (and less + featured). Peruse the <code>src/main/conf.h</code> file for your + architecture and look for either <code>USE_MMAP_SCOREBOARD</code> or + <code>USE_SHMGET_SCOREBOARD</code>. Defining one of those two (as well + as their companions <code>HAVE_MMAP</code> and <code>HAVE_SHMGET</code> + respectively) enables the supplied shared memory code. If your system + has another type of shared memory, edit the file + <code>src/main/http_main.c</code> and add the hooks necessary to use it + in Apache. (Send us back a patch too please.)</p> + + <p>Historical note: The Linux port of Apache didn't start to use shared + memory until version 1.2 of Apache. This oversight resulted in really + poor and unreliable behavior of earlier versions of Apache on + Linux.</p> + + <h4><code>DYNAMIC_MODULE_LIMIT</code></h4> + + <p>If you have no intention of using dynamically loaded modules (you + probably don't if you're reading this and tuning your server for every + last ounce of performance) then you should add + <code>-DDYNAMIC_MODULE_LIMIT=0</code> when building your server. This + will save RAM that's allocated only for supporting dynamically loaded + modules.</p> + <hr /> + + <h3><a id="trace" name="trace">Appendix: Detailed Analysis of a + Trace</a></h3> + Here is a system call trace of Apache 1.3 running on Linux. The + run-time configuration file is essentially the default plus: + + <blockquote> +<pre> +<Directory /> + AllowOverride none + Options FollowSymLinks +</Directory> +</pre> + </blockquote> + The file being requested is a static 6K file of no particular content. + Traces of non-static requests or requests with content negotiation look + wildly different (and quite ugly in some cases). First the entire + trace, then we'll examine details. (This was generated by the + <code>strace</code> program, other similar programs include + <code>truss</code>, <code>ktrace</code>, and <code>par</code>.) + + <blockquote> +<pre> +accept(15, {sin_family=AF_INET, sin_port=htons(22283), sin_addr=inet_addr("127.0.0.1")}, [16]) = 3 +flock(18, LOCK_UN) = 0 +sigaction(SIGUSR1, {SIG_IGN}, {0x8059954, [], SA_INTERRUPT}) = 0 +getsockname(3, {sin_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0 +setsockopt(3, IPPROTO_TCP1, [1], 4) = 0 +read(3, "GET /6k HTTP/1.0\r\nUser-Agent: "..., 4096) = 60 +sigaction(SIGUSR1, {SIG_IGN}, {SIG_IGN}) = 0 +time(NULL) = 873959960 +gettimeofday({873959960, 404935}, NULL) = 0 +stat("/home/dgaudet/ap/apachen/htdocs/6k", {st_mode=S_IFREG|0644, st_size=6144, ...}) = 0 +open("/home/dgaudet/ap/apachen/htdocs/6k", O_RDONLY) = 4 +mmap(0, 6144, PROT_READ, MAP_PRIVATE, 4, 0) = 0x400ee000 +writev(3, [{"HTTP/1.1 200 OK\r\nDate: Thu, 11"..., 245}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 6144}], 2) = 6389 +close(4) = 0 +time(NULL) = 873959960 +write(17, "127.0.0.1 - - [10/Sep/1997:23:39"..., 71) = 71 +gettimeofday({873959960, 417742}, NULL) = 0 +times({tms_utime=5, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 446747 +shutdown(3, 1 /* send */) = 0 +oldselect(4, [3], NULL, [3], {2, 0}) = 1 (in [3], left {2, 0}) +read(3, "", 2048) = 0 +close(3) = 0 +sigaction(SIGUSR1, {0x8059954, [], SA_INTERRUPT}, {SIG_IGN}) = 0 +munmap(0x400ee000, 6144) = 0 +flock(18, LOCK_EX) = 0 +</pre> + </blockquote> + + <p>Notice the accept serialization:</p> + + <blockquote> +<pre> +flock(18, LOCK_UN) = 0 +... +flock(18, LOCK_EX) = 0 +</pre> + </blockquote> + These two calls can be removed by defining + <code>SINGLE_LISTEN_UNSERIALIZED_ACCEPT</code> as described earlier. + + <p>Notice the <code>SIGUSR1</code> manipulation:</p> + + <blockquote> +<pre> +sigaction(SIGUSR1, {SIG_IGN}, {0x8059954, [], SA_INTERRUPT}) = 0 +... +sigaction(SIGUSR1, {SIG_IGN}, {SIG_IGN}) = 0 +... +sigaction(SIGUSR1, {0x8059954, [], SA_INTERRUPT}, {SIG_IGN}) = 0 +</pre> + </blockquote> + This is caused by the implementation of graceful restarts. When the + parent receives a <code>SIGUSR1</code> it sends a <code>SIGUSR1</code> + to all of its children (and it also increments a "generation counter" + in shared memory). Any children that are idle (between connections) + will immediately die off when they receive the signal. Any children + that are in keep-alive connections, but are in between requests will + die off immediately. But any children that have a connection and are + still waiting for the first request will not die off immediately. + + <p>To see why this is necessary, consider how a browser reacts to a + closed connection. If the connection was a keep-alive connection and + the request being serviced was not the first request then the browser + will quietly reissue the request on a new connection. It has to do this + because the server is always free to close a keep-alive connection in + between requests (<em>i.e.</em>, due to a timeout or because of a + maximum number of requests). But, if the connection is closed before + the first response has been received the typical browser will display a + "document contains no data" dialogue (or a broken image icon). This is + done on the assumption that the server is broken in some way (or maybe + too overloaded to respond at all). So Apache tries to avoid ever + deliberately closing the connection before it has sent a single + response. This is the cause of those <code>SIGUSR1</code> + manipulations.</p> + + <p>Note that it is theoretically possible to eliminate all three of + these calls. But in rough tests the gain proved to be almost + unnoticeable.</p> + + <p>In order to implement virtual hosts, Apache needs to know the local + socket address used to accept the connection:</p> + + <blockquote> +<pre> +getsockname(3, {sin_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0 +</pre> + </blockquote> + It is possible to eliminate this call in many situations (such as when + there are no virtual hosts, or when <code>Listen</code> directives are + used which do not have wildcard addresses). But no effort has yet been + made to do these optimizations. + + <p>Apache turns off the Nagle algorithm:</p> + + <blockquote> +<pre> +setsockopt(3, IPPROTO_TCP1, [1], 4) = 0 +</pre> + </blockquote> + because of problems described in <a + href="http://www.isi.edu/~johnh/PAPERS/Heidemann97a.html">a paper by + John Heidemann</a>. + + <p>Notice the two <code>time</code> calls:</p> + + <blockquote> +<pre> +time(NULL) = 873959960 +... +time(NULL) = 873959960 +</pre> + </blockquote> + One of these occurs at the beginning of the request, and the other + occurs as a result of writing the log. At least one of these is + required to properly implement the HTTP protocol. The second occurs + because the Common Log Format dictates that the log record include a + timestamp of the end of the request. A custom logging module could + eliminate one of the calls. Or you can use a method which moves the + time into shared memory, see the <a href="#patches">patches section + below</a>. + + <p>As described earlier, <code>ExtendedStatus On</code> causes two + <code>gettimeofday</code> calls and a call to <code>times</code>:</p> + + <blockquote> +<pre> +gettimeofday({873959960, 404935}, NULL) = 0 +... +gettimeofday({873959960, 417742}, NULL) = 0 +times({tms_utime=5, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 446747 +</pre> + </blockquote> + These can be removed by setting <code>ExtendedStatus Off</code> (which + is the default). + + <p>It might seem odd to call <code>stat</code>:</p> + + <blockquote> +<pre> +stat("/home/dgaudet/ap/apachen/htdocs/6k", {st_mode=S_IFREG|0644, st_size=6144, ...}) = 0 +</pre> + </blockquote> + This is part of the algorithm which calculates the + <code>PATH_INFO</code> for use by CGIs. In fact if the request had been + for the URI <code>/cgi-bin/printenv/foobar</code> then there would be + two calls to <code>stat</code>. The first for + <code>/home/dgaudet/ap/apachen/cgi-bin/printenv/foobar</code> which + does not exist, and the second for + <code>/home/dgaudet/ap/apachen/cgi-bin/printenv</code>, which does + exist. Regardless, at least one <code>stat</code> call is necessary + when serving static files because the file size and modification times + are used to generate HTTP headers (such as <code>Content-Length</code>, + <code>Last-Modified</code>) and implement protocol features (such as + <code>If-Modified-Since</code>). A somewhat more clever server could + avoid the <code>stat</code> when serving non-static files, however + doing so in Apache is very difficult given the modular structure. + + <p>All static files are served using <code>mmap</code>:</p> + + <blockquote> +<pre> +mmap(0, 6144, PROT_READ, MAP_PRIVATE, 4, 0) = 0x400ee000 +... +munmap(0x400ee000, 6144) = 0 +</pre> + </blockquote> + On some architectures it's slower to <code>mmap</code> small files than + it is to simply <code>read</code> them. The define + <code>MMAP_THRESHOLD</code> can be set to the minimum size required + before using <code>mmap</code>. By default it's set to 0 (except on + SunOS4 where experimentation has shown 8192 to be a better value). + Using a tool such as <a + href="http://www.bitmover.com/lmbench/">lmbench</a> you can determine + the optimal setting for your environment. + + <p>You may also wish to experiment with <code>MMAP_SEGMENT_SIZE</code> + (default 32768) which determines the maximum number of bytes that will + be written at a time from mmap()d files. Apache only resets the + client's <code>Timeout</code> in between write()s. So setting this + large may lock out low bandwidth clients unless you also increase the + <code>Timeout</code>.</p> + + <p>It may even be the case that <code>mmap</code> isn't used on your + architecture; if so then defining <code>USE_MMAP_FILES</code> and + <code>HAVE_MMAP</code> might work (if it works then report back to + us).</p> + + <p>Apache does its best to avoid copying bytes around in memory. The + first write of any request typically is turned into a + <code>writev</code> which combines both the headers and the first hunk + of data:</p> + + <blockquote> +<pre> +writev(3, [{"HTTP/1.1 200 OK\r\nDate: Thu, 11"..., 245}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 6144}], 2) = 6389 +</pre> + </blockquote> + When doing HTTP/1.1 chunked encoding Apache will generate up to four + element <code>writev</code>s. The goal is to push the byte copying into + the kernel, where it typically has to happen anyhow (to assemble + network packets). On testing, various Unixes (BSDI 2.x, Solaris 2.5, + Linux 2.0.31+) properly combine the elements into network packets. + Pre-2.0.31 Linux will not combine, and will create a packet for each + element, so upgrading is a good idea. Defining <code>NO_WRITEV</code> + will disable this combining, but result in very poor chunked encoding + performance. + + <p>The log write:</p> + + <blockquote> +<pre> +write(17, "127.0.0.1 - - [10/Sep/1997:23:39"..., 71) = 71 +</pre> + </blockquote> + can be deferred by defining <code>BUFFERED_LOGS</code>. In this case up + to <code>PIPE_BUF</code> bytes (a POSIX defined constant) of log + entries are buffered before writing. At no time does it split a log + entry across a <code>PIPE_BUF</code> boundary because those writes may + not be atomic. (<em>i.e.</em>, entries from multiple children could + become mixed together). The code does its best to flush this buffer + when a child dies. + + <p>The lingering close code causes four system calls:</p> + + <blockquote> +<pre> +shutdown(3, 1 /* send */) = 0 +oldselect(4, [3], NULL, [3], {2, 0}) = 1 (in [3], left {2, 0}) +read(3, "", 2048) = 0 +close(3) = 0 +</pre> + </blockquote> + which were described earlier. + + <p>Let's apply some of these optimizations: + <code>-DSINGLE_LISTEN_UNSERIALIZED_ACCEPT -DBUFFERED_LOGS</code> and + <code>ExtendedStatus Off</code>. Here's the final trace:</p> + + <blockquote> +<pre> +accept(15, {sin_family=AF_INET, sin_port=htons(22286), sin_addr=inet_addr("127.0.0.1")}, [16]) = 3 +sigaction(SIGUSR1, {SIG_IGN}, {0x8058c98, [], SA_INTERRUPT}) = 0 +getsockname(3, {sin_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0 +setsockopt(3, IPPROTO_TCP1, [1], 4) = 0 +read(3, "GET /6k HTTP/1.0\r\nUser-Agent: "..., 4096) = 60 +sigaction(SIGUSR1, {SIG_IGN}, {SIG_IGN}) = 0 +time(NULL) = 873961916 +stat("/home/dgaudet/ap/apachen/htdocs/6k", {st_mode=S_IFREG|0644, st_size=6144, ...}) = 0 +open("/home/dgaudet/ap/apachen/htdocs/6k", O_RDONLY) = 4 +mmap(0, 6144, PROT_READ, MAP_PRIVATE, 4, 0) = 0x400e3000 +writev(3, [{"HTTP/1.1 200 OK\r\nDate: Thu, 11"..., 245}, {"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 6144}], 2) = 6389 +close(4) = 0 +time(NULL) = 873961916 +shutdown(3, 1 /* send */) = 0 +oldselect(4, [3], NULL, [3], {2, 0}) = 1 (in [3], left {2, 0}) +read(3, "", 2048) = 0 +close(3) = 0 +sigaction(SIGUSR1, {0x8058c98, [], SA_INTERRUPT}, {SIG_IGN}) = 0 +munmap(0x400e3000, 6144) = 0 +</pre> + </blockquote> + That's 19 system calls, of which 4 remain relatively easy to remove, + but don't seem worth the effort. + + <h3><a id="patches" name="patches">Appendix: Patches Available</a></h3> + There are <a href="http://arctic.org/~dean/apache/1.3/">several + performance patches available for 1.3.</a> Although they may not apply + cleanly to the current version, it shouldn't be difficult for someone + with a little C knowledge to update them. In particular: + + <ul> + <li>A <a + href="http://arctic.org/~dean/apache/1.3/shared_time.patch">patch</a> + to remove all <code>time(2)</code> system calls.</li> + + <li>A <a + href="http://arctic.org/~dean/apache/1.3/mod_include_speedups.patch"> + patch</a> to remove various system calls from + <code>mod_include</code>, these calls are used by few sites but + required for backwards compatibility.</li> + + <li>A <a + href="http://arctic.org/~dean/apache/1.3/top_fuel.patch">patch</a> + which integrates the above two plus a few other speedups at the cost + of removing some functionality.</li> + </ul> + + <h3><a id="preforking" name="preforking">Appendix: The Pre-Forking + Model</a></h3> + + <p>Apache (on Unix) is a <em>pre-forking</em> model server. The + <em>parent</em> process is responsible only for forking <em>child</em> + processes, it does not serve any requests or service any network + sockets. The child processes actually process connections, they serve + multiple connections (one at a time) before dying. The parent spawns + new or kills off old children in response to changes in the load on the + server (it does so by monitoring a scoreboard which the children keep + up to date).</p> + + <p>This model for servers offers a robustness that other models do not. + In particular, the parent code is very simple, and with a high degree + of confidence the parent will continue to do its job without error. The + children are complex, and when you add in third party code via modules, + you risk segmentation faults and other forms of corruption. Even should + such a thing happen, it only affects one connection and the server + continues serving requests. The parent quickly replaces the dead + child.</p> + + <p>Pre-forking is also very portable across dialects of Unix. + Historically this has been an important goal for Apache, and it + continues to remain so.</p> + + <p>The pre-forking model comes under criticism for various performance + aspects. Of particular concern are the overhead of forking a process, + the overhead of context switches between processes, and the memory + overhead of having multiple processes. Furthermore it does not offer as + many opportunities for data-caching between requests (such as a pool of + <code>mmapped</code> files). Various other models exist and extensive + analysis can be found in the <a + href="http://www.cs.wustl.edu/~jxh/research/research.html">papers of + the JAWS project</a>. In practice all of these costs vary drastically + depending on the operating system.</p> + + <p>Apache's core code is already multithread aware, and Apache version + 1.3 is multithreaded on NT. There have been at least two other + experimental implementations of threaded Apache, one using the 1.3 code + base on DCE, and one using a custom user-level threads package and the + 1.0 code base; neither is publicly available. There is also an + experimental port of Apache 1.3 to <a + href="http://www.mozilla.org/docs/refList/refNSPR/">Netscape's Portable + Run Time</a>, which <a + href="http://arctic.org/~dean/apache/2.0/">is available</a> (but + you're encouraged to join the <a + href="http://httpd.apache.org/lists.html">new-httpd mailing list</a> + if you intend to use it). Part of our redesign for version 2.0 of + Apache includes abstractions of the server model so that we can + continue to support the pre-forking model, and also support various + threaded models. <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/misc/perf.html b/htdocs/manual/misc/perf.html new file mode 100644 index 0000000000..fb61909f12 --- /dev/null +++ b/htdocs/manual/misc/perf.html @@ -0,0 +1,140 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Hints on Running a High-Performance Web Server</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Hints on Running a High-Performance Web + Server</h1> + Running Apache on a heavily loaded web server, one often + encounters problems related to the machine and OS + configuration. "Heavy" is relative, of course - but if you are + seeing more than a couple hits per second on a sustained basis + you should consult the pointers on this page. In general the + suggestions involve how to tune your kernel for the heavier TCP + load, hardware/software conflicts that arise, <em>etc.</em> + + <ul> + <li><a href="#AUX">A/UX (Apple's UNIX)</a></li> + + <li><a href="#BSD">BSD-based (BSDI, FreeBSD, etc)</a></li> + + <li><a href="#DEC">Digital UNIX</a></li> + + <li><a href="perf-hp.html">HPUX</a></li> + + <li><a href="#irix">IRIX</a></li> + + <li><a href="#Linux">Linux</a></li> + + <li><a href="#Solaris">Solaris</a></li> + + <li><a href="#SunOS">SunOS 4.x</a></li> + + <li><a href="#SVR4">SVR4</a></li> + </ul> + <hr /> + + <h3><a id="AUX" name="AUX">A/UX (Apple's UNIX)</a></h3> + If you are running Apache on A/UX, a page that gives some + helpful performance hints (concerning the <em>listen()</em> + queue and using virtual hosts) <a + href="http://www.jaguNET.com/apache.html">can be found here</a> + + <hr /> + + <h3><a id="BSD" name="BSD">BSD-based (BSDI, FreeBSD, + etc)</a></h3> + <a href="perf-bsd44.html#initial">Quick</a> and <a + href="perf-bsd44.html#detail">detailed</a> performance tuning + hints for BSD-derived systems. <a + href="perf-bsd44.html#accf">Accept filtering</a> on FreeBSD. + <hr /> + + <h3><a id="DEC" name="DEC">Digital UNIX</a></h3> + + <ul> + <li><a + href="http://www.sean.de/Solaris/tune.html"> + Solaris 2.x - tuning your TCP/IP stack</a> contains some good + technical information about tuning various Solaris TCP/IP + parameters.</li> + </ul> + <hr /> + + <h3><a id="SunOS" name="SunOS">SunOS 4.x</a></h3> + More information on tuning SOMAXCONN on SunOS can be found at + <a + href="http://www.islandnet.com/~mark/somaxconn.html">http://www.islandnet.com/~mark/somaxconn.html</a>. + + <hr /> + + <h3><a id="SVR4" name="SVR4">SVR4</a></h3> + Some SVR4 versions waste three system calls on every + <samp>gettimeofday()</samp> call. Depending on the syntactic + form of the <samp>TZ</samp> environment variable, these systems + have several different algorithms to determine the local time + zone (presumably <em>compatible</em> with something). The + following example uses the central european time zone to + demonstrate this: + + <dl> + <dt><strong>TZ=:MET</strong></dt> + + <dd> + This form delegates the knowledge of the time zone + information to an external compiled zoneinfo file (à + la BSD).<br /> + <strong>Caveat:</strong> Each time the gettimeofday() + function is called, the external zone info is read in again + (at least on some SVR4 systems). That results in three + wasted system calls with every apache request served. +<pre> + open("/usr/lib/locale/TZ/MET", O_RDONLY) = 3 + read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 7944) = 778 + close(3) = 0 +</pre> + </dd> + + <dt> + <strong>TZ=MET-1MDT,M3.5.0/02:00:00,M10.5.0/03:00:00</strong></dt> + + <dd>This syntax form (à la SYSV) contains all the + knowledge about time zone beginning and ending times in its + external representation. It has to be parsed each time it is + evaluated, resulting in a slight computing overhead, but it + requires no system call. Though the table lookup à la + BSD is the more sophisticated technical solution, the bad + SVR4 implementation makes this the preferred syntax on + systems which otherwise access the external zone info file + repeatedly.</dd> + </dl> + You should use the <samp>truss</samp> utility on a + single-process apache server (started with the <samp>-X</samp> + debugging switch) to determine whether your system can profit + from the second form of the <samp>TZ</samp> environment + variable. If it does, you could integrate the setting of the + preferred <samp>TZ</samp> syntax into the httpd startup script, + which is usually simply a copy of (or symbolic link to) the + <samp>apachectl</samp> utility script, or into the system's + <samp>/etc/TIMEZONE</samp> script. + <hr /> + + <h3>More welcome!</h3> + If you have tips to contribute, please submit them to + the <a href="http://bugs.apache.org/">Apache Bug + Database</a>. + + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/misc/rewriteguide.html b/htdocs/manual/misc/rewriteguide.html new file mode 100644 index 0000000000..82246145d2 --- /dev/null +++ b/htdocs/manual/misc/rewriteguide.html @@ -0,0 +1,2340 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache 1.3 URL Rewriting Guide</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <blockquote> + <!--#include virtual="header.html" --> + + <div align="CENTER"> + <h1>Apache 1.3<br /> + URL Rewriting Guide<br /> + </h1> + + <address> + Originally written by<br /> + Ralf S. Engelschall <rse@apache.org><br /> + December 1997 + </address> + </div> + + <p>This document supplements the mod_rewrite <a + href="../mod/mod_rewrite.html">reference documentation</a>. + It describes how one can use Apache's mod_rewrite to solve + typical URL-based problems with which webmasters are often + confronted. We give detailed descriptions on how to + solve each problem by configuring URL rewriting rulesets.</p> + + <h2><a id="ToC1" name="ToC1">Introduction to + mod_rewrite</a></h2> + The Apache module mod_rewrite is a killer one, i.e. it is a + really sophisticated module which provides a powerful way to + do URL manipulations. With it you can do nearly all types of + URL manipulations you ever dreamed about. The price you have + to pay is to accept complexity, because mod_rewrite's major + drawback is that it is not easy to understand and use for the + beginner. And even Apache experts sometimes discover new + aspects where mod_rewrite can help. + + <p>In other words: With mod_rewrite you either shoot yourself + in the foot the first time and never use it again or love it + for the rest of your life because of its power. This paper + tries to give you a few initial success events to avoid the + first case by presenting already invented solutions to + you.</p> + + <h2><a id="ToC2" name="ToC2">Practical Solutions</a></h2> + Here come a lot of practical solutions I've either invented + myself or collected from other peoples solutions in the past. + Feel free to learn the black magic of URL rewriting from + these examples. + + <table bgcolor="#FFE0E0" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td>ATTENTION: Depending on your server-configuration it + can be necessary to slightly change the examples for your + situation, e.g. adding the [PT] flag when additionally + using mod_alias and mod_userdir, etc. Or rewriting a + ruleset to fit in <code>.htaccess</code> context instead + of per-server context. Always try to understand what a + particular ruleset really does before you use it in order to + avoid problems.</td> + </tr> + </table> + + <h1>URL Layout</h1> + + <h2>Canonical URLs</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>On some webservers there are more than one URL for a + resource. Usually there are canonical URLs (which should be + actually used and distributed) and those which are just + shortcuts, internal ones, etc. Independent which URL the + user supplied with the request he should finally see the + canonical one only.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We do an external HTTP redirect for all non-canonical + URLs to fix them in the location view of the Browser and + for all subsequent requests. In the example ruleset below + we replace <code>/~user</code> by the canonical + <code>/u/user</code> and fix a missing trailing slash for + <code>/u/user</code>. + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteRule ^/<strong>~</strong>([^/]+)/?(.*) /<strong>u</strong>/$1/$2 [<strong>R</strong>] +RewriteRule ^/([uge])/(<strong>[^/]+</strong>)$ /$1/$2<strong>/</strong> [<strong>R</strong>] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Canonical Hostnames</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>The goal of this rule is to force the use of a particular + hostname, in preference to other hostnames which may be used to + reach the same site. For example, if you wish to force the use + of <strong>www.example.com</strong> instead of + <strong>example.com</strong>, you might use a variant of the + following recipe.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +# For sites running on a port other than 80 +RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC] +RewriteCond %{HTTP_HOST} !^$ +RewriteCond %{SERVER_PORT} !^80$ +RewriteRule ^/(.*) http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R] + +# And for a site running on port 80 +RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC] +RewriteCond %{HTTP_HOST} !^$ +RewriteRule ^/(.*) http://fully.qualified.domain.name/$1 [L,R] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Moved DocumentRoot</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Usually the DocumentRoot of the webserver directly + relates to the URL ``<code>/</code>''. But often this data + is not really of top-level priority, it is perhaps just one + entity of a lot of data pools. For instance at our Intranet + sites there are <code>/e/www/</code> (the homepage for + WWW), <code>/e/sww/</code> (the homepage for the Intranet) + etc. Now because the data of the DocumentRoot stays at + <code>/e/www/</code> we had to make sure that all inlined + images and other stuff inside this data pool work for + subsequent requests.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We just redirect the URL <code>/</code> to + <code>/e/www/</code>. While is seems trivial it is + actually trivial with mod_rewrite, only. Because the + typical old mechanisms of URL <em>Aliases</em> (as + provides by mod_alias and friends) only used + <em>prefix</em> matching. With this you cannot do such a + redirection because the DocumentRoot is a prefix of all + URLs. With mod_rewrite it is really trivial: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteRule <strong>^/$</strong> /e/www/ [<strong>R</strong>] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Trailing Slash Problem</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Every webmaster can sing a song about the problem of + the trailing slash on URLs referencing directories. If they + are missing, the server dumps an error, because if you say + <code>/~quux/foo</code> instead of <code>/~quux/foo/</code> + then the server searches for a <em>file</em> named + <code>foo</code>. And because this file is a directory it + complains. Actually is tries to fix it themself in most of + the cases, but sometimes this mechanism need to be emulated + by you. For instance after you have done a lot of + complicated URL rewritings to CGI scripts etc.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + The solution to this subtle problem is to let the server + add the trailing slash automatically. To do this + correctly we have to use an external redirect, so the + browser correctly requests subsequent images etc. If we + only did a internal rewrite, this would only work for the + directory page, but would go wrong when any images are + included into this page with relative URLs, because the + browser would request an in-lined object. For instance, a + request for <code>image.gif</code> in + <code>/~quux/foo/index.html</code> would become + <code>/~quux/image.gif</code> without the external + redirect! + + <p>So, to do this trick we write:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteBase /~quux/ +RewriteRule ^foo<strong>$</strong> foo<strong>/</strong> [<strong>R</strong>] +</pre> + </td> + </tr> + </table> + + <p>The crazy and lazy can even do the following in the + top-level <code>.htaccess</code> file of their homedir. + But notice that this creates some processing + overhead.</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteBase /~quux/ +RewriteCond %{REQUEST_FILENAME} <strong>-d</strong> +RewriteRule ^(.+<strong>[^/]</strong>)$ $1<strong>/</strong> [R] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Webcluster through Homogeneous URL Layout</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>We want to create a homogenous and consistent URL + layout over all WWW servers on a Intranet webcluster, i.e. + all URLs (per definition server local and thus server + dependent!) become actually server <em>independed</em>! + What we want is to give the WWW namespace a consistent + server-independend layout: no URL should have to include + any physically correct target server. The cluster itself + should drive us automatically to the physical target + host.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + First, the knowledge of the target servers come from + (distributed) external maps which contain information + where our users, groups and entities stay. The have the + form +<pre> +user1 server_of_user1 +user2 server_of_user2 +: : +</pre> + + <p>We put them into files <code>map.xxx-to-host</code>. + Second we need to instruct all servers to redirect URLs + of the forms</p> +<pre> +/u/user/anypath +/g/group/anypath +/e/entity/anypath +</pre> + + <p>to</p> +<pre> +http://physical-host/u/user/anypath +http://physical-host/g/group/anypath +http://physical-host/e/entity/anypath +</pre> + + <p>when the URL is not locally valid to a server. The + following ruleset does this for us by the help of the map + files (assuming that server0 is a default server which + will be used if a user has no entry in the map):</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on + +RewriteMap user-to-host txt:/path/to/map.user-to-host +RewriteMap group-to-host txt:/path/to/map.group-to-host +RewriteMap entity-to-host txt:/path/to/map.entity-to-host + +RewriteRule ^/u/<strong>([^/]+)</strong>/?(.*) http://<strong>${user-to-host:$1|server0}</strong>/u/$1/$2 +RewriteRule ^/g/<strong>([^/]+)</strong>/?(.*) http://<strong>${group-to-host:$1|server0}</strong>/g/$1/$2 +RewriteRule ^/e/<strong>([^/]+)</strong>/?(.*) http://<strong>${entity-to-host:$1|server0}</strong>/e/$1/$2 + +RewriteRule ^/([uge])/([^/]+)/?$ /$1/$2/.www/ +RewriteRule ^/([uge])/([^/]+)/([^.]+.+) /$1/$2/.www/$3\ +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Move Homedirs to Different Webserver</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>A lot of webmaster aksed for a solution to the + following situation: They wanted to redirect just all + homedirs on a webserver to another webserver. They usually + need such things when establishing a newer webserver which + will replace the old one over time.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + The solution is trivial with mod_rewrite. On the old + webserver we just redirect all + <code>/~user/anypath</code> URLs to + <code>http://newserver/~user/anypath</code>. + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteRule ^/~(.+) http://<strong>newserver</strong>/~$1 [R,L] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Structured Homedirs</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Some sites with thousend of users usually use a + structured homedir layout, i.e. each homedir is in a + subdirectory which begins for instance with the first + character of the username. So, <code>/~foo/anypath</code> + is <code>/home/<strong>f</strong>/foo/.www/anypath</code> + while <code>/~bar/anypath</code> is + <code>/home/<strong>b</strong>/bar/.www/anypath</code>.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We use the following ruleset to expand the tilde URLs + into exactly the above layout. + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteRule ^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*) /home/<strong>$2</strong>/$1/.www$3 +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Filesystem Reorganisation</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd> + This really is a hardcore example: a killer application + which heavily uses per-directory + <code>RewriteRules</code> to get a smooth look and feel + on the Web while its data structure is never touched or + adjusted. Background: <strong><em>net.sw</em></strong> is + my archive of freely available Unix software packages, + which I started to collect in 1992. It is both my hobby + and job to to this, because while I'm studying computer + science I have also worked for many years as a system and + network administrator in my spare time. Every week I need + some sort of software so I created a deep hierarchy of + directories where I stored the packages: +<pre> +drwxrwxr-x 2 netsw users 512 Aug 3 18:39 Audio/ +drwxrwxr-x 2 netsw users 512 Jul 9 14:37 Benchmark/ +drwxrwxr-x 12 netsw users 512 Jul 9 00:34 Crypto/ +drwxrwxr-x 5 netsw users 512 Jul 9 00:41 Database/ +drwxrwxr-x 4 netsw users 512 Jul 30 19:25 Dicts/ +drwxrwxr-x 10 netsw users 512 Jul 9 01:54 Graphic/ +drwxrwxr-x 5 netsw users 512 Jul 9 01:58 Hackers/ +drwxrwxr-x 8 netsw users 512 Jul 9 03:19 InfoSys/ +drwxrwxr-x 3 netsw users 512 Jul 9 03:21 Math/ +drwxrwxr-x 3 netsw users 512 Jul 9 03:24 Misc/ +drwxrwxr-x 9 netsw users 512 Aug 1 16:33 Network/ +drwxrwxr-x 2 netsw users 512 Jul 9 05:53 Office/ +drwxrwxr-x 7 netsw users 512 Jul 9 09:24 SoftEng/ +drwxrwxr-x 7 netsw users 512 Jul 9 12:17 System/ +drwxrwxr-x 12 netsw users 512 Aug 3 20:15 Typesetting/ +drwxrwxr-x 10 netsw users 512 Jul 9 14:08 X11/ +</pre> + + <p>In July 1996 I decided to make this archive public to + the world via a nice Web interface. "Nice" means that I + wanted to offer an interface where you can browse + directly through the archive hierarchy. And "nice" means + that I didn't wanted to change anything inside this + hierarchy - not even by putting some CGI scripts at the + top of it. Why? Because the above structure should be + later accessible via FTP as well, and I didn't want any + Web or CGI stuff to be there.</p> + </dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + The solution has two parts: The first is a set of CGI + scripts which create all the pages at all directory + levels on-the-fly. I put them under + <code>/e/netsw/.www/</code> as follows: +<pre> +-rw-r--r-- 1 netsw users 1318 Aug 1 18:10 .wwwacl +drwxr-xr-x 18 netsw users 512 Aug 5 15:51 DATA/ +-rw-rw-rw- 1 netsw users 372982 Aug 5 16:35 LOGFILE +-rw-r--r-- 1 netsw users 659 Aug 4 09:27 TODO +-rw-r--r-- 1 netsw users 5697 Aug 1 18:01 netsw-about.html +-rwxr-xr-x 1 netsw users 579 Aug 2 10:33 netsw-access.pl +-rwxr-xr-x 1 netsw users 1532 Aug 1 17:35 netsw-changes.cgi +-rwxr-xr-x 1 netsw users 2866 Aug 5 14:49 netsw-home.cgi +drwxr-xr-x 2 netsw users 512 Jul 8 23:47 netsw-img/ +-rwxr-xr-x 1 netsw users 24050 Aug 5 15:49 netsw-lsdir.cgi +-rwxr-xr-x 1 netsw users 1589 Aug 3 18:43 netsw-search.cgi +-rwxr-xr-x 1 netsw users 1885 Aug 1 17:41 netsw-tree.cgi +-rw-r--r-- 1 netsw users 234 Jul 30 16:35 netsw-unlimit.lst +</pre> + + <p>The <code>DATA/</code> subdirectory holds the above + directory structure, i.e. the real + <strong><em>net.sw</em></strong> stuff and gets + automatically updated via <code>rdist</code> from time to + time. The second part of the problem remains: how to link + these two structures together into one smooth-looking URL + tree? We want to hide the <code>DATA/</code> directory + from the user while running the appropriate CGI scripts + for the various URLs. Here is the solution: first I put + the following into the per-directory configuration file + in the Document Root of the server to rewrite the + announced URL <code>/net.sw/</code> to the internal path + <code>/e/netsw</code>:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteRule ^net.sw$ net.sw/ [R] +RewriteRule ^net.sw/(.*)$ e/netsw/$1 +</pre> + </td> + </tr> + </table> + + <p>The first rule is for requests which miss the trailing + slash! The second rule does the real thing. And then + comes the killer configuration which stays in the + per-directory config file + <code>/e/netsw/.www/.wwwacl</code>:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +Options ExecCGI FollowSymLinks Includes MultiViews + +RewriteEngine on + +# we are reached via /net.sw/ prefix +RewriteBase /net.sw/ + +# first we rewrite the root dir to +# the handling cgi script +RewriteRule ^$ netsw-home.cgi [L] +RewriteRule ^index\.html$ netsw-home.cgi [L] + +# strip out the subdirs when +# the browser requests us from perdir pages +RewriteRule ^.+/(netsw-[^/]+/.+)$ $1 [L] + +# and now break the rewriting for local files +RewriteRule ^netsw-home\.cgi.* - [L] +RewriteRule ^netsw-changes\.cgi.* - [L] +RewriteRule ^netsw-search\.cgi.* - [L] +RewriteRule ^netsw-tree\.cgi$ - [L] +RewriteRule ^netsw-about\.html$ - [L] +RewriteRule ^netsw-img/.*$ - [L] + +# anything else is a subdir which gets handled +# by another cgi script +RewriteRule !^netsw-lsdir\.cgi.* - [C] +RewriteRule (.*) netsw-lsdir.cgi/$1 +</pre> + </td> + </tr> + </table> + + <p>Some hints for interpretation:</p> + + <ol> + <li>Notice the L (last) flag and no substitution field + ('-') in the forth part</li> + + <li>Notice the ! (not) character and the C (chain) flag + at the first rule in the last part</li> + + <li>Notice the catch-all pattern in the last rule</li> + </ol> + </dd> + </dl> + + <h2>NCSA imagemap to Apache mod_imap</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>When switching from the NCSA webserver to the more + modern Apache webserver a lot of people want a smooth + transition. So they want pages which use their old NCSA + <code>imagemap</code> program to work under Apache with the + modern <code>mod_imap</code>. The problem is that there are + a lot of hyperlinks around which reference the + <code>imagemap</code> program via + <code>/cgi-bin/imagemap/path/to/page.map</code>. Under + Apache this has to read just + <code>/path/to/page.map</code>.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We use a global rule to remove the prefix on-the-fly for + all requests: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteRule ^/cgi-bin/imagemap(.*) $1 [PT] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Search pages in more than one directory</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Sometimes it is neccessary to let the webserver search + for pages in more than one directory. Here MultiViews or + other techniques cannot help.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We program a explicit ruleset which searches for the + files in the directories. + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on + +# first try to find it in custom/... +# ...and if found stop and be happy: +RewriteCond /your/docroot/<strong>dir1</strong>/%{REQUEST_FILENAME} -f +RewriteRule ^(.+) /your/docroot/<strong>dir1</strong>/$1 [L] + +# second try to find it in pub/... +# ...and if found stop and be happy: +RewriteCond /your/docroot/<strong>dir2</strong>/%{REQUEST_FILENAME} -f +RewriteRule ^(.+) /your/docroot/<strong>dir2</strong>/$1 [L] + +# else go on for other Alias or ScriptAlias directives, +# etc. +RewriteRule ^(.+) - [PT] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Set Environment Variables According To URL Parts</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Perhaps you want to keep status information between + requests and use the URL to encode it. But you don't want + to use a CGI wrapper for all pages just to strip out this + information.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We use a rewrite rule to strip out the status information + and remember it via an environment variable which can be + later dereferenced from within XSSI or CGI. This way a + URL <code>/foo/S=java/bar/</code> gets translated to + <code>/foo/bar/</code> and the environment variable named + <code>STATUS</code> is set to the value "java". + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteRule ^(.*)/<strong>S=([^/]+)</strong>/(.*) $1/$3 [E=<strong>STATUS:$2</strong>] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Virtual User Hosts</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Assume that you want to provide + <code>www.<strong>username</strong>.host.domain.com</code> + for the homepage of username via just DNS A records to the + same machine and without any virtualhosts on this + machine.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + For HTTP/1.0 requests there is no solution, but for + HTTP/1.1 requests which contain a Host: HTTP header we + can use the following ruleset to rewrite + <code>http://www.username.host.com/anypath</code> + internally to <code>/home/username/anypath</code>: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteCond %{<strong>HTTP_HOST</strong>} ^www\.<strong>[^.]+</strong>\.host\.com$ +RewriteRule ^(.+) %{HTTP_HOST}$1 [C] +RewriteRule ^www\.<strong>([^.]+)</strong>\.host\.com(.*) /home/<strong>$1</strong>$2 +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Redirect Homedirs For Foreigners</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>We want to redirect homedir URLs to another webserver + <code>www.somewhere.com</code> when the requesting user + does not stay in the local domain + <code>ourdomain.com</code>. This is sometimes used in + virtual host contexts.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + Just a rewrite condition: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteCond %{REMOTE_HOST} <strong>!^.+\.ourdomain\.com$</strong> +RewriteRule ^(/~.+) http://www.somewhere.com/$1 [R,L] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Redirect Failing URLs To Other Webserver</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>A typical FAQ about URL rewriting is how to redirect + failing requests on webserver A to webserver B. Usually + this is done via ErrorDocument CGI-scripts in Perl, but + there is also a mod_rewrite solution. But notice that this + is less performant than using a ErrorDocument + CGI-script!</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + The first solution has the best performance but less + flexibility and is less error safe: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteCond /your/docroot/%{REQUEST_FILENAME} <strong>!-f</strong> +RewriteRule ^(.+) http://<strong>webserverB</strong>.dom/$1 +</pre> + </td> + </tr> + </table> + + <p>The problem here is that this will only work for pages + inside the DocumentRoot. While you can add more + Conditions (for instance to also handle homedirs, etc.) + there is better variant:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteCond %{REQUEST_URI} <strong>!-U</strong> +RewriteRule ^(.+) http://<strong>webserverB</strong>.dom/$1 +</pre> + </td> + </tr> + </table> + + <p>This uses the URL look-ahead feature of mod_rewrite. + The result is that this will work for all types of URLs + and is a safe way. But it does a performance impact on + the webserver, because for every request there is one + more internal subrequest. So, if your webserver runs on a + powerful CPU, use this one. If it is a slow machine, use + the first approach or better a ErrorDocument + CGI-script.</p> + </dd> + </dl> + + <h2>Extended Redirection</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Sometimes we need more control (concerning the + character escaping mechanism) of URLs on redirects. Usually + the Apache kernels URL escape function also escapes + anchors, i.e. URLs like "url#anchor". You cannot use this + directly on redirects with mod_rewrite because the + uri_escape() function of Apache would also escape the hash + character. How can we redirect to such a URL?</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We have to use a kludge by the use of a NPH-CGI script + which does the redirect itself. Because here no escaping + is done (NPH=non-parseable headers). First we introduce a + new URL scheme <code>xredirect:</code> by the following + per-server config-line (should be one of the last rewrite + rules): + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteRule ^xredirect:(.+) /path/to/nph-xredirect.cgi/$1 \ + [T=application/x-httpd-cgi,L] +</pre> + </td> + </tr> + </table> + + <p>This forces all URLs prefixed with + <code>xredirect:</code> to be piped through the + <code>nph-xredirect.cgi</code> program. And this program + just looks like:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +#!/path/to/perl +## +## nph-xredirect.cgi -- NPH/CGI script for extended redirects +## Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved. +## + +$| = 1; +$url = $ENV{'PATH_INFO'}; + +print "HTTP/1.0 302 Moved Temporarily\n"; +print "Server: $ENV{'SERVER_SOFTWARE'}\n"; +print "Location: $url\n"; +print "Content-type: text/html\n"; +print "\n"; +print "<html>\n"; +print "<head>\n"; +print "<title>302 Moved Temporarily (EXTENDED)</title>\n"; +print "</head>\n"; +print "<body>\n"; +print "<h1>Moved Temporarily (EXTENDED)</h1>\n"; +print "The document has moved <a HREF=\"$url\">here</a>.<p>\n"; +print "</body>\n"; +print "</html>\n"; + +##EOF## +</pre> + </td> + </tr> + </table> + + <p>This provides you with the functionality to do + redirects to all URL schemes, i.e. including the one + which are not directly accepted by mod_rewrite. For + instance you can now also redirect to + <code>news:newsgroup</code> via</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteRule ^anyurl xredirect:news:newsgroup +</pre> + </td> + </tr> + </table> + + <p>Notice: You have not to put [R] or [R,L] to the above + rule because the <code>xredirect:</code> need to be + expanded later by our special "pipe through" rule + above.</p> + </dd> + </dl> + + <h2>Archive Access Multiplexer</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Do you know the great CPAN (Comprehensive Perl Archive + Network) under <a + href="http://www.perl.com/CPAN">http://www.perl.com/CPAN</a>? + This does a redirect to one of several FTP servers around + the world which carry a CPAN mirror and is approximately + near the location of the requesting client. Actually this + can be called an FTP access multiplexing service. While + CPAN runs via CGI scripts, how can a similar approach + implemented via mod_rewrite?</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + First we notice that from version 3.0.0 mod_rewrite can + also use the "ftp:" scheme on redirects. And second, the + location approximation can be done by a rewritemap over + the top-level domain of the client. With a tricky chained + ruleset we can use this top-level domain as a key to our + multiplexing map. + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteMap multiplex txt:/path/to/map.cxan +RewriteRule ^/CxAN/(.*) %{REMOTE_HOST}::$1 [C] +RewriteRule ^.+\.<strong>([a-zA-Z]+)</strong>::(.*)$ ${multiplex:<strong>$1</strong>|ftp.default.dom}$2 [R,L] +</pre> + </td> + </tr> + </table> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +## +## map.cxan -- Multiplexing Map for CxAN +## + +de ftp://ftp.cxan.de/CxAN/ +uk ftp://ftp.cxan.uk/CxAN/ +com ftp://ftp.cxan.com/CxAN/ + : +##EOF## +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Time-Dependend Rewriting</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>When tricks like time-dependend content should happen a + lot of webmasters still use CGI scripts which do for + instance redirects to specialized pages. How can it be done + via mod_rewrite?</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + There are a lot of variables named <code>TIME_xxx</code> + for rewrite conditions. In conjunction with the special + lexicographic comparison patterns <STRING, >STRING + and =STRING we can do time-dependend redirects: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteCond %{TIME_HOUR}%{TIME_MIN} >0700 +RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900 +RewriteRule ^foo\.html$ foo.day.html +RewriteRule ^foo\.html$ foo.night.html +</pre> + </td> + </tr> + </table> + + <p>This provides the content of <code>foo.day.html</code> + under the URL <code>foo.html</code> from 07:00-19:00 and + at the remaining time the contents of + <code>foo.night.html</code>. Just a nice feature for a + homepage...</p> + </dd> + </dl> + + <h2>Backward Compatibility for YYYY to XXXX migration</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>How can we make URLs backward compatible (still + existing virtually) after migrating document.YYYY to + document.XXXX, e.g. after translating a bunch of .html + files to .phtml?</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We just rewrite the name to its basename and test for + existence of the new extension. If it exists, we take + that name, else we rewrite the URL to its original state. + + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +# backward compatibility ruleset for +# rewriting document.html to document.phtml +# when and only when document.phtml exists +# but no longer document.html +RewriteEngine on +RewriteBase /~quux/ +# parse out basename, but remember the fact +RewriteRule ^(.*)\.html$ $1 [C,E=WasHTML:yes] +# rewrite to document.phtml if exists +RewriteCond %{REQUEST_FILENAME}.phtml -f +RewriteRule ^(.*)$ $1.phtml [S=1] +# else reverse the previous basename cutout +RewriteCond %{ENV:WasHTML} ^yes$ +RewriteRule ^(.*)$ $1.html +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h1>Content Handling</h1> + + <h2>From Old to New (intern)</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Assume we have recently renamed the page + <code>foo.html</code> to <code>bar.html</code> and now want + to provide the old URL for backward compatibility. Actually + we want that users of the old URL even not recognize that + the pages was renamed.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We rewrite the old URL to the new one internally via the + following rule: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteBase /~quux/ +RewriteRule ^<strong>foo</strong>\.html$ <strong>bar</strong>.html +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>From Old to New (extern)</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Assume again that we have recently renamed the page + <code>foo.html</code> to <code>bar.html</code> and now want + to provide the old URL for backward compatibility. But this + time we want that the users of the old URL get hinted to + the new one, i.e. their browsers Location field should + change, too.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We force a HTTP redirect to the new URL which leads to a + change of the browsers and thus the users view: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteBase /~quux/ +RewriteRule ^<strong>foo</strong>\.html$ <strong>bar</strong>.html [<strong>R</strong>] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Browser Dependend Content</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>At least for important top-level pages it is sometimes + necesarry to provide the optimum of browser dependend + content, i.e. one has to provide a maximum version for the + latest Netscape variants, a minimum version for the Lynx + browsers and a average feature version for all others.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We cannot use content negotiation because the browsers do + not provide their type in that form. Instead we have to + act on the HTTP header "User-Agent". The following condig + does the following: If the HTTP header "User-Agent" + begins with "Mozilla/3", the page <code>foo.html</code> + is rewritten to <code>foo.NS.html</code> and and the + rewriting stops. If the browser is "Lynx" or "Mozilla" of + version 1 or 2 the URL becomes <code>foo.20.html</code>. + All other browsers receive page <code>foo.32.html</code>. + This is done by the following ruleset: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteCond %{HTTP_USER_AGENT} ^<strong>Mozilla/3</strong>.* +RewriteRule ^foo\.html$ foo.<strong>NS</strong>.html [<strong>L</strong>] + +RewriteCond %{HTTP_USER_AGENT} ^<strong>Lynx/</strong>.* [OR] +RewriteCond %{HTTP_USER_AGENT} ^<strong>Mozilla/[12]</strong>.* +RewriteRule ^foo\.html$ foo.<strong>20</strong>.html [<strong>L</strong>] + +RewriteRule ^foo\.html$ foo.<strong>32</strong>.html [<strong>L</strong>] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Dynamic Mirror</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Assume there are nice webpages on remote hosts we want + to bring into our namespace. For FTP servers we would use + the <code>mirror</code> program which actually maintains an + explicit up-to-date copy of the remote data on the local + machine. For a webserver we could use the program + <code>webcopy</code> which acts similar via HTTP. But both + techniques have one major drawback: The local copy is + always just as up-to-date as often we run the program. It + would be much better if the mirror is not a static one we + have to establish explicitly. Instead we want a dynamic + mirror with data which gets updated automatically when + there is need (updated data on the remote host).</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + To provide this feature we map the remote webpage or even + the complete remote webarea to our namespace by the use + of the <i>Proxy Throughput</i> feature (flag [P]): + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteBase /~quux/ +RewriteRule ^<strong>hotsheet/</strong>(.*)$ <strong>http://www.tstimpreso.com/hotsheet/</strong>$1 [<strong>P</strong>] +</pre> + </td> + </tr> + </table> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteBase /~quux/ +RewriteRule ^<strong>usa-news\.html</strong>$ <strong>http://www.quux-corp.com/news/index.html</strong> [<strong>P</strong>] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Reverse Dynamic Mirror</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>...</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteCond /mirror/of/remotesite/$1 -U +RewriteRule ^http://www\.remotesite\.com/(.*)$ /mirror/of/remotesite/$1 +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Retrieve Missing Data from Intranet</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>This is a tricky way of virtually running a corporates + (external) Internet webserver + (<code>www.quux-corp.dom</code>), while actually keeping + and maintaining its data on a (internal) Intranet webserver + (<code>www2.quux-corp.dom</code>) which is protected by a + firewall. The trick is that on the external webserver we + retrieve the requested data on-the-fly from the internal + one.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + First, we have to make sure that our firewall still + protects the internal webserver and that only the + external webserver is allowed to retrieve data from it. + For a packet-filtering firewall we could for instance + configure a firewall ruleset like the following: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +<strong>ALLOW</strong> Host www.quux-corp.dom Port >1024 --> Host www2.quux-corp.dom Port <strong>80</strong> +<strong>DENY</strong> Host * Port * --> Host www2.quux-corp.dom Port <strong>80</strong> +</pre> + </td> + </tr> + </table> + + <p>Just adjust it to your actual configuration syntax. + Now we can establish the mod_rewrite rules which request + the missing data in the background through the proxy + throughput feature:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteRule ^/~([^/]+)/?(.*) /home/$1/.www/$2 +RewriteCond %{REQUEST_FILENAME} <strong>!-f</strong> +RewriteCond %{REQUEST_FILENAME} <strong>!-d</strong> +RewriteRule ^/home/([^/]+)/.www/?(.*) http://<strong>www2</strong>.quux-corp.dom/~$1/pub/$2 [<strong>P</strong>] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Load Balancing</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Suppose we want to load balance the traffic to + <code>www.foo.com</code> over <code>www[0-5].foo.com</code> + (a total of 6 servers). How can this be done?</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + There are a lot of possible solutions for this problem. + We will discuss first a commonly known DNS-based variant + and then the special one with mod_rewrite: + + <ol> + <li> + <strong>DNS Round-Robin</strong> + + <p>The simplest method for load-balancing is to use + the DNS round-robin feature of BIND. Here you just + configure <code>www[0-9].foo.com</code> as usual in + your DNS with A(address) records, e.g.</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +www0 IN A 1.2.3.1 +www1 IN A 1.2.3.2 +www2 IN A 1.2.3.3 +www3 IN A 1.2.3.4 +www4 IN A 1.2.3.5 +www5 IN A 1.2.3.6 +</pre> + </td> + </tr> + </table> + + <p>Then you additionally add the following entry:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +www IN CNAME www0.foo.com. + IN CNAME www1.foo.com. + IN CNAME www2.foo.com. + IN CNAME www3.foo.com. + IN CNAME www4.foo.com. + IN CNAME www5.foo.com. + IN CNAME www6.foo.com. +</pre> + </td> + </tr> + </table> + + <p>Notice that this seems wrong, but is actually an + intended feature of BIND and can be used in this way. + However, now when <code>www.foo.com</code> gets + resolved, BIND gives out <code>www0-www6</code> - but + in a slightly permutated/rotated order every time. + This way the clients are spread over the various + servers. But notice that this not a perfect load + balancing scheme, because DNS resolve information + gets cached by the other nameservers on the net, so + once a client has resolved <code>www.foo.com</code> + to a particular <code>wwwN.foo.com</code>, all + subsequent requests also go to this particular name + <code>wwwN.foo.com</code>. But the final result is + ok, because the total sum of the requests are really + spread over the various webservers.</p> + </li> + + <li> + <strong>DNS Load-Balancing</strong> + + <p>A sophisticated DNS-based method for + load-balancing is to use the program + <code>lbnamed</code> which can be found at <a + href="http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html"> + http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html</a>. + It is a Perl 5 program in conjunction with auxilliary + tools which provides a real load-balancing for + DNS.</p> + </li> + + <li> + <strong>Proxy Throughput Round-Robin</strong> + + <p>In this variant we use mod_rewrite and its proxy + throughput feature. First we dedicate + <code>www0.foo.com</code> to be actually + <code>www.foo.com</code> by using a single</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +www IN CNAME www0.foo.com. +</pre> + </td> + </tr> + </table> + + <p>entry in the DNS. Then we convert + <code>www0.foo.com</code> to a proxy-only server, + i.e. we configure this machine so all arriving URLs + are just pushed through the internal proxy to one of + the 5 other servers (<code>www1-www5</code>). To + accomplish this we first establish a ruleset which + contacts a load balancing script <code>lb.pl</code> + for all URLs.</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteMap lb prg:/path/to/lb.pl +RewriteRule ^/(.+)$ ${lb:$1} [P,L] +</pre> + </td> + </tr> + </table> + + <p>Then we write <code>lb.pl</code>:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +#!/path/to/perl +## +## lb.pl -- load balancing script +## + +$| = 1; + +$name = "www"; # the hostname base +$first = 1; # the first server (not 0 here, because 0 is myself) +$last = 5; # the last server in the round-robin +$domain = "foo.dom"; # the domainname + +$cnt = 0; +while (<STDIN>) { + $cnt = (($cnt+1) % ($last+1-$first)); + $server = sprintf("%s%d.%s", $name, $cnt+$first, $domain); + print "http://$server/$_"; +} + +##EOF## +</pre> + </td> + </tr> + </table> + + <p>A last notice: Why is this useful? Seems like + <code>www0.foo.com</code> still is overloaded? The + answer is yes, it is overloaded, but with plain proxy + throughput requests, only! All SSI, CGI, ePerl, etc. + processing is completely done on the other machines. + This is the essential point.</p> + </li> + + <li> + <strong>Hardware/TCP Round-Robin</strong> + + <p>There is a hardware solution available, too. Cisco + has a beast called LocalDirector which does a load + balancing at the TCP/IP level. Actually this is some + sort of a circuit level gateway in front of a + webcluster. If you have enough money and really need + a solution with high performance, use this one.</p> + </li> + </ol> + </dd> + </dl> + + <h2>New MIME-type, New Service</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd> + On the net there are a lot of nifty CGI programs. But + their usage is usually boring, so a lot of webmaster + don't use them. Even Apache's Action handler feature for + MIME-types is only appropriate when the CGI programs + don't need special URLs (actually PATH_INFO and + QUERY_STRINGS) as their input. First, let us configure a + new file type with extension <code>.scgi</code> (for + secure CGI) which will be processed by the popular + <code>cgiwrap</code> program. The problem here is that + for instance we use a Homogeneous URL Layout (see above) + a file inside the user homedirs has the URL + <code>/u/user/foo/bar.scgi</code>. But + <code>cgiwrap</code> needs the URL in the form + <code>/~user/foo/bar.scgi/</code>. The following rule + solves the problem: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteRule ^/[uge]/<strong>([^/]+)</strong>/\.www/(.+)\.scgi(.*) ... +... /internal/cgi/user/cgiwrap/~<strong>$1</strong>/$2.scgi$3 [NS,<strong>T=application/x-http-cgi</strong>] +</pre> + </td> + </tr> + </table> + + <p>Or assume we have some more nifty programs: + <code>wwwlog</code> (which displays the + <code>access.log</code> for a URL subtree and + <code>wwwidx</code> (which runs Glimpse on a URL + subtree). We have to provide the URL area to these + programs so they know on which area they have to act on. + But usually this ugly, because they are all the times + still requested from that areas, i.e. typically we would + run the <code>swwidx</code> program from within + <code>/u/user/foo/</code> via hyperlink to</p> +<pre> +/internal/cgi/user/swwidx?i=/u/user/foo/ +</pre> + + <p>which is ugly. Because we have to hard-code + <strong>both</strong> the location of the area + <strong>and</strong> the location of the CGI inside the + hyperlink. When we have to reorganise or area, we spend a + lot of time changing the various hyperlinks.</p> + </dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + The solution here is to provide a special new URL format + which automatically leads to the proper CGI invocation. + We configure the following: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteRule ^/([uge])/([^/]+)(/?.*)/\* /internal/cgi/user/wwwidx?i=/$1/$2$3/ +RewriteRule ^/([uge])/([^/]+)(/?.*):log /internal/cgi/user/wwwlog?f=/$1/$2$3 +</pre> + </td> + </tr> + </table> + + <p>Now the hyperlink to search at + <code>/u/user/foo/</code> reads only</p> +<pre> +HREF="*" +</pre> + + <p>which internally gets automatically transformed to</p> +<pre> +/internal/cgi/user/wwwidx?i=/u/user/foo/ +</pre> + + <p>The same approach leads to an invocation for the + access log CGI program when the hyperlink + <code>:log</code> gets used.</p> + </dd> + </dl> + + <h2>From Static to Dynamic</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>How can we transform a static page + <code>foo.html</code> into a dynamic variant + <code>foo.cgi</code> in a seamless way, i.e. without notice + by the browser/user.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We just rewrite the URL to the CGI-script and force the + correct MIME-type so it gets really run as a CGI-script. + This way a request to <code>/~quux/foo.html</code> + internally leads to the invokation of + <code>/~quux/foo.cgi</code>. + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteBase /~quux/ +RewriteRule ^foo\.<strong>html</strong>$ foo.<strong>cgi</strong> [T=<strong>application/x-httpd-cgi</strong>] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>On-the-fly Content-Regeneration</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Here comes a really esoteric feature: Dynamically + generated but statically served pages, i.e. pages should be + delivered as pure static pages (read from the filesystem + and just passed through), but they have to be generated + dynamically by the webserver if missing. This way you can + have CGI-generated pages which are statically served unless + one (or a cronjob) removes the static contents. Then the + contents gets refreshed.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + This is done via the following ruleset: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteCond %{REQUEST_FILENAME} <strong>!-s</strong> +RewriteRule ^page\.<strong>html</strong>$ page.<strong>cgi</strong> [T=application/x-httpd-cgi,L] +</pre> + </td> + </tr> + </table> + + <p>Here a request to <code>page.html</code> leads to a + internal run of a corresponding <code>page.cgi</code> if + <code>page.html</code> is still missing or has filesize + null. The trick here is that <code>page.cgi</code> is a + usual CGI script which (additionally to its STDOUT) + writes its output to the file <code>page.html</code>. + Once it was run, the server sends out the data of + <code>page.html</code>. When the webmaster wants to force + a refresh the contents, he just removes + <code>page.html</code> (usually done by a cronjob).</p> + </dd> + </dl> + + <h2>Document With Autorefresh</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Wouldn't it be nice while creating a complex webpage if + the webbrowser would automatically refresh the page every + time we write a new version from within our editor? + Impossible?</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + No! We just combine the MIME multipart feature, the + webserver NPH feature and the URL manipulation power of + mod_rewrite. First, we establish a new URL feature: + Adding just <code>:refresh</code> to any URL causes this + to be refreshed every time it gets updated on the + filesystem. + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteRule ^(/[uge]/[^/]+/?.*):refresh /internal/cgi/apache/nph-refresh?f=$1 +</pre> + </td> + </tr> + </table> + + <p>Now when we reference the URL</p> +<pre> +/u/foo/bar/page.html:refresh +</pre> + + <p>this leads to the internal invocation of the URL</p> +<pre> +/internal/cgi/apache/nph-refresh?f=/u/foo/bar/page.html +</pre> + + <p>The only missing part is the NPH-CGI script. Although + one would usually say "left as an exercise to the reader" + ;-) I will provide this, too.</p> +<pre> +#!/sw/bin/perl +## +## nph-refresh -- NPH/CGI script for auto refreshing pages +## Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved. +## +$| = 1; + +# split the QUERY_STRING variable +@pairs = split(/&/, $ENV{'QUERY_STRING'}); +foreach $pair (@pairs) { + ($name, $value) = split(/=/, $pair); + $name =~ tr/A-Z/a-z/; + $name = 'QS_' . $name; + $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + eval "\$$name = \"$value\""; +} +$QS_s = 1 if ($QS_s eq ''); +$QS_n = 3600 if ($QS_n eq ''); +if ($QS_f eq '') { + print "HTTP/1.0 200 OK\n"; + print "Content-type: text/html\n\n"; + print "&lt;b&gt;ERROR&lt;/b&gt;: No file given\n"; + exit(0); +} +if (! -f $QS_f) { + print "HTTP/1.0 200 OK\n"; + print "Content-type: text/html\n\n"; + print "&lt;b&gt;ERROR&lt;/b&gt;: File $QS_f not found\n"; + exit(0); +} + +sub print_http_headers_multipart_begin { + print "HTTP/1.0 200 OK\n"; + $bound = "ThisRandomString12345"; + print "Content-type: multipart/x-mixed-replace;boundary=$bound\n"; + &print_http_headers_multipart_next; +} + +sub print_http_headers_multipart_next { + print "\n--$bound\n"; +} + +sub print_http_headers_multipart_end { + print "\n--$bound--\n"; +} + +sub displayhtml { + local($buffer) = @_; + $len = length($buffer); + print "Content-type: text/html\n"; + print "Content-length: $len\n\n"; + print $buffer; +} + +sub readfile { + local($file) = @_; + local(*FP, $size, $buffer, $bytes); + ($x, $x, $x, $x, $x, $x, $x, $size) = stat($file); + $size = sprintf("%d", $size); + open(FP, "&lt;$file"); + $bytes = sysread(FP, $buffer, $size); + close(FP); + return $buffer; +} + +$buffer = &readfile($QS_f); +&print_http_headers_multipart_begin; +&displayhtml($buffer); + +sub mystat { + local($file) = $_[0]; + local($time); + + ($x, $x, $x, $x, $x, $x, $x, $x, $x, $mtime) = stat($file); + return $mtime; +} + +$mtimeL = &mystat($QS_f); +$mtime = $mtime; +for ($n = 0; $n &lt; $QS_n; $n++) { + while (1) { + $mtime = &mystat($QS_f); + if ($mtime ne $mtimeL) { + $mtimeL = $mtime; + sleep(2); + $buffer = &readfile($QS_f); + &print_http_headers_multipart_next; + &displayhtml($buffer); + sleep(5); + $mtimeL = &mystat($QS_f); + last; + } + sleep($QS_s); + } +} + +&print_http_headers_multipart_end; + +exit(0); + +##EOF## +</pre> + </dd> + </dl> + + <h2>Mass Virtual Hosting</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>The <code><VirtualHost></code> feature of Apache + is nice and works great when you just have a few dozens + virtual hosts. But when you are an ISP and have hundreds of + virtual hosts to provide this feature is not the best + choice.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + To provide this feature we map the remote webpage or even + the complete remote webarea to our namespace by the use + of the <i>Proxy Throughput</i> feature (flag [P]): + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +## +## vhost.map +## +www.vhost1.dom:80 /path/to/docroot/vhost1 +www.vhost2.dom:80 /path/to/docroot/vhost2 + : +www.vhostN.dom:80 /path/to/docroot/vhostN +</pre> + </td> + </tr> + </table> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +## +## httpd.conf +## + : +# use the canonical hostname on redirects, etc. +UseCanonicalName on + + : +# add the virtual host in front of the CLF-format +CustomLog /path/to/access_log "%{VHOST}e %h %l %u %t \"%r\" %>s %b" + : + +# enable the rewriting engine in the main server +RewriteEngine on + +# define two maps: one for fixing the URL and one which defines +# the available virtual hosts with their corresponding +# DocumentRoot. +RewriteMap lowercase int:tolower +RewriteMap vhost txt:/path/to/vhost.map + +# Now do the actual virtual host mapping +# via a huge and complicated single rule: +# +# 1. make sure we don't map for common locations +RewriteCond %{REQUEST_URI} !^/commonurl1/.* +RewriteCond %{REQUEST_URI} !^/commonurl2/.* + : +RewriteCond %{REQUEST_URI} !^/commonurlN/.* +# +# 2. make sure we have a Host header, because +# currently our approach only supports +# virtual hosting through this header +RewriteCond %{HTTP_HOST} !^$ +# +# 3. lowercase the hostname +RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$ +# +# 4. lookup this hostname in vhost.map and +# remember it only when it is a path +# (and not "NONE" from above) +RewriteCond ${vhost:%1} ^(/.*)$ +# +# 5. finally we can map the URL to its docroot location +# and remember the virtual host for logging puposes +RewriteRule ^/(.*)$ %1/$1 [E=VHOST:${lowercase:%{HTTP_HOST}}] + : +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h1>Access Restriction</h1> + + <h2>Blocking of Robots</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>How can we block a really annoying robot from + retrieving pages of a specific webarea? A + <code>/robots.txt</code> file containing entries of the + "Robot Exclusion Protocol" is typically not enough to get + rid of such a robot.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We use a ruleset which forbids the URLs of the webarea + <code>/~quux/foo/arc/</code> (perhaps a very deep + directory indexed area where the robot traversal would + create big server load). We have to make sure that we + forbid access only to the particular robot, i.e. just + forbidding the host where the robot runs is not enough. + This would block users from this host, too. We accomplish + this by also matching the User-Agent HTTP header + information. + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteCond %{HTTP_USER_AGENT} ^<strong>NameOfBadRobot</strong>.* +RewriteCond %{REMOTE_ADDR} ^<strong>123\.45\.67\.[8-9]</strong>$ +RewriteRule ^<strong>/~quux/foo/arc/</strong>.+ - [<strong>F</strong>] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Blocked Inline-Images</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Assume we have under http://www.quux-corp.de/~quux/ + some pages with inlined GIF graphics. These graphics are + nice, so others directly incorporate them via hyperlinks to + their pages. We don't like this practice because it adds + useless traffic to our server.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + While we cannot 100% protect the images from inclusion, + we can at least restrict the cases where the browser + sends a HTTP Referer header. + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteCond %{HTTP_REFERER} <strong>!^$</strong> +RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC] +RewriteRule <strong>.*\.gif$</strong> - [F] +</pre> + </td> + </tr> + </table> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteCond %{HTTP_REFERER} !^$ +RewriteCond %{HTTP_REFERER} !.*/foo-with-gif\.html$ +RewriteRule <strong>^inlined-in-foo\.gif$</strong> - [F] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Host Deny</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>How can we forbid a list of externally configured hosts + from using our server?</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + For Apache >= 1.3b6: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteMap hosts-deny txt:/path/to/hosts.deny +RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND [OR] +RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND +RewriteRule ^/.* - [F] +</pre> + </td> + </tr> + </table> + + <p>For Apache <= 1.3b6:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteMap hosts-deny txt:/path/to/hosts.deny +RewriteRule ^/(.*)$ ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}/$1 +RewriteRule !^NOT-FOUND/.* - [F] +RewriteRule ^NOT-FOUND/(.*)$ ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}/$1 +RewriteRule !^NOT-FOUND/.* - [F] +RewriteRule ^NOT-FOUND/(.*)$ /$1 +</pre> + </td> + </tr> + </table> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +## +## hosts.deny +## +## ATTENTION! This is a map, not a list, even when we treat it as such. +## mod_rewrite parses it for key/value pairs, so at least a +## dummy value "-" must be present for each entry. +## + +193.102.180.41 - +bsdti1.sdm.de - +192.76.162.40 - +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>URL-Restricted Proxy</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>How can we restrict the proxy to allow access to a + configurable set of internet sites only? The site list is + extracted from a prepared bookmarks file.</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We first have to make sure mod_rewrite is below(!) + mod_proxy in the <code>Configuration</code> file when + compiling the Apache webserver (or in the + <code>AddModule</code> list of <code>httpd.conf</code> in + the case of dynamically loaded modules), as it must get + called <em>_before_</em> mod_proxy. + + <p>For simplicity, we generate the site list as a + textfile map (but see the <a + href="../mod/mod_rewrite.html#RewriteMap">mod_rewrite + documentation</a> for a conversion script to DBM format). + A typical Netscape bookmarks file can be converted to a + list of sites with a shell script like this:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +#!/bin/sh +cat ${1:-~/.netscape/bookmarks.html} | +tr -d '\015' | tr '[A-Z]' '[a-z]' | grep href=\" | +sed -e '/href="file:/d;' -e '/href="news:/d;' \ + -e 's|^.*href="[^:]*://\([^:/"]*\).*$|\1 OK|;' \ + -e '/href="/s|^.*href="\([^:/"]*\).*$|\1 OK|;' | +sort -u +</pre> + </td> + </tr> + </table> + + <p>We redirect the resulting output into a text file + called <code>goodsites.txt</code>. It now looks similar + to this:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +www.apache.org OK +xml.apache.org OK +jakarta.apache.org OK +perl.apache.org OK +... +</pre> + </td> + </tr> + </table> + + <p>We reference this site file within the configuration + for the <code>VirtualHost</code> which is responsible for + serving as a proxy (often not port 80, but 81, 8080 or + 8008).</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +<VirtualHost *:8008> + ... + RewriteEngine On + # Either use the (plaintext) allow list from goodsites.txt + RewriteMap ProxyAllow txt:/usr/local/apache/conf/goodsites.txt + # Or, for faster access, convert it to a DBM database: + #RewriteMap ProxyAllow dbm:/usr/local/apache/conf/goodsites + # Match lowercased hostnames + RewriteMap lowercase int:tolower + # Here we go: + # 1) first lowercase the site name and strip off a :port suffix + RewriteCond ${lowercase:%{HTTP_HOST}} ^([^:]*).*$ + # 2) next look it up in the map file. + # "%1" refers to the previous regex. + # If the result is "OK", proxy access is granted. + RewriteCond ${ProxyAllow:%1|DENY} !^OK$ [NC] + # 3) Disallow proxy requests if the site was _not_ tagged "OK": + RewriteRule ^proxy: - [F] + ... +</VirtualHost> +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Proxy Deny</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>How can we forbid a certain host or even a user of a + special host from using the Apache proxy?</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We first have to make sure mod_rewrite is below(!) + mod_proxy in the <code>Configuration</code> file when + compiling the Apache webserver. This way it gets called + <em>_before_</em> mod_proxy. Then we configure the + following for a host-dependend deny... + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteCond %{REMOTE_HOST} <strong>^badhost\.mydomain\.com$</strong> +RewriteRule !^http://[^/.]\.mydomain.com.* - [F] +</pre> + </td> + </tr> + </table> + + <p>...and this one for a user@host-dependend deny:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>^badguy@badhost\.mydomain\.com$</strong> +RewriteRule !^http://[^/.]\.mydomain.com.* - [F] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Special Authentication Variant</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>Sometimes a very special authentication is needed, for + instance a authentication which checks for a set of + explicitly configured users. Only these should receive + access and without explicit prompting (which would occur + when using the Basic Auth via mod_access).</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + We use a list of rewrite conditions to exclude all except + our friends: + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>!^friend1@client1.quux-corp\.com$</strong> +RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>!^friend2</strong>@client2.quux-corp\.com$ +RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} <strong>!^friend3</strong>@client3.quux-corp\.com$ +RewriteRule ^/~quux/only-for-friends/ - [F] +</pre> + </td> + </tr> + </table> + </dd> + </dl> + + <h2>Referer-based Deflector</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>How can we program a flexible URL Deflector which acts + on the "Referer" HTTP header and can be configured with as + many referring pages as we like?</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + Use the following really tricky ruleset... + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteMap deflector txt:/path/to/deflector.map + +RewriteCond %{HTTP_REFERER} !="" +RewriteCond ${deflector:%{HTTP_REFERER}} ^-$ +RewriteRule ^.* %{HTTP_REFERER} [R,L] + +RewriteCond %{HTTP_REFERER} !="" +RewriteCond ${deflector:%{HTTP_REFERER}|NOT-FOUND} !=NOT-FOUND +RewriteRule ^.* ${deflector:%{HTTP_REFERER}} [R,L] +</pre> + </td> + </tr> + </table> + + <p>... in conjunction with a corresponding rewrite + map:</p> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +## +## deflector.map +## + +http://www.badguys.com/bad/index.html - +http://www.badguys.com/bad/index2.html - +http://www.badguys.com/bad/index3.html http://somewhere.com/ +</pre> + </td> + </tr> + </table> + + <p>This automatically redirects the request back to the + referring page (when "-" is used as the value in the map) + or to a specific URL (when an URL is specified in the map + as the second argument).</p> + </dd> + </dl> + + <h1>Other</h1> + + <h2>External Rewriting Engine</h2> + + <dl> + <dt><strong>Description:</strong></dt> + + <dd>A FAQ: How can we solve the FOO/BAR/QUUX/etc. problem? + There seems no solution by the use of mod_rewrite...</dd> + + <dt><strong>Solution:</strong></dt> + + <dd> + Use an external rewrite map, i.e. a program which acts + like a rewrite map. It is run once on startup of Apache + receives the requested URLs on STDIN and has to put the + resulting (usually rewritten) URL on STDOUT (same + order!). + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +RewriteEngine on +RewriteMap quux-map <strong>prg:</strong>/path/to/map.quux.pl +RewriteRule ^/~quux/(.*)$ /~quux/<strong>${quux-map:$1}</strong> +</pre> + </td> + </tr> + </table> + + <table bgcolor="#E0E5F5" border="0" cellspacing="0" + cellpadding="5"> + <tr> + <td> +<pre> +#!/path/to/perl + +# disable buffered I/O which would lead +# to deadloops for the Apache server +$| = 1; + +# read URLs one per line from stdin and +# generate substitution URL on stdout +while (<>) { + s|^foo/|bar/|; + print $_; +} +</pre> + </td> + </tr> + </table> + + <p>This is a demonstration-only example and just rewrites + all URLs <code>/~quux/foo/...</code> to + <code>/~quux/bar/...</code>. Actually you can program + whatever you like. But notice that while such maps can be + <strong>used</strong> also by an average user, only the + system administrator can <strong>define</strong> it.</p> + </dd> + </dl> + <!--#include virtual="footer.html" --> + </blockquote> + </body> +</html> + diff --git a/htdocs/manual/misc/security_tips.html b/htdocs/manual/misc/security_tips.html new file mode 100644 index 0000000000..fb5d2849bc --- /dev/null +++ b/htdocs/manual/misc/security_tips.html @@ -0,0 +1,302 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache HTTP Server: Security Tips</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Security Tips for Server Configuration</h1> + + <ul> + <li><a href="#serverroot">Permissions on ServerRoot + Directories</a></li> + + <li><a href="#ssi">Server Side Includes</a></li> + + <li><a href="#nsaliasedcgi">Non Script Aliased CGI</a></li> + + <li><a href="#saliasedcgi">Script Aliased CGI</a></li> + + <li><a href="#cgi">CGI in General</a></li> + + <li><a href="#dynamic">Other sources of dynamic content</a></li> + + <li><a href="#systemsettings">Protecting System + Settings</a></li> + + <li><a href="#protectserverfiles">Protect Server Files by + Default</a></li> + </ul> + <hr /> + + <p>Some hints and tips on security issues in setting up a web + server. Some of the suggestions will be general, others + specific to Apache.</p> + <hr /> + + <h2><a id="serverroot" name="serverroot">Permissions on + ServerRoot Directories</a></h2> + + <p>In typical operation, Apache is started by the root user, + and it switches to the user defined by the <a + href="../mod/core.html#user"><strong>User</strong></a> + directive to serve hits. As is the case with any command that + root executes, you must take care that it is protected from + modification by non-root users. Not only must the files + themselves be writeable only by root, but also the + directories and parents of all directories. For example, if + you choose to place ServerRoot in + <code>/usr/local/apache</code> then it is suggested that you + create that directory as root, with commands like these:</p> + + <blockquote> +<pre> + mkdir /usr/local/apache + cd /usr/local/apache + mkdir bin conf logs + chown 0 . bin conf logs + chgrp 0 . bin conf logs + chmod 755 . bin conf logs +</pre> + </blockquote> + It is assumed that /, /usr, and /usr/local are only modifiable + by root. When you install the httpd executable, you should + ensure that it is similarly protected: + + <blockquote> +<pre> + cp httpd /usr/local/apache/bin + chown 0 /usr/local/apache/bin/httpd + chgrp 0 /usr/local/apache/bin/httpd + chmod 511 /usr/local/apache/bin/httpd +</pre> + </blockquote> + + <p>You can create an htdocs subdirectory which is modifiable by + other users -- since root never executes any files out of + there, and shouldn't be creating files in there.</p> + + <p>If you allow non-root users to modify any files that root + either executes or writes on then you open your system to root + compromises. For example, someone could replace the httpd + binary so that the next time you start it, it will execute some + arbitrary code. If the logs directory is writeable (by a + non-root user), someone could replace a log file with a symlink + to some other system file, and then root might overwrite that + file with arbitrary data. If the log files themselves are + writeable (by a non-root user), then someone may be able to + overwrite the log itself with bogus data.</p> + <hr /> + + <h2><a id="ssi" name="ssi">Server Side Includes</a></h2> + + <p>Server Side Includes (SSI) present a server administrator + with several potential security risks.</p> + + <p>The first risk is the increased load on the server. All + SSI-enabled files have to be parsed by Apache, whether or not + there are any SSI directives included within the files. While + this load increase is minor, in a shared server environment it + can become significant.</p> + + <p>SSI files also pose the same risks that are associated with + CGI scripts in general. Using the "exec cmd" element, + SSI-enabled files can execute any CGI script or program under + the permissions of the user and group Apache runs as, as + configured in httpd.conf. That should definitely give server + administrators pause.</p> + + <p>There are ways to enhance the security of SSI files while + still taking advantage of the benefits they provide.</p> + + <p>To isolate the damage a wayward SSI file can cause, a server + administrator can enable <a + href="../suexec.html">suexec</a> as described in the <a + href="#cgi">CGI in General</a> section.</p> + + <p>Enabling SSI for files with .html or .htm extensions can be + dangerous. This is especially true in a shared, or high + traffic, server environment. SSI-enabled files should have a + separate extension, such as the conventional .shtml. This helps + keep server load at a minimum and allows for easier management + of risk.</p> + + <p>Another solution is to disable the ability to run scripts + and programs from SSI pages. To do this, replace + <code>Includes</code> with <code>IncludesNOEXEC</code> in the + <a href="../mod/core.html#options">Options</a> directive. Note + that users may still use <--#include virtual="..." --> to + execute CGI scripts if these scripts are in directories + designated by a <a + href="../mod/mod_alias.html#scriptalias">ScriptAlias</a> + directive.</p> + <hr /> + + <h2><a id="nsaliasedcgi" name="nsaliasedcgi">Non Script Aliased + CGI</a></h2> + + <p>Allowing users to execute <strong>CGI</strong> scripts in + any directory should only be considered if;</p> + + <ol> + <li>You trust your users not to write scripts which will + deliberately or accidentally expose your system to an + attack.</li> + + <li>You consider security at your site to be so feeble in + other areas, as to make one more potential hole + irrelevant.</li> + + <li>You have no users, and nobody ever visits your + server.</li> + </ol> + <hr /> + + <h2><a id="saliasedcgi" name="saliasedcgi">Script Aliased + CGI</a></h2> + + <p>Limiting <strong>CGI</strong> to special directories gives + the admin control over what goes into those directories. This + is inevitably more secure than non script aliased CGI, but + <strong>only if users with write access to the directories are + trusted</strong> or the admin is willing to test each new CGI + script/program for potential security holes.</p> + + <p>Most sites choose this option over the non script aliased + CGI approach.</p> + <hr /> + + <h2><a id="cgi" name="cgi">CGI in General</a></h2> + + <p>Always remember that you must trust the writers of the CGI + script/programs or your ability to spot potential security + holes in CGI, whether they were deliberate or accidental.</p> + + <p>All the CGI scripts will run as the same user, so they have + potential to conflict (accidentally or deliberately) with other + scripts <em>e.g.</em> User A hates User B, so he writes a + script to trash User B's CGI database. One program which can be + used to allow scripts to run as different users is <a + href="../suexec.html">suEXEC</a> which is included with Apache + as of 1.2 and is called from special hooks in the Apache server + code. Another popular way of doing this is with <a + href="http://wwwcgi.umr.edu/~cgiwrap/">CGIWrap</a>.</p> + <hr /> + + <h2><a id="dynamic" name="dynamic">Other sources of dynamic + content</a></h2> + +<p>Embedded scripting options which run as part of the server itself, such +as mod_php, mod_perl, mod_tcl, and mod_python, run under the identity of +the server itself (see the <a href="../mod/core.html#user">User</a> +directive), and therefore scripts executed by these engines +potentially can access anything the server user can. Some scripting +engines may provide restrictions, but it is better to be safe and assume +not.</p> +<hr /> + + <h2><a id="systemsettings" name="systemsettings">Protecting + System Settings</a></h2> + + <p>To run a really tight ship, you'll want to stop users from + setting up <code>.htaccess</code> files which can override + security features you've configured. Here's one way to do + it.</p> + + <p>In the server configuration file, put</p> + + <blockquote> + <code><Directory /><br /> + AllowOverride None<br /> + </Directory><br /> + </code> + </blockquote> + + <p>This prevents the use of <code>.htaccess</code> files in all + directories apart from those specifically enabled.</p> + <hr /> + + <h2><a id="protectserverfiles" + name="protectserverfiles">Protect Server Files by + Default</a></h2> + + <p>One aspect of Apache which is occasionally misunderstood is + the feature of default access. That is, unless you take steps + to change it, if the server can find its way to a file through + normal URL mapping rules, it can serve it to clients.</p> + + <p>For instance, consider the following example:</p> + + <ol> + <li><samp># cd /; ln -s / public_html</samp></li> + + <li>Accessing <samp>http://localhost/~root/</samp></li> + </ol> + + <p>This would allow clients to walk through the entire + filesystem. To work around this, add the following block to + your server's configuration:</p> +<pre> + <Directory /> + Order Deny,Allow + Deny from all + </Directory> +</pre> + + <p>This will forbid default access to filesystem locations. Add + appropriate <a + href="../mod/core.html#directory"><samp><Directory></samp></a> + blocks to allow access only in those areas you wish. For + example,</p> +<pre> + <Directory /usr/users/*/public_html> + Order Deny,Allow + Allow from all + </Directory> + <Directory /usr/local/httpd> + Order Deny,Allow + Allow from all + </Directory> +</pre> + + <p>Pay particular attention to the interactions of <a + href="../mod/core.html#location"><samp><Location></samp></a> + and <a + href="../mod/core.html#directory"><samp><Directory></samp></a> + directives; for instance, even if <samp><Directory + /></samp> denies access, a <samp><Location /></samp> + directive might overturn it.</p> + + <p>Also be wary of playing games with the <a + href="../mod/mod_userdir.html#userdir">UserDir</a> directive; + setting it to something like <samp>"./"</samp> would have the + same effect, for root, as the first example above. If you are + using Apache 1.3 or above, we strongly recommend that you + include the following line in your server configuration + files:</p> + + <dl> + <dd><samp>UserDir disabled root</samp></dd> + </dl> + <hr /> + + <p>Please send any other useful security tips to The Apache + Group by filling out a <a + href="http://bugs.apache.org/">problem report</a>. If you are + confident you have found a security bug in the Apache source + code itself, <a + href="http://httpd.apache.org/bug_report.html">please let us + know</a>.</p> + + <p><!--#include virtual="footer.html" --></p> + </body> +</html> + diff --git a/htdocs/manual/misc/tutorials.html b/htdocs/manual/misc/tutorials.html new file mode 100644 index 0000000000..f57e07f718 --- /dev/null +++ b/htdocs/manual/misc/tutorials.html @@ -0,0 +1,168 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Tutorials</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Tutorials</h1> + + <p>The following documents give you step-by-step instructions + on how to accomplish common tasks with the Apache http server. + Many of these documents are located at external sites and are + not the work of the Apache Software Foundation. Copyright to + documents on external sites is owned by the authors or their + assignees. Please consult the <a href="../">official Apache + Server documentation</a> to verify what you read on external + sites.</p> + + <h2>Installation & Getting Started</h2> + + <ul> + + <li><a + href="http://www.onlamp.com/pub/a/apache/2000/02/24/installing_apache.html"> + Getting, Installing, and Running Apache (on Unix)</a> + (O'Reilly Network Apache DevCenter)</li> + + <li><a + href="http://www.builder.com/Servers/Apache/ss01.html">Maximum + Apache: Getting Started</a> (CNET Builder.com)</li> + + <li><a + href="http://www.devshed.com/Server_Side/Administration/APACHE/"> + How to Build the Apache of Your Dreams</a> (Developer + Shed)</li> + + <li><a + href="http://apache-server.com/tutorials/ATgetting-started.html">Getting + Started with Apache 1.3</a> (Ken Coar)</li> + + </ul> + + <h2>Basic Configuration</h2> + + <ul> + <li><a + href="http://www.onlamp.com/pub/a/apache/2000/03/02/configuring_apache.html"> + An Amble Through Apache Configuration</a> (O'Reilly Network + Apache DevCenter)</li> + + <li><a + href="http://www.builder.com/Servers/Apache/ss02.html">Maximum + Apache: Configure Apache</a> (CNET Builder.com)</li> + + <li><a + href="http://www.melonfire.com/community/columns/trog/article.php?id=41"> + Getting More Out of Apache</a> (Melonfire)</li> + + <li><a + href="http://apache-server.com/tutorials/ATusing-htaccess.html">Using + .htaccess Files with Apache</a> (Ken Coar)</li> + + </ul> + + <h2>Security</h2> + + <ul> + <li><a + href="http://www.linuxplanet.com/linuxplanet/tutorials/1527/1/"> + Security and Apache: An Essential Primer</a> + (LinuxPlanet)</li> + + <li><a + href="http://www.apacheweek.com/features/userauth">Using User + Authentication</a> (Apacheweek)</li> + + <li><a href="http://www.apacheweek.com/features/dbmauth">DBM + User Authentication</a> (Apacheweek)</li> + + <li><a + href="http://linux.com/security/newsitem.phtml?sid=12&aid=3549"> + An Introduction to Securing Apache</a> (Linux.com)</li> + + <li><a + href="http://linux.com/security/newsitem.phtml?sid=12&aid=3667"> + Securing Apache - Access Control</a> (Linux.com)</li> + + <li><a + href="http://apache-server.com/tutorials/LPsuexec.html">Using + Apache with suexec on Linux</a> (Ken Coar)</li> + + </ul> + + <h2>Logging</h2> + + <ul> + <li><a + href="http://www.onlamp.com/pub/a/apache/2000/03/10/log_rhythms.html"> + Log Rhythms</a> (O'Reilly Network Apache DevCenter)</li> + + <li><a + href="http://www.apacheweek.com/features/logfiles">Gathering + Visitor Information: Customising Your Logfiles</a> + (Apacheweek)</li> + + </ul> + + <h2>CGI and SSI</h2> + + <ul> + + <li><a + href="http://www.cpan.org/doc/FAQs/cgi/idiots-guide.html"> + The Idiot's Guide to Solving Perl CGI Problems</a> + (CPAN)</li> + + <li><a + href="http://www.linuxplanet.com/linuxplanet/tutorials/1445/1/"> + Executing CGI Scripts as Other Users</a> (LinuxPlanet)</li> + + <li><a href="http://www.htmlhelp.org/faq/cgifaq.html">CGI + Programming FAQ</a> (Web Design Group)</li> + + <li><a + href="http://www.builder.com/Servers/ApacheFiles/082400/">Setting + up CGI and SSI with Apache</a> (CNET Builder.com)</li> + + <li><a + href="http://www.opendeveloper.org/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=1&page=1">How + to Set Up Server Side Includes in Apache</a> (OpenDeveloper.org)</li> + </ul> + + <h2>Other Features</h2> + + <ul> + <li><a + href="http://www.apacheweek.com/features/negotiation">Content + Negotiation Explained</a> (Apacheweek)</li> + + <li><a + href="http://www.apacheweek.com/features/imagemaps">Using + Apache Imagemaps</a> (Apacheweek)</li> + + <li><a + href="http://ppewww.ph.gla.ac.uk/~flavell/www/lang-neg.html">Language + Negotiation Notes</a> (Alan J. Flavell)</li> + + <li><a + href="http://apache-server.com/tutorials/ATimage-theft.html">Preventing + Image 'Theft'</a> (Ken Coar)</li> + </ul> + + <p>If you have a pointer to an accurate and well-written + tutorial not included here, please let us know by submitting it + to the <a href="http://bugs.apache.org/">Apache Bug + Database</a>. <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/misc/vif-info.html b/htdocs/manual/misc/vif-info.html new file mode 100644 index 0000000000..df68331485 --- /dev/null +++ b/htdocs/manual/misc/vif-info.html @@ -0,0 +1,398 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Configuring Multiple IP Addresses</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Configuring Multiple IP Addresses</h1> +<pre> +This material is originally from John Ioannidis (ji@polaris.ctr.columbia.edu) +I have condensed it some and applied some corrections for SunOS 4.1.x +courtesy of Chuck Smoko (csmoko@relay.nswc.navy.mil). + +Bob Baggerman (bob@bizweb.com) +12 Jan 94 + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +John Ionnidis writes: + +This is a topic that comes up once in a while on comp.protocols.tcp-ip +and other newsgroups. The question is, how to get a machine with one +network interface to respond to more than one IP addresses. + +I have a solution than might suit you. For my doctoral work (there's +a paper about it in this year's ('91) SIGCOMM, also available for +anonymous FTP from cs.columbia.edu:/pub/ji/sigcomm*.ps.Z), I've +developed what I call the "Virtual Interface" (VIF). To the networking +code, it looks like an interface. It gets ifattach()ed when you open +the /dev/vif* device, and then you can ifconfig it as you like. It +does not have an if_input procedure; it only has an if_output. Packets +that it receives (from higher-level protocols) which have its +IP address, it simply loops back (like any well-behaved if driver). +Packets that it receives that are destined for some other address, it +encapsulates in an encapsulation protocol I call IPIP (IP-within-IP, +protocol number IPPROTO_IPIP == 94), and sends it to another machine +that groks that encapsulation protocol. This feature you won't need, +but here's how to have multiple IP addresses on a machine with a +single real interface: + +Let's say your primary interface's IP address is 198.3.2.1, and you +also want it to respond to addresses 198.4.3.2 and 198.5.4.3 (note +that these are three distinct class C addresses in three distinct +class C nets). Here are the ifconfigs: + + ifconfig le0 198.3.2.1 up -trailers # config primary interface + + ifconfig vif0 198.4.3.2 up # config first virtual interface + route delete net 198.4.3 198.4.3.2 # delete spurious route + route add host 198.4.3.2 198.4.3.2 0 # add route for this i/f + + ifconfig vif1 198.5.4.3 up # config second virtual interface + route delete net 198.5.4 198.5.4.3 # delete spurious route + route add host 198.5.4.3 198.5.4.3 0 # add route for this i/f + +The route deletes are needed because the ifconfig creates a default +route to the interface's network, which can cause problems; all that's +needed is the (host) route to the interface's address. + +Now, get le0's ethernet address (say, 8:0:20:3:2:1), and add the +following static ARP entries: + + arp -s 198.4.3.2 8:0:20:3:2:1 pub + arp -s 198.5.4.3 8:0:20:3:2:1 pub + +This will cause any ARP requests for the VIF addresses to be replied +with your machine's ethernet address. + +Now, make sure your default route is to your segment's gateway, +through the real interface. Finally, make sure your routers and/or +hosts on the same segment as yours know that 198.4.3.2 and 198.5.4.3 +are on that cable. + +Here's what you've accomplished. + +ARP requests for any of your host's addresses will be replied to with +the host's ethernet address (the real one, because that's what it is, +the virtual ones because of the public static arp entries). Packets +reaching your host with any of these addresses will be accepted by the +ip_input routine because they match the address of one of the host's +interfaces. Packets leaving your host can have any of its addresses +(real and virtual). + +The code for vif follows. To use it, put the stuff in netinet/if_vif.c +and netinet/if_vif.h, configure your kernel with the number of +virtual interfaces you want using a line like: + +pseudo-device vif4 # Virtual IP interface + +in your configuration file, and the line + +netinet/if_vif.c optional vif device-driver + +in the "files" file. Also, add the appropriate entries in conf.c, so +that you can access the if_attach() routine when you open the device: + + +-------------------------- conf.c------------------------------------------ + +add this in the appropriate place in the headers of conf.c: + +-------------------- +#include "vif.h" +#if NVIF > 0 +int vifopen(), vifclose(), vifread(), vifwrite(), vifselect(), vifioctl(); +#else +#define vifopen nodev +#define vifclose nodev +#define vifread nodev +#define vifwrite nodev +#define vifselect nodev +#define vifioctl nodev +#endif +-------------------- + +then, way down in the definition for cdevsw[]: + +-------------------- + vifopen, vifclose, vifread, vifwrite, /*14*/ + vifioctl, nodev, nodev, 0, + 0, nodev, +-------------------- + +Make sure you remember the correct major device number, 14 in this case! + +--------------------------------------------------------------------------- + +Finally, here's the code. It has the tunneling pieces removed (you +need more code to use that anyway), and it comes from a Mach 2.6 +kernel; it should compile on any Berkeley-derived unix with minor +changes (most likely only in the includes). + +---------------------netinet/if_vif.h-------------------------------------- +typedef struct +{ + struct ifnet vif_if; + struct ifnet *vif_sif; /* slave interface */ + int vif_flags; +} vif_softc_t; + +#define VIFMTU (1024+512) +--------------------------------------------------------------------------- + +and + +---------------------netinet/if_vif.c-------------------------------------- +/* + * Virtual IP interface module. + */ + +#include "param.h" +#include "../sys/systm.h" +#include "../sys/mbuf.h" +#include "../sys/socket.h" +#include "../sys/errno.h" +#include "../sys/ioctl.h" + +#include "../net/if.h" +#include "../net/netisr.h" +#include "../net/route.h" + +#ifdef INET +#include "../netinet/in.h" +#include "../netinet/in_systm.h" +#include "../netinet/in_var.h" +#include "../netinet/ip.h" +#endif + +#include "in_pcb.h" +#include "vif.h" + +typedef struct +{ + struct ifnet vif_if; + struct ifnet *vif_sif; /* slave interface */ + int vif_flags; +} vif_softc_t; + +#define VIFMTU (1024+512) + +vif_softc_t vif_softc[NVIF]; + +int vifs_inited = 0; + + +vifattach() +{ + register int i; + register struct ifnet *ifp; + int vifoutput(), vififioctl(); + + for (i=0; i<NVIF; i++) + { + ifp = &vif_softc[i].vif_if; + ifp->if_name = "vif"; + ifp->if_unit = i; + ifp->if_mtu = VIFMTU; + ifp->if_flags = IFF_LOOPBACK | IFF_NOARP; + ifp->if_ioctl = vififioctl; + ifp->if_output = vifoutput; + if_attach(ifp); + } +} + +vifopen(dev, flag) +int dev, flag; +{ + int unit; + + if (!vifs_inited) + { + vifattach(); + vifs_inited = 1; + printf("vif initialized\n"); + } + + unit = minor(dev); + if ((unit < 0) || (unit >= NVIF)) + { + return ENXIO; + } + + return 0; +} + +vifclose(dev, flag) +int dev, flag; +{ + return 0; +} + +vifread() +{ + return ENXIO; +} + +vifwrite() +{ + return ENXIO; +} + +vifselect() +{ + return ENXIO; +} + +vifoutput(ifp, m0, dst) + struct ifnet *ifp; + register struct mbuf *m0; + struct sockaddr *dst; +{ + int s; + register struct ifqueue *ifq; + struct mbuf *m; + struct sockaddr_in *din; + + if (dst->sa_family != AF_INET) + { + printf("%s%d: can't handle af%d\n", + ifp->if_name, ifp->if_unit, + dst->sa_family); + m_freem(m0); + return (EAFNOSUPPORT); + } + + din = (struct sockaddr_in *)dst; + + if (din->sin_addr.s_addr == IA_SIN(ifp->if_addrlist)->sin_addr.s_addr) + { + /* printf("%s%d: looping\n", ifp->if_name, ifp->if_unit); */ + + /* + * Place interface pointer before the data + * for the receiving protocol. + */ + if (m0->m_off <= MMAXOFF && + m0->m_off >= MMINOFF + sizeof(struct ifnet *)) { + m0->m_off -= sizeof(struct ifnet *); + m0->m_len += sizeof(struct ifnet *); + } else { + MGET(m, M_DONTWAIT, MT_HEADER); + if (m == (struct mbuf *)0) + return (ENOBUFS); + m->m_off = MMINOFF; + m->m_len = sizeof(struct ifnet *); + m->m_next = m0; + m0 = m; + } + *(mtod(m0, struct ifnet **)) = ifp; + s = splimp(); + ifp->if_opackets++; + ifq = &ipintrq; + if (IF_QFULL(ifq)) { + IF_DROP(ifq); + m_freem(m0); + splx(s); + return (ENOBUFS); + } + IF_ENQUEUE(ifq, m0); + schednetisr(NETISR_IP); + ifp->if_ipackets++; + splx(s); + return (0); + } + + return EHOSTUNREACH; +} + +/* + * Process an ioctl request. + */ +/* ARGSUSED */ +vififioctl(ifp, cmd, data) + register struct ifnet *ifp; + int cmd; + caddr_t data; +{ + int error = 0; + + switch (cmd) { + + case SIOCSIFADDR: + ifp->if_flags |= IFF_UP; + /* + * Everything else is done at a higher level. + */ + break; + + default: + error = EINVAL; + } + return (error); +} + +vifioctl(dev, cmd, arg, mode) +dev_t dev; +int cmd; +caddr_t arg; +int mode; +{ + int unit; + + unit = minor(dev); + if ((unit < 0) || (unit >= NVIF)) + return ENXIO; + + return EINVAL; +} +---------------------------------------------------------------------------- + +To use it, compile your kernel, and reboot. Then create the vif +device: + +# mknod /dev/vif c 14 0 + +(or whatever major number it ended up being), and echo something into +it: + +# echo > /dev/vif + +This will cause the device to be opened, which will if_attach the +interfaces. If you feel like playing with the code, you may want to +kmem_alloc() the vif_softc structure at open time, and use the minor +number of the device to tell it how many interfaces to create. + +Now you can go ahead and ifconfig <em>etc.</em> + +I'll be happy to answer minor questions, and hear about success and +failure stories, but I cannot help you if you don't already know how +to hack kernels. + +Good luck! + +/ji + +In-Real-Life: John "Heldenprogrammer" Ioannidis +E-Mail-To: ji@cs.columbia.edu +V-Mail-To: +1 212 854 8120 +P-Mail-To: 450 Computer Science \n Columbia University \n New York, NY 10027 +</pre> + + <p>Note: there is also a <a + href="http://www.multihost.com/">commercial-product-turned-freeware + called "Col. Patch"</a> which does this as a loadable kernel + module for SunOS 4.1.3_U1.</p> + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/misc/windoz_keepalive.html b/htdocs/manual/misc/windoz_keepalive.html new file mode 100644 index 0000000000..80a80f559f --- /dev/null +++ b/htdocs/manual/misc/windoz_keepalive.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>MS Windows Netscape 3.0b4 KeepAlive problem + solved</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">HTTP/1.1 KeepAlive problems with Netscape + 3.0</h1> +<pre> +Date: Mon, 1 Jul 1996 16:03:06 -0700 (PDT) +From: Alexei Kosut <akosut@organic.com> +To: Apache Group +Subject: Re: keepalive and windoze + +Good news and good news (of a sort).. + +I was able to snag a Windows 95 machine here at Organic, and tried out +some things: + +1) On Netscape 3.0b4, I was able to reproduce the bug, each and every +time. It's really simple: go to the Network Setup panel. Set it to +"Connect Every Time" and only let it have 1 connection at once (this may +not be necessary, but it's helpful). Then load an image that's +kept-alive. Then wait until the connection times out (this depends on the +server - 10-30 seconds, except for MIIS, which never times out, near as I +can tell). Then hit reload. It will hang. (actually, once it crashed). + +2) This happens with all forms of server. Apache 1.1, Netscape 2.0, +Spyglass 1.2, NCSA 1.5 (although, as stated, I couldn't test MIIS). + +3) Netscape 3.0b5 does, indeed, *not* have this bug. At least, I couldn't +get it to perform such. Yipee. + +So, we just put up a note on the web page. Make sure we say that all the +servers have the bug, it's a Windows bug, and Netscape Navigator 3.0b5 +works around it. That way, no one can yell at us. Yes? + +-- Alexei Kosut <akosut@organic.com> The Apache HTTP Server + http://www.nueva.pvt.k12.ca.us/~akosut/ http://www.apache.org/ +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/core.html.en b/htdocs/manual/mod/core.html.en new file mode 100644 index 0000000000..1b3b897603 --- /dev/null +++ b/htdocs/manual/mod/core.html.en @@ -0,0 +1,4217 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Core Features</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache Core Features</h1> + + <p>These configuration parameters control the core Apache + features, and are always available.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#acceptfilter">AcceptFilter</a></li> + + <li><a href="#acceptmutex">AcceptMutex</a></li> + + <li><a href="#accessconfig">AccessConfig</a></li> + + <li><a href="#accessfilename">AccessFileName</a></li> + + <li><a href="#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a href="#addmodule">AddModule</a></li> + + <li><a href="#allowoverride">AllowOverride</a></li> + + <li><a href="#authname">AuthName</a></li> + + <li><a href="#AuthDigestRealmSeed">AuthDigestRealmSeed</a></li> + + <li><a href="#authtype">AuthType</a></li> + + <li><a href="#bindaddress">BindAddress</a></li> + + <li><a href="#bs2000account">BS2000Account</a></li> + + <li><a href="#cgicommandargs">CGICommandArgs</a></li> + + <li><a href="#clearmodulelist">ClearModuleList</a></li> + + <li><a href="#contentdigest">ContentDigest</a></li> + + <li><a href="#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a href="#defaulttype">DefaultType</a></li> + + <li><a href="#directory"><Directory></a></li> + + <li><a href="#directorymatch"><DirectoryMatch></a></li> + + <li><a href="#documentroot">DocumentRoot</a></li> + + <li><a href="#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="#enableexceptionhook">EnableExceptionHook</a></li> + + <li><a href="#errordocument">ErrorDocument</a></li> + + <li><a href="#errorlog">ErrorLog</a></li> + + <li><a href="#fileetag">FileETag</a></li> + + <li><a href="#files"><Files></a></li> + + <li><a href="#filesmatch"><FilesMatch></a></li> + + <li><a href="#group">Group</a></li> + + <li><a href="#hostnamelookups">HostnameLookups</a></li> + + <li><a href="#identitycheck">IdentityCheck</a></li> + + <li><a href="#ifdefine"><IfDefine></a></li> + + <li><a href="#ifmodule"><IfModule></a></li> + + <li><a href="#include">Include</a></li> + + <li><a href="#keepalive">KeepAlive</a></li> + + <li><a href="#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a href="#limit"><Limit></a></li> + + <li><a href="#limitexcept"><LimitExcept></a></li> + + <li><a href="#limitinternalrecursion">LimitInternalRecursion</a></li> + + <li><a href="#limitrequestbody">LimitRequestBody</a></li> + + <li><a href="#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a href="#limitrequestline">LimitRequestLine</a></li> + + <li><a href="#listen">Listen</a></li> + + <li><a href="#listenbacklog">ListenBacklog</a></li> + + <li><a href="#location"><Location></a></li> + + <li><a href="#locationmatch"><LocationMatch></a></li> + + <li><a href="#lockfile">LockFile</a></li> + + <li><a href="#loglevel">LogLevel</a></li> + + <li><a href="#maxclients">MaxClients</a></li> + + <li><a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a href="#maxspareservers">MaxSpareServers</a></li> + + <li><a href="#minspareservers">MinSpareServers</a></li> + + <li><a href="#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="#options">Options</a></li> + + <li><a href="#pidfile">PidFile</a></li> + + <li><a href="#port">Port</a></li> + + <li><a href="#protocolreqcheck">ProtocolReqCheck</a></li> + + <li><a href="#require">Require</a></li> + + <li><a href="#resourceconfig">ResourceConfig</a></li> + + <li><a href="#rlimitcpu">RLimitCPU</a></li> + + <li><a href="#rlimitmem">RLimitMEM</a></li> + + <li><a href="#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="#satisfy">Satisfy</a></li> + + <li><a href="#scoreboardfile">ScoreBoardFile</a></li> + + <li><a + href="#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="#sendbuffersize">SendBufferSize</a></li> + + <li><a href="#serveradmin">ServerAdmin</a></li> + + <li><a href="#serveralias">ServerAlias</a></li> + + <li><a href="#servername">ServerName</a></li> + + <li><a href="#serverpath">ServerPath</a></li> + + <li><a href="#serverroot">ServerRoot</a></li> + + <li><a href="#serversignature">ServerSignature</a></li> + + <li><a href="#servertokens">ServerTokens</a></li> + + <li><a href="#servertype">ServerType</a></li> + + <li><a href="#shmemuidisuser">ShmemUIDisUser</a></li> + + <li><a href="#startservers">StartServers</a></li> + + <li><a href="#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="#threadstacksize">ThreadStackSize</a></li> + + <li><a href="#timeout">TimeOut</a></li> + + <li><a href="#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="#user">User</a></li> + + <li><a href="#virtualhost"><VirtualHost></a></li> + </ul> + <hr /> + + <h2><a id="acceptfilter" name="acceptfilter">AcceptFilter + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AcceptFilter + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AcceptFilter + on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AcceptFilter is + available in Apache 1.3.22 and later + + <p><code>AcceptFilter</code> controls a BSD specific filter + optimization. It is compiled in by default - and switched on by + default if your system supports it (setsocketopt() option + SO_ACCEPTFILTER). Currently only FreeBSD supports this.</p> + + <p>See the filter section on <a + href="../misc/perf-bsd44.html">performance hints</a> for more + information.</p> + + <p>The compile time flag <code>AP_ACCEPTFILTER_OFF</code> can + be used to change the default to 'off'. <code>httpd -V</code> + and <code>httpd -L</code> will show compile time defaults and + whether or not SO_ACCEPTFILTER was defined during the + compile.</p> + + <hr /> + + <h2><a id="acceptmutex" name="acceptmutex">AcceptMutex + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AcceptMutex + uslock|pthread|sysvsem|fcntl|flock|os2sem|tpfcore|none|default<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AcceptMutex + default</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AcceptMutex is + available in Apache 1.3.21 and later. + + <p><code>AcceptMutex</code> controls which accept() mutex + method Apache will use. Not all methods are available on all + platforms, since the suite of methods is determined at + compile-time. For a list of which methods are available for + your particular build, the <code>httpd -V</code> command line + option will list them out.</p> + + <p>The compile time flags <code>-D + HAVE_METHOD_SERIALIZED_ACCEPT</code> can be used to add + different methods to your build, or one can edit the + <code>include/ap_config.h</code> file for your particular + platform.</p> + + <p>This directive has no effect on Microsoft Windows.</p> + + <p>See the <a href="../misc/perf-tuning.html">performance tuning + guide</a> for more information.</p> + + <hr /> + + <h2><a id="accessconfig" name="accessconfig">AccessConfig + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AccessConfig + <em>file-path</em>|<em>directory-path</em>|<em>wildcard-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AccessConfig + conf/access.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The ability to + specify a directory, rather than a file name, is only available in + Apache 1.3.13 and later. This directive will be eliminated in version + 2.0. + + <p>The server will read this file for more directives after + reading the <a href="#resourceconfig">ResourceConfig</a> file. + <em>File-path</em> is relative to the <a + href="#serverroot">ServerRoot</a>. This feature can be disabled + using:</p> + + <blockquote> + <code>AccessConfig /dev/null</code> + </blockquote> + Or, on Win32 servers, + + <blockquote> + <code>AccessConfig nul</code> + </blockquote> + Historically, this file only contained <a + href="#directory"><Directory></a> sections; in fact it + can now contain any server directive allowed in the <em>server + config</em> context. However, since Apache version 1.3.4, + the default <code>access.conf</code> file which ships with + Apache contains only comments, and all directives are placed + in the main server configuration file, <code>httpd.conf</code>. + + <p>If <code>AccessConfig</code> points to a directory, rather than a + file, Apache will read all files in that directory, and any + subdirectory, and parse those as configuration files. + </p> + <p>Alternatively you can use a wildcard to limit the scope; i.e + to only *.conf files. + </p> + <p>Note that by default <em>any</em> file in the specified + directory will be loaded as a configuration file. + </p> + <p> + So make sure that you don't have stray files in + this directory by mistake, such as temporary files created by your + editor, for example.</p> + + <p><strong>See also:</strong> <a href="#include">Include</a> and <a + href="#resourceconfig">ResourceConfig</a>.</p> + <hr /> + + <h2><a id="accessfilename" name="accessfilename">AccessFileName + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AccessFileName + <em>filename</em> [<em>filename</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AccessFileName + .htaccess</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AccessFileName + can accept more than one filename only in Apache 1.3 and later + + <p>When returning a document to the client the server looks for + the first existing access control file from this list of names + in every directory of the path to the document, if access + control files are enabled for that directory. For example:</p> + + <blockquote> + <code>AccessFileName .acl</code> + </blockquote> + before returning the document /usr/local/web/index.html, the + server will read /.acl, /usr/.acl, /usr/local/.acl and + /usr/local/web/.acl for directives, unless they have been + disabled with + + <blockquote> + <code><Directory /><br /> + AllowOverride None<br /> + </Directory></code> + </blockquote> + + <p><strong>See Also:</strong> <a + href="#allowoverride">AllowOverride</a> and <a + href="../configuring.html">Configuration Files</a></p> + <hr /> + + <h2><a id="adddefaultcharset" + name="adddefaultcharset">AddDefaultCharset directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddDefaultCharset + On|Off|<em>charset</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> all<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>AddDefaultCharset Off</code><br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + AddDefaultCharset is only available in Apache 1.3.12 and later + + <p>This directive specifies the name of the character set that + will be added to any response that does not have any parameter + on the content type in the HTTP headers. This will override any + character set specified in the body of the document via a + <code>META</code> tag. A setting of <code>AddDefaultCharset + Off</code> disables this functionality. <code>AddDefaultCharset + On</code> enables Apache's internal default charset of + <code>iso-8859-1</code> as required by the directive. You can + also specify an alternate <em>charset</em> to be used.</p> + + <p>For example:</p> + + <blockquote> + <code>AddDefaultCharset utf-8</code> + </blockquote> + + <p><b>Note:</b> This will <b>not</b> have any effect on the + Content-Type and character set for default Apache-generated + status pages (such as '404 Not Found' or '301 Moved Permanently') + because those have an <i>actual</i> character set (that in which the + hard-coded page content is written) and don't need to have a default + applied.</p> + + <hr /> + + <h2><a id="addmodule" name="addmodule">AddModule + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddModule + <em>module</em> [<em>module</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config <br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AddModule is + only available in Apache 1.2 and later + + <p>The server can have modules compiled in which are not + actively in use. This directive can be used to enable the use + of those modules. The server comes with a pre-loaded list of + active modules; this list can be cleared with the <a + href="#clearmodulelist">ClearModuleList</a> directive.</p> + + <p>For example:</p> + + <blockquote> + <code>AddModule mod_include.c</code> + </blockquote> + + <p>The ordering of <code>AddModule</code> lines is important. + Modules are listed in reverse priority order --- the ones that come + later can override the behavior of those that come earlier. This + can have visible effects; for instance, if UserDir followed Alias, + you couldn't alias out a particular user's home directory. For + more information and a recommended ordering, see + <code>src/Configuration.tmpl</code> in the Apache source + distribution.</p> + + <p><strong>See also</strong>: <a + href="#clearmodulelist">ClearModuleList</a> and <a + href="mod_so.html#loadmodule">LoadModule</a></p> + <hr /> + + <h2><a id="allowoverride" name="allowoverride">AllowOverride + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AllowOverride + All|None|<em>directive-type</em> [<em>directive-type</em>] + ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AllowOverride + All</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>When the server finds an .htaccess file (as specified by <a + href="#accessfilename">AccessFileName</a>) it needs to know + which directives declared in that file can override earlier + access information.</p> + + <p><strong>Note:</strong> <code>AllowOverride</code> is only + valid in <Directory> sections, not in <Location> or + <Files> sections, as implied by the <strong>Context</strong> + section above.</p> + + <p>When this directive is set to <code>None</code>, then + .htaccess files are completely ignored. In this case, the + server will not even attempt to read .htaccess files in the + filesystem.</p> + + <p>When this directive is set to <code>All</code>, then any + directive which has the .htaccess <a + href="directive-dict.html#Context">Context</a> is allowed in + .htaccess files.</p> + + <p>The <em>directive-type</em> can be one of the following + groupings of directives.</p> + + <dl> + <dt>AuthConfig</dt> + + <dd> + + Allow use of the authorization directives (<a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a>, + <a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a>, + <a href="mod_auth.html#authgroupfile">AuthGroupFile</a>, <a + href="#authname">AuthName</a>, <a + href="#AuthDigestRealmSeed">AuthDigestRealmSeed</a>, <a + href="#authtype">AuthType</a>, <a + href="mod_auth.html#authuserfile">AuthUserFile</a>, <a + href="#require">Require</a>, <em>etc.</em>).</dd> + + <dt>FileInfo</dt> + + <dd> + Allow use of the directives controlling document types (<a + href="mod_mime.html#addencoding">AddEncoding</a>, <a + href="mod_mime.html#addlanguage">AddLanguage</a>, <a + href="mod_mime.html#addtype">AddType</a>, <a + href="#defaulttype">DefaultType</a>, <a + href="#errordocument">ErrorDocument</a>, <a + href="mod_negotiation.html#languagepriority">LanguagePriority</a>, + <em>etc.</em>).</dd> + + <dt>Indexes</dt> + + <dd> + Allow use of the directives controlling directory indexing + (<a + href="mod_autoindex.html#adddescription">AddDescription</a>, + <a href="mod_autoindex.html#addicon">AddIcon</a>, <a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a>, + <a href="mod_autoindex.html#addiconbytype">AddIconByType</a>, + <a href="mod_autoindex.html#defaulticon">DefaultIcon</a>, <a + href="mod_dir.html#directoryindex">DirectoryIndex</a>, <a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a>, <a + href="mod_autoindex.html#headername">HeaderName</a>, <a + href="mod_autoindex.html#indexignore">IndexIgnore</a>, <a + href="mod_autoindex.html#indexoptions">IndexOptions</a>, <a + href="mod_autoindex.html#readmename">ReadmeName</a>, + <em>etc.</em>).</dd> + + <dt>Limit</dt> + + <dd> + Allow use of the directives controlling host access (<a + href="mod_access.html#allow">Allow</a>, + <a href="mod_access.html#deny">Deny</a> + and <a href="mod_access.html#order">Order</a>).</dd> + + <dt>Options</dt> + + <dd> + Allow use of the directives controlling specific directory + features (<a href="#options">Options</a> and <a + href="mod_include.html#xbithack">XBitHack</a>).</dd> + </dl> + + <p>Example:</p> + <blockquote><code>AllowOverride AuthConfig Indexes</code></blockquote> + + <p><strong>See Also:</strong> <a + href="#accessfilename">AccessFileName</a> and <a + href="../configuring.html">Configuration Files</a></p> + <hr /> + + <h2><a id="authname" name="authname">AuthName + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthName + <em>auth-domain</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive sets the name of the authorization realm for + a directory. This realm is given to the client so that the user + knows which username and password to send. + <samp>AuthName</samp> takes a single argument; if the realm + name contains spaces, it must be enclosed in quotation marks. + It must be accompanied by <a href="#authtype">AuthType</a> and + <a href="#require">Require</a> directives, and directives such + as <a href="mod_auth.html#authuserfile">AuthUserFile</a> and <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> to + work.</p> + + <p>For example:</p> + + <blockquote><code>AuthName "Top Secret"</code></blockquote> + + <p>The string provided for the <code>AuthName</code> is what will + appear in the password dialog provided by most browsers.</p> + + <p><strong>See also:</strong> <a + href="../howto/auth.html">Authentication, Authorization, and + Access Control</a></p> + <hr /> + + <h2><a id="AuthDigestRealmSeed" name="AuthDigestRealmSeed">AuthDigestRealmSeed + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthDigestRealmSeed + <em>secret-real-string</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive sets a per realm secret nonce prefix + which is used to ensure that a captured username, password + and realm string during a Digest exchange cannot + be replayed at other places. + </p> + <p>It only applies to <a href="mod_digest.html">mod_digest.html</a>, + the experimental <a href="mod_auth_digest.html">mod_auth_digest.html</a> + implements its own (more advanced and also time sensitive) replay protection. + </p> + + It must be accompanied by <a href="#authtype">AuthType</a> of + type Digest, one or more + <a href="#require">Require</a> directives, and directives such + as <a href="mod_auth.html#authuserfile">AuthUserFile</a> and <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> to + work.</p> + + <p><strong>See also:</strong> <a + href="../howto/auth.html">Authentication, Authorization, and + Access Control</a></p> + <hr /> + + <h2><a id="authtype" name="authtype">AuthType + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthType + Basic|Digest<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive selects the type of user authentication for a + directory. Only <code>Basic</code> and <code>Digest</code> are + currently implemented. + + It must be accompanied by <a href="#authname">AuthName</a> and + <a href="#require">Require</a> directives, and directives such + as <a href="mod_auth.html#authuserfile">AuthUserFile</a> and <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> to + work.</p> + + <p>When AuthDigest is used an <a href="#AuthDigestRealmSeed">AuthDigestRealmSeed</a> + should also be set.</p> + + <p><strong>See also:</strong> <a + href="../howto/auth.html">Authentication, Authorization, and + Access Control</a></p> + <hr /> + + <h2><a id="bindaddress" name="bindaddress">BindAddress + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BindAddress + *|<em>IP-address</em>|<em>domain-name</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>BindAddress + *</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> BindAddress is + deprecated and will be eliminated in Apache 2.0. + + <p>A Unix® http server can either listen for connections to + every IP address of the server machine, or just one IP address + of the server machine. If the argument to this directive is *, + then the server will listen for connections on every IP + address. Otherwise, the server can listen to only a specific + <em>IP-address</em> or a fully-qualified Internet + <em>domain-name</em>.</p> + + <p>For example:</p> + + <code>BindAddress 192.168.15.48</code><br /> + + <p>Only one <code>BindAddress</code> directive can be used.</p> + + <p>This directive is deprecated and will be eliminated in + Apache 2.0. Equivalent functionality and more control over the + address and ports Apache listens to is available using the + <code><a href="#listen">Listen</a></code> + directive.</p> + + <p><code>BindAddress</code> can be used as an alternative + method for supporting <a href="../vhosts/">virtual hosts</a> + using multiple independent servers, instead of using <code><a + href="#virtualhost"><VirtualHost></a></code> + sections.</p> + + <p><strong>See Also:</strong> <a href="../dns-caveats.html">DNS + Issues</a><br /> + <strong>See Also:</strong> <a href="../bind.html">Setting + which addresses and ports Apache uses</a></p> + <hr /> + + <h2><a id="bs2000account" name="bs2000account">BS2000Account + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> BS2000Account + <em>account</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> BS2000Account is + only available for BS2000 machines, as of Apache 1.3 and later. + + + <p>The <code>BS2000Account</code> directive is available for + BS2000 hosts only. It must be used to define the account number + for the non-privileged apache server user (which was configured + using the <a href="#user">User</a> directive). This is required + by the BS2000 POSIX subsystem (to change the underlying BS2000 + task environment by performing a sub-LOGON) to prevent CGI + scripts from accessing resources of the privileged account + which started the server, usually <samp>SYSROOT</samp>.<br /> + Only one <code>BS2000Account</code> directive can be used.</p> + + <p><strong>See Also:</strong> <a href="../ebcdic.html">Apache + EBCDIC port</a></p> + <hr /> + + <h2><a id="cgicommandargs" name="cgicommandargs">CGICommandArgs + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CGICommandArgs On|Off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> CGICommandArgs On<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in Apache + 1.3.24 and later. + + <p>Way back when the internet was a safer, more naive place, it + was convenient for the server to take a query string that did not + contain an '=' sign and to parse and pass it to a CGI program as + command line args. For example, <code><IsIndex></code> + generated searches often work in this way. The default behavior + in Apache is to maintain this behavior for backwards + compatibility, although it is generally regarded as unsafe + practice today. Most CGI programs do not take command line + parameters, but among those that do, many are unaware of this + method of passing arguments and are therefore vulnerable to + malicious clients passing unsafe material in this way. Setting + <code>CGICommandArgs Off</code> is recommended to protect such + scripts with little loss in functionality.</p> + + <hr /> + + <h2><a id="clearmodulelist" + name="clearmodulelist">ClearModuleList directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ClearModuleList<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ClearModuleList + is only available in Apache 1.2 and later + + <p>The server comes with a built-in list of active modules. + This directive clears the list. It is assumed that the list + will then be re-populated using the <a + href="#addmodule">AddModule</a> directive.</p> + + <p><strong>See also</strong>: <a + href="#addmodule">AddModule</a> and <a + href="mod_so.html#loadmodule">LoadModule</a></p> + + <hr /> + + <h2><a id="contentdigest" name="contentdigest">ContentDigest + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ContentDigest + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ContentDigest + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> experimental<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ContentDigest is + only available in Apache 1.1 and later + + <p>This directive enables the generation of + <code>Content-MD5</code> headers as defined in RFC1864 + respectively RFC2068.</p> + + <p>MD5 is an algorithm for computing a "message digest" + (sometimes called "fingerprint") of arbitrary-length data, with + a high degree of confidence that any alterations in the data + will be reflected in alterations in the message digest.</p> + + <p>The <code>Content-MD5</code> header provides an end-to-end + message integrity check (MIC) of the entity-body. A proxy or + client may check this header for detecting accidental + modification of the entity-body in transit. Example header:</p> +<pre> + Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== +</pre> + + <p>Note that this can cause performance problems on your server + since the message digest is computed on every request (the + values are not cached).</p> + + <p><code>Content-MD5</code> is only sent for documents served + by the core, and not by any module. For example, SSI documents, + output from CGI scripts, and byte range responses do not have + this header.</p> + <hr /> + + <h2><a id="coredumpdirectory" + name="coredumpdirectory">CoreDumpDirectory directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CoreDumpDirectory + <em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> the same location as + ServerRoot<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This controls the directory to which Apache attempts to + switch before dumping core. The default is in the <a + href="#serverroot">ServerRoot</a> directory, however since this + should not be writable by the user the server runs as, core + dumps won't normally get written. If you want a core dump for + debugging, you can use this directive to place it in a + different location.</p> + + <p>For example:</p> + + <blockquote> + <code>CoreDumpDirectory /tmp</code> + </blockquote> + + <hr /> + + <h2><a id="defaulttype" name="defaulttype">DefaultType + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DefaultType + <em>MIME-type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>DefaultType + text/plain</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>There will be times when the server is asked to provide a + document whose type cannot be determined by its MIME types + mappings.</p> + + <p>The server must inform the client of the content-type of the + document, so in the event of an unknown type it uses the + <code>DefaultType</code>. For example:</p> + + <blockquote> + <code>DefaultType image/gif</code> + </blockquote> + would be appropriate for a directory which contained many gif + images with filenames missing the .gif extension. + + <p><strong>See also:</strong> <a + href="mod_mime.html#addtype">AddType</a> and <a + href="mod_mime.html#typesconfig">TypesConfig</a>.</p> + + <hr /> + + <h2><a id="directory" name="directory"><Directory> + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Directory + <em>directory-path</em>|proxy:<em>url-path</em>> + ... </Directory> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core. + + <p><Directory> and </Directory> are used to enclose + a group of directives which will apply only to the named + directory and sub-directories of that directory. Any directive + which is allowed in a directory context may be used. + <em>Directory-path</em> is either the full path to a directory, + or a wild-card string. In a wild-card string, `?' matches any + single character, and `*' matches any sequences of characters. + As of Apache 1.3, you may also use `[ ]' character ranges like + in the shell. Also as of Apache 1.3 none of the wildcards match + a `/' character, which more closely mimics the behavior of + Unix shells. Example:</p> +<pre> + <Directory /usr/local/httpd/htdocs> + Options Indexes FollowSymLinks + </Directory> +</pre> + + <p><strong>Apache 1.2 and above:</strong> Extended regular + expressions can also be used, with the addition of the + <code>~</code> character. For example:</p> +<pre> + <Directory ~ "^/www/.*/[0-9]{3}"> +</pre> + would match directories in /www/ that consisted of three + numbers. + + <p>If multiple (non-regular expression) directory sections + match the directory (or its parents) containing a document, + then the directives are applied in the order of shortest match + first, interspersed with the directives from the <a + href="#accessfilename">.htaccess</a> files. For example, + with</p> + + <blockquote> + <code><Directory /><br /> + AllowOverride None<br /> + </Directory><br /> + <br /> + <Directory /home/*><br /> + AllowOverride FileInfo<br /> + </Directory></code> + </blockquote> + for access to the document <code>/home/web/dir/doc.html</code> + the steps are: + + <ul> + <li>Apply directive <code>AllowOverride None</code> + (disabling <code>.htaccess</code> files).</li> + + <li>Apply directive <code>AllowOverride FileInfo</code> (for + directory <code>/home/web</code>).</li> + + <li>Apply any FileInfo directives in + <code>/home/web/.htaccess</code></li> + </ul> + + <p>Regular expression directory sections are handled slightly + differently by Apache 1.2 and 1.3. In Apache 1.2 they are + interspersed with the normal directory sections and applied in + the order they appear in the configuration file. They are + applied only once, and apply when the shortest match possible + occurs. In Apache 1.3 regular expressions are not considered + until after all of the normal sections have been applied. Then + all of the regular expressions are tested in the order they + appeared in the configuration file. For example, with</p> + + <blockquote> + <code><Directory ~ abc$><br /> + ... directives here ...<br /> + </Directory><br /> + </code> + </blockquote> + Suppose that the filename being accessed is + <code>/home/abc/public_html/abc/index.html</code>. The server + considers each of <code>/</code>, <code>/home</code>, + <code>/home/abc</code>, <code>/home/abc/public_html</code>, and + <code>/home/abc/public_html/abc</code> in that order. In Apache + 1.2, when <code>/home/abc</code> is considered, the regular + expression will match and be applied. In Apache 1.3 the regular + expression isn't considered at all at that point in the tree. + It won't be considered until after all normal + <Directory>s and <code>.htaccess</code> files have been + applied. Then the regular expression will match on + <code>/home/abc/public_html/abc</code> and be applied. + + <p><strong>Note that the default Apache access for + <Directory /> is <samp>Allow from All</samp>. This means + that Apache will serve any file mapped from an URL. It is + recommended that you change this with a block such + as</strong></p> +<pre> + <Directory /> + Order Deny,Allow + Deny from All + </Directory> +</pre> + + <p><strong>and then override this for directories you + <em>want</em> accessible. See the <a + href="../misc/security_tips.html">Security Tips</a> page for + more details.</strong></p> + <Directory> directives cannot nest, and cannot appear in + a <a href="#limit"><Limit></a> or <a + href="#limitexcept"><LimitExcept></a> section. + + <p>If you have <a href="mod_proxy.html">mod_proxy</a> enabled, you + can use the <code>proxy:</code> syntax to apply configuration + directives to proxied content. The syntax for this is to specify the + proxied URLs to which you wish to apply the configuration, or to + specify <code>*</code> to apply to all proxied content:</p> + + <p>To apply to all proxied content:</p> + + <pre> + <Directory proxy:*> + ... directives here ... + </Directory> + </pre> + + <p>To apply to just a subset of proxied content:</p> + + <pre> + <Directory proxy:http://www.example.com/> + ... directives here ... + </Directory> + </pre> + + <p><strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <p><strong>See also</strong>: <a + href="#directorymatch">DirectoryMatch</a></p> + <hr /> + + <h2><a id="directorymatch" + name="directorymatch"><DirectoryMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <DirectoryMatch + <em>regex</em>> ... </DirectoryMatch> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later + + <p><DirectoryMatch> and </DirectoryMatch> are used + to enclose a group of directives which will apply only to the + named directory and sub-directories of that directory, the same + as <a href="#directory"><Directory></a>. However, it + takes as an argument a regular expression. For example:</p> +<pre> + <DirectoryMatch "^/www/.*/[0-9]{3}"> +</pre> + + <p>would match directories in /www/ that consisted of three + numbers.</p> + + <p><strong>See Also:</strong> <a + href="#directory"><Directory></a> for a description of + how regular expressions are mixed in with normal + <Directory>s.<br /> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="documentroot" name="documentroot">DocumentRoot + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DocumentRoot + <em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>DocumentRoot + /usr/local/apache/htdocs</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive sets the directory from which httpd will + serve files. Unless matched by a directive like Alias, the + server appends the path from the requested URL to the document + root to make the path to the document. Example:</p> + + <blockquote> + <code>DocumentRoot /usr/web</code> + </blockquote> + then an access to + <code>http://www.my.host.com/index.html</code> refers to + <code>/usr/web/index.html</code>. + + <p>There appears to be a bug in mod_dir which causes problems + when the DocumentRoot has a trailing slash (<em>i.e.</em>, + "DocumentRoot /usr/web/") so please avoid that.</p> + <hr /> + + <h2><a id="ebcdicconvert" + name="ebcdicconvert">EBCDICConvert</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> EBCDICConvert + On|Off[=<em>direction</em>] <em>extension</em> + [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The configurable + EBCDIC conversion is only available in Apache 1.3.19 and later, + and on EBCDIC based platforms. + + <p>The EBCDICConvert directive maps the given filename + extensions to the specified conversion setting (<samp>On</samp> + or <samp>Off</samp>). File extensions may be specified with or + without a leading dot.</p> + + <p>If the optional format <samp>On=<i>direction</i></samp> (or + <samp>Off=<i>direction</i></samp>) is used, where + <i>direction</i> is one of <samp>In</samp>, <samp>Out</samp> or + <samp>InOut</samp>, then the directive only applies to the + specified transfer direction (<samp>In</samp>: uploaded content + in a PUT or POST request, <samp>Out</samp>: returned content in + a GET or POST request, and <samp>InOut</samp>: conversion in + both directions).<br /> + Otherwise, <samp>InOut</samp> (conversion in both directions) + is implied.</p> + + <p>Conversion configuration based on file extension is tested + prior to configuration based on MIME type, to allow for generic + MIME based rules to be overridden by a more specific file + extension (several file extensions may exist for the same MIME + type).</p> + + <p><strong>Example</strong>:<br /> + With a configuration like the following, the normal + <samp>*.html</samp> files contain HTML text in EBCDIC encoding, + while <samp>*.ahtml</samp> files contain HTML text in ASCII + encoding:</p> +<pre> + # *.html and *.ahtml contain HTML text: + AddType text/html .html .ahtml + + # *.ahtml is not converted (contains ASCII text already): + EBCDICConvert Off .ahtml + + # All other text/html files presumably contain EBCDIC text: + EBCDICConvertByType On text/html +</pre> + <br /> + <br /> + + + <p><strong>See also</strong>: <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> and <a + href="../ebcdic.html#ebcdic">Overview of the EBCDIC Conversion + Functions</a></p> + <hr /> + + <h2><a id="ebcdicconvertbytype" + name="ebcdicconvertbytype">EBCDICConvertByType</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> EBCDICConvertByType + On|Off[=<em>direction</em>] <em>mimetype</em> + [<em>mimetype</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The configurable + EBCDIC conversion is only available in Apache 1.3.19 and later, + and on EBCDIC based platforms. + + <p>The EBCDICConvertByType directive maps the given MIME type + (optionally containing wildcards) to the specified conversion + setting (<samp>On</samp> or <samp>Off</samp>).</p> + + <p>If the optional format <samp>On=<i>direction</i></samp> (or + <samp>Off=<i>direction</i></samp>) is used, where + <i>direction</i> is one of <samp>In</samp>, <samp>Out</samp> or + <samp>InOut</samp>, then the directive only applies to the + specified transfer direction (<samp>In</samp>: uploaded content + in a PUT or POST request, <samp>Out</samp>: returned content in + a GET or POST request, and <samp>InOut</samp>: conversion in + both directions).<br /> + Otherwise, <samp>InOut</samp> (conversion in both directions) + is implied.</p> + + <p><strong>Example</strong>:<br /> + A useful standard configuration should at least contain the + following defaults:</p> +<pre> + # All text documents are stored as EBCDIC files: + EBCDICConvertByType On text/* message/* multipart/* + EBCDICConvertByType On application/x-www-form-urlencoded \ + model/vrml application/postscript + # All other files are assumed to be binary: + EBCDICConvertByType Off */* +</pre> + If you serve ASCII documents only, for example from an NFS + mounted unix server, use: +<pre> + # All documents are ASCII already: + EBCDICConvertByType Off */* +</pre> + + <p><strong>See also</strong>: <a + href="#ebcdicconvert">EBCDICConvert</a> and <a + href="../ebcdic.html#ebcdic">Overview of the EBCDIC Conversion + Functions</a></p> + <hr /> + + <h2><a id="ebcdickludge" + name="ebcdickludge">EBCDICKludge</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> EBCDICKludge + On|Off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>EBCDICKludge + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> EBCDICKludge is + only available in Apache 1.3.19 and later, and on EBCDIC based + platforms. It is deprecated and will be withdrawn in a future + version.<br /> + + + <p>The EBCDICKludge is provided for the backward compatible + behavior with apache versions 1.3.0 through 1.3.18. In these + versions, all files with MIME types starting with "text/", + "message/" or "multipart/" or with type + "application/x-www-form-urlencoded" would be converted by + default, all other documents were returned unconverted. Only if + a MIME type "<samp>text/<b>x-ascii-</b><i>subtype</i></samp>" + was configured for a certain document, the document was assumed + to be in ASCII format already, and was not converted again. + Instead, the "<samp><b>x-ascii-</b></samp>" was removed from + the type, resulting in the MIME type + "<samp>text/<i>subtype</i></samp>" being returned for the + document.</p> + + <p>If the EBCDICKludge directive is set to <samp>On</samp>, and + if none of the file extensions configured with the <a + href="#ebcdicconvert">EBCDICConvert</a> directive matches in + the current context, then the server tests for a MIME type of + the format + <samp><i>type/</i><b>x-ascii-</b><i>subtype</i></samp>. If the + document has such a type, then the + "<samp><b>x-ascii-</b></samp>" substring is removed and the + conversion set to <samp>Off</samp>. This allows for overriding + the implicit assumption that all text files are stored in + EBCDIC format, for example when serving documents from an NFS + mounted directory with ASCII documents.<br /> + By using the EBCDICKludge, there is no way to force one of the + other MIME types (<em>e.g.</em>, model/vrml) to be treated as + an EBCDIC text file. Use of the <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> directive + mentioned above is the preferred way to configure such a + conversion. (Before Apache version 1.3.19, there was no way at + all to force these binary documents to be treated as EBCDIC + text files.)</p> + + <p><strong>See also</strong>: <a + href="#ebcdicconvert">EBCDICConvert</a>, <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> and <a + href="../ebcdic.html#ebcdic">Overview of the EBCDIC Conversion + Functions</a></p> + <hr /> + + <h2><a id="enableexceptionhook" name="enableexceptionhook"> + EnableExceptionHook directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> EnableExceptionHook + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>EnableExceptionHook + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> EnableExceptionHook + is available in Apache 1.3.30 and later + + <p><code>EnableExceptionHook</code> controls whether or not an + exception hook implemented by a module will be called after a + child process crash. The exception hook allows modules to log + diagnostic information that may help determine the cause of the + crash.</p> + <hr /> + + <h2><a id="errordocument" name="errordocument">ErrorDocument + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ErrorDocument + <em>error-code document</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The directory + and .htaccess contexts are only available in Apache 1.1 and + later. + + <p>In the event of a problem or error, Apache can be configured + to do one of four things,</p> + + <ol> + <li>output a simple hardcoded error message</li> + + <li>output a customized message</li> + + <li>redirect to a local <em>URL-path</em> to handle the + problem/error</li> + + <li>redirect to an external <em>URL</em> to handle the + problem/error</li> + </ol> + + <p>The first option is the default, while options 2-4 are + configured using the <code>ErrorDocument</code> directive, + which is followed by the HTTP response code and a message or + URL.</p> + + <p><em>Messages</em> in this context begin with a single + double-quote character (<code>"</code>), which does not form + part of the message itself. Apache will sometimes offer + additional information regarding the problem/error.</p> + + <p>URLs can begin with a slash (/) for local URLs, or be a full + URL which the client can resolve. Examples:</p> + + <blockquote> + <code>ErrorDocument 500 + http://foo.example.com/cgi-bin/tester<br /> + ErrorDocument 404 /cgi-bin/bad_urls.pl<br /> + ErrorDocument 401 /subscription_info.html<br /> + ErrorDocument 403 "Sorry can't allow you access today</code> + </blockquote> + + <p>Note that when you specify an <code>ErrorDocument</code> + that points to a remote URL (ie. anything with a method such as + "http" in front of it), Apache will send a redirect to the + client to tell it where to find the document, even if the + document ends up being on the same server. This has several + implications, the most important being that the client will not + receive the original error status code, but instead will + receive a redirect status code. This in turn can confuse web + robots and other clients which try to determine if a URL is + valid using the status code. In addition, if you use a remote + URL in an <code>ErrorDocument 401</code>, the client will not + know to prompt the user for a password since it will not + receive the 401 status code. Therefore, <strong>if you use an + "ErrorDocument 401" directive then it must refer to a local + document.</strong></p> + + <p>Microsoft Internet Explorer (MSIE) will by default ignore + server-generated error messages when they are "too small" and substitute + its own "friendly" error messages. The size threshold varies depending on + the type of error, but in general, if you make your error document + greater than 512 bytes, then MSIE will show the server-generated + error rather than masking it. More information is available in + Microsoft Knowledgebase article <a + href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807" + >Q294807</a>.</p> + + <p>See Also: <a href="../custom-error.html">documentation of + customizable responses.</a> See the <a + href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">HTTP + specification</a> for a complete list of the status codes and their + meanings.</p> + <hr /> + + <h2><a id="errorlog" name="errorlog">ErrorLog + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ErrorLog + <em>file-path</em>|syslog[:<em>facility</em>] <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ErrorLog + logs/error_log</code> (Unix)<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ErrorLog + logs/error.log</code> (Windows and OS/2)<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The error log directive sets the name of the file to which + the server will log any errors it encounters. If the + <em>file-path</em> does not begin with a slash (/) then it is + assumed to be relative to the <a + href="#serverroot">ServerRoot</a>. If the <em>file-path</em> + begins with a pipe (|) then it is assumed to be a command to + spawn to handle the error log.</p> + + <p>Examples</p> + + <p><code>ErrorLog logs/vhost1.error</code></p> + + or + + <p><code>ErrorLog |/usr/local/bin/errorlog.pl</code></p> + + <p><strong>Apache 1.3 and above:</strong> Using + <code>syslog</code> instead of a filename enables logging via + syslogd(8) if the system supports it. The default is to use + syslog facility <code>local7</code>, but you can override this + by using the <code>syslog:</code><em>facility</em> syntax where + <em>facility</em> can be one of the names usually documented in + syslog(1).</p> + + <p>For example:</p> + + <p><code>ErrorLog syslog</code></p> + + or + + <p><code>ErrorLog syslog:user</code></p> + + <p>SECURITY: See the <a + href="../misc/security_tips.html#serverroot">security tips</a> + document for details on why your security could be compromised + if the directory where logfiles are stored is writable by + anyone other than the user that starts the server.</p> + + <p><strong>See also:</strong> <a href="#loglevel">LogLevel</a> + and <a href="../logs.html">Apache Log Files</a></p> + <hr /> + + <h2><a id="fileetag" name="fileetag">FileETag directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> FileETag + <i>component</i> ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> only available + in Apache 1.3.23 versions and later. + + <p> + The FileETag directive configures the file attributes that are + used to create the ETag (entity tag) response header field + when the document is based on a file. + (The ETag value is used in cache management to save network + bandwidth.) In Apache 1.3.22 and earlier, the ETag value was + <i>always</i> formed from the file's inode, size, and last-modified + time (mtime). The FileETag directive allows you to choose + which of these -- if any -- should be used. The recognized + keywords are: + </p> + <dl compact="compact"> + <dt><b>INode</b></dt> + <dd>The file's i-node number will be included in the calculation</dd> + <dt><b>MTime</b></dt> + <dd>The date and time the file was last modified will be included</dd> + <dt><b>Size</b></dt> + <dd>The number of bytes in the file will be included</dd> + <dt><b>All</b></dt> + <dd>All available fields will be used (equivalent to + '<code>FileETag INode MTime Size</code>')</dd> + <dt><b>None</b></dt> + <dd>If a document is file-based, no ETag field will be included in the + response</dd> + </dl> + <p> + The INode, MTime, and Size keywords may be prefixed with either '+' + or '-', which allow changes to be made to the default setting + inherited from a broader scope. Any keyword appearing without + such a prefix immediately and completely cancels the inherited + setting. + </p> + <p> + If a directory's configuration includes + '<code>FileETag INode MTime Size</code>', and a + subdirectory's includes '<code>FileETag -INode</code>', + the setting for that subdirectory (which will be inherited by + any sub-subdirectories that don't override it) will be equivalent to + '<code>FileETag MTime Size</code>'. + </p> + <hr /> + + <h2><a id="files" name="files"><Files> directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Files + <em>filename</em>> ... </Files><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> only available + in Apache 1.2 and above. + + <p>The <Files> directive provides for access control by + filename. It is comparable to the <a + href="#directory"><Directory></a> directive and <a + href="#location"><Location></a> directives. It should be + matched with a </Files> directive. The directives given + within this section will be applied to any object with a + basename (last component of filename) matching the specified + filename. <code><Files></code> sections are processed in + the order they appear in the configuration file, after the + <Directory> sections and <code>.htaccess</code> files are + read, but before <Location> sections. Note that + <Files> can be nested inside <Directory> sections + to restrict the portion of the filesystem they apply to.</p> + + <p>The <em>filename</em> argument should include a filename, or + a wild-card string, where `?' matches any single character, and + `*' matches any sequences of characters. Extended regular + expressions can also be used, with the addition of the + <code>~</code> character. For example:</p> +<pre> + <Files ~ "\.(gif|jpe?g|png)$"> +</pre> + would match most common Internet graphics formats. In Apache + 1.3 and later, <a href="#filesmatch"><FilesMatch></a> is + preferred, however. + + <p>Note that unlike <a + href="#directory"><code><Directory></code></a> and <a + href="#location"><code><Location></code></a> sections, + <code><Files></code> sections can be used inside + .htaccess files. This allows users to control access to their + own files, at a file-by-file level. + For example, to password protect a single file within a + particular directory, you might add the following to your + <code>.htaccess</code> file:</p> + + <pre> + <Files admin.cgi> + Require group admin + </Files></pre> + + <p>Remember that directives apply to subdirectories as well, so this + will also protect files called <code>admin.cgi</code> in + subdirectories, unless specifically overridden.</p> + + <p>(See <a href="#require">Require</a> for details on using the + <code>Require</code> directive)</p> + + <p><strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="filesmatch" + name="filesmatch"><FilesMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <FilesMatch + <em>regex</em>> ... </FilesMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> only available + in Apache 1.3 and above. + + <p>The <FilesMatch> directive provides for access control + by filename, just as the <a href="#files"><Files></a> + directive does. However, it accepts a regular expression. For + example:</p> +<pre> + <FilesMatch "\.(gif|jpe?g|png)$"> +</pre> + + <p>would match most common Internet graphics formats.</p> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received + <hr /> + + <h2><a id="group" name="group">Group directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Group + <em>unix-group</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>Group + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The Group directive sets the group under which the server + will answer requests. In order to use this directive, the + stand-alone server must be run initially as root. + <em>Unix-group</em> is one of:</p> + + <dl> + <dt>A group name</dt> + + <dd>Refers to the given group by name.</dd> + + <dt># followed by a group number.</dt> + + <dd>Refers to a group by its number.</dd> + </dl> + <p>It is recommended that you set up a new group specifically for + running the server. Some admins use user <code>nobody</code>, + but this is not always possible or desirable.</p> + + <p>Example:</p> + + <code>Group www-group</code> + + <p>Note: if you start the server as a non-root user, it will + fail to change to the specified group, and will instead + continue to run as the group of the original user.</p> + + <p>Special note: Use of this directive in <VirtualHost> + requires a properly configured <a href="../suexec.html">suEXEC + wrapper</a>. When used inside a <VirtualHost> in this + manner, only the group that CGIs are run as is affected. + Non-CGI requests are still processed as the group specified in + the main Group directive.</p> + + <p>SECURITY: See <a href="#user">User</a> for a discussion of + the security considerations.</p> + <hr /> + + <h2><a id="hostnamelookups" + name="hostnamelookups">HostnameLookups directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> HostnameLookups + on|off|double<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>HostnameLookups + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + <code>double</code> available only in Apache 1.3 and + above.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Default was + <code>on</code> prior to Apache 1.3. + + <p>This directive enables DNS lookups so that host names can be + logged (and passed to CGIs/SSIs in <code>REMOTE_HOST</code>). + The value <code>double</code> refers to doing double-reverse + DNS. That is, after a reverse lookup is performed, a forward + lookup is then performed on that result. At least one of the ip + addresses in the forward lookup must match the original + address. (In "tcpwrappers" terminology this is called + <code>PARANOID</code>.)</p> + + <p>Regardless of the setting, when <a + href="mod_access.html">mod_access</a> is used for controlling + access by hostname, a double reverse lookup will be performed. + This is necessary for security. Note that the result of this + double-reverse isn't generally available unless you set + <code>HostnameLookups double</code>. For example, if only + <code>HostnameLookups on</code> and a request is made to an + object that is protected by hostname restrictions, regardless + of whether the double-reverse fails or not, CGIs will still be + passed the single-reverse result in + <code>REMOTE_HOST</code>.</p> + + <p>The default for this directive was previously + <code>on</code> in versions of Apache prior to 1.3. It was + changed to <code>off</code> in order to save the network + traffic for those sites that don't truly need the reverse + lookups done. It is also better for the end users because they + don't have to suffer the extra latency that a lookup entails. + Heavily loaded sites should leave this directive + <code>off</code>, since DNS lookups can take considerable + amounts of time. The utility <a + href="../programs/logresolve.html">logresolve</a>, provided in + the <em>/support</em> directory, can be used to look up host + names from logged IP addresses offline.</p> + <hr /> + + <h2><a id="identitycheck" name="identitycheck">IdentityCheck + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> IdentityCheck + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>IdentityCheck + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive enables RFC1413-compliant logging of the + remote user name for each connection, where the client machine + runs identd or something similar. This information is logged in + the access log.</p> + + <p>The information should not be trusted in any way except for + rudimentary usage tracking.</p> + + <p>Note that this can cause serious latency problems accessing + your server since every request requires one of these lookups + to be performed. When firewalls are involved each lookup might + possibly fail and add 30 seconds of latency to each hit. So in + general this is not very useful on public servers accessible + from the Internet.</p> + <hr /> + + <h2><a id="ifdefine" name="ifdefine"><IfDefine> + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <IfDefine + [!]<em>parameter-name</em>> <em>...</em> + </IfDefine><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> all<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> <IfDefine> + is only available in 1.3.1 and later. + + <p>The <IfDefine <em>test</em>>...</IfDefine> + section is used to mark directives that are conditional. The + directives within an IfDefine section are only processed if the + <em>test</em> is true. If <em>test</em> is false, everything + between the start and end markers is ignored.</p> + + <p>The <em>test</em> in the <IfDefine> section directive + can be one of two forms:</p> + + <ul> + <li><em>parameter-name</em></li> + + <li><code>!</code><em>parameter-name</em></li> + </ul> + + <p>In the former case, the directives between the start and end + markers are only processed if the parameter named + <em>parameter-name</em> is defined. The second format reverses + the test, and only processes the directives if + <em>parameter-name</em> is <strong>not</strong> defined.</p> + + <p>The <em>parameter-name</em> argument is a define as given on + the <code>httpd</code> command line via + <code>-D</code><em>parameter-</em>, at the time the server was + started.</p> + + <p><IfDefine> sections are nest-able, which can be used + to implement simple multiple-parameter tests. Example:</p> +<pre> + $ httpd -DReverseProxy ... + + # httpd.conf + <IfDefine ReverseProxy> + LoadModule rewrite_module libexec/mod_rewrite.so + LoadModule proxy_module libexec/libproxy.so + </IfDefine> +</pre> + <hr /> + + <h2><a id="ifmodule" name="ifmodule"><IfModule> + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <IfModule + [!]<em>module-name</em>> <em>...</em> + </IfModule><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> all<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> IfModule is only + available in 1.2 and later. + + <p>The <IfModule <em>test</em>>...</IfModule> + section is used to mark directives that are conditional. The + directives within an IfModule section are only processed if the + <em>test</em> is true. If <em>test</em> is false, everything + between the start and end markers is ignored.</p> + + <p>The <em>test</em> in the <IfModule> section directive + can be one of two forms:</p> + + <ul> + <li><em>module name</em></li> + + <li>!<em>module name</em></li> + </ul> + + <p>In the former case, the directives between the start and end + markers are only processed if the module named <em>module + name</em> is included in Apache -- either compiled in or + dynamically loaded using <a + href="mod_so.html#loadmodule">LoadModule</a>. The second format + reverses the test, and only processes the directives if <em>module + name</em> is <strong>not</strong> included.</p> + + <p>The <em>module name</em> argument is the file name of the + module, at the time it was compiled. + For example, <code>mod_rewrite.c</code>.</p> + + <p><IfModule> sections are nest-able, which can be used + to implement simple multiple-module tests.</p> + <hr /> + + <h2><a id="include" name="include">Include directive</a></h2> + <strong>Syntax:</strong> Include + <em>file-path</em>|<em>directory-path</em>|<em>wildcard-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Include is only + available in Apache 1.3 and later. Wildcards were introduced in + version 1.3.27. + + <p>This directive allows inclusion of other configuration files + from within the server configuration files.</p> + + <p>The file path specified may be a fully qualified path (i.e. + starting with a slash), or may be relative to the + <code>ServerRoot</code> directory.</p> + + <p>New in Apache 1.3.13 is the feature that if + <code>Include</code> points to a directory, rather than a file, + Apache will read all files in that directory, and any + subdirectory, and parse those as configuration files.</p> + <p>By using a wildcard this can be further limited to, say, + just the '*.conf' files. + </p> + <p>Examples:</p> + <blockquote> + <code>Include /usr/local/apache/conf/ssl.conf<br /> + Include /usr/local/apache/conf/vhosts/ + </code> + </blockquote> + + <p>Or, providing paths relative to your <code>ServerRoot</code> + directory:</p> + + <blockquote> + <code>Include conf/ssl.conf<br /> + Include conf/vhosts/ + </code> + </blockquote> + + <p>Make sure that an included directory does not contain any stray + files, such as editor temporary files, for example, as Apache will + attempt to read them in and use the contents as configuration + directives, which may cause the server to fail on start up. + Running <code>apachectl configtest</code> will give you a list of + the files that are being processed during the configuration + check:</p> + +<pre> +root@host# apachectl configtest + Processing config directory: /usr/local/apache/conf/vhosts + Processing config file: /usr/local/apache/conf/vhosts/vhost1 + Processing config file: /usr/local/apache/conf/vhosts/vhost2 +Syntax OK +</pre> + + <p>This will help in verifying that you are getting only the files + that you intended as part of your configuration.</p> + + <p><strong>See also</strong>: <a + href="../programs/apachectl.html">apachectl</a></p> + + <hr /> + + <h2><a id="keepalive" name="keepalive">KeepAlive + directive</a></h2> + <strong>Syntax: (Apache 1.1)</strong> KeepAlive + <em>max-requests</em><br /> + <strong>Default: (Apache 1.1)</strong> <code>KeepAlive + 5</code><br /> + <strong>Syntax: (Apache 1.2)</strong> KeepAlive on|off<br /> + <strong>Default: (Apache 1.2)</strong> <code>KeepAlive + On</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> KeepAlive is + only available in Apache 1.1 and later. + + <p>The Keep-Alive extension to HTTP/1.0 and the persistent + connection feature of HTTP/1.1 provide long-lived HTTP sessions + which allow multiple requests to be sent over the same TCP + connection. In some cases this has been shown to result in an + almost 50% speedup in latency times for HTML documents with + many images. To enable Keep-Alive connections in Apache 1.2 and + later, set <code>KeepAlive On</code>.</p> + + <p>For HTTP/1.0 clients, Keep-Alive connections will only be + used if they are specifically requested by a client. In + addition, a Keep-Alive connection with an HTTP/1.0 client can + only be used when the length of the content is known in + advance. This implies that dynamic content such as CGI output, + SSI pages, and server-generated directory listings will + generally not use Keep-Alive connections to HTTP/1.0 clients. + For HTTP/1.1 clients, persistent connections are the default + unless otherwise specified. If the client requests it, chunked + encoding will be used in order to send content of unknown + length over persistent connections.</p> + + <p><strong>Apache 1.1 only</strong>: Set <em>max-requests</em> + to the maximum number of requests you want Apache to entertain + per connection. A limit is imposed to prevent a client from + hogging your server resources. Set this to <code>0</code> to + disable support. In Apache 1.2 and 1.3, this is controlled + through the MaxKeepAliveRequests directive instead.</p> + + <p>See also <a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a>.</p> + <hr /> + + <h2><a id="keepalivetimeout" + name="keepalivetimeout">KeepAliveTimeout directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> KeepAliveTimeout + <em>seconds</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>KeepAliveTimeout + 15</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> KeepAliveTimeout + is only available in Apache 1.1 and later. + + <p>The number of seconds Apache will wait for a subsequent + request before closing the connection. Once a request has been + received, the timeout value specified by the <a + href="#timeout"><code>Timeout</code></a> directive applies.</p> + + <p>Setting <code>KeepAliveTimeout</code> to a high value may + cause performance problems in heavily loaded servers. The + higher the timeout, the more server processes will be kept + occupied waiting on connections with idle clients.</p> + <hr /> + + <h2><a id="limit" name="limit"><Limit> directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Limit + <em>method</em> [<em>method</em>] ... > ... + </Limit><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> any<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>Access controls are normally effective for + <strong>all</strong> access methods, and this is the usual + desired behavior. <strong>In the general case, access control + directives should not be placed within a + <code><limit></code> section.</strong></p> + + <p>The purpose of the <Limit> directive is to restrict + the effect of the access controls to the nominated HTTP + methods. For all other methods, the access restrictions that + are enclosed in the <Limit> bracket <strong>will have no + effect</strong>. The following example applies the access + control only to the methods POST, PUT, and DELETE, leaving all + other methods unprotected:</p> + + <blockquote> + <code><Limit POST PUT DELETE><br /> + Require valid-user<br /> + </Limit></code> + </blockquote> + <p>The method names listed can be one or more of: GET, POST, PUT, + DELETE, CONNECT, OPTIONS, PATCH, PROPFIND, PROPPATCH, + MKCOL, COPY, MOVE, LOCK, and UNLOCK. <strong>The method name is + case-sensitive.</strong> If GET is used it will also restrict + HEAD requests. The TRACE method cannot be limited.</p> + + <p><strong>Warning:</strong> A <a + href="#limitexcept"><LimitExcept></a> section should + always be used in preference to a <a + href="#limit"><Limit></a> section when restricting access, + since a <a href="#limitexcept"><LimitExcept></a> section + provides protection against arbitrary methods.</p> + + <hr /> + + <h2><a id="limitexcept" name="limitexcept"><LimitExcept> + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <LimitExcept + <em>method</em> [<em>method</em>] ... > ... + </LimitExcept><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> any<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3.5 and later + + <p><LimitExcept> and </LimitExcept> are used to + enclose a group of access control directives which will then + apply to any HTTP access method <strong>not</strong> listed in + the arguments; <em>i.e.</em>, it is the opposite of a <a + href="#limit"><Limit></a> section and can be used to + control both standard and nonstandard/unrecognized methods. See + the documentation for <a href="#limit"><Limit></a> for + more details.</p> + + <p>For example:</p> + + <pre> + <LimitExcept POST GET> + Require valid-user + </LimitExcept> + </pre> + + <hr /> + + <h2><a id="limitinternalrecursion" + name="limitinternalrecursion">LimitInternalRecursion directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitInternalRecursion + <em>number</em> [<em>number</em>]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LimitInternalRecursion + 20</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LimitInternalRecursion + is only available in Apache 1.3.28 and later. + + <p>An internal redirect happens, for example, when using the <a + href="mod_actions.html#action">Action</a> directive, which internally + redirects the original request to a CGI script. A subrequest is Apache's + mechanism to find out what would happen for some URI if it were requested. + For example, <a href="mod_dir.html">mod_dir</a> uses subrequests to look + for the files listed in the <a + href="mod_dir.html#directoryindex">DirectoryIndex</a> + directive.</p> + + <p><code>LimitInternalRecursion</code> prevents the server + from crashing when entering an infinite loop of internal redirects or + subrequests. Such loops are usually caused by misconfigurations.</p> + + <p>The directive stores two different limits, which are evaluated on + per-request basis. The first <em>number</em> is the maximum number of + internal redirects, that may follow each other. The second <em>number</em> + determines, how deep subrequests may be nested. If you specify only one + <em>number</em>, it will be assigned to both limits. A value of + <code>0</code> means "unlimited".</p> + + <p><strong>Example</strong></p> + <pre> + LimitInternalRecursion 5 + </pre> + + <hr /> + + <h2><a id="limitrequestbody" + name="limitrequestbody">LimitRequestBody directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestBody + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LimitRequestBody + 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LimitRequestBody + is only available in Apache 1.3.2 and later. + + <p>This directive specifies the number of <em>bytes</em> from 0 + (meaning unlimited) to 2147483647 (2GB) that are allowed in a + request body.</p> + + <p>The LimitRequestBody directive allows the user to set a + limit on the allowed size of an HTTP request message body + within the context in which the directive is given (server, + per-directory, per-file or per-location). If the client request + exceeds that limit, the server will return an error response + instead of servicing the request. The size of a normal request + message body will vary greatly depending on the nature of the + resource and the methods allowed on that resource. CGI scripts + typically use the message body for passing form information to + the server. Implementations of the PUT method will require a + value at least as large as any representation that the server + wishes to accept for that resource.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service + attacks.</p> + + <p>If, for example, you are permitting file upload to a particular + location, and wich to limit the size of the uploaded file to 100K, + you might use the following directive:</p> + + <pre>LimitRequestBody 102400</pre> + + <hr /> + + <h2><a id="limitrequestfields" + name="limitrequestfields">LimitRequestFields directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestFields + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>LimitRequestFields 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + LimitRequestFields is only available in Apache 1.3.2 and later. + + + <p><em>Number</em> is an integer from 0 (meaning unlimited) to + 32767. The default value is defined by the compile-time + constant <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 as + distributed).</p> + + <p>The LimitRequestFields directive allows the server + administrator to modify the limit on the number of request + header fields allowed in an HTTP request. A server needs this + value to be larger than the number of fields that a normal + client request might include. The number of request header + fields used by a client rarely exceeds 20, but this may vary + among different client implementations, often depending upon + the extent to which a user has configured their browser to + support detailed content negotiation. Optional HTTP extensions + are often expressed using request header fields.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks. + The value should be increased if normal clients see an error + response from the server that indicates too many fields were + sent in the request.</p> + + <p>For example:</p> + + <pre>LimitRequestFields 50</pre> + + <hr /> + + <h2><a id="limitrequestfieldsize" + name="limitrequestfieldsize">LimitRequestFieldsize + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestFieldsize + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>LimitRequestFieldsize 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + LimitRequestFieldsize is only available in Apache 1.3.2 and + later. + + <p>This directive specifies the number of <em>bytes</em> from 0 + to the value of the compile-time constant + <code>DEFAULT_LIMIT_REQUEST_FIELDSIZE</code> (8190 as + distributed) that will be allowed in an HTTP request + header.</p> + + <p>The LimitRequestFieldsize directive allows the server + administrator to reduce the limit on the allowed size of an + HTTP request header field below the normal input buffer size + compiled with the server. A server needs this value to be large + enough to hold any one header field from a normal client + request. The size of a normal request header field will vary + greatly among different client implementations, often depending + upon the extent to which a user has configured their browser to + support detailed content negotiation.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks.</p> + + <p>For example:</p> + + <pre>LimitRequestFieldSize 16380</pre> + + <p>Under normal conditions, the value should not be changed from + the default.</p> + <hr /> + + <h2><a id="limitrequestline" + name="limitrequestline">LimitRequestLine directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LimitRequestLine + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LimitRequestLine + 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LimitRequestLine + is only available in Apache 1.3.2 and later. + + <p>This directive sets the number of <em>bytes</em> from 0 to + the value of the compile-time constant + <code>DEFAULT_LIMIT_REQUEST_LINE</code> (8190 as distributed) + that will be allowed on the HTTP request-line.</p> + + <p>The LimitRequestLine directive allows the server + administrator to reduce the limit on the allowed size of a + client's HTTP request-line below the normal input buffer size + compiled with the server. Since the request-line consists of + the HTTP method, URI, and protocol version, the + LimitRequestLine directive places a restriction on the length + of a request-URI allowed for a request on the server. A server + needs this value to be large enough to hold any of its resource + names, including any information that might be passed in the + query part of a GET request.</p> + + <p>This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks.</p> + + <p>For example:</p> + + <pre>LimitRequestLine 16380</pre> + + <p>Under normal conditions, the value should not be changed from + the default.</p> + <hr /> + + <h2><a id="listen" name="listen">Listen directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Listen + [<em>IP-address</em>:]<em>port</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Listen is only + available in Apache 1.1 and later. + + <p>The Listen directive instructs Apache to listen to more than + one IP address or port; by default it responds to requests on + all IP interfaces, but only on the port given by the <code><a + href="#port">Port</a></code> directive.</p> + <tt>Listen</tt> can be used instead of <tt><a + href="#bindaddress">BindAddress</a></tt> and <tt>Port</tt>. It + tells the server to accept incoming requests on the specified + port or address-and-port combination. If the first format is + used, with a port number only, the server listens to the given + port on all interfaces, instead of the port given by the + <tt>Port</tt> directive. If an IP address is given as well as a + port, the server will listen on the given port and interface. + + <p>Note that you may still require a <tt>Port</tt> directive so + that URLs that Apache generates that point to your server still + work.</p> + + <p>Multiple Listen directives may be used to specify a number + of addresses and ports to listen to. The server will respond to + requests from any of the listed addresses and ports.</p> + + <p>For example, to make the server accept connections on both + port 80 and port 8000, use:</p> +<pre> + Listen 80 + Listen 8000 +</pre> + To make the server accept connections on two specified + interfaces and port numbers, use +<pre> + Listen 192.170.2.1:80 + Listen 192.170.2.5:8000 +</pre> + + <p><strong>See Also:</strong> <a href="../dns-caveats.html">DNS + Issues</a><br /> + <strong>See Also:</strong> <a href="../bind.html">Setting + which addresses and ports Apache uses</a><br /> + <strong>See Also:</strong> <a + href="http://httpd.apache.org/info/known_bugs.html#listenbug">Known + Bugs</a></p> + <hr /> + + <h2><a id="listenbacklog" name="listenbacklog">ListenBacklog + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ListenBacklog + <em>backlog</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ListenBacklog + 511</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ListenBacklog is + only available in Apache versions after 1.2.0. + + <p>The maximum length of the queue of pending connections. + Generally no tuning is needed or desired, however on some + systems it is desirable to increase this when under a TCP SYN + flood attack. See the backlog parameter to the + <code>listen(2)</code> system call.</p> + + <p>This will often be limited to a smaller number by the + operating system. This varies from OS to OS. Also note that + many OSes do not use exactly what is specified as the backlog, + but use a number based on (but normally larger than) what is + set.</p> + <hr /> + + <h2><a id="location" name="location"><Location> + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <Location + <em>URL-path</em>|<em>URL</em>> ... </Location><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Location is only + available in Apache 1.1 and later. + + <p>The <Location> directive provides for access control + by URL. It is similar to the <a + href="#directory"><Directory></a> directive, and starts a + subsection which is terminated with a </Location> + directive. <code><Location></code> sections are processed + in the order they appear in the configuration file, after the + <Directory> sections and <code>.htaccess</code> files are + read, and after the <Files> sections.</p> + + <p>Note that URLs do not have to line up with the filesystem at + all, it should be emphasized that <Location> operates + completely outside the filesystem.</p> + + <p>For all origin (non-proxy) requests, the URL to be matched + is of the form <code>/path/</code>, and you should not include + any <code>http://servername</code> prefix. For proxy requests, + the URL to be matched is of the form + <code>scheme://servername/path</code>, and you must include the + prefix.</p> + + <p>The URL may use wildcards In a wild-card string, `?' matches + any single character, and `*' matches any sequences of + characters.</p> + + <p><strong>Apache 1.2 and above:</strong> Extended regular + expressions can also be used, with the addition of the + <code>~</code> character. For example:</p> +<pre> + <Location ~ "/(extra|special)/data"> +</pre> + + <p>would match URLs that contained the substring "/extra/data" + or "/special/data". In Apache 1.3 and above, a new directive <a + href="#locationmatch"><LocationMatch></a> exists which + behaves identical to the regex version of + <code><Location></code>.</p> + + <p>The <code>Location</code> functionality is especially useful + when combined with the <code><a + href="mod_mime.html#sethandler">SetHandler</a></code> + directive. For example, to enable status requests, but allow + them only from browsers at foo.com, you might use:</p> +<pre> + <Location /status> + SetHandler server-status + Order Deny,Allow + Deny from all + Allow from .foo.com + </Location> +</pre> + + <p><strong>Apache 1.3 and above note about / (slash)</strong>: + The slash character has special meaning depending on where in a + URL it appears. People may be used to its behavior in the + filesystem where multiple adjacent slashes are frequently + collapsed to a single slash (<em>i.e.</em>, + <code>/home///foo</code> is the same as + <code>/home/foo</code>). In URL-space this is not necessarily + true. The <code><LocationMatch></code> directive and the + regex version of <code><Location></code> require you to + explicitly specify multiple slashes if that is your intention. + For example, <code><LocationMatch ^/abc></code> would + match the request URL <code>/abc</code> but not the request URL + <code>//abc</code>. The (non-regex) + <code><Location></code> directive behaves similarly when + used for proxy requests. But when (non-regex) + <code><Location></code> is used for non-proxy requests it + will implicitly match multiple slashes with a single slash. For + example, if you specify <code><Location /abc/def></code> + and the request is to <code>/abc//def</code> then it will + match.</p> + + <p><strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <hr /> + + <h2><a id="locationmatch" + name="locationmatch"><LocationMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <LocationMatch + <em>regex</em>> ... </LocationMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LocationMatch is + only available in Apache 1.3 and later. + + <p>The <LocationMatch> directive provides for access + control by URL, in an identical manner to <a + href="#location"><Location></a>. However, it takes a + regular expression as an argument instead of a simple string. + For example:</p> +<pre> + <LocationMatch "/(extra|special)/data"> +</pre> + + <p>would match URLs that contained the substring "/extra/data" + or "/special/data".</p> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received + <hr /> + + <h2><a id="lockfile" name="lockfile">LockFile + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LockFile + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LockFile + logs/accept.lock</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The LockFile directive sets the path to the lockfile used + when Apache is compiled with either USE_FCNTL_SERIALIZED_ACCEPT + or USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally + be left at its default value. The main reason for changing it + is if the <code>logs</code> directory is NFS mounted, since + <strong>the lockfile must be stored on a local disk</strong>. + The PID of the main server process is automatically appended to + the filename.</p> + + <p><strong>SECURITY:</strong> It is best to avoid putting this + file in a world writable directory such as + <code>/var/tmp</code> because someone could create a denial of + service attack and prevent the server from starting by creating + a lockfile with the same name as the one the server will try to + create.</p> + <hr /> + + <h2><a id="loglevel" name="loglevel">LogLevel + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LogLevel + <em>level</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LogLevel + warn</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> LogLevel is only + available in 1.3 or later. + + <p>LogLevel adjusts the verbosity of the messages recorded in + the error logs (see <a href="#errorlog">ErrorLog</a> + directive). The following <em>level</em>s are available, in + order of decreasing significance:</p> + + <table> + <tr> + <th align="left"><strong>Level</strong> </th> + + <th align="left"><strong>Description</strong> </th> + <th align="left"><strong>Example</strong> </th> + </tr> + + <tr> + <td><code>emerg</code> </td> + + <td>Emergencies - system is unusable.</td> + <td>"Child cannot open lock file. Exiting"</td> + </tr> + + <tr> + <td><code>alert</code> </td> + + <td>Action must be taken immediately.</td> + <td>"getpwuid: couldn't determine user name from uid"</td> + </tr> + + <tr> + <td><code>crit</code> </td> + + <td>Critical Conditions.</td> + <td>"socket: Failed to get a socket, exiting child"</td> + </tr> + + <tr> + <td><code>error</code> </td> + + <td>Error conditions.</td> + <td>"Premature end of script headers"</td> + </tr> + + <tr> + <td><code>warn</code> </td> + + <td>Warning conditions.</td> + <td>"child process 1234 did not exit, sending another + SIGHUP"</td> + </tr> + + <tr> + <td><code>notice</code> </td> + + <td>Normal but significant condition.</td> + <td>"httpd: caught SIGBUS, attempting to dump core in + ..."</td> + </tr> + + <tr> + <td><code>info</code> </td> + + <td>Informational.</td> + <td>"Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..."</td> + </tr> + + <tr> + <td><code>debug</code> </td> + + <td>Debug-level messages</td> + <td>"Opening config file ..."</td> + </tr> + </table> + + <p>When a particular level is specified, messages from all + other levels of higher significance will be reported as well. + <em>E.g.</em>, when <code>LogLevel info</code> is specified, + then messages with log levels of <code>notice</code> and + <code>warn</code> will also be posted.</p> + + <p>Using a level of at least <code>crit</code> is + recommended.</p> + + <p>For example:</p> + + <pre>LogLevel notice</pre> + + <p><strong>NOTE:</strong> When logging to a regular file messages + of the level <code>notice</code> cannot be suppressed and thus are + always logged. However, this doesn't apply when logging is done + using <code>syslog</code>.</p> + + <hr /> + + <h2><a id="maxclients" name="maxclients">MaxClients + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxClients + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MaxClients + 256</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MaxClients directive sets the limit on the number of + simultaneous requests that can be supported; not more than this + number of child server processes will be created. To configure + more than 256 clients, you must edit the HARD_SERVER_LIMIT + entry in httpd.h and recompile.</p> + + <p>Any connection attempts over the MaxClients limit will + normally be queued, up to a number based on the <a + href="#listenbacklog">ListenBacklog</a> directive. Once a child + process is freed at the end of a different request, the + connection will then be serviced.</p> + <hr /> + + <h2><a id="maxkeepaliverequests" + name="maxkeepaliverequests">MaxKeepAliveRequests + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxKeepAliveRequests + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>MaxKeepAliveRequests 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Only available + in Apache 1.2 and later. + + <p>The MaxKeepAliveRequests directive limits the number of + requests allowed per connection when <a + href="#keepalive">KeepAlive</a> is on. If it is set to + "<code>0</code>", unlimited requests will be allowed. We + recommend that this setting be kept to a high value for maximum + server performance. In Apache 1.1, this is controlled through + an option to the KeepAlive directive.</p> + + <p>For example</p> + + <pre>MaxKeepAliveRequests 500</pre> + + <hr /> + + <h2><a id="maxrequestsperchild" + name="maxrequestsperchild">MaxRequestsPerChild + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxRequestsPerChild + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>MaxRequestsPerChild 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MaxRequestsPerChild directive sets the limit on the + number of requests that an individual child server process will + handle. After MaxRequestsPerChild requests, the child process + will die. If MaxRequestsPerChild is 0, then the process will + never expire.</p> + + <p>Setting MaxRequestsPerChild to a non-zero limit has two + beneficial effects:</p> + + <ul> + <li>it limits the amount of memory that process can consume + by (accidental) memory leakage;</li> + + <li>by giving processes a finite lifetime, it helps reduce + the number of processes when the server load reduces.</li> + </ul> + + <p>However, on Win32, It is recommended that this be set to 0. + If it is set to a non-zero value, when the request count is + reached, the child process exits, and is respawned, at which + time it re-reads the configuration files. This can lead to + unexpected behavior if you have modified a configuration file, + but are not expecting the changes to be applied yet. See also + <a href="#threadsperchild">ThreadsPerChild</a>.</p> + + <p><strong>NOTE:</strong> For <em>KeepAlive</em> requests, only + the first request is counted towards this limit. In effect, it + changes the behavior to limit the number of + <em>connections</em> per child.</p> + <hr /> + + <h2><a id="maxspareservers" + name="maxspareservers">MaxSpareServers directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxSpareServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MaxSpareServers + 10</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MaxSpareServers directive sets the desired maximum + number of <em>idle</em> child server processes. An idle process + is one which is not handling a request. If there are more than + MaxSpareServers idle, then the parent process will kill off the + excess processes.</p> + + <p>Tuning of this parameter should only be necessary on very + busy sites. Setting this parameter to a large number is almost + always a bad idea.</p> + + <p>Note that this is the maximum number of <em>spare</em> servers, + not the maximum total number of client requests that can be handled + at one time. If you wish to limit that number, see the <a + href="#maxclients">MaxClients</a> directive.</p> + + <p>This directive has no effect when used with the Apache Web + server on a Microsoft Windows platform.</p> + + <p>See also <a href="#minspareservers">MinSpareServers</a>, + <a href="#startservers">StartServers</a>, and <a + href="#maxclients">MaxClients</a>.</p> + <hr /> + + <h2><a id="minspareservers" + name="minspareservers">MinSpareServers directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MinSpareServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MinSpareServers + 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The MinSpareServers directive sets the desired minimum + number of <em>idle</em> child server processes. An idle process + is one which is not handling a request. If there are fewer than + MinSpareServers idle, then the parent process creates new + children at a maximum rate of 1 per second.</p> + + <p>Tuning of this parameter should only be necessary on very + busy sites. Setting this parameter to a large number is almost + always a bad idea.</p> + + <p>Note that setting this directive to some value <i>m</i> ensures + that you will always have at least <i>n + m</i> <code>httpd</code> + processes running when you have <i>n</i> active client requests.</p> + + <p>This directive has no effect on Microsoft Windows.</p> + + <p>See also <a href="#maxspareservers">MaxSpareServers</a>, + <a href="#startservers">StartServers</a>, and <a + href="#maxclients">MaxClients</a>.</p> + <hr /> + + <h2><a id="namevirtualhost" + name="namevirtualhost">NameVirtualHost directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> NameVirtualHost + <em>addr</em>[:<em>port</em>]<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> NameVirtualHost + is only available in Apache 1.3 and later + + <p>The NameVirtualHost directive is a required directive if you + want to configure <a href="../vhosts/">name-based virtual + hosts</a>.</p> + + <p>Although <em>addr</em> can be hostname it is recommended + that you always use an IP address or wildcard, + <em>e.g.</em></p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44</code> + </blockquote> + With the NameVirtualHost directive you specify the IP address + on which the server will receive requests for the name-based + virtual hosts. This will usually be the address to which your + name-based virtual host names resolve. In cases where a + firewall or other proxy receives the requests and forwards them + on a different IP address to the server, you must specify the + IP address of the physical interface on the machine which will + be servicing the requests. If you have multiple name-based + hosts on multiple addresses, repeat the directive for each + address. + + <p>Note: the "main server" and any _default_ servers will + <strong>never</strong> be served for a request to a + NameVirtualHost IP Address (unless for some reason you specify + NameVirtualHost but then don't define any VirtualHosts for that + address).</p> + + <p>Optionally you can specify a port number on which the + name-based virtual hosts should be used, <em>e.g.</em></p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44:8080</code> + </blockquote> + In Apache 1.3.13 and greater you can specify a <code>*</code> + for the <em>addr</em>. This creates a wildcard NameVirtualHost + which will match connections to any address that isn't + configured with a more specific NameVirtualHost directive or <a + href="#virtualhost"><VirtualHost></a> section. This is + useful if you want only name-based virtual hosts and you don't + want to hard-code the server's IP address into the + configuration file. + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a></p> + <hr /> + + <h2><a id="options" name="options">Options directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Options + [+|-]<em>option</em> [[+|-]<em>option</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The Options directive controls which server features are + available in a particular directory.</p> + + <p><em>option</em> can be set to <code>None</code>, in which + case none of the extra features are enabled, or one or more of + the following:</p> + + <dl> + <dt>All</dt> + + <dd>All options except for MultiViews. This is the default + setting.</dd> + + <dt>ExecCGI</dt> + + <dd> + Execution of CGI scripts is permitted.</dd> + + <dt>FollowSymLinks</dt> + + <dd> + + The server will follow symbolic links in this + directory.<br /> + <strong>Note</strong>: even though the server follows the + symlink it does <em>not</em> change the pathname used to + match against <code><Directory></code> sections.<br /> + <strong>Note</strong>: this option gets ignored if set + inside a <Location> section.</dd> + + <dt>Includes</dt> + + <dd> + Server-side includes are permitted.</dd> + + <dt>IncludesNOEXEC</dt> + + <dd> + + Server-side includes are permitted, but the #exec command and + #exec CGI are disabled. It is still possible to #include + virtual CGI scripts from ScriptAliase'd directories.</dd> + + <dt>Indexes</dt> + + <dd> + If a URL which maps to a directory is requested, and the + there is no DirectoryIndex (<em>e.g.</em>, index.html) in + that directory, then the server will return a formatted + listing of the directory.</dd> + + <dt>MultiViews</dt> + + <dd> + <a href="../content-negotiation.html">Content negotiated</a> + MultiViews are allowed.</dd> + + <dt>SymLinksIfOwnerMatch</dt> + + <dd> + + The server will only follow symbolic links for which the + target file or directory is owned by the same user id as the + link.<br /> + <strong>Note</strong>: this option gets ignored if set + inside a <Location> section.</dd> + </dl> + Normally, if multiple <code>Options</code> could apply to a + directory, then the most specific one is taken complete; the + options are not merged. However if <em>all</em> the options on + the <code>Options</code> directive are preceded by a + or - + symbol, the options are merged. Any options preceded by a + are + added to the options currently in force, and any options + preceded by a - are removed from the options currently in + force. + + <p>For example, without any + and - symbols:</p> + + <blockquote> + <code><Directory /web/docs><br /> + Options Indexes FollowSymLinks<br /> + </Directory><br /> + <Directory /web/docs/spec><br /> + Options Includes<br /> + </Directory></code> + </blockquote> + then only <code>Includes</code> will be set for the + /web/docs/spec directory. However if the second + <code>Options</code> directive uses the + and - symbols: + + <blockquote> + <code><Directory /web/docs><br /> + Options Indexes FollowSymLinks<br /> + </Directory><br /> + <Directory /web/docs/spec><br /> + Options +Includes -Indexes<br /> + </Directory></code> + </blockquote> + then the options <code>FollowSymLinks</code> and + <code>Includes</code> are set for the /web/docs/spec directory. + + + <p><strong>Note:</strong> Using <code>-IncludesNOEXEC</code> or + <code>-Includes</code> disables server-side includes completely + regardless of the previous setting.</p> + + <p>The default in the absence of any other settings is + <code>All</code>.</p> + <hr /> + + <h2><a id="pidfile" name="pidfile">PidFile directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> PidFile + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>PidFile + logs/httpd.pid</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The PidFile directive sets the file to which the server + records the process id of the daemon. If the filename does not + begin with a slash (/) then it is assumed to be relative to the + <a href="#serverroot">ServerRoot</a>. The PidFile is only used + in <a href="#servertype">standalone</a> mode.</p> + + <p>It is often useful to be able to send the server a signal, + so that it closes and then reopens its <a + href="#errorlog">ErrorLog</a> and TransferLog, and re-reads its + configuration files. This is done by sending a SIGHUP (kill -1) + signal to the process id listed in the PidFile.</p> + + <p>The PidFile is subject to the same warnings about log file + placement and <a + href="../misc/security_tips.html#serverroot">security</a>.</p> + <hr /> + + <h2><a id="port" name="port">Port directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Port + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>Port + 80</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p><em>Number</em> is a number from 0 to 65535; some port + numbers (especially below 1024) are reserved for particular + protocols. See <code>/etc/services</code> for a list of some + defined ports; the standard port for the http protocol is + 80.</p> + + <p>The Port directive has two behaviors, the first of which is + necessary for NCSA backwards compatibility (and which is + confusing in the context of Apache).</p> + + <ul> + <li>In the absence of any <a href="#listen">Listen</a> or <a + href="#bindaddress">BindAddress</a> directives specifying a + port number, a Port directive given in the "main server" + (<em>i.e.</em>, outside any <a + href="#virtualhost"><VirtualHost></a> section) sets the + network port on which the server listens. If there are any + Listen or BindAddress directives specifying + <code>:number</code> then Port has no effect on what address + the server listens at.</li> + + <li>The Port directive sets the <code>SERVER_PORT</code> + environment variable (for <a href="mod_cgi.html">CGI</a> and + <a href="mod_include.html">SSI</a>), and is used when the + server must generate a URL that refers to itself (for example + when creating an external redirect to itself). This behavior + is modified by <a + href="#usecanonicalname">UseCanonicalName</a>.</li> + </ul> + The primary behavior of Port should be considered to be + similar to that of the <a href="#servername">ServerName</a> + directive. The ServerName and Port together specify what you + consider to be the <em>canonical</em> address of the server. + (See also <a href="#usecanonicalname">UseCanonicalName</a>.) + + <p>Port 80 is one of Unix's special ports. All ports numbered + below 1024 are reserved for system use, <em>i.e.</em>, regular + (non-root) users cannot make use of them; instead they can only + use higher port numbers. To use port 80, you must start the + server from the root account. After binding to the port and + before accepting requests, Apache will change to a low + privileged user as set by the <a href="#user">User + directive</a>.</p> + + <p>If you cannot use port 80, choose any other unused port. + Non-root users will have to choose a port number higher than + 1023, such as 8000.</p> + + <p>SECURITY: if you do start the server as root, be sure not to + set <a href="#user">User</a> to root. If you run the server as + root whilst handling connections, your site may be open to a + major security attack.</p> + <hr /> + + <h2><a id="protocolreqcheck" name="protocolreqcheck">ProtocolReqCheck + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ProtocolReqCheck + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ProtocolReqCheck + on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config + <br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + ProtocolReqCheck is only available in Apache 1.3.27 and later. + + <p>This directive enables strict checking of the Protocol field + in the Request line. Versions of Apache prior to 1.3.26 would + silently accept bogus Protocols (such as <code>HTTP-1.1</code>) + and assume <code>HTTP/1.0</code>. Instead, now the Protocol field + must be valid. If the pre-1.3.26 behavior is desired or required, + it can be enabled via setting <code>ProtocolReqCheck off</code>. + </p> + + <hr /> + + <h2><a id="require" name="require">Require directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Require + <em>entity-name</em> [<em>entity-name</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>This directive selects which authenticated users can access + a resource. The allowed syntaxes are:</p> + + <ul> + <li> + Require user <em>userid</em> [<em>userid</em>] ... + + <p>Only the named users can access the resource.</p> + </li> + + <li> + Require group <em>group-name</em> [<em>group-name</em>] ... + + + <p>Only users in the named groups can access the + resource.</p> + </li> + + <li> + Require valid-user + + <p>All valid users can access the resource.</p> + </li> + <li>file-owner + <p>Only the user, whose name matches the system's name for + the file owner, can access the resource.<br> + [Available after Apache 1.3.20]</p> + </li> + <li>file-group + <p>Only the members of the group, whose name matches the + system's name of the file owner group, can access the + resource.<br>[Available after Apache 1.3.20]</p> + </li> + </ul> + + <p>Require must be accompanied by <a + href="#authname">AuthName</a> and <a + href="#authtype">AuthType</a> directives, and directives such + as <a href="mod_auth.html#authuserfile">AuthUserFile</a> and <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> (to define + users and groups) in order to work correctly. Example:</p> + + <blockquote> + <code>AuthType Basic<br /> + AuthName "Restricted Directory"<br /> + AuthUserFile /web/users<br /> + AuthGroupFile /web/groups<br /> + Require group admin<br /> + </code> + </blockquote> + Access controls which are applied in this way are effective for + <strong>all</strong> methods. <strong>This is what is normally + desired.</strong> If you wish to apply access controls only to + specific methods, while leaving other methods unprotected, then + place the <code>Require</code> statement into a <a + href="#limit"><Limit></a> section + + <p>See also <a href="#satisfy">Satisfy</a> and <a + href="mod_access.html">mod_access</a>.</p> + <hr /> + + <h2><a id="resourceconfig" name="resourceconfig">ResourceConfig + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ResourceConfig + <em>file-path</em>|<em>directory-path</em>|<em>wildcard-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ResourceConfig + conf/srm.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The ability to + specify a directory, rather than a file name, is only available in + Apache 1.3.13 and later. + + <p>The server will read this file for more directives after + reading the httpd.conf file. <em>File-path</em> is relative to + the <a href="#serverroot">ServerRoot</a>. This feature can be + disabled using:</p> + + <blockquote> + <code>ResourceConfig /dev/null</code> + </blockquote> + Or, on Win32 servers, + + <blockquote> + <code>ResourceConfig nul</code> + </blockquote> + <p>Historically, this file contained most directives except for + server configuration directives and <a + href="#directory"><Directory></a> sections; in fact it + can now contain any server directive allowed in the <em>server + config</em> context. However, since Apache version 1.3.4, the + default <code>srm.conf</code> file which ships with Apache contains + only comments, and all directives are placed in the main server + configuration file, <code>httpd.conf</code>.</p> + + <p>If <code>ResourceConfig</code> points to a directory, rather than + a file, Apache will read all files in that directory, and any + subdirectory, and parse those as configuration files. + </p> + <p>Alternatively you can use a wildcard to limit the scope; i.e + to only *.conf files. + </p> + <p>Note that by default <em>any</em> file in the specified + directory will be loaded as a configuration file. + </p> + <p>So make sure that you don't have stray files in + this directory by mistake, such as temporary files created by your + editor, for example.</p> + + <p>See also <a href="#accessconfig">AccessConfig</a>.</p> + <hr /> + + <h2><a id="rlimit" name="rlimit">RLimitCPU</a> <a + id="rlimitcpu" name="rlimitcpu">directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RLimitCPU + <em>number</em>|max [<em>number</em>|max] <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RLimitCPU is + only available in Apache 1.2 and later + + <p>Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or <code>max</code> to indicate to the server that the limit + should be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.</p> + + <p>This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.</p> + + <p>CPU resource limits are expressed in seconds per + process.</p> + + <p>See also <a href="#rlimitmem">RLimitMEM</a> or <a + href="#rlimitnproc">RLimitNPROC</a>.</p> + <hr /> + + <h2><a id="rlimitmem" name="rlimitmem">RLimitMEM + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RLimitMEM + <em>number</em>|max [<em>number</em>|max]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RLimitMEM is + only available in Apache 1.2 and later + + <p>Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or <code>max</code> to indicate to the server that the limit + should be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.</p> + + <p>This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.</p> + + <p>Memory resource limits are expressed in bytes per + process.</p> + + <p>See also <a href="#rlimitcpu">RLimitCPU</a> or <a + href="#rlimitnproc">RLimitNPROC</a>.</p> + <hr /> + + <h2><a id="rlimitnproc" name="rlimitnproc">RLimitNPROC + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RLimitNPROC + <em>number</em>|max [<em>number</em>|max]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RLimitNPROC is + only available in Apache 1.2 and later + + <p>Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or <code>max</code> to indicate to the server that the limit + should be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.</p> + + <p>This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.</p> + + <p>Process limits control the number of processes per user.</p> + + <p>Note: If CGI processes are <strong>not</strong> running + under userids other than the web server userid, this directive + will limit the number of processes that the server itself can + create. Evidence of this situation will be indicated by + <strong><em>cannot fork</em></strong> messages in the + error_log.</p> + + <p>See also <a href="#rlimitmem">RLimitMEM</a> or <a + href="#rlimitcpu">RLimitCPU</a>.</p> + <hr /> + + <h2><a id="satisfy" name="satisfy">Satisfy directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Satisfy any|all<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> Satisfy all<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Satisfy is only + available in Apache 1.2 and later + + <p>Access policy if both <code>Allow</code> and + <code>Require</code> used. The parameter can be either + <em>'all'</em> or <em>'any'</em>. This directive is only useful + if access to a particular area is being restricted by both + username/password <em>and</em> client host address. In this + case the default behavior ("all") is to require that the client + passes the address access restriction <em>and</em> enters a + valid username and password. With the "any" option the client + will be granted access if they either pass the host restriction + or enter a valid username and password. This can be used to + password restrict an area, but to let clients from particular + addresses in without prompting for a password.</p> + + <p>See also <a href="#require">Require</a> and <a + href="mod_access.html#allow">Allow</a>.</p> + <hr /> + + <h2><a id="scoreboardfile" name="scoreboardfile">ScoreBoardFile + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ScoreBoardFile + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ScoreBoardFile + logs/apache_status</code> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ScoreBoardFile directive is required on some + architectures to place a file that the server will use to + communicate between its children and the parent. The easiest + way to find out if your architecture requires a scoreboard file + is to run Apache and see if it creates the file named by the + directive. If your architecture requires it then you must + ensure that this file is not used at the same time by more than + one invocation of Apache.</p> + + <p>If you have to use a ScoreBoardFile then you may see + improved speed by placing it on a RAM disk. But be careful that + you heed the same warnings about log file placement and <a + href="../misc/security_tips.html">security</a>.</p> + + <p>Apache 1.2 and above:</p> + + <p>Linux 1.x users might be able to add <code>-DHAVE_SHMGET + -DUSE_SHMGET_SCOREBOARD</code> to the <code>EXTRA_CFLAGS</code> + in your <code>Configuration</code>. This might work with some + 1.x installations, but won't work with all of them. (Prior to + 1.3b4, <code>HAVE_SHMGET</code> would have sufficed.)</p> + + <p>SVR4 users should consider adding <code>-DHAVE_SHMGET + -DUSE_SHMGET_SCOREBOARD</code> to the <code>EXTRA_CFLAGS</code> + in your <code>Configuration</code>. This is believed to work, + but we were unable to test it in time for 1.2 release. (Prior + to 1.3b4, <code>HAVE_SHMGET</code> would have sufficed.)</p> + + <p><strong>See Also</strong>: <a + href="../stopping.html">Stopping and Restarting Apache</a></p> + <hr /> + + <h2><a id="scriptinterpretersource" + name="scriptinterpretersource">ScriptInterpreterSource + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ScriptInterpreterSource + registry|script<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>ScriptInterpreterSource script</code> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core (Windows only) + + <p>This directive is used to control how Apache 1.3.5 and later + finds the interpreter used to run CGI scripts. The default + technique is to use the interpreter pointed to by the #! line + in the script. Setting ScriptInterpreterSource registry will + cause the Windows Registry to be searched using the script file + extension (e.g., .pl) as a search key.</p> + <hr /> + + <h2><a id="sendbuffersize" name="sendbuffersize">SendBufferSize + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SendBufferSize + <em>bytes</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The server will set the TCP buffer size to the number of + bytes specified. Very useful to increase past standard OS + defaults on high speed high latency (<em>i.e.</em>, 100ms or + so, such as transcontinental fast pipes)</p> + <hr /> + + <h2><a id="serveradmin" name="serveradmin">ServerAdmin + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerAdmin + <em>email-address</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerAdmin sets the e-mail address that the server + includes in any error messages it returns to the client.</p> + + <p>It may be worth setting up a dedicated address for this, + <em>e.g.</em></p> + + <blockquote> + <code>ServerAdmin www-admin@foo.bar.com</code> + </blockquote> + as users do not always mention that they are talking about the + server! + <hr /> + + <h2><a id="serveralias" name="serveralias">ServerAlias + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerAlias + <em>hostname</em> [<em>hostname</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> virtual host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerAlias is + only available in Apache 1.1 and later. + + <p>The ServerAlias directive sets the alternate names for a + host, for use with <a + href="../vhosts/name-based.html">name-based virtual + hosts</a>.</p> + + <p>Example:</p> + + <pre> + <VirtualHost *> + ServerName server.domain.com + ServerAlias server server2.domain.com server2 + ... + </VirtualHost> + </pre> + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a></p> + <hr /> + + <h2><a id="servername" name="servername">ServerName + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerName + <em>fully-qualified-domain-name</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerName directive sets the hostname of the server; + this is used when creating redirection URLs. If it is not + specified, then the server attempts to deduce it from its own + IP address; however this may not work reliably, or may not + return the preferred hostname. For example:</p> + + <blockquote> + <code>ServerName www.example.com</code> + </blockquote> + would be used if the canonical (main) name of the actual + machine were <code>simple.example.com</code>. + + <p>If you are using <a + href="../vhosts/name-based.html">name-based virtual hosts</a>, + the <code>ServerName</code> inside a <a + href="#virtualhost"><code><VirtualHost></code></a> + section specifies what hostname must appear in the request's + <code>Host:</code> header to match this virtual host.</p> + + <p><strong>See Also</strong>:<br /> + <a href="../dns-caveats.html">DNS Issues</a><br /> + <a href="../vhosts/">Apache virtual host + documentation</a><br /> + <a href="#usecanonicalname">UseCanonicalName</a><br /> + <a href="#namevirtualhost">NameVirtualHost</a><br /> + <a href="#serveralias">ServerAlias</a><br /> + </p> + <hr /> + + <h2><a id="serverpath" name="serverpath">ServerPath + directive</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerPath + <em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> virtual host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerPath is + only available in Apache 1.1 and later. + + <p>The ServerPath directive sets the legacy URL pathname for a + host, for use with <a href="../vhosts/">name-based virtual + hosts</a>.</p> + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a></p> + <hr /> + + <h2><a id="serverroot" name="serverroot">ServerRoot + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerRoot + <em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerRoot + /usr/local/apache</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerRoot directive sets the directory in which the + server lives. Typically it will contain the subdirectories + <code>conf/</code> and <code>logs/</code>. Relative paths for + other configuration files are taken as relative to this + directory.</p> + + <p>See also <a href="../invoking.html">the <code>-d</code> + option to httpd</a>.</p> + + <p>See also <a href="../misc/security_tips.html#serverroot">the + security tips</a> for information on how to properly set + permissions on the ServerRoot.</p> + <hr /> + + <h2><a id="serversignature" + name="serversignature">ServerSignature directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerSignature + On|Off|EMail<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerSignature + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerSignature + is only available in Apache 1.3 and later. + + <p>The ServerSignature directive allows the configuration of a + trailing footer line under server-generated documents (error + messages, mod_proxy ftp directory listings, mod_info output, + ...). The reason why you would want to enable such a footer + line is that in a chain of proxies, the user often has no + possibility to tell which of the chained servers actually + produced a returned error message.<br /> + The <samp>Off</samp> setting, which is the default, suppresses + the error line (and is therefore compatible with the behavior + of Apache-1.2 and below). The <samp>On</samp> setting simply + adds a line with the server version number and <a + href="#servername">ServerName</a> of the serving virtual host, + and the <samp>EMail</samp> setting additionally creates a + "mailto:" reference to the <a + href="#serveradmin">ServerAdmin</a> of the referenced + document.</p> + <hr /> + + <h2><a id="servertokens" name="servertokens">ServerTokens + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerTokens + Minimal|ProductOnly|OS|Full<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerTokens + Full</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config <br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ServerTokens is + only available in Apache 1.3 and later; the + <code>ProductOnly</code> keyword is only available in versions + later than 1.3.12 + + <p>This directive controls whether <samp>Server</samp> response + header field which is sent back to clients includes a + description of the generic OS-type of the server as well as + information about compiled-in modules.</p> + + <dl> + <dt><code>ServerTokens Prod[uctOnly]</code></dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: + Apache</samp></dd> + + <dt><code>ServerTokens Min[imal]</code></dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: + Apache/1.3.0</samp></dd> + + <dt><code>ServerTokens OS</code></dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: Apache/1.3.0 + (Unix)</samp></dd> + + <dt><code>ServerTokens Full</code> (or not specified)</dt> + + <dd>Server sends (<em>e.g.</em>): <samp>Server: Apache/1.3.0 + (Unix) PHP/3.0 MyMod/1.2</samp></dd> + </dl> + + <p>This setting applies to the entire server, and cannot be + enabled or disabled on a virtualhost-by-virtualhost basis.</p> + <hr /> + + <h2><a id="servertype" name="servertype">ServerType + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ServerType + <em>type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ServerType + standalone</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The ServerType directive sets how the server is executed by + the system. <em>Type</em> is one of</p> + + <dl> + <dt>inetd</dt> + + <dd>The server will be run from the system process inetd; the + command to start the server is added to + <code>/etc/inetd.conf</code></dd> + + <dt>standalone</dt> + + <dd>The server will run as a daemon process; the command to + start the server is added to the system startup scripts. + (<code>/etc/rc.local</code> or + <code>/etc/rc3.d/...</code>.)</dd> + </dl> + Inetd is the lesser used of the two options. For each http + connection received, a new copy of the server is started from + scratch; after the connection is complete, this program exits. + There is a high price to pay per connection, but for security + reasons, some admins prefer this option. <font + color="red">Inetd mode is no longer recommended and does not + always work properly. Avoid it if at all possible.</font> + + <p>Standalone is the most common setting for ServerType since + it is far more efficient. The server is started once, and + services all subsequent connections. If you intend running + Apache to serve a busy site, standalone will probably be your + only option.</p> + <hr /> + + <h2><a id="shmemuidisuser" name="shmemuidisuser">ShmemUIDisUser + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ShmemUIDisUser + <em>on|off</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ShmemUIDisUser + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + ShmemUIDisUser directive is only available in Apache 1.3.27 and later. + + <p>The ShmemUIDisUser directive controls whether Apache will change + the <code>uid</code> and <code>gid</code> ownership of System V shared memory + based scoreboards to the server settings of <a href="#user">User</a> and + <a href="#group">Group</a>. Releases of Apache up to 1.3.26 would do + this by default. Since the child processes are already attached to the + shared memory segment, this is not required for normal usage of Apache and + so to prevent possible abuse, Apache will no longer do that. The old + behavior may be required for special cases, however, which can be implemented + by setting this directive to <code>on</code>.</p> + + <p>This directive has no effect on non-System V based scoreboards, such as + <code>mmap</code>. + </p> + + <hr /> + + <h2><a id="startservers" name="startservers">StartServers + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> StartServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>StartServers + 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The StartServers directive sets the number of child server + processes created on startup. As the number of processes is + dynamically controlled depending on the load, there is usually + little reason to adjust this parameter.</p> + + <p>When running under Microsoft Windows, this directive has no + effect. There is always one child which handles all requests. + Within the child requests are handled by separate threads. The + <a href="#threadsperchild">ThreadsPerChild</a> directive + controls the maximum number of child threads handling requests, + which will have a similar effect to the setting of + <samp>StartServers</samp> on Unix.</p> + + <p>See also <a href="#minspareservers">MinSpareServers</a> and + <a href="#maxspareservers">MaxSpareServers</a>.</p> + <hr /> + + <h2><a id="threadsperchild" + name="threadsperchild">ThreadsPerChild</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ThreadsPerChild + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ThreadsPerChild + 50</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core (Windows, + NetWare)<br /> + <strong>Compatibility:</strong> Available only with Apache 1.3 + and later with Windows + + <p>This directive tells the server how many threads it should + use. This is the maximum number of connections the server can + handle at once; be sure and set this number high enough for + your site if you get a lot of hits.</p> + + <p>This directive has no effect on Unix systems. Unix users + should look at <a href="#startservers">StartServers</a> and <a + href="#maxrequestsperchild">MaxRequestsPerChild</a>.</p> + <hr /> + + <h2><a id="threadstacksize" + name="threadstacksize">ThreadStackSize</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ThreadStackSize + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ThreadStackSize + 65536</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core (NetWare)<br /> + <strong>Compatibility:</strong> Available only with Apache 1.3 + and later with NetWare + + <p>This directive tells the server what stack size to use for + each of the running threads. If you ever get a stack overflow + you will need to bump this number to a higher setting.</p> + + <p>This directive has no effect on other systems.</p> + <hr /> + + <h2><a id="timeout" name="timeout">TimeOut directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> TimeOut + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>TimeOut + 300</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The TimeOut directive currently defines the amount of time + Apache will wait for three things:</p> + + <ol> + <li>The total amount of time it takes to receive a GET + request.</li> + + <li>The amount of time between receipt of TCP packets on a + POST or PUT request.</li> + + <li>The amount of time between ACKs on transmissions of TCP + packets in responses.</li> + </ol> + We plan on making these separately configurable at some point + down the road. The timer used to default to 1200 before 1.2, + but has been lowered to 300 which is still far more than + necessary in most situations. It is not set any lower by + default because there may still be odd places in the code where + the timer is not reset when a packet is sent. + <hr /> + + <h2><a id="usecanonicalname" + name="usecanonicalname">UseCanonicalName directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> UseCanonicalName + on|off|dns<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>UseCanonicalName + on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> UseCanonicalName + is only available in Apache 1.3 and later + + <p>In many situations Apache has to construct a + <em>self-referential</em> URL. That is, a URL which refers back + to the same server. With <code>UseCanonicalName on</code> (and + in all versions prior to 1.3) Apache will use the <a + href="#servername">ServerName</a> and <a href="#port">Port</a> + directives to construct the canonical name for the server. This + name is used in all self-referential URLs, and for the values + of <code>SERVER_NAME</code> and <code>SERVER_PORT</code> in + CGIs.</p> + + <p>For example, if <a href="#servername">ServerName</a> is set to + <code>www.example.com</code> and <a href="#port">Port</a> is set to + <code>9090</code>, then the <em>canonical name</em> of the server is + <code>www.example.com:9090</code>. In the event that + <code>Port</code> has its default value of <code>80</code>, the + <code>:80</code> is omitted from the <em>canonical name</em>.</p> + + <p>With <code>UseCanonicalName off</code> Apache will form + self-referential URLs using the hostname and port supplied by + the client if any are supplied (otherwise it will use the + canonical name, as defined above). These values are the same + that are used to implement <a + href="../vhosts/name-based.html">name based virtual hosts</a>, + and are available with the same clients. The CGI variables + <code>SERVER_NAME</code> and <code>SERVER_PORT</code> will be + constructed from the client supplied values as well.</p> + + <p>An example where this may be useful is on an intranet server + where you have users connecting to the machine using short + names such as <code>www</code>. You'll notice that if the users + type a shortname, and a URL which is a directory, such as + <code>http://www/splat</code>, <em>without the trailing + slash</em> then Apache will redirect them to + <code>http://www.domain.com/splat/</code>. If you have + authentication enabled, this will cause the user to have to + authenticate twice (once for <code>www</code> and once again + for <code>www.domain.com</code> -- see <a + href="../misc/FAQ.html#prompted-twice">the FAQ on this subject for + more information</a>). But if <code>UseCanonicalName</code> + is set off, then Apache will redirect to + <code>http://www/splat/</code>.</p> + + <p>There is a third option, <code>UseCanonicalName DNS</code>, + which is intended for use with mass IP-based virtual hosting to + support ancient clients that do not provide a + <code>Host:</code> header. With this option Apache does a + reverse DNS lookup on the server IP address that the client + connected to in order to work out self-referential URLs.</p> + + <p><strong>Warning:</strong> if CGIs make assumptions about the + values of <code>SERVER_NAME</code> they may be broken by this + option. The client is essentially free to give whatever value + they want as a hostname. But if the CGI is only using + <code>SERVER_NAME</code> to construct self-referential URLs + then it should be just fine.</p> + + <p><strong>See also:</strong> <a + href="#servername">ServerName</a>, <a href="#port">Port</a></p> + <hr /> + + <h2><a id="user" name="user">User directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> User + <em>unix-userid</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>User + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core + + <p>The User directive sets the userid as which the server will + answer requests. In order to use this directive, the standalone + server must be run initially as root. <em>Unix-userid</em> is + one of:</p> + + <dl> + <dt>A username</dt> + + <dd>Refers to the given user by name.</dd> + + <dt># followed by a user number.</dt> + + <dd>Refers to a user by their number.</dd> + </dl> + The user should have no privileges which result in it being + able to access files which are not intended to be visible to + the outside world, and similarly, the user should not be able + to execute code which is not meant for httpd requests. It is + recommended that you set up a new user and group specifically + for running the server. Some admins use user + <code>nobody</code>, but this is not always possible or + desirable. For example mod_proxy's cache, when enabled, must be + accessible to this user (see the <a + href="mod_proxy.html#cacheroot"><code>CacheRoot</code> + directive</a>). + + <p>Notes: If you start the server as a non-root user, it will + fail to change to the lesser privileged user, and will instead + continue to run as that original user. If you do start the + server as root, then it is normal for the parent process to + remain running as root.</p> + + <p>Special note: Use of this directive in <VirtualHost> + requires a properly configured <a href="../suexec.html">suEXEC + wrapper</a>. When used inside a <VirtualHost> in this + manner, only the user that CGIs are run as is affected. Non-CGI + requests are still processed with the user specified in the + main User directive.</p> + + <p>SECURITY: Don't set User (or <a href="#group">Group</a>) to + <code>root</code> unless you know exactly what you are doing, + and what the dangers are.</p> + <hr /> + + <h2><a id="virtualhost" name="virtualhost"><VirtualHost> + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> <VirtualHost + <em>addr</em>[:<em>port</em>] [<em>addr</em>[:<em>port</em>]] + ...> ... </VirtualHost> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Core.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Non-IP + address-based Virtual Hosting only available in Apache 1.1 and + later.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Multiple address + support only available in Apache 1.2 and later. + + <p><VirtualHost> and </VirtualHost> are used to + enclose a group of directives which will apply only to a + particular virtual host. Any directive which is allowed in a + virtual host context may be used. When the server receives a + request for a document on a particular virtual host, it uses + the configuration directives enclosed in the + <VirtualHost> section. <em>Addr</em> can be</p> + + <ul> + <li>The IP address of the virtual host</li> + + <li>A fully qualified domain name for the IP address of the + virtual host.</li> + </ul> + Example: + + <blockquote> + <code><VirtualHost 10.1.2.3><br /> + ServerAdmin webmaster@host.foo.com<br /> + DocumentRoot /www/docs/host.foo.com<br /> + ServerName host.foo.com<br /> + ErrorLog logs/host.foo.com-error_log<br /> + TransferLog logs/host.foo.com-access_log<br /> + </VirtualHost></code> + </blockquote> + Each VirtualHost must correspond to a different IP address, + different port number or a different host name for the server, + in the former case the server machine must be configured to + accept IP packets for multiple addresses. (If the machine does + not have multiple network interfaces, then this can be + accomplished with the <code>ifconfig alias</code> command (if + your OS supports it), or with kernel patches like <a + href="../misc/vif-info.html">VIF</a> (for SunOS(TM) 4.1.x)). + + <p>You can specify more than one IP address. This is useful if + a machine responds to the same name on two different + interfaces. For example, if you have a VirtualHost that is + available to hosts on an internal (intranet) as well as + external (internet) network. Example:</p> + + <blockquote> + <code><VirtualHost 192.168.1.2 204.255.176.199><br /> + DocumentRoot /www/docs/host.foo.com<br /> + ServerName host.foo.com<br /> + ServerAlias host<br /> + </VirtualHost></code> + </blockquote> + The special name <code>_default_</code> can be specified in + which case this virtual host will match any IP address that is + not explicitly listed in another virtual host. In the absence + of any _default_ virtual host the "main" server config, + consisting of all those definitions outside any VirtualHost + section, is used when no match occurs. + + <p>You can specify a <code>:port</code> to change the port that + is matched. If unspecified then it defaults to the same port as + the most recent <code><a href="#port">Port</a></code> statement + of the main server. You may also specify <code>:*</code> to + match all ports on that address. (This is recommended when used + with <code>_default_</code>.)</p> + + <p><strong>SECURITY</strong>: See the <a + href="../misc/security_tips.html">security tips</a> document + for details on why your security could be compromised if the + directory where logfiles are stored is writable by anyone other + than the user that starts the server.</p> + + <p><strong>NOTE</strong>: The use of <VirtualHost> does + <strong>not</strong> affect what addresses Apache listens on. + You may need to ensure that Apache is listening on the correct + addresses using either <a href="#bindaddress">BindAddress</a> + or <a href="#listen">Listen</a>.</p> + + <p><strong>See also:</strong> <a href="../vhosts/">Apache + Virtual Host documentation</a><br /> + <strong>See also:</strong> <a + href="../dns-caveats.html">Warnings about DNS and + Apache</a><br /> + <strong>See also:</strong> <a href="../bind.html">Setting + which addresses and ports Apache uses</a><br /> + <strong>See also</strong>: <a href="../sections.html">How + Directory, Location and Files sections work</a> for an + explanation of how these different sections are combined when a + request is received</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/core.html.fr b/htdocs/manual/mod/core.html.fr new file mode 100644 index 0000000000..a36426231a --- /dev/null +++ b/htdocs/manual/mod/core.html.fr @@ -0,0 +1,4105 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.190 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Noyau d'Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Noyau d'Apache</h1> + + <p>Ces paramètres de configuration contrôlent les + fonctionnalités premières d'Apache, et sont + toujours disponibles.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#acceptfilter">AcceptFilter</a></li> + + <li><a href="#accessconfig">AccessConfig</a></li> + + <li><a href="#accessfilename">AccessFileName</a></li> + + <li><a href="#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a href="#addmodule">AddModule</a></li> + + <li><a href="#allowoverride">AllowOverride</a></li> + + <li><a href="#authname">AuthName</a></li> + + <li><a href="#authtype">AuthType</a></li> + + <li><a href="#bindaddress">BindAddress</a></li> + + <li><a href="#bs2000account">BS2000Account</a></li> + + <li><a href="#clearmodulelist">ClearModuleList</a></li> + + <li><a href="#contentdigest">ContentDigest</a></li> + + <li><a href="#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a href="#defaulttype">DefaultType</a></li> + + <li><a href="#directory"><Directory></a></li> + + <li><a href="#directorymatch"><DirectoryMatch></a></li> + + <li><a href="#documentroot">DocumentRoot</a></li> + + <li><a href="#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="#errordocument">ErrorDocument</a></li> + + <li><a href="#errorlog">ErrorLog</a></li> + + <li><a href="#files"><Files></a></li> + + <li><a href="#filesmatch"><FilesMatch></a></li> + + <li><a href="#group">Group</a></li> + + <li><a href="#hostnamelookups">HostNameLookups</a></li> + + <li><a href="#identitycheck">IdentityCheck</a></li> + + <li><a href="#ifdefine"><IfDefine></a></li> + + <li><a href="#ifmodule"><IfModule></a></li> + + <li><a href="#include">Include</a></li> + + <li><a href="#keepalive">KeepAlive</a></li> + + <li><a href="#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a href="#limit"><Limit></a></li> + + <li><a href="#limitexcept"><LimitExcept></a></li> + + <li><a href="#limitrequestbody">LimitRequestBody</a></li> + + <li><a href="#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a href="#limitrequestline">LimitRequestLine</a></li> + + <li><a href="#listen">Listen</a></li> + + <li><a href="#listenbacklog">ListenBacklog</a></li> + + <li><a href="#location"><Location></a></li> + + <li><a href="#locationmatch"><LocationMatch></a></li> + + <li><a href="#lockfile">LockFile</a></li> + + <li><a href="#loglevel">LogLevel</a></li> + + <li><a href="#maxclients">MaxClients</a></li> + + <li><a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a href="#maxspareservers">MaxSpareServers</a></li> + + <li><a href="#minspareservers">MinSpareServers</a></li> + + <li><a href="#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="#options">Options</a></li> + + <li><a href="#pidfile">PidFile</a></li> + + <li><a href="#port">Port</a></li> + + <li><a href="#require">require</a></li> + + <li><a href="#resourceconfig">ResourceConfig</a></li> + + <li><a href="#rlimitcpu">RLimitCPU</a></li> + + <li><a href="#rlimitmem">RLimitMEM</a></li> + + <li><a href="#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="#satisfy">Satisfy</a></li> + + <li><a href="#scoreboardfile">ScoreBoardFile</a></li> + + <li><a + href="#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="#sendbuffersize">SendBufferSize</a></li> + + <li><a href="#serveradmin">ServerAdmin</a></li> + + <li><a href="#serveralias">ServerAlias</a></li> + + <li><a href="#servername">ServerName</a></li> + + <li><a href="#serverpath">ServerPath</a></li> + + <li><a href="#serverroot">ServerRoot</a></li> + + <li><a href="#serversignature">ServerSignature</a></li> + + <li><a href="#servertokens">ServerTokens</a></li> + + <li><a href="#servertype">ServerType</a></li> + + <li><a href="#startservers">StartServers</a></li> + + <li><a href="#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="#threadstacksize">ThreadStackSize</a></li> + + <li><a href="#timeout">TimeOut</a></li> + + <li><a href="#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="#user">User</a></li> + + <li><a href="#virtualhost"><VirtualHost></a></li> + </ul> + + <h2><a id="acceptfilter" name="acceptfilter">Directive + AcceptFilter</a></h2> + <!--%plaintext <?INDEX {\tt AcceptFilter} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AcceptFilter on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>AccceptFilter on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> server config<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> core + + <p><code>AcceptFilter</code> contrôle une optimisation + spécifique à BSD. Elle est compilée par + défaut et activée par défaut si votre + système l'implémente (option SO_ACCCEPTFILTER de + setsocketopt()). A l'heure actuelle, seul FreeBSD + l'implémente.</p> + + <p>Se référer à la section concernant les + filtres dans la <a href="../misc/perf-bsd44.html">documentation + sur la performance</a> pour de plus amples informations.</p> + + <p>L'option de compilation <code>AP_ACCEPTFILTER_OFF</code> + peut être utilisée pour changer le défaut + à 'off'. <code>httpd -V</code> et <code>httpd -L</code> + affichent dorénavant les valeurs par défauts au + moment de la compilation, et si oui ou non SO_ACCEPTFILTER a + été défini pour cette compilation.</p> + <hr /> + <!-- XXX translate a name="accessconfig" / Directive AccessConfig + --> + + <h2><a id="accessconfig" name="accessconfig">Directive + AccessConfig</a></h2> + <!--%plaintext <?INDEX {\tt AccessConfig} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AccessConfig + <em>nomfichier|nomrépertoire</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>AccessConfig conf/access.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> configuration serveur, + hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Le serveur lit dans ce fichier des directives + supplémentaires après avoir ouvert le fichier <a + href="#resourceconfig">ResourceConfig</a>. <em>nomfichier</em> + est exprimé relativement à <a + href="#serverroot">ServerRoot</a>. Cette fonctionnalité + peut être désactivée en écrivant + :</p> + + <blockquote> + <code>AccessConfig /dev/null</code> + </blockquote> + ou sur les serverus Win32 + + <blockquote> + <code>AccessConfig nul</code> + </blockquote> + + <p>Historiquement, ce fichier ne contenait que des sections <a + href="#directory"><Directory></a>; en fait, il pourra + maintenant contenir toute directive "serveur" autorisée + dans le contexte de la <em>configuration serveur</em>.</p> + + <p>Une nouveauté de la version d'Apache 1.3.13 est la + possibilité qu'<code>AccessConfig</code> + représente un répertoire plutot qu'un fichier. + Apache lira tous les fichiers de ce répertoire ainsi que + tous les sous-répertoires et analysera tous ces fichiers + de configuration.</p> + + <p>Voir également <a + href="#resourceconfig">ResourceConfig</a>.</p> + <hr /> + + <h2><a id="accessfilename" name="accessfilename">Directive + AccessFileName</a></h2> + <!--%plaintext <?INDEX {\tt AccessFileName} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AccessFileName <em>nomfichier</em> + [<em>nomfichier</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>AccessFileName .htaccess</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> configuration serveur, + hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + AccessFileName ne peut accepter plusieurs noms de fichiers + qu'à partir de la version 1.3 d'Apache + + <p>Lorsqu'il retourne un document au client, le serveur cherche + le premier fichier de contrôle d'accès existant + dans cette liste dans chacun des répertoires inscrit + dans le chemin d'accès menant au document, pour + déterminer si l'accès est autorisé dan + chacun de ces répertoires. Par exemple:</p> + + <blockquote> + <code>AccessFileName .acl</code> + </blockquote> + + <p>Avant de servir le document + <code>/usr/local/web/index.html</code>, le serveur lira les + fichiers <code>/.acl</code>, <code>/usr/.acl</code>, + <code>/usr/local/.acl</code> et + <code>/usr/local/web/.acl</code> à la recherche de + directives, sauf si celles-ci ont été + désactivées par l'écriture</p> + + <blockquote> + <code><Directory /> AllowOverride None + </Directory></code> + </blockquote> + + <p><strong>Voir également :</strong> <a + href="#allowoverride">AllowOverride</a></p> + <hr /> + + <h2><a id="adddefaultcharset" + name="adddefaultcharset">Directive AddDefaultCharset</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AddDefaultCharset On|Off|<em>charset</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> tous<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>AddDefaultCharset Off</code><br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + AddDefaultCharset n'est disponible qu'à partir de la + version 1.3.12 + + <p>Cette directive spécifie le nom de la table de + caractères qui sera ajouté à toutes les + réponses qui n'ont aucun paramètre sur le type de + contenu dans l'en-tête HTTP. Elle remplace la table de + caractère spécifié dans le corps du + document par l'utilisation du marqueur <code>META</code>. La + mise de <code>AddDefaultCharset Off</code> désactive + cette fonctionnalité. <code>AddDefaultCharset On</code> + active la table de caractère <code>iso-8859-1</code> par + défaut d'Apache. Vous pouvez également + définir une autre table de caractères à + employer. Par exemple <code>AddDefaultCharset utf-8</code>.</p> + <hr /> + + <h2><a id="addmodule" name="addmodule">Directive + AddModule</a></h2> + <!--%plaintext <?INDEX {\tt AddModule} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AddModule <em>module</em> [<em>module</em>] + ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur <br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>AddModule</tt> n'est disponible qu'à partir de la + version 1.2 d'Apache + + <p>Le serveur peut intégrer des modules compilés + qui ne sont pas mis en service. Cette directive peut être + utilisée pour activer ou désactiver ces modules. + Le serveur est installé avec une liste + pré-configurée de modules actifs cette liste peut + être effacée par la directive <a + href="#clearmodulelist">ClearModuleList</a>.</p> + <hr /> + + <h2><a id="allowoverride" name="allowoverride">Directive + AllowOverride</a></h2> + <!--%plaintext <?INDEX {\tt AllowOverride} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AllowOverride All|None|<em>type de + directive</em> [<em>type de directive</em>] ... <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>AllowOverride All All</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> + répertoire<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Lorsque le serveur trouve un fichier .htaccess (comme + spécifié par <a + href="#accessfilename">AccessFileName</a>) il doit savoir + quelles directives declarées dans ce fichier peuvent + outrepasser les droits fixés par des directives + précédentes.</p> + + <p>Si la directive est définie à + <code>None</code>, les fichier .htaccess sont ignorés. + Dans ce cas, le serveur n'essaie même pas de lire les + fichiers .htaccess.</p> + + <p>Si la directive est définie à <code>All</code> + toutes les directives possibles dans le <a + href="directive-dict.html#Context">contexte</a> .htacces sont + autorisées dans les fichiers .htaccess.</p> + + <p>Les <em>types de directives</em> peuvent être parmi + ces groupes de directives :</p> + + <dl> + <dt>AuthConfig</dt> + + <dd> + <!--%plaintext <?INDEX {\tt AuthConfig} override> --> + Autorise l'usage de la directive Authorization (<a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a>, + <a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a>, + <a href="mod_auth.html#authgroupfile">AuthGroupFile</a>, <a + href="#authname">AuthName</a>, <a + href="#authtype">AuthType</a>, <a + href="mod_auth.html#authuserfile">AuthUserFile</a>, <a + href="#require">Require</a>, etc.).</dd> + + <dt>FileInfo</dt> + + <dd><!--%plaintext <?INDEX {\tt FileInfo} override> --> + Autorise l'usage de directives contrôlant + l'accès aux types de documents (<a + href="mod_mime.html#addencoding">AddEncoding</a>, <a + href="mod_mime.html#addlanguage">AddLanguage</a>, <a + href="mod_mime.html#addtype">AddType</a>, <a + href="#defaulttype">DefaultType</a>, <a + href="#errordocument">ErrorDocument</a>, <a + href="mod_negotiation.html#languagepriority">LanguagePriority</a>, + etc.).</dd> + + <dt>Indexes</dt> + + <dd><!--%plaintext <?INDEX {\tt Indexes} override> --> + Autorise l'usage de directives contrôlant l'indexation + des répertoires (<a + href="mod_autoindex.html#adddescription">AddDescription</a>, + <a href="mod_autoindex.html#addicon">AddIcon</a>, <a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a>, + <a href="mod_autoindex.html#addiconbytype">AddIconByType</a>, + <a href="mod_autoindex.html#defaulticon">DefaultIcon</a>, <a + href="mod_dir.html#directoryindex">DirectoryIndex</a>, <a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a>, <a + href="mod_autoindex.html#headername">HeaderName</a>, <a + href="mod_autoindex.html#indexignore">IndexIgnore</a>, <a + href="mod_autoindex.html#indexoptions">IndexOptions</a>, <a + href="mod_autoindex.html#readmename">ReadmeName</a>, + etc.).</dd> + + <dt>Limit</dt> + + <dd><!--%plaintext <?INDEX {\tt Limit} override> --> + Autorise l'usage de directives contrôlant les + accès de certains hôtes (allow, deny et + order).</dd> + + <dt>Options</dt> + + <dd><!--%plaintext <?INDEX {\tt Options} override> --> + Autorise l'usage de directives contrôlant certaines + fonctionnalités spécifiques des + répertoires (<a href="#options">Options</a> et <a + href="mod_include.html#xbithack">XBitHack</a>).</dd> + </dl> + + <p><strong>Voir également :</strong> <a + href="#accessfilename">AccessFileName</a></p> + <hr /> + + <h2><a id="authname" name="authname">Directive + AuthName</a></h2> + <!--%plaintext <?INDEX {\tt AuthName} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AuthName <em>domaine-autorisé</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> répertoire, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive indique le nom du schéma + d'autorisation pour un répertoire. Ce schéma sera + donné au client de sorte que l'utilisateur sache quel + nom et quel mot de passe envoyer. <samp>AuthName</samp> prend + un seul argument. Si le schéma d'autorisation contient + des espaces, il doit être entouré de guillemets. + Pour fonctionner correctement, elle devra être + accompagnée des directives <a + href="#authtype">AuthType</a> et <a + href="#require">require</a>, et de directives telles que <a + href="mod_auth.html#authuserfile">AuthUserFile</a> et <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a>.</p> + <hr /> + + <h2><a id="authtype" name="authtype">Directive + AuthType</a></h2> + <!--%plaintext <?INDEX {\tt AuthType} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> AuthType <em>type</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> répertoire, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive selectionne le type d'authentification pour + un répertoire. Seul les types <code>Basic</code> et + <code>Digest</code> sont actuellement + implémentés. + <!--%plaintext <?INDEX {\tt Basic} authentication scheme> --> + Pour fonctionner correctement, elle devra être + accompagnée des directives <a + href="#authname">AuthName</a> et <a + href="#require">require</a>, et de directives telles que <a + href="mod_auth.html#authuserfile">AuthUserFile</a> et <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a>.</p> + <hr /> + + <h2><a id="bindaddress" name="bindaddress">Directive + BindAddress</a></h2> + <!--%plaintext <?INDEX {\tt BindAddress} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> BindAddress *|<em>addresse IP</em>|<em>nom de + domaine</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>BindAddress *</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Un serveur http sous Unix® peut soit écouter + toutes les adresses IP de la machine sur lequel il est + exécuté, ou uniquement une de ces adresses. Si + l'argument de cette directive est *, le serveur traitera les + connections sur toutes les adresses IP. Sinon, le serveur peut + écouter à partir d'une <em>adresse IP</em> + spécifique ou d'un <em>nom de domaine</em> Internet.</p> + + <p>Une et une seule directive <tt>BindAddress</tt> peut + être utilisée. Pour contrôler plus finement + quels ports et adresses Apache écoute, utilisez la + directive <a href="#listen">Listen</a> au lieu de + <tt>BindAddress</tt>.</p> + + <p><tt>BindAddress</tt> peut être utilisée comme + alternative à l'implantation d'<a + href="../vhosts/">hôtes virtuels</a> utilisant des + serveurs multiples indépendants, soit au lieu d'utiliser + les sections <a + href="#virtualhost"><VirtualHost></a>.</p> + + <p><strong>Voir aussi:</strong> <a + href="../dns-caveats.html">Apache et DNS</a><br /> + <strong>Voir aussi:</strong> <a href="../bind.html">Configurer + les ports et adresses utilisés par Apache</a></p> + <hr /> + + <h2><a id="bs2000account" name="bs2000account">BS2000Account + directive</a></h2> + <!--%plaintext <?INDEX {\tt BS2000Account} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> BS2000Account <em>account</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + BS2000Account n'est valable que pour les machines BS2000, + à partir de la version 1.3 d'Apache. + + <p>La directive <code>BS2000Account</code> n'est disponible que + pour les machines BS2000. Elle doit être employée + pour définir le numéro de compte pour + l'utilisateur non privilégié (qui est + défini par la directive <a href="#user">User</a> ). Ceci + est requis par le sous système POSIX du BS2000 afin de + changer l'environnement d'exécution sosu jacent du BS200 + en effectuant une sous connexion, et éviter ainsi que + des scripts CGI puissent accéder à des ressources + accessible à l'utilisateur privilégié + utilisé pour lancer le serveur, + généralement <samp>SYSROOT</samp>.<br /> + Seulement une directive <code>BS2000Account</code> peut + être utilisée.</p> + + <p><strong>Voir également:</strong> <a + href="../ebcdic.html">Portage EBCDIC d'Apache</a></p> + <hr /> + + <h2><a id="clearmodulelist" name="clearmodulelist">Directive + ClearModuleList</a></h2> + <!--%plaintext <?INDEX {\tt ClearModuleList} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ClearModuleList<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>ClearModuleList</tt> n'est disponible qu'à partir de + la version 1.2 d'Apache + + <p>Le serveur dispose à l'installation d'une liste + pré-configurée de modules actifs. Cette directive + efface cette liste. Il est supposé que cette liste sera + reconstruite à partir de directives <a + href="#addmodule">AddModule</a>.</p> + <hr /> + + <h2><a id="contentdigest" name="contentdigest">Directive + ContentDigest</a></h2> + <!--%plaintext <?INDEX {\tt ContentDigest} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ContentDigest <em>on|off</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ContentDigest off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels, répertoire, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> Options<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> expérimental + + <p><a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + ContentDigest n'est disponible qu'à partir de la version + 1.1 d'Apache</p> + + <p>Cette directive active la génération + d'en-têtes <code>Content-MD5</code> conformes aux RFC1864 + et RFC2068.</p> + + <p>MD5 est un algorithme permettant d'extraire un + "résumé" à partir d'un bloc de + données de longueur arbitraire, avec un degré de + confiance suffisant dans la mesure ou une moindre + altération dans les données sera + reflétée par un changement dans le + "résumé".</p> + + <p>L'en-tête <code>Content-MD5</code> procure un test de + l'intégrité de message de bout en bout (MIC) sur + le corps d'entité. Un proxy ou client pourra tester cet + en-tête pour détecter des modifications + accidentelles du corps d'entité en cours de transfert. + Exemple d'en-tête:</p> +<pre> + Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== + +</pre> + + <p>Notez que ceci peut réduire les performances de votre + serveur dans la mesure où le "résumé" est + calculé à chaque requête (il ne peut + être mis en cache).</p> + + <p><code>Content-MD5</code> n'est émis que pour des + documents servis par le noyau, et à l'exception de tout + module. Par exemple, les documents SSI, la sortie de scripts + CGI, et des réponses en flux d'octet binaire ne pourront + utiliser cet en-tête.</p> + <hr /> + + <h2><a id="coredumpdirectory" + name="coredumpdirectory">Directive CoreDumpDirectory</a></h2> + <!--%plaintext <?INDEX {\tt CoreDumpDirectory} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> CoreDumpDirectory + <em>nomrépertoire</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> même + répertoire que ServerRoot<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Elle définit le répertoire auquel Apache tente + d'accéder avant d'enregistrer un "noyau dump". Par + défaut, il s'agit du répertoire <a + href="#serverroot">ServerRoot</a>, cependant, si ce + répertoire n'est pas accessible en écriture par + l'utilisateur sous lequel tourne le serveur, le "noyau dump" ne + pourra être généré. Si vous + souhaitez dans ce cas obtenir un "noyau dump" pour des + nécessités de débogage, vous pouvez + utiliser cette directive pour spécifier un autre + répertoire dans lequel vous avez toute autorisation pour + écrire.</p> + <hr /> + + <h2><a id="defaulttype" name="defaulttype">Directive + DefaultType</a></h2> + <!--%plaintext <?INDEX {\tt DefaultType} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> DefaultType <em>mime-type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>DefaultType text/html</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels, répertoire, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Il peut arriver qu'une requête demande au serveur un + document dont le type ne peut être + déterminé par les tables de MIME.</p> + + <p>Le serveur doit informer le client du type de contenu + (Content-type) du document. Dans le cas d'un type inconnu, il + utilisera le <tt>DefaultType</tt>. Par exemple :</p> + + <blockquote> + <code>DefaultType image/gif</code> + </blockquote> + + <p>sera approprié dans un répertoire contenant + une majorité d'images gif dont certaines ne + présentent pas explicitement l'extension .gif.</p> + <hr /> + + <h2><a id="directory" name="directory">Directive + <Directory></a></h2> + <!--%plaintext <?INDEX {\tt Directory} section directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <Directory <em>nomrépertoire</em>> + ... </Directory> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p><tt><Directory></tt> et <tt></Directory></tt> + sont utilisés pour "encapsuler" un groupe de directives + applicables uniquement au réprtoire indiqué ainsi + qu'à ses sous-répertoires. Toute directive + autorisée dans un contexte de répertoire peut + apparaître entre ces deux balises. + <em>nomrépertoire</em> est soit le chemin + entièrement qualifié du répertoire, ou un + motif. Dans un motif, '?' remplace un caractère unique + quelconque, et '*' remplace toute séquence de + zéro ou plus caractères quelconques. Sur Apache + 1.3, vous pouvez aussi utiliser les plages de caractères + '[]' comme dans un shell UNIX. De plus aucun des + métacaractères ne peut remplacer un '/', ce qui + correspond plus intimement à la réaction des + shells UNIX. Exemple:</p> +<pre> + <Directory /usr/local/httpd/htdocs> + Options Indexes FollowSymLinks + </Directory> +</pre> + + <p><strong>A partir d'Apache 1.2 :</strong> peuvent être + utilisées les "expressions régulières", + lesquelles devront être précédées du + caractère <code>~</code>. Par exemple :</p> +<pre> + <Directory ~"^/www/.*/[0-9]{3}"> +</pre> + correspondrait à des répertoires dans /www/ dont + le nom serait constitué de trois digits. + + <p>Si plusieurs sections de répertoires pointent sur le + répertoire d'un document (ou l'un de ses pères) + sans qu'il s'agisse d'une expression régulière, + alors les directives sont appliquées selon la loi de "la + plus courte qualification d'abord", combinées aux + directives des fichiers <a + href="#accessfilename">.htaccess</a>. Par exemple, avec + l'écriture</p> + + <blockquote> + <code><Directory /> AllowOverride None + </Directory> <Directory /home/*> AllowOverride + FileInfo </Directory></code> + </blockquote> + + <p>pour le contrôle d'accès au document + <code>/home/web/dir/doc.html</code> les étapes + d'évaluation sont les suivantes :</p> + + <ul> + <li>Applique la directive <code>AllowOverride None</code> + (désactivant les fichiers + <code>.htaccess</code>).</li> + + <li>Appliquela directive <code>AllowOverride FileInfo</code> + (pour le répertoire <code>/home/web</code>).</li> + + <li>Applique toutes les directives <tt>FileInfo</tt> de + <code>/home/web/.htaccess</code></li> + </ul> + + <p>Les sections exprimant des répertoires sous forme + d'expressions régulières sont gérés + légèrement différemment par Apache 1.2 et + 1.3. Sous Apache 1.2, elles sont combinées aux sections + "normales" et s'appliquent dans l'ordre où elles + apparaissent dans le fichier de configuration. Elles ne + s'appliquent qu'une fois, seulement pour celles qui font partie + de la section "à plus courte correspondance". Sous + Apache 1.3 les sections basées sur des expressions + régulières ne sont pas évaluées + tant que toutes les sections "normales" n'ont pas + été considérées. A ce moment, les + sections "régulières" sont traitées dans + l'ordre où elles apparaissent dans le fichier de + configuration. Par exemple, avec l'écriture</p> + + <blockquote> + <code><Directory ~ abc$> ... directives ici ... + </Directory></code> + </blockquote> + + <p>Supposez que le nom de fichier demandé soit + <code>/home/abc/public_html/abc/index.html</code>. Le serveur + considère chacune des sections <code>/</code>, + <code>/home</code>, <code>/home/abc</code>, + <code>/home/abc/public_html</code>, et + <code>/home/abc/public_html/abc</code> dans cet ordre. Sous + Apache 1.2, lorsque <code>/home/abc</code> est pris en compte, + l'expression régulière correspondra et ses termes + seront appliqués. Sous Apache 1.3 l'expression + régulière n'est pas considérée du + tout à ce point de l'arbre. Elle ne le sera pas tant que + toutes les sections "normales" <tt><Directory>s</tt> et + celles des fichiers <code>.htaccess</code> n'ont pas + été appliquées. A ce moment seulement + l'expression régulière reconnaîtra + <code>/home/abc/public_html/abc</code> et les directives seront + appliquées.</p> + + <p><strong>Notez que l'accès par défaut d'Apache + pour les sections <tt><Directory></tt> est <code>Allow + from All</code>. Ceci veut dire que par défaut, Apache + desservira tout fichier indiqué par une URL. Nous + recommandons de modifier ceci à l'aide d'un bloc tel + que</strong></p> +<pre> + <Directory /> + Order Deny,Allow + Deny from All +</Directory> +</pre> + + <p><strong>puis désactiver sélectivement la + protection pour les répertoires devant rester + accessibles. Voir la page <a + href="../misc/security_tips.html">Trucs sur la + sécurité</a> pour plus de + détails.</strong></p> + + <p>Les sections de répertoires apparaissent + habituellement dans le fichier access.conf, mais peuvent + être présentes dans n'importe quel fichier de + configuration. Les directives <Directory> ne peuvent + être imbriquées, et ne peuvent petre incluses dans + des sections <a href="#limit"><Limit></a> ou <a + href="#limitexcept"><LimitExcept></a>.</p> + + <p><strong>Voir aussi</strong> : <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée.</p> + <hr /> + + <h2><a id="directorymatch" name="directorymatch">Directive + <DirectoryMatch></a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <DirectoryMatch <em>regex</em>> ... + </DirectoryMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + Disponible à partir de la version 1.3 d'Apache + + <p><tt><DirectoryMatch></tt> et + <tt></DirectoryMatch></tt> sont utilisés pour + encapsuler un groupe de directives s'appliquant uniquement aux + répertoires nommés et ses + sous-répertoires, de manière identique à + la directive <a href="#directory"><Directory></a>. + Cependant, elle n'accepte comme argument qu'une expression + régulière. Par exemple :</p> + + <blockquote> + <code><DirectoryMatch "^/www/.*/[0-9]{3}"></code> + </blockquote> + + <p>correspondrait aux répertoires de /www/ dont le nom + consiste en trois chiffres.</p> + + <p><strong>Voir aussi :</strong> <a + href="#directory"><Directory></a> pour une description de + la manière dont les définitions par expression + régulière sont combinées aux sections + <tt><Directory></tt> "normales".<br /> + <strong>Voir aussi</strong> : <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée</p> + <hr /> + + <h2><a id="documentroot" name="documentroot">Directive + DocumentRoot</a></h2> + <!--%plaintext <?INDEX {\tt DocumentRoot} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> DocumentRoot <em>directory-filename</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>DocumentRoot /usr/local/apache/htdocs</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive définit le répertoire racine + à partir duquel httpd va distribuer les fichiers. Sauf + si le répertoire est pointé par une directive + telle que Alias, le serveur ajoute le chemin relatif + mentionnée dans l'URL présentée à + cette racine pour établir le chemin complet jusqu'au + document. Exemple :</p> + + <blockquote> + <code>DocumentRoot /usr/web</code> + </blockquote> + + <p>Un accès à + <code>http://www.my.host.com/index.html</code> se + réferre au document + <code>/usr/web/index.html</code>.</p> + + <p>Un bogue existe pour cette directive mod_dir, laquelle + fonctionne mal lorsque DocumentRoot est donnée avec un + '/' final (c-à-d. "DocumentRoot /usr/web/"). Il vaut + mieux éviter cette écriture.</p> + <hr /> + + <h2><a id="ebcdicconvert" + name="ebcdicconvert">EBCDICConvert</a></h2> + <!--%plaintext <?INDEX {\tt EBCDICConvert} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> EBCDICConvert On|Off[=<em>direction</em>] + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> la + conversion EBCDIC est disponible à partir de la version + 1.3.19 d'Apache sur les plate-formes basées sur EBCDIC. + + <p>La directive EBCDICConvert associe une extension de fichier + à une possible conversion (<samp>On</samp> ou + <samp>Off</samp>). Les extensions de fichiers peuvent commencer + ou non par un point.</p> + + <p>Si le format optionnel <samp>On=<i>direction</i></samp> (or + <samp>Off=<i>direction</i></samp>) est employé, + où <i>direction</i> est choisi parmi <samp>In</samp>, + <samp>Out</samp> ou <samp>InOut</samp>, alors la directive ne + s'applique seulement que dans une direction de transfert + donnée (<samp>In</samp> : contenu reçu par une + requête PUT ou POST , <samp>Out</samp> : contenu + renvoyé à une requete GET ou POST, et + <samp>InOut</samp> : conversion dans les deux + directions).<br /> + Sinon, <samp>InOut</samp> (conversion dans les deux + directions) est défini.</p> + + <p>La configuration de conversion basé sur un type de + fichier est testé avant la configuration basé sur + les types MIME, afin de permettre aux règles + génériques MIME d'être surchargées + par une extension spécifique (pplusieurs extensions de + fichier peuvent exister pour le même type MIME).</p> + + <p><strong>Exemple</strong>:<br /> + Avec la configuration suivante, les fichiers + <samp>*.html</samp> contiennent du texte HTML au format EBCDIC, + tandis que les fichiers <samp>*.ahtml</samp> contiennent du + texte HTML au format ASCII :</p> +<pre> + # *.html et *.ahtml contiennet du texte HTML : + AddType text/html .html .ahtml + + # *.ahtml n'est pas converti (il contient déjà du texte ASCII) + EBCDICConvert Off .ahtml + + # Les autres fichiers text/html contiennent du texte EBCDIC: + EBCDICConvertByType On text/html +</pre> + <br /> + <br /> + + + <p><strong>Voir également</strong>: <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> et <a + href="../ebcdic.html#ebcdic">Aperçu des fonctions de + conversion EBCDIC</a></p> + <hr /> + + <h2><a id="ebcdicconvertbytype" + name="ebcdicconvertbytype">EBCDICConvertByType</a></h2> + <!--%plaintext <?INDEX {\tt EBCDICConvertByType} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> EBCDICConvertByType On|Off[=<em>direction</em>] + <em>mimetype</em> [<em>mimetype</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> la + conversion EBCDIC est disponible à partir de la version + 1.3.19 d'Apache sur les plate-formes basées sur EBCDIC. + + <p>La directive EBCDICConvertByType associe un type MIME + (pouvant contenir une *) à une éventuelle + conversion (<samp>On</samp> ou <samp>Off</samp>).</p> + + <p>Si le format optionnel <samp>On=<i>direction</i></samp> (or + <samp>Off=<i>direction</i></samp>) est employé, + où <i>direction</i> est choisi parmi <samp>In</samp>, + <samp>Out</samp> ou <samp>InOut</samp>, alors la directive ne + s'applique seulement que dans une direction de transfert + donnée (<samp>In</samp> : contenu reçu par une + requête PUT ou POST , <samp>Out</samp> : contenu + renvoyé à une requete GET ou POST, et + <samp>InOut</samp> : conversion dans les deux + directions).<br /> + Sinon, <samp>InOut</samp> (conversion dans les deux + directions) est défini.</p> + + <p><strong>Par exemple</strong>:<br /> + Une configuration standard pratique devrait au moins contenir + ces directives :</p> +<pre> + # All text documents are stored as EBCDIC files: + # Tous les document textes sont stockés au format EBCDIC + EBCDICConvertByType On text/* message/* multipart/* + EBCDICConvertByType On application/x-www-form-urlencoded \ + model/vrml application/postscript + # Les autres fichiers sont traités comme binaires. + EBCDICConvertByType Off */* +</pre> + Si vous servez seulement que des documents ASCII, par exemple + provenant d'un montage NFS d'un serveur Unix, utilisez : +<pre> + # Tous les documents sont déjà en ASCII: + EBCDICConvertByType Off */* +</pre> + + <p><strong>Voir également</strong>: <a + href="#ebcdicconvert">EBCDICConvert</a> et <a + href="../ebcdic.html#ebcdic">Aperçu des fonctions de + conversion EBCDIC</a></p> + <hr /> + + <h2><a id="ebcdickludge" + name="ebcdickludge">EBCDICKludge</a></h2> + <!--%plaintext <?INDEX {\tt EBCDICKludge} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> EBCDICKludge On|Off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>EBCDICKludge + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + EBCDICKludge est disponible à partir de la version + 1.3.19 d'Apache sur les plate-formes basées sur EBCDIC. + Il est désuet et sera abandonné dans les versions + ultérieures.<br /> + + + <p>The EBCDICKludge est proposée par + compatibilité avec les versions d'Apache 1.3.0 à + 1.3.18. Dans ces versions, tous les fichiers dont le type MIME + commence par "text/", "message/" ou "multipart/" ou dont le + type est "application/x-www-form-urlencoded" sont convertis par + défaut, les autres documents sont retournés sans + conversion. Un document est présumé être au + format ASCII iuniquement si il est du type + "<samp>text/<b>x-ascii-</b><i>sous-type</i></samp>", et ne sera + donc pas converti. A la place, le préfixe + "<samp><b>x-ascii-</b></samp>" était supprimé du + type, obtenant ainsi le type MIME + "<samp>text/<i>sous-type</i></samp>" comme type du document + retourné.</p> + + <p>Si la directive EBCDICKludge est mise à + <samp>On</samp>, et si aucune des extensions de fichiers ne + correspondent aux directives <a + href="#ebcdicconvert">EBCDICConvert</a> définis dans le + contexte , alors le serveur teste avec le type MIME de format + <samp><i>type/</i><b>x-ascii-</b><i>sous-type</i></samp>. Si le + document a un tel type alors la chaîne + "<samp><b>x-ascii-</b></samp>" est supprimée et la + conversion est mise à <samp>Off</samp>. Cela permet de + surcharger l'assertion implicite que tous les fichiers sont + stockés au format EBCDIC, par exemple si Apache sert des + fichiers provenant d'un montage NFS d'un répertoire + contenant des documents ASCII.<br /> + En utilisant EBCDICKludge, Il n'y a aucun moyen de forcer un + des autres types MIME (par exemple model/vrml) d'être + traité au format EBCDIC. L'utilisation de la directive + <a href="#ebcdicconvertbytype">EBCDICConvertByType</a> est + préférable pour définir une telle + conversion. Avant Apache 1.3.19, il n'y avait aucun moyen de + forcer ces document binaires d'être traités comme + des fichiers textes EBCDIC</p> + + <p><strong>Voir également</strong> : <a + href="#ebcdicconvert">EBCDICConvert</a>, <a + href="#ebcdicconvertbytype">EBCDICConvertByType</a> and <a + href="../ebcdic.html#ebcdic">Aperçu des fonctions de + conversion EBCDIC</a></p> + <hr /> + + <h2><a id="errordocument" name="errordocument">Directive + ErrorDocument</a></h2> + <!--%plaintext <?INDEX {\tt ErrorDocument} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ErrorDocument <em>code d'erreur + document</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels, répertoire, + .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> FileInfo<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> Les + contextes répertoire et .htaccess ne sont utilisables + qu'à partir de la version 1.1 d'Apache. + + <p>Dans l'éventualité d'un problème ou + d'une erreur, Apache peut exécuter l'une des quatre + actions suivantes :</p> + + <ol> + <li>sortie d'un message d'erreur simple standard</li> + + <li>sortie d'un message personnalisé</li> + + <li>redirection vers une URL locale pour traiter le + problème (ou l'erreur)</li> + + <li>redirection vers une URL externe pour traiter le + problème (ou l'erreur)</li> + </ol> + + <p>La première option est celle par défaut, les + options 2 à 4 seront obtenues en utilisant la directive + <tt>ErrorDocument</tt>, suivi du code HTTP d'erreur et du + message textuel d'erreur, ou une URL.</p> + + <p><em>Messages</em> dans ce contexte, commence par un + guillemet simple (<code>"</code>), qui ne fait pas partie du + message lui-même. Apache ajoutera souvent des + informations complémentaires explicitant le + problème (ou l'erreur).</p> + + <p>L'URL peut débuter par un slash (/) pour des URL + locales, ou être complètement qualifiées. + Exemples:</p> + + <blockquote> + <code>ErrorDocument 500 + http://foo.example.com/cgi-bin/tester<br /> + ErrorDocument 404 /cgi-bin/bad_urls.pl<br /> + ErrorDocument 401 /subscription_info.html<br /> + ErrorDocument 403 "Sorry can't allow you access today</code> + </blockquote> + + <p>Notez que lorsque vous spécifiez un + <tt>ErrorDocument</tt> qui pointe vers une URL externe (c'est + -à-dire toute adresse commençant par quelque + chose du style "http:") Apache émettra une requête + de redirection au client pour lui indiquer où trouver le + document. Ceci peut perturber les robots et d'autres clients + qui essaient de déterminer si une URL est valide en + testant le code retour de la requête. De plus, si vous + utilisez l'écriture <code>ErrorDocument 401</code> le + client ne saura pas qu'il doit demander un mot de passe + puisqu'il ne recevra pas le code retour 401. Par + conséquent, il est impératif d'utiliser une URL + locale pour une directive "ErrorDocument 401". Ceci est induit + par la nature des schémas d'authentification de base + d'HTTP.</p> + + <p><strong>Voir aussi:</strong> <a + href="../custom-error.html">documentation sur les + réponses personnalisées.</a></p> + <hr /> + + <h2><a id="errorlog" name="errorlog">Directive + ErrorLog</a></h2> + <!--%plaintext <?INDEX {\tt ErrorLog} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ErrorLog <em>nomfichier</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>ErrorLog + logs/error_log</code> (Unix)<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>ErrorLog + logs/error.log</code> (Windows et OS/2)<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive définit le nom du fichier dans lequel + le serveur marque la trace des erreurs rencontrées. Si + le nom de fichier ne commence pas par un slash (/), alors la + partie "chemin d'accès" est considérée + relativement à <a href="#serverroot">ServerRoot</a>. + Exemple:</p> + + <blockquote> + <code>ErrorLog /dev/null</code> + </blockquote> + + <p>Cette expression a pour effet de désactiver la trace + d'erreurs.</p> + Si le fichier commence par une barre verticale (|), il est + censé être une commande à exécuter + pour ttraiter le message d'erreur.<br /> + <br /> + + + <p><strong>Apache 1.3 et ultérieur:</strong> en + utilisant <code>syslog</code> à la place d'un fichier + permet d'employer syslogd(8) si le système l'accepte. Le + défau est d'utiliser la fonction syslog + <code>local7</code>, mais vous pouvez remplacer ceci en + utilisant la syntaxe <code>syslog:</code><em>service</em> + où <em>service</em> peut être un des noms + documenté dans syslog(1).</p> + + <p><strong>Sécurité :</strong> Voir la page <a + href="../misc/security_tips.html">note sur la + securité</a> pour plus d'information concernant une + possibilité de brêche de sécurité si + le répertoire d'accueil des fichiers de trace peut + être écrit par tout autre utilisateur que le + propriétaire du processus serveur.</p> + <hr /> + + <h2><a id="files" name="files">Directive <Files></a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <Files <em>nomfichier</em>> ... + </Files><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + Disponible à partir de la version 1.2 d'Apache. + + <p>La directive <tt><Files></tt> permet une gestion de + contrôle d'accès fichier par fichier. Elle est + comparable aux directives <a + href="#directory"><Directory></a> et <a + href="#location"><Location></a>. Elle doit s'apparier + à une directive <tt></Files></tt>. Les directives + applicables au fichier indiqué sont encapsulées + entre ces deux balises. Les sections <tt><Files></tt> + sont traitées dans l'ordre où elles apparaissent + dans le fichier de configuration, une fois traitées les + sections <tt><Directory></tt> et les fichiers .htaccess, + mais avant les sections <tt><Location></tt>.</p> + + <p>L'argument <em>filename</em> peut inclure un nom de fichier, + où un motif, dans lequel '?' correspond à tout + caractère unique quelconque, et '*' correspond à + une séquence de zéro à un nombre + quelconque de caractères. Les "expressions + régulières" peuvent aussi être + utilisées, pourvu qu'elles soient + précédées du caractère + <code>~</code>. Par exemple :</p> +<pre> + <Files ~"\.(gif|jpe?g|png)$"> +</pre> + + <p>correspondrait à la majorité des fichiers + graphiques utilisés sur Internet. A partir de la version + 1.3 d'Apache, l'usage de la directive <a + href="#filesmatch"><FilesMatch></a> est cependant + préférable.</p> + + <p>Notez que, contrairement aux sections <a + href="#directory"><Directory></a> et <a + href="#location"><Location></a>, les sections + <tt><Files></tt> peuvent apparaître dans des + fichiers <code>.htaccess</code>. Ceci permet aux utilisateurs + de contrôler l'accès à leurs propres + fichiers, sur un mode individuel. Lorsqu'elles sont + utilisées dans un fichier <code>.htaccess</code>, si + <em>nomfichier</em> ne commence pas par un slash (/), le + répertoire courant contenant ledit fichier + <code>.htaccess</code> y sera préfixé + automatiquement.</p> + + <p><strong>Voir aussi :</strong> <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée</p> + <hr /> + + <h2><a id="filesmatch" name="filesmatch">Directive + <FilesMatch></a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <FilesMatch <em>regex</em>> ... + </Files><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + Disponible à partir de la version 1.3 d'Apache. + + <p>La directive <tt><FilesMatch></tt> permet un + contrôle d'accès fichier par fichier, tout comme + la directive <a href="#files"><Files></a>. Cependant, + elle n'accepte qu'un argument sous forme d'expression + régulière. Par exemple :</p> + + <blockquote> + <code><FilesMatch "\.(gif|jpe?g|png)$"></code> + </blockquote> + + <p>qui correspondrait à la plupart des fichiers + graphiques utilisés sur Internet.</p> + + <p><strong>Voir aussi :</strong> <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée</p> + <hr /> + + <h2><a id="group" name="group">Directive Group</a></h2> + <!--%plaintext <?INDEX {\tt Group} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> Group <em>groupeUnix</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>Group + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>Group</tt> définit le groupe dont + les requêtes seront traitées par le serveur. Pour + utiliser cette directive, le serveur stand-alone doit tout + d'abord être exécuté par l'utilisateur + "root". <em>groupeUnix</em> est à choisir parmi :</p> + + <dl> + <dt>un nom de groupe</dt> + + <dd>se réfère à un groupe unix par son + nom.</dd> + + <dt># suivi d'unnuméro de groupe.</dt> + + <dd>se réfère à un groupe par son + indice.</dd> + </dl> + + <p>Il est recommendé de créer un nouveau groupe + d'utilisateurs pour les utilisateurs exécutant le + serveur. Certains administrateurs assignent le serveur à + l'utilisateur <code>nobody</code>, mais ceci n'est pas toujours + possible ou souhaîtable.</p> + + <p><strong>Note :</strong> si vous démarrez le serveur + sous un compte utilisateur autre que "root", la commutation sur + un autre groupe échouera, et le groupe utilisé + restera le groupe initial de l'utilisateur.</p> + + <p><strong>Note spéciale :</strong> L'utilisation de + cette directive dans un contexte <tt><VirtualHost></tt> + nécessite un <a href="../suexec.html">suEXEC wrapper</a> + correctement configuré. De cette manière et dans + ce contexte, seul le groupe dans lequel sont + exécutés les CGI sont affectés. Toute + requête autre que CGI sont toujours lancées dans + le groupe défini par la directive Group principale.</p> + + <p><strong>Sécurité :</strong> Voir <a + href="#user">Utilisateur</a> pour une discussion plus + détaillée sur les aspects utilisateurs.</p> + <hr /> + + <h2><a id="hostnamelookups" name="hostnamelookups">Directive + HostNameLookups</a></h2> + <!--%plaintext <?INDEX {\tt HostNameLookups} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> HostNameLookups <em>on | off | double</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>HostNameLookups off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <code>double</code> n'est disponible qu'à partir de la + version 1.3 d'Apache.<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> La + valeur par défaut était <code>on</code> pour + toute version antérieure à la version 1.3 + d'Apache. + + <p>Cette directive autorise la résolution DNS pour la + trace d'accès (et pour les passer aux CGI/SSI en + <code>REMOTE_HOST</code>). La valeur <code>double</code> + signifie une résolution DNS inverse double. + C'est-à-dire, après qu'une résolution + inverse soit effectuée, une résolution est + ensuite effectuée à partir du résultat + obtenu. Au moins une des adresses IP obtenues par la + deuxième résolution doit correspondre à + l'adresse originale. (Dans le langage des "fous de tcp" ceci + s'appelle <code>PARANOID</code>.)</p> + + <p>Indépendamment du mode choisi, lorsque <a + href="mod_access.html">mod_access</a> est utilisé pour + faire du contrôle d'accès par nom d'hôte, + une résolution inverse double sera effectuée. + Ceci est indispensable pour des raisons de + sécurité. Notez que le résultat de cette + résolution inverse double n'est en général + pas accessible sauf si l'option <samp>HostnameLookups + double</samp> est activée. Par exemple, si l'option est + simplement <samp>HostnameLookups on</samp> et une requête + est reçue vers un objet soumis à des restrictions + quant aux noms d'hôtes, et quelque soit le + résultat de la réslution inverse double, les CGI + recevront le résultat de la résolution inverse + dans la variable d'environnement <code>REMOTE_HOST</code>.</p> + + <p>Par défaut, l'état choisi était + <code>on</code> dans les versions d'apache antérieures + à la version 1.3. Elle est aujourd'hui à + <code>off</code> afin de diminuer le trafic pour les sites qui + n'ont pas un besoin absolu de la résolution inverse. + C'est aussi un avantage pour les utilisateurs finaux qui + n'auront pas à attendre la fin du processus de + résolution avant d'être servis. Des sites + chargés devraient plutôt laisser cette opyion + à <code>off</code>, dans la mesure où une + recherche DNS peut consommer un temps non négligeable. + L'utilitaire <code>logresolve</code>, fourni dans le + répertoire <i>/support</i>, peut être + utilisé pour résoudre des noms d'hôtes + à partir des adresses IP tracées en mode + "offline".</p> + <hr /> + + <h2><a id="identitycheck" name="identitycheck">Directive + IdentityCheck</a></h2> + <!--%plaintext <?INDEX {\tt IdentityCheck} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> IdentityCheck <em>booléen</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>IdentityCheck off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive autorise une trace conforme à la + RFC1413 du nom d'utilisateur pour chaque connexion, lorsque la + machine cliente exécute identd ou un procesus similaire. + Cette information est tracée dans le fichier + <code>access log</code>. <em>booléen</em> vaut soit + <code>on</code> ou <code>off</code>.</p> + + <p>Cette information n'est absolument pas certifiée et + ne peut être considérée que pour une + analyse sommaire.</p> + + <p>Notez que ce fontionnement peut rallonger notablement les + délais d'accès à votre serveur dans la + mesure où chaque requête nécessite + l'exécution d'une résolution. Lorsque des + "firewalls" sont présents chaque résolution peut + éventuellement échouer et ajouter ainsi 30 + secondes d'attente pour chaque accès. En conclusion, + cette option n'est en général pas opportune pour + des serveurs Internet ouverts au public.</p> + <hr /> + + <h2><a id="ifdefine" name="ifdefine"><IfDefine> + directive</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <IfDefine + [!]<em>nom-paramètre</em>> <em>...</em> + </IfDefine><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> aucun<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> tous<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <IfDefine> est disponible à partir de la version + 1.3.1 + + <p>La section <IfDefine + <em>test</em>>...</IfDefine> est employée pour + délimiter des directives conditionnelles. Les directives + à l'intérieur d'un section IfDefine ne sont + prises en compte que si <em>test</em> est vraie. Si + <em>test</em> est faux, tout ce qui se trouve entre le marqueur + de début et celui de fin est ignoré.</p> + + <p>Le <em>test</em> de la section <IfDefine> peut exister + sous deux formes :</p> + + <ul> + <li><em>nom-paramètre</em></li> + + <li><code>!</code><em>nom-paramètre</em></li> + </ul> + + <p>Dans le premier cas, les directives entre les marqueurs de + début et de fin ne sont traité que si le + paramètre nommé <em>nom-paramètre</em> est + défini. Dans le deuxième cas, les directives + entre les marqueurs de début et de fin ne sont + traité que si le paramètre nommé + <em>nom-paramètre</em> n'est <strong>pas</strong> + défini.</p> + + <p>L'argument <em>nom-paramètre</em> est une + définition qui peut être donnée en ligne de + commande d'httpd en utilisant l'option + <code>-D</code><em>nom-paramètre</em>, au lancement du + serveur.</p> + + <p>Les sections <IfDefine> peuvent s'imbriquer, ce qui + permet de réaliser des test sur plusieurs + paramètres. Par exemple :</p> +<pre> + $ httpd -DReverseProxy ... + + # httpd.conf + <IfDefine ReverseProxy> + LoadModule rewrite_module libexec/mod_rewrite.so + LoadModule proxy_module libexec/libproxy.so + </IfDefine> +</pre> + <hr /> + + <h2><a id="ifmodule" name="ifmodule">Directive + <IfModule></a></h2> + <b>Syntaxe :</b> <IfModule [!]<i>nomModule</i>> + <i>...</i> </IfModule><br /> + <b>Défaut :</b> aucun<br /> + <b>Contexte :</b> tous<br /> + <b>Statut :</b> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> IfModule + n'est disponible qu'à partir de la version 1.2 d'Apache. + + + <p>La section <tt><IfModule + <i>test</i>></tt>...</IfModule> permet de rendre + conditionnelles un groupe de directives. Les directives + à l'intérieur d'une section IfModule ne sont + considérées que si le <i>test</i> est + vérifié. Si <i>test</i> vaut faux, toute + directive inclue entre la balise de début et celle de + fin sont ignorées.</p> + + <p>Le <em>test</em> d'une section <tt><IfModule></tt> + peut prendre l'une des formes suivantes :</p> + + <ul> + <li><i>nomModule</i></li> + + <li>!<i>nomModule</i></li> + </ul> + + <p>Dans le premier cas, les directives entre les deux balises + de début et de fin ne sont traitées que si le + module indiqué par <em>nomModule</em> est compilé + dans votre version d'Apache. La seconde forme inverse le sens + du test, et ne traite les directives que si le module + <em>nomModule</em> n'est <b>pas</b> compilé.</p> + + <p>L'argument <em>nomModule</em> spécifie un nom de + module par son nom de fichier source, tel qu'appelé par + la compilation. Par exemple, <code>mod_rewrite.c</code>.</p> + + <p>Les sections <tt><IfModule></tt> peuvent être + imbriquées, ce qui peut être utile pour + implémenter simplement des tests multi-modules.</p> + <hr /> + + <h2><a id="include" name="include">Directive Include</a></h2> + <strong>Syntaxe :</strong> Include <em>nomfichier</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> Include + n'est disponible qu'à partir de la version 1.3 d'Apache. + + + <p>Cette directive permet l'inclusion d'autres fichiers de + configuration à partir d'autres fichiers de + configuration serveur.</p> + + <p>A partir de la version Apache 1.3.13, si + <code>Include</code> pointe vers un répertoire plutot + qu'un fichier, Apche lira tous fichiers de ce + répertoire, ou des sous-répertoires, et traitera + chacun de ces fichiers de configuration.</p> + <hr /> + + <h2><a id="keepalive" name="keepalive">Directive + KeepAlive</a></h2> + <strong>Syntaxe : (Apache 1.1)</strong> KeepAlive + <em>requêtesMax</em><br /> + <strong>Défaut : (Apache 1.1)</strong> <code>KeepAlive + 5</code><br /> + <strong>Syntaxe : (Apache 1.2)</strong> KeepAlive + <em>on/off</em><br /> + <strong>Défaut : (Apache 1.2)</strong> <code>KeepAlive + On</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + KeepAlive est disponible à partir de la version 1.1 + d'Apache. + + <p>L'extension Keep-Alive d'HTTP/1.0 et les connexions + persistantes d'HTTP/1.1 fournissent des sessions durables HTTP + , qui autorisent plusieurs requêtes à être + envoyées sur la même connexion. Dans certains cas, + il a été constaté une réduction de + 50% du temps de latence ppour des documents HTML contenant de + nombreuses images. Pour activer les connexions persistantes + (keep-alive) à partir d'Apache 1.2 il faut + définir la directive <code>KeepAlive On</code>.</p> + + <p>Pour les clients HTTP/1.1, Les connexions persistantes ne + sont employées que si elles sont spécifiquement + demandées par un client. De plus, une connexion + persistantes ne peut être employées que si la + taille du contenu est connu à l'avance. Ceci implique + que les contenus dynamiques, tels que les scripts CGI, les + pages SSI, et les listes de répertoires + générés par le serveur n'utilisent pas de + connexions persistentes pour les clients HTTP/1.0. Pour les + clients HTTP/1.1, les connexions sont persistantes par + défaut à moins d'être + spécifiée. Si le client le demande, l'encodage + par tranches est utilisé afin d'envoyer des contenus de + tailles inconnus au travers de connxions persistantes.</p> + + <p><strong>Sous Apache 1.1</strong>: Mettre + <em>requêtesMax</em> au nombre maximum de requêtes + qu'Apache peut traiter par connexion persistante. Une + limitation est imposée pour éviter qu'un client + ne vienne asphyxier votre serveur en ressources. Mettre un + <code>0</code> pour désactiver ce support. A partir de + la version 1.2, ceci est contrôlé par la directive + MaxKeepAliveRequests</p> + Voir aussi la directive <a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a>.<br /> + <br /> + + <hr /> + + <h2><a id="keepalivetimeout" name="keepalivetimeout">Directive + KeepAliveTimeout</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> KeepAliveTimeout <em>secondes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>KeepAliveTimeout 15</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>KeepAliveTimeout</tt> est disponible à partir de la + version 1.1 d'Apache. + + <p>Le nombre de secondes pendant lesquelles Apache attendra une + requête postérieure avant de rompre une connexion. + Dès qu'une requête est reçue, la valeur de + la temporisation spécifiée par la directive <a + href="#timeout">Timeout</a> s'applique.</p> + + <p>Mettre <code>KeepAliveTimeout</code> à une grande + valeur peut créer des problèmes de performance + pour des serveurs chargés. Le plus grand est ce + délai, le plus les processus du serveur seront + occupés en attente de connexions avec des clients + inactifs.</p> + <hr /> + + <h2><a id="limit" name="limit">Directive <Limit></a></h2> + <!--%plaintext <?INDEX {\tt Limit} section directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <Limit <em>méthode méthode</em> + ... > ... </Limit><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> tous<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Les contrôles d'accès sont normalement actives + pour <strong>toutes</strong> les méthodes + d'accès, et ceci est le comportement normal. <strong>En + général, les directives de contrôle + d'accès ne doivent être placées à + l'intérieur d'une section + <code><limit></code>.</strong></p> + + <p>Le but de la directive <Limit> est de restreindre la + portée des contrôles d'accès à + certaines méthodes HTTP. Pour toutes les autres + méthodes, les restrictions d'accès qui sont + situées à l'intérieur de <Limit> + <strong>sont sans effets</strong>. L'exemple suivant applique + le contrôle d'accès uniquement aux méthodes + POST, PUT, and DELETE, laissant les autres méthodes non + protégées :</p> + + <blockquote> + <code><Limit POST PUT DELETE><br /> + Require valid-user<br /> + </Limit></code> + </blockquote> + Les noms de méthodes peuvent être choisis parmi + GET, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, + PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, et UNLOCK. + <strong>Le nom de la méthode est sensible à la + casse.</strong> Si GET est employé, il restreindra + également les requêtes HEAD. + <hr /> + + <h2><a id="limitexcept" name="limitexcept">Directive + <LimitExcept></a></h2> + <!--%plaintext <?INDEX {\tt LimitExcept} section directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <LimitExcept <em>méthode</em> + [<em>méthode</em>] ... > ... + </LimitExcept><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> tous<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + disponible à partir de la version 1.3.5 d'Apache. + + <p><LimitExcept> et </LimitExcept> sont + employés pour entourer un groupe de directives de + contrôle d'accès qui s'appliqueront pour n'importe + quelle méthode d'accès ne se trouvant + <strong>pas</strong> en arguments Cette directive est + l'oppsée de <a href="#limit"><Limit></a> et peut + être employée pour contrôler les + méthodes non reconnues ou non standard. Voir la + documentation de <a href="#limit"><Limit></a> pour plus + de détails.</p> + <hr /> + + <h2><a id="limitrequestbody" name="limitrequestbody">Directive + LimitRequestBody</a></h2> + <!--%plaintext <?INDEX {\tt LimitRequestBody} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LimitRequestBody <em>octets</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>LimitRequestBody 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + LimitRequestBody est disponible à partir de la version + 1.3.2. + + <p>Cette directive détermine la taille maximale en + octets que peut avoir le corps d'une requête. Elle peut + aller de 0 (illimité) à 2147483647 (2GB). La + valeur par défaut est déterminée à + la compilation par la constante + <code>DEFAULT_LIMIT_REQUEST_BODY</code> (0 dans les + distributions).</p> + + <p>La directive LimitRequestBody directive permet à + l'utilisateur de fixer une limite à la taille du corps + d'une requête à l'intérieur du contexte + où cette directive est située (serveur, par + répertoire, par fichier). Si le client effezctue une + requête excédant cette limite, le serveur + retournera un message d'erreur au lieu de traiter la + requête. La taille d'une requête normale peut + beaucoup varier en fonction de la nature de la ressource + demandée et des méthodes d'accès permise + sur cette ressource. Typiquement les scripts CGI utilise le + corps du message pour passer des informations au serveur. Des + implémentation de la méthode PUT nécessite + une valeur au moins aussi grande que le serveur souhaite + recevoir pour cette ressource.</p> + + <p>Cette directive donne à l'administrateur un plus + grand contrôle par rapport à des requêtes + anormales de clients, et peut être utile pour + éviter certaines formes d'attaques par déni de + service.</p> + <hr /> + + <h2><a id="limitrequestfields" + name="limitrequestfields">Directive LimitRequestFields</a></h2> + <!--%plaintext <?INDEX {\tt LimitRequestFields} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LimitRequestFields <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>LimitRequestFields 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + LimitRequestFields est disponible à partir de la version + 1.3.2. + + <p><em>Number</em> est un entier allant de 0 (signifiant sans + limite) à 32767. La valeur par défaut est + définie à la compilation par la constante + <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 dans la + distribution).</p> + + <p>La directive LimitRequestFields permet à + l'administrateur du serveur de modifier le nombre maximum de + champs autorisé à l'intérieur de + l'en-tête d'une requête HTTP. Un serveur doit avoir + cette valeur supérieure au nombre de champs qu'un client + normal peut inclure. Le nombre de champs utilisé par un + client excède rarement 20, mais ceci peut varier en + fonction de l'implémentation des clients, le plus + souvent il dépend du niveau auquel le client a + configuré son butineur pour accepter une + négociation de contenu très fine. Les extensions + HTTP optionnelles sont exprimées en utilisant des champs + dans l'en-tête de requête.</p> + + <p>Cette directive permet à l'administrateur un meilleur + contrôle par rapport à des requêtes + anormales, ce qui peut être utile pour éviter + certaines attaques par déni de service. Cette valeur + doit être augmentée si certains clients obtiennent + un message d'erreur à leurs requêtes indiquant que + trop de champs sont envoyés dans la requête.</p> + <hr /> + + <h2><a id="limitrequestfieldsize" + name="limitrequestfieldsize">Directive + LimitRequestFieldsize</a></h2> + <!--%plaintext <?INDEX {\tt LimitRequestFieldsize} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LimitRequestFieldsize <em>octets</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>LimitRequestFieldsize 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + LimitRequestFieldsize est disponible à partir de la + version 1.3.2. + + <p>Cette directive indique la taille maximale de + l'en-tête d'une requête HTTP et peut aller de 0 + <em>octets</em> à la valeur définit à la + compilation par la constante + <code>DEFAULT_LIMIT_REQUEST_FIELDSIZE</code> (8190 dans la + distribution standard).</p> + + <p>La directive LimitRequestFieldsize permet à + l'administrateur de limiter la taille autorisée pour le + champ d'en-tête HTTP d'une requête à une + valeur inférieure à celle définie à + la compilation. Un serveur doit avoir cette valeur suffisamment + grande pour pouvoir traiter les requêtes de clients + normaux. La taille d'une requête noramle peut beaucoup + varier en fonction de l'implémentation du client, le + plus souvent il dépend du niveau auquel le client a + configuré son butineur pour accepter une + négociation de contenu très fine.</p> + + <p>Cette directive permet l'administrateur d'avoir un meilleur + contrôle sur des requêtes ayant un comportement + anormale, ce qui peut être utile afin d'éviter + certaines formes d'attaques par déni de service. Dans + des conditions normales, cette valeur doit rester celle par + défaut.</p> + <hr /> + + <h2><a id="limitrequestline" name="limitrequestline">Directive + LimitRequestLine</a></h2> + <!--%plaintext <?INDEX {\tt LimitRequestLine} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LimitRequestLine <em>octets</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>LimitRequestLine 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + LimitRequestLine est disponible à partir de la version + 1.3.2. + + <p>Cette directive indique la taille maximale d'une + requête HTTP et peut aller de 0 <em>octets</em> à + la valeur définit à la compilation par la + constante <code>DEFAULT_LIMIT_REQUEST_LINE</code> (8190 dans la + distribution standard).</p> + + <p>La directive LimitRequestLine permet à + l'administrateur de réduire la limite fixée pour + une requête HTTP en dessous de la valeur fixée + à la compilation. Comme une requête est + composée de la méthode HTTP, d'une URI et de la + version du protocole utilisé, la directive + LimitRequestLine place une restriction sur la taille maximale + que peut avoir une URI dansune requête. Un serveur doit + avoir cette valeur suffisamment grande pour pouvoir traiter + n'importe quelle de ses ressources, en prenant en compte les + informations qui pourrait être passées dans une + requête GET.</p> + + <p>Cette directive permet l'administrateur d'avoir un meilleur + contrôle sur des requêtes ayant un comportement + anormale, ce qui peut être utile afin d'éviter + certaines formes d'attaques par déni de service. Dans + des conditions normales, cette valeur doit rester celle par + défaut.</p> + <hr /> + + <h2><a id="listen" name="listen">Directive Listen</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> Listen + [<em>adresseIp</em>:]<em>numéroPort</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> Listen + est disponible à partir de la version 1.1 d'Apache. + + <p>La directive <tt>Listen</tt> enjoint Apache à + écouter plus d'une adresse IP ou port; par défaut + Apache répond aux requêtes reçues sur + toutes les interfaces IP, mais seulement celles arrivant sur le + port donné par la directive <a + href="#port">Port</a>.</p> + <tt>Listen</tt> peut être utilisée à la + place de <tt><a href="#bindaddress">BindAddress</a></tt> et + <tt>Port</tt>. Elle indique au serveur d'accepter des + requêtes entrantes sur le port spécifié ou + sur une combinaison adresse-port. Si le premier format est + utilisé (avec seule mention d'un numéro de port), + le serveur "écoutera" tous les ports + spécifiés sur chacune des interfaces IP qu'il + connaît, plutôt que sur le port donné par la + directive <tt>Port</tt>. Si une adresse IP adresse IP est + précisée en complément, le serveur + restreindra son écoute à la combinaison + adresse-port précisée.<br /> + <br /> + + + <p>Notez que vous avez toujours besoin de la directive + <tt>Port</tt> qui permettent à Apache de + générer les URL de retour vers votre serveur.</p> + + <p>Plusieurs directives <tt>Listen</tt> peuvent être + utilisées pour spécifier un ensemble d'adresses + et de ports à écouter. Le serveur répondra + aux requêtes reçues sur n'importe laquelle des + combinaisons adresse-port ainsi spécifiée.</p> + + <p>Par exemple, pour autoriser le serveur à accepter des + connexions sur les ports 80 et 8000, écrire :</p> + + <blockquote> +<pre> +<code>Listen 80 +Listen 8000 +</code> +</pre> + </blockquote> + + <p>Pour autoriser un serveur à accepter des connexions + sur deux "sockets" qualifiés, écrire :</p> +<pre> +Listen 192.170.2.1:80 +Listen 192.170.2.5:8000 +</pre> + + <p><strong>Voir aussi:</strong> <a + href="../dns-caveats.html">Apache et DNS</a><br /> + <strong>Voir aussi:</strong> <a href="../bind.html">Configurer + les ports et adresses utilisée par Apache</a><br /> + <strong>Voir aussi :</strong> <a + href="http://httpd.apache.org/info/known_bugs.html#listenbug">Bogues + connus</a></p> + <hr /> + + <h2><a id="listenbacklog" name="listenbacklog">Directive + ListenBacklog</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ListenBacklog <em>backlog</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ListenBacklog 511</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>ListenBacklog</tt> n'est disponible qu'à partir de + la version 1.2.0 d'Apache. + + <p>La longueur maximale de la file d'attente des connexions en + attente. En général, aucun ajustement n'est + nécessaire, cependant, il est souhaitable sur certains + systèmes d'augmenter cette longueur de file pour + répondre à des attaques TCP SYN. Voir les + paramètres backlog dans l'appel système + <code>listen(2)</code>.</p> + + <p>Cette directive est limitée à un petit nombre + par le système d'exploitation. Elle peut varier d'un + système à un autre. Il faut également + noter que pour la plupart des systèmes, la valeur + réellement utilisée n'est pas celle + spécifiée par la directive, mais un nombre + basé sur cette valeur (généralement plus + grande).</p> + <hr /> + + <h2><a id="location" name="location">Directive + <Location></a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <Location <em>URL</em>> ... + </Location><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>Location</tt> est disponible à partir des versions + 1.1 d'Apache. + + <p>La directive <tt><Location></tt> permet d'instaurer un + contrôle d'accès sur une base URL. Elle est + comparable à la directive <a + href="#directory"><Directory></a>, et doit s'apparier + à une directive <tt></Location></tt>. Les + directives s'appliquant à l'URL précisée + seront à inclure entre ces deux balises. Les sections + <tt><Location></tt> sont traitées dans l'ordre + où elles apparaissent dans le fichier de configuration, + une fois les sections <tt><Directory></tt> et les + fichiers <code>.htaccess</code> traités.</p> + + <p>Il faut noter que les URL n'ont pas du tout à suivre + la même organisation que le système de fichiers, + et il faut souligner que la directive <Location> + opère de manière totalement indépendante + du système de fichiers.</p> + + <p>Le <em>préfixe d'URL</em> devra, sauf pour des + requêtes à un proxy, être de la forme + <code>/chemin/</code>, et ne devra pas inclure de mention + <code>http://nomserveur</code>. Elle ne protège pas + nécessairement un répertoire (cela peut + être un fichier individuel, ou un ensemble de fichiers), + et peut inclure des métacaractères. Dans un motif + (avec des métacaractères), '?' remplace un + caractère quelconque, et '*' remplace toute chaîne + quelconque de 0 ou plus caractères. POur les + requêtes à un proxy, l'URL doitt être de la + forme <code>scheme://nomserveur/serveur</code>, et vous devez + inclure le préfixe.</p> + + <p><strong>Apache 1.2 et plus :</strong> Des expression + régulières peuvent être utilisées, + à condition de les faire précéder du + caractère <code>~</code>. Par exemple :</p> + + <blockquote> + <code><Location ~ "/(extra|special)/data"></code> + </blockquote> + + <p>correspondrait à des URL contenant la + sous-chaîne "/extra/data" ou "/special/data". Cependant, + sous Apache 1.3, l'utilisation de la directive <a + href="#locationmatch"><LocationMatch></a> est + conseillée.</p> + + <p>La fonctionnalité <tt>Location</tt> est + particulièrement pratique lorsque combinée + à la directive <a + href="mod_mime.html#sethandler">SetHandler</a>. Par exemple, + pour permettre des requêtes sur les rapports + d'état, mais ne les autoriser que pour des agents + requérant à partir du domaine foo.com, vous + pourriez écrire :</p> + + <blockquote> +<pre> +<code><Location /status> +SetHandler server-status +order deny,allow +deny from all +allow from .foo.com +</Location> +</code> +</pre> + </blockquote> + + <p><strong>Note sur / (barre oblique) pour les version + supérieures à 1.3</strong>: La caractère + barre oblique à une signification particulière en + fonction de l'endroit où il se situe. Des personnes sont + habitués au comportement dans certains systèmes + de fichiers où de multiples caractères obliques + sont remplacés par un caractère unique (par + exemple <code>/home///foo</code> est identique à + <code>/home/foo</code>). Dans le monde des URL ceci n'est pas + obligatoirement vrai. La directive + <code><LocationMatch></code> et la version avec + expression régulière de + <code><Location></code> demande de spécifier + plusieurs caractères obliques si ceci est votre + intention. Par exemple, <code><LocationMatch + ^/abc></code> fonctionnera avec l'URL <code>/abc</code> mais + pas avec l'URL <code>//abc</code>. La directive (sans + expression régulière) + <code><Location></code> se comporte de manière + similaire quand elle est employée pour des + requêtes proxy. Mais si la directive (sans expression + régulière) <code><Location></code> est + utilisée pour des requêtes sans proxy, il + associera implicitement plusieurs obliques à un seul. + Par exemple, si vous spécifiez <code><Location + /abc/def></code> et que la requête est + <code>/abc//def</code> celle ci correspondra.</p> + + <p><strong>Voir aussi</strong>: <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée.</p> + <hr /> + + <h2><a id="locationmatch" name="locationmatch">Directive + <LocationMatch></a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <LocationMatch <em>regex</em>> ... + </LocationMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> Location + est disponible à partir de la version 1.3 d'Apache. + + <p>La directive <tt><LocationMatch></tt> permet + l'établissement d'un contrôle d'accès sur + une base URL, d'une façon identique à la + directive <a href="#location"><Location></a>. Cependant, + elle n'accepte qu'une expression régulière comme + argument. Par exemple :</p> + + <blockquote> + <code><LocationMatch "/(extra|special)/data"></code> + </blockquote> + représente des URL contenant l'une des + sous-chaînes "/extra/data" ou "/special/data". <br /> + <br /> + <strong>Voir aussi</strong> : <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée. + <hr /> + + <h2><a id="lockfile" name="lockfile">Directive + LockFile</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LockFile <em>nomfichier</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>LockFile + logs/accept.lock</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>LockFile</tt> indique le chemin + d'accès du fichier de verrouillage utilisé + lorsqu'Apache est compilé en mode + <code>USE_FCNTL_SERIALIZED_ACCEPT</code> ou + <code>USE_FLOCK_SERIALIZED_ACCEPT</code>. Ce paramètre + sera laissé généralement dans son + état par défaut. La raison principale qui + conduirait à modifier ce paramètre serait le fait + que le répertoire des traces (<code>logs</code>) soit + monté sous NFS, le fichier de verrouillage devant de + préférence être situé sur un disque + local à la machine serveur pour autant que possible. Le + PID du processus serveur principal est automatiquement + rajouté au nom de fichier.</p> + + <p><strong>SECURITE :</strong> il vaut mieux éviter de + metttre ce fichier dans un répertoire inscriptible par + tout le monde tel que <code>/var/tmp</code> cas quelqu'un + pourrait créer une attaque par déni de service et + empécher le serveur de redémarrer en + créant un fichier de verrouillage de même nom que + celui que veut créer le serveur.</p> + <hr /> + + <h2><a id="loglevel" name="loglevel">Directive + LogLevel</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> LogLevel <em>niveau</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>LogLevel + error</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôtes virtuels<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> LogLevel + est disponible à partir de la version 1.3. + + <p>LogLevel ajuste le niveau de verbosité des messages + inscrits dans les traces d'erreur (voir la directive <a + href="#errorlog">ErrorLog</a>). Les niveaux possibles sont par + ordre de gravité décroissante :</p> + + <table> + <tr> + <th align="LEFT"><strong>Niveau</strong> </th> + + <th align="LEFT"><strong>Description</strong> </th> + </tr> + + <tr> + <th> + </th> + + <th align="LEFT"><strong>Exemple</strong> </th> + </tr> + + <tr> + <td><code>emerg</code> </td> + + <td>Urgences - le système est inutilisable.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Child cannot open lock file. Exiting"</td> + </tr> + + <tr> + <td><code>alert</code> </td> + + <td>Une action doit être prise + immédiatement.</td> + </tr> + + <tr> + <td> + </td> + + <td>"getpwuid: couldn't determine user name from uid"</td> + </tr> + + <tr> + <td><code>crit</code> </td> + + <td>Conditions critiques.</td> + </tr> + + <tr> + <td> + </td> + + <td>"socket: Failed to get a socket, exiting child"</td> + </tr> + + <tr> + <td><code>error</code> </td> + + <td>Cas d'erreur.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Premature end of script headers"</td> + </tr> + + <tr> + <td><code>warn</code> </td> + + <td>Avertissements.</td> + </tr> + + <tr> + <td> + </td> + + <td>"child process 1234 did not exit, sending another + SIGHUP"</td> + </tr> + + <tr> + <td><code>notice</code> </td> + + <td>Normal mais condition significative.</td> + </tr> + + <tr> + <td> + </td> + + <td>"httpd: caught SIGBUS, attempting to dump core in + ..."</td> + </tr> + + <tr> + <td><code>info</code> </td> + + <td>Pour information.</td> + </tr> + + <tr> + <td> + </td> + + <td>"Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..."</td> + </tr> + + <tr> + <td><code>debug</code> </td> + + <td>Messages de déboguage</td> + </tr> + + <tr> + <td> + </td> + + <td>"Opening config file ..."</td> + </tr> + </table> + + <p>Quand un niveau est spécifié, les messages des + niveaux de plus haute gravité seront également + rapportés. Par exemple, quand la directive + <code>LogLevel info</code> est définie, les messages de + niveau <code>notice</code> et <code>warn</code> seront aussi + notifiés.</p> + + <p>L'utilisation d'un niveau de gravité d'au moins + <code>crit</code> est recommandé.</p> + <hr /> + + <h2><a id="maxclients" name="maxclients">Directive + MaxClients</a></h2> + <!--%plaintext <?INDEX {\tt MaxClients} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> MaxClients <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>MaxClients 256</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>MaxClients</tt> indique le nombre limite de + requêtes simultanées pouvant être + acceptées par le serveur ; il représente le + nombre maximum de processus serveur fils qui peuvent tourner + à un instant donné. Pour configurer plus de 256 + clients, vous devez modifier la constante HARD_SERVER_LIMIT du + fichier source d'Apache httpd.h et recompiler Apache.</p> + + <p>Les tentatives de connexions au delà de MaxClients + sont normalement mises en attente, jusqu'à une limite + fixée par la directive <a + href="#listenbacklog">ListenBacklog</a>. Une fois qu'un + processus fils est libre à la fin d'une requête + différente, la connexion en attente est + traitée.</p> + <hr /> + + <h2><a id="maxkeepaliverequests" + name="maxkeepaliverequests">Directive + MaxKeepAliveRequests</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> MaxKeepAliveRequests <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>MaxKeepAliveRequests 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + Uniquement à partir de la version 1.2 d'Apache. + + <p>La directive <tt>MaxKeepAliveRequests</tt> limite le nombre + de requêtes permises pour une connexion unique lorsque la + directive <a href="#keepalive">KeepAlive</a> est + activée. Si <em>nombre</em> vaut "<code>0</code>", + chaque connexion peut admettre un nombre illimité de + requêtes. Nous recommendons que ce paramètre soit + réglé sur une valeur relativement haute pour + obtenir des performances optimales du serveur. Dans la version + 1.1 d'Apache, ceci est contrôlé par la directive + Keepalive</p> + <hr /> + + <h2><a id="maxrequestsperchild" + name="maxrequestsperchild">Directive + MaxRequestsPerChild</a></h2> + <!--%plaintext <?INDEX {\tt MaxRequestsPerChild} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> MaxRequestsPerChild <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>MaxRequestsPerChild 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>MaxRequestsPerChild</tt> indique le nombre + limite de requêtes qu'un processus serveur fils peut + traîter. Après <tt>MaxRequestsPerChild</tt> + requêtes, ce processus fils meurt. Si ce paramètre + est fixé à 0, alors les processus fils ne meurent + jamais.</p> + + <p>Le fait de mettre <tt>MaxRequestsPerChild</tt> à une + valeur non nulle a deux conséquences + bénéfiques :</p> + + <ul> + <li>cela limite le volume de mémoire qu'un processus + peut consommer (accidentellement) et évite une + saturation mémoire ;</li> + + <li>en donnant à un processus un temps de vie fini, le + nombre total de processus impliqués dans le serveur + décroit lorsque la charge du serveur retombe.</li> + </ul> + + <p>Cependant sur les systèmes Win32, il est + recommandé de mettre cette valeur à 0. Si celle + ci est à une valeur non nulle, quand le nombre de + requêtes est atteint, le processus fils quitte, et est + relancé en relisant les fichiers de configuration. Ceci + peut conduire à un comportement imprévisible si + vous avez modifié un fichier de configuration, mais ne + souhaitez pas que ces changements soient pris en compte. Voir + également <a + href="#threadsperchild">ThreadsPerChild</a>.</p> + + <p><strong>NOTE:</strong> pour les requêtes + <em>KeepAlive</em> requests, seule la première + requête est comptée. En réalité, il + change le comportement afin de limiter le nombre de + <em>connexions</em> par fils.</p> + <hr /> + + <h2><a id="maxspareservers" name="maxspareservers">Directive + MaxSpareServers</a></h2> + <!--%plaintext <?INDEX {\tt MaxSpareServers} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> MaxSpareServers <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>MaxSpareServers 10</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>MaxSpareServers</tt> indique le nombre + maximal de processus fils en <em>attente</em>. Un processus en + attente est un processus qui existe, mais qui ne traite pas de + requête. S'il existe plus de <tt>MaxSpareServers</tt> de + ces processus, alors le père viendra tuer les processus + en supplémentaires.</p> + + <p>L'activation de cette fonctionnalité ne devrait + être nécessaire que sur les site vraiment + très chargés. Régler ce paramètre + sur une grande valeur est de toutes façon toujours une + mauvaise idée.</p> + + <p>Cette directive n'a aucun effet quand elle est + employée sur les plates-formes WIndows.</p> + + <p>Voir aussi <a href="#minspareservers">MinSpareServers</a> et + <a href="#startservers">StartServers</a>.</p> + <hr /> + + <h2><a id="minspareservers" name="minspareservers">Directive + MinSpareServers</a></h2> + <!--%plaintext <?INDEX {\tt MinSpareServers} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> MinSpareServers <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>MinSpareServers 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>MinSpareServers</tt> indique le nombre + minimum de processus fils en <em>attente</em> qu'un serveur + pourra conserver. S'il existe moins de <tt>MinSpareServers</tt> + processus serveurs fils en attente, le processus père + recréera des processus fils au rythme de 1 par + seconde.</p> + + <p>L'activation de cette fonctionnalité ne devrait + être nécessaire que sur des sites très + chargés. Régler ce paramètre sur une + grande valeur est de toutes façons toujours une mauvaise + idée.</p> + + <p>Cette directive n'a aucun effet quand elle est + employée sur les plates-formes WIndows.</p> + + <p>Voir aussi <a href="#maxspareservers">MaxSpareServers</a> et + <a href="#startservers">StartServers</a>.</p> + <hr /> + + <h2><a id="namevirtualhost" name="namevirtualhost">Directive + NameVirtualHost</a></h2> + <!--%plaintext <?INDEX {\tt NameVirtualHost} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> NameVirtualHost + <em>addr</em>[:<em>port</em>]<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>NameVirtualHost</tt> n'est disponible qu'à partir de + la version 1.3 d'Apache. + + <p>La directive <tt>NameVirtualHost</tt> est nécessaire + si vous souhaitez configurer <a href="../vhosts/index.html">des + hôtes virtuels nommés</a>.</p> + + <p>Bien que <em>addr</em> puisse être exprimée + comme un nom d'hôte, il est recommandé d'utiliser + une adresse IP, exemple :</p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44</code> + </blockquote> + + <p>Avec cette directive <tt>NameVirtualHost</tt>, l'adresse + nommée par le nom de votre hôte virtuel se + résout. Si vous exploitez plusieurs hôtes + nommés sur des adresses multiples, répétez + cette directive autant de fois que nécessaire (pour + chaque adresse).</p> + + <p>Note: le "serveur principal" et tous les serveurs "par + défaut" ne seront <strong>jamais</strong> servis pour + une requête vers une adresse IP NameVirtualHost (à + moins que pour une raison donnée vous définissiez + NameVirtualHost mais qu'aucun VirtualHosts ne soit + défini pour cette adresse).</p> + + <p>En option, vous pouvez préciser un numéro de + port sur lequel l'hôte virtuel nommé sera atteint, + par exemple :</p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44:8080</code> + </blockquote> + A partir de la version 1.3.13, vous pouvez donner comme adresse + <code>*</code> Ceci crée un NameVirtualHost qui + correspond à toutes les connexions venant de toutes les + adresses IP qui ne sont pas configurés avec une autre + directive NameVirtualHost ou un section <a + href="#virtualhost"><VirtualHost></a>. Cette option est + pratique si vous n'utilisez que des hôtes virtuels + nommés et que vous ne souhaitez pas coder en dur + l'adresse IP de votre machine dans le fichier de + configuration.<br /> + <br /> + <strong>Voir aussi :</strong> <a href="../vhosts/">Hôtes + virtuels sur Apache</a> + <hr /> + + <h2><a id="options" name="options">Directive Options</a></h2> + <!--%plaintext <?INDEX {\tt Options} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> Options <em>[+|-]option [+|-]option + ...</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <strong>Surcharge:</strong> Options<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>Options</tt> contrôle quelles + fonctions du serveur sont disponibles dans un répertoire + particulier.</p> + + <p><em>option</em> peut valoir <code>None</code>, auquel cas + aucune fonction supplémentaire n'est disponible, ou une + ou plus des possibilités suivantes :</p> + + <dl> + <dt>All</dt> + + <dd>toutes options sauf MultiViews.</dd> + + <dt>ExecCGI</dt> + + <dd><!--%plaintext <?INDEX {\tt ExecCGI} option> --> + L'exécution des scripts CGI est autorisée.</dd> + + <dt>FollowSymLinks</dt> + + <dd> + <!--%plaintext <?INDEX {\tt FollowSymLinks} option> --> + Le serveur est autorisé à suivre les liens + symboliques dans ce répertoire. + + <p><strong>Note</strong>: même si le serveur suit le + lien symbolique, il <b>ne</b> doit <b>pas</b> changer le + chemin d'accès afin de ne pas entrer en + contradiction avec les sections + <tt><Directory></tt>.</p> + </dd> + + <dt>Includes</dt> + + <dd><!--%plaintext <?INDEX {\tt Includes} option> --> + Les inclusions par Server-Side-Include sont permises.</dd> + + <dt>IncludesNOEXEC</dt> + + <dd> + <!--%plaintext <?INDEX {\tt IncludesNOEXEC} option> --> + Les SSI sont autorisés, mais pas la commande #exec ni + <code>#include</code> des scripts CGI.</dd> + + <dt>Indexes</dt> + + <dd><!--%plaintext <?INDEX {\tt Indexes} option> --> + Si une URL requise pointe sur un répertoire, et aucun + fichier défini par <tt>DirectoryIndex</tt> (ex. + index.html) n'existe dans ce répertoire, alors le + serveur retourne une liste formatée du contenu du + répertoire.</dd> + + <dt>MultiViews</dt> + + <dd><!--%plaintext <?INDEX {\tt MultiViews} option> --> + <a href="../content-negotiation.html">Un contenu + négocié</a> en <code>MultiViews</code> est + permis.</dd> + + <dt>SymLinksIfOwnerMatch</dt> + + <dd> + <!--%plaintext <?INDEX {\tt SymLinksIfOwnerMatch} option> --> + Le serveur ne suivra les liens symboliques uniquement si le + fichier visé ou le répertoire visé + appartiennent au même utilisateur que le lien + lui-même.</dd> + </dl> + + <p>Normalement, si plusieurs options <code>Options</code> + peuvent être appliquées à un + répertoire, alors la plus restrictive est + appliquée ; les options ne sont pas combinées. + Cependant, si <i>all</i> les options dans la directive + <code>Options</code> sontprécédées d'un + symbole + ou -, alors les options sont alors combinées + entre elles. Toute option précédée d'un + + est ajoutée aux options en cours, toute option + précédée d'un - est + désactivée.</p> + + <p>Par exemple, sans symboles + ni - :</p> + + <blockquote> +<pre> +<code><Directory /web/docs> +Options Indexes FollowSymLinks +</Directory> +<Directory /web/docs/spec> +Options Includes +</Directory> +</code> +</pre> + </blockquote> + + <p>seul <code>Includes</code> sera activé pour le + répertoire <code>/web/docs/spec</code>. Cependant, si la + seconde directive d'<code>Options</code> utilise les symboles + + et - :</p> + + <blockquote> +<pre> +<code><Directory /web/docs> +Options Indexes FollowSymLinks +</Directory> +<Directory /web/docs/spec> +Options +Includes -Indexes +</Directory> +</code> +</pre> + </blockquote> + + <p>alors les options <code>FollowSymLinks</code> et + <code>Includes</code> sont validées pour le + répertoire <code>/web/docs/spec</code>.</p> + <hr /> + + <h2><a id="pidfile" name="pidfile">Directive PidFile</a></h2> + <!--%plaintext <?INDEX {\tt PidFile} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> PidFile <em>filename</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>PidFile + logs/httpd.pid</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>PidFile</tt> définit le fichier dans + lequel le serveur enregistre l'identificateur de processus du + démon. Si le nom de fichier ne commence pas par un slash + (/) alors le fichier est défini relativement au <a + href="#serverroot">ServerRoot</a>. Le fichier <tt>PidFile</tt> + n'est utilisé que dans le mode <a + href="#servertype">standalone</a>.</p> + + <p>Il est souvent utile de pouvoir envoyer un signal au + serveur, pour qu'il referme et réouvre ses fichiers <a + href="#errorlog">ErrorLog</a> et <tt>TransferLog</tt>, et + relise ses fichiers de configuration. Ceci peut être fait + en envoyant un signal SIGHUP (kill -1) au processus + identifié par l'identificateur de processus + marqué dans <tt>PidFile</tt>.</p> + + <p>Le fichier <tt>PidFile</tt> est concerné par les + mêmes problèmes d'emplacement et de <a + href="../misc/security_tips.html">securité</a> que les + fichiers de trace.</p> + <hr /> + + <h2><a id="port" name="port">Directive Port</a></h2> + <!--%plaintext <?INDEX {\tt Port} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> Port <em>numéro</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>Port + 80</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p><em>numéro</em> est un nombre compris entre 0 et + 65535; certains numéros de ports (surtout en dessous de + 1024) sont réservés pour des protocoles + spécifiques. Une liste des ports + prédéfinis est consultable dans la RFC 1340 + "Assigned Numbers" <code>/etc/services</code>; le port standard + assigné au protocole http est le port 80.</p> + + <p>La directive <tt>Port</tt> a deux comportements, le premier + est nécessaire pour assurer la compatibilité NCSA + (et qui peut préter à confusion dans le contexte + d'Apache).</p> + + <ul> + <li>En absence de toute directive <a + href="#listen">Listen</a> ou <a + href="#bindaddress">BindAddress</a> spécifiant un + numéro de port, la directive <tt>Port</tt> + définit le port réseau que le serveur + écoute. S'il existe une directive <tt>Listen</tt> ou + <tt>BindAddress</tt> spécifiant un + <code>:numéro</code> alors la directive Port n'a aucun + effet quant au socket que le serveur écoute.</li> + + <li>La directive Port définit la variable + d'environnement <code>SERVER_PORT</code> (pour les <a + href="mod_cgi.html">CGI</a> et les <a + href="mod_include.html">SSI</a>), laquelle est + utilisée lorsque le serveur génère une + URL qui point sur lui-même (par exemple lorsqu'il + indique une indirection externe vers lui-même).</li> + </ul> + + <p>Dans aucun cas une définition du <tt>Port</tt> ne + définit à quel port un <a + href="#virtualhost">VirtualHost</a> répond, la directive + <tt>VirtualHost</tt> elle-même se chargeant de cette + définition.</p> + + <p>Le comportement premier de la directive <tt>Port</tt> doit + être considéré comme similaire à + celui de la directive <a href="#servername">ServerName</a>. + <tt>ServerName</tt> et <tt>Port</tt> spécifient + conjointement ce que vous considérez être + l'adresse <em>canonique</em> du serveur.</p> + + <p>Le Port 80 est l'un des ports prédéfinis + d'Unix. Tous les ports numérotés en dessous de + 1024 sont réservés à un usage + système, c-à-d. que des utilisateurs non + privilégiés (non-root) ne peuvent les utiliser ; + ces derniers peuvent par contre utiliser des ports de plus haut + rang. Pour utiliser le port 80, le serveur doit être + exécuté sous <code>root</code>. Après + avoir lié le port (bind) et avant d'accepter des + requêtes, Apache changera son utilisateur associé + tel que défini par la directive <a + href="#user">User</a>.</p> + + <p>Si vous ne pouvez utiliser le port 80, choisissez tout autre + port libre. Les utilisateurs non-root devront choisir un + numéro de port supérieur à 1023, 8000 par + exemple.</p> + + <p><strong>Sécurité :</strong> si vous + démarrez le serveur sous <code>root</code>, assurez vous + que la directive <a href="#user">User</a> ne mentionne pas + <code>root</code>. Si vous traitez des requêtes en + disposant toujours de super privilèges, vous ouvrez + votre système à des attaques majeures.</p> + <hr /> + + <h2><a id="require" name="require">Directive require</a></h2> + <!--%plaintext <?INDEX {\tt require} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> require <em>nomEntite Entite + Entite...</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> répertoire, + .htaccess<br /> + <strong>Surcharge:</strong> AuthConfig<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Cette directive choisi quels utilisateurs autorisés + peuvent accéder à un répertoire. Les + syntaxes valides sont :</p> + + <ul> + <li> + require user <em>utilisateur utilisateur ...</em> + + <p>Seuls les utilisateurs nommés peuvent + accéder au répertoire.</p> + </li> + + <li> + require group <em>nomGroupe nomGroupe ...</em> + + <p>Seuls les utilisateurs des groupes cités peuvent + accéder au répertoire.</p> + </li> + + <li> + require valid-user + + <p>Tout utilisateur reconnu peut accéder au + répertoire (par opposition aux non + utilisateurs).</p> + </li> + </ul> + + <p>Si <code>require</code> apparaît dans une section <a + href="#limit"><Limit></a>, alors les restrictions ne sont + appliquées qu'aux méthodes http + mentionnées. Autrement, toutes les méthodes http + sont restreintes. Exemple :</p> + + <blockquote> +<pre> +<code>AuthType Basic +AuthName unDomaine +AuthUserFile /web/users +AuthGroupFile /web/groups +<Limit GET POST> +require group admin +</Limit> +</code> +</pre> + </blockquote> + + <p>Pour fonctionner correctement, la directive Require doit + être accompagné de directives <a + href="#authname">AuthName</a> et <a + href="#authtype">AuthType</a>, et de directives de type <a + href="mod_auth.html#authuserfile">AuthUserFile</a> et <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> (servant + à définir les utilisateurs et les groupes).</p> + <hr /> + + <h2><a id="resourceconfig" name="resourceconfig">Directive + ResourceConfig</a></h2> + <!--%plaintext <?INDEX {\tt ResourceConfig} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ResourceConfig <em>nomfichier</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ResourceConfig conf/srm.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Le serveur lit dans ce fichier des directives + supplémentaires, après avoir lu le fichier + <code>httpd.conf</code>. <em>nomfichier</em> est + considéré relativement à <a + href="#serverroot">ServerRoot</a>. Cette fonctionnalité + peut être désactivée par l'écriture + :</p> + + <blockquote> + <code>ResourceConfig /dev/null</code> + </blockquote> + ou sur les serveurs Win32 + + <blockquote> + <code>ResourceConfig nul</code> + </blockquote> + + <p>Historiquement, ce fichier contenait essentiellement les + directives autres que celles servant à la configuration + du serveur ou les sections <a + href="#directory"><Directory></a> ; en fait, il peut + contenir maintenant toute directive admise dans le contexte + <em>configuration serveur</em>.</p> + + <p>A partir de la version 1.3.13, si la directive + <code>ResourceConfig</code> pointe sur un répertoire + plutot qu'un fichier, Apache lira tous les fichiers de ce + répertoire ou de ses sous-répertoires et les + traitera comme fichiers de configuration.</p> + + <p>Voir aussi <a href="#accessconfig">AccessConfig</a>.</p> + <hr /> + + <h2><a id="rlimit" name="rlimit">Directive RLimitCPU</a> <a + id="rlimitcpu" name="rlimitcpu"></a></h2> + <!--%plaintext <?INDEX {\tt RLimitCPU} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> RLimitCPU <em># ou 'max'</em> <em>[# ou + 'max']</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <em>Non + précisé; utilise le défaut du + système d'exploitation</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + RLimitCPU n'est disponible qu'à partir de la version 1.2 + d'Apache + + <p>Accepte 1 ou 2 parametères. Le premier + paramètre indique la limite logicielle pour tous les + processus et le second paramètre la limite + supérieure en termes de ressources. Chacun des + paramètres peut être exprimé par un nombre, + ou <em>max</em> pour indiquer au serveur que la limite est + celle imposée par le système d'exploitation. La + limite supérieure en ressource ne peut être + atteinte que si le serveur tourne sous root, ou + éventuellement pendant la phase de démarrage.</p> + + <p>Ceci est valide pour les processus lancés par les + processus fils d'Apache pour le traitement des requêtes + et non pour les processus fils d'Apache eux-mêmes. Cela + inclut les scripts CGI, les commandes exec SSI, mais pas les + processus lancés par le processu Apache père tels + que les traces.</p> + + <p>La limite de ressources CPU est exprimée en secondes + par processus.</p> + + <p>Voir aussi <a href="#rlimitmem">RLimitMEM</a> ou <a + href="#rlimitnproc">RLimitNPROC</a>.</p> + <hr /> + + <h2><a id="rlimitmem" name="rlimitmem">Directive + RLimitMEM</a></h2> + <!--%plaintext <?INDEX {\tt RLimitMEM} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> RLimitMEM <em># ou 'max'</em> <em>[# ou + 'max']</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <em>Non + précisé ; utilise le défaut du + système d'exploitation</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + RLimitMEM is only available in Apache 1.2 and later + + <p>Accepte 1 ou 2 paramètres. Le premier + paramètre fixe la limite logicielle en ressources + mémoire pour tous les processus tandis que le second + paramètre fixe la limite absolue de ressources + mémoire. Chaque paramètre peut être un + nombre, ou <em>max</em> pour indiquer au serveur que la limite + est fixée par le système d'exploitation. La + limite supérieure en ressource ne peut être + atteinte que si le serveur tourne sous root, ou + éventuellement pendant la phase de démarrage.</p> + + <p>Ceci est valide pour les processus lancés par les + processus fils d'Apache pour le traitement des requêtes + et non pour les processus fils d'Apache eux-mêmes. Cela + inclut les scripts CGI, les commandes exec SSI, mais pas les + processus lancés par le processu Apache père tels + que les traces.</p> + + <p>Les ressources mémoire sont exprimées en + octets par processus.</p> + + <p>Voir aussi <a href="#rlimitcpu">RLimitCPU</a> ou <a + href="#rlimitnproc">RLimitNPROC</a>.</p> + <hr /> + + <h2><a id="rlimitnproc" name="rlimitnproc">Directive + RLimitNPROC</a></h2> + <!--%plaintext <?INDEX {\tt RLimitNPROC} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> RLimitNPROC <em># ou 'max'</em> <em>[# ou + 'max']</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <em>Unset; uses + operating system defaults</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + RLimitNPROC n'est disponible qu'à partir de la version + 1.2 d'Apache + + <p>Accepte 1 ou 2 paramètres. Le premier + paramètre fixe la limite logicielle en ressources pour + tous les processus tandis que le second paramètre fixe + la limite absolue de ressources mémoire. Chaque + paramètre peut être un nombre, ou <em>max</em> + pour indiquer au serveur que la limite est fixée par le + système d'exploitation. La limite supérieure en + ressource ne peut être atteinte que si le serveur tourne + sous root, ou éventuellement pendant la phase de + démarrage.</p> + + <p>Ceci est valide pour les processus lancés par les + processus fils d'Apache pour le traitement des requêtes + et non pour les processus fils d'Apache eux-mêmes. Cela + inclut les scripts CGI, les commandes exec SSI, mais pas les + processus lancés par le processu Apache père tels + que les traces.</p> + + <p>Cette limite contrôle le nombre de processus maximum + par utilisateur.</p> + + <p><strong>Note :</strong> Si les processus CGI <b>ne</b> + tournent <b>pas</b> sous un autre utilisateur que l'utilisateur + du serveur, cette directive limitera aussi le nombre de + processus que le serveur lui-même peut créer. + Cette situation sera indiquée de façon + évidente par des messages d'erreur <b><em>cannot + fork</em></b> dans le fichier error_log.</p> + + <p>Voir aussi <a href="#rlimitmem">RLimitMEM</a> ou <a + href="#rlimitcpu">RLimitCPU</a>.</p> + <hr /> + + <h2><a id="satisfy" name="satisfy">Directive Satisfy</a></h2> + <!--%plaintext <?INDEX {\tt Satisfy} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> Satisfy <em>'any' ou 'all'</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> Satisfy + all<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> répertoire, + .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>Satisfy</tt> n'est disponible qu'à partir de la + version 1.2 d'Apache + + <p>Politique d'accès si à la fois 'allow' et + 'require' sont utilisés. Le paramètre peut valoir + soit <em>'all'</em> soit <em>'any'</em>. Cette directive n'est + utile que si l'accès à une zone + particulière est à la fois restreinte par un + username/password <em>et</em> et par l'adresse d'hôte + client. Dans ce cas le comportement par défaut ("all") + impose au client de passer la restriction d'adresse <em>et</em> + d'entrer un identificateur d'utilisateur et un mot de passe + valides. Avec l'option "any", le client sera servi si son + adresse d'hôte est conforme <em>ou</em> s'il rentre des + paramètres d'identification corrects. Ceci peut + être utilisé pour restreindre un zone par un mot + de passe, tout en laissant quelques client bien + identifiés entrer dans le domaine sans avoir à se + soumettre à la procédure d'identification.</p> + + <p>Voir aussi <a href="#require">Require</a> et <a + href="mod_access.html#allow">Allow</a>.</p> + <hr /> + + <h2><a id="scoreboardfile" name="scoreboardfile">Directive + ScoreBoardFile</a></h2> + <!--%plaintext <?INDEX {\tt ScoreBoardFile} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ScoreBoardFile <em>nomfichier</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ScoreBoardFile logs/apache_status</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>ScoreBoardFile</tt> est nécessaire + sur certaines architectures pour créer un fichier + servant à la communication entre des processus + pères et des processus fils. La meilleure façon + de savoir si votre système nécessite un tel + fichier est d'exécuter Apache et de voir s'il + crée le fichier mentionné dans la directive. Si + votre système nécessite l'emploi de ce fichier, + alors vous devez vous assurer que celui-ci ne peut être + utilisé que par une et une seule invocation + d'Apache.</p> + + <p>Si vous devez utiliser un <tt>ScoreBoardFile</tt>, vous + pourrez optimiser votre temps d'exécution en le + plaçant sur un disque virtuel en RAM. Cependant, + rappelez-vous que les mêmes recommandations sont à + prendre en compte pour la position de ce fichier que pour la + position des fichiers de trace quant à la <a + href="../misc/security_tips.html">securité</a>.</p> + + <p><i>A partir d'Apache 1.2 :</i></p> + + <p>Les utilisateurs de Linux 1.x doivent pouvoir ajouter + <code>-DHAVE_SHMGET</code> aux <code>EXTRA_CFLAGS</code> dans + leur fichier de <code>Configuration</code>. Ceci devrait + fonctionner sur certaines installations en 1.x, mais pas + forcément sur toutes.</p> + + <p>Les utilisateurs de SVR4 devront considérer + l'opportunité d'ajouter <code>-DHAVE_SHMGET</code> aux + <code>EXTRA_CFLAGS</code> dans leur fichier de + <code>Configuration</code>. Il semble que cela fonctionne, mais + nous n'avons pu le tester pour la version 1.2. (avant la + version 1.3b4, <code>HAVE_SHMGET</code> devait suffire.)</p> + <br /> + <br /> + + + <p><strong>Voir aussi</strong> : <a + href="../stopping.html">Arrêter et redémarrer + Apache</a></p> + <hr /> + + <h2><a id="scriptinterpretersource" + name="scriptinterpretersource">ScriptInterpreterSource + directive</a></h2> + <!--%plaintext <?INDEX {\tt ScriptInterpreterSource} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ScriptInterpreterSource registry|script<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ScriptInterpreterSource script</code> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> répertoire, + .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau (seulement sur Windows) + + <p>Cette directive sert, à partir de la version 1.3.5 + d'Apache, à déterminer où trouver + l'interpréteur employé pour exécuter les + scripts CGI. La technique par défaut est de prendre + l'interpréteur pointé par les caractères + #! dans le script. En fixant ScriptInterpreterSource à + registry, La table de registration de Windows sera + employée pour chercher l'interpréteur, en prenant + l'extension du fichier comme clé (par exemple .pl).</p> + <hr /> + + <h2><a id="sendbuffersize" name="sendbuffersize">Directive + SendBufferSize</a></h2> + <!--%plaintext <?INDEX {\tt SendBufferSize} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> SendBufferSize <em>octets</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>Le serveur règle la taille du tampon interne de TCP + au nombre d'octets spécifié. Très utile + pour augmenter les tailles par défaut dans le cas + d'utilisation de liaisons haute vitesse (ex. des liaisons + transcontinantales rapides).</p> + <hr /> + + <h2><a id="serveradmin" name="serveradmin">Directive + ServerAdmin</a></h2> + <!--%plaintext <?INDEX {\tt ServerAdmin} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerAdmin <em>adresseEMail</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>ServerAdmin</tt> définit l'adresse + e-mail que le serveur inclut dans tout message d'erreur + retourné au client.</p> + + <p>Il peut être utile de dédier une adresse + réservée à cet usage, par exemple :</p> + + <blockquote> + <code>ServerAdmin www-admin@foo.bar.com</code> + </blockquote> + + <p>car les utilisateur ne rappellent pas toujours dans leur + message ce à propos de quoi ils interviennent!</p> + <hr /> + + <h2><a id="serveralias" name="serveralias">Directive + ServerAlias</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerAlias <em>hôte1 hôte2 + ...</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> hôte + virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>ServerAlias</tt> est disponible à partir de la + version 1.1 d'Apache + + <p>La directive <tt>ServerAlias</tt> défini un nom + secondaire pour un hôte, utilisable dans le contexte d'<a + href="../vhosts/name-based.html">hôte virtuels + nommés</a>.</p> + + <p><strong>Voir aussi :</strong> <a + href="../vhosts/index.html">Hôtes virtuels sur + Apache</a></p> + <hr /> + + <h2><a id="servername" name="servername">Directive + ServerName</a></h2> + <!--%plaintext <?INDEX {\tt ServerName} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerName <em>nom de domaine entièrement + qualifié</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>ServerName</tt> définit le nom + d'hôte du serveur ; celui-ci n'est utilisé que + pour créer des URL de redirection. S'il n'est pas + défini, alors le serveur tentera de le résoudre + à partir de sa propre adresse IP ; cependant, cette + résolution n'est pas d'une fiabilité absolue, ou + peut résulter en un nom autre que le nom + "souhaité". Par exemple :</p> + + <blockquote> + <code>ServerName www.wibble.com</code> + </blockquote> + + <p>peut être défini lorsque le nom canonique + (principal) de la machine actuelle est + <code>monster.wibble.com</code>.</p> + + <p>Si vous utilisez des <a + href="../vhosts/name-based.html">hôtes virtuels + nommés</a>, la directive <code>ServerName</code> + à l'intérieur d'une section <a + href="#virtualhost"><code><VirtualHost></code></a> impose + que quel nom d'hôte doit apparaître dans + l'en-tête <code>Host:</code> d'une requête pour + être associé à cet hôte virtuel.</p> + + <p><strong>Voir aussi</strong> : <a + href="../dns-caveats.html">Apache et DNS</a> <a + href="../vhosts/">documentation sur les hôtes virtuels + Apache</a><br /> + <a href="#usecanonicalname">UseCanonicalName</a><br /> + <a href="#namevirtualhost">NameVirtualHost</a><br /> + <a href="#serveralias">ServerAlias</a><br /> + </p> + <hr /> + + <h2><a id="serverpath" name="serverpath">Directive + ServerPath</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerPath <em>chemin</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> hôte + virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + <tt>ServerPath</tt> est disponible à partir de la + version 1.1 d'Apache. + + <p>La directive <tt>ServerPath</tt> définit le chemin + d'accès servant de base pour les URL ciblant un <a + href="../vhosts/index.html">hôte virtuel + nommé</a>.</p> + + <p><strong>Voir aussi :</strong> <a + href="../vhosts/index.html">Hôtes virtuels sur + Apache</a></p> + <hr /> + + <h2><a id="serverroot" name="serverroot">Directive + ServerRoot</a></h2> + <!--%plaintext <?INDEX {\tt ServerRoot} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerRoot <em>nomrépertoire</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ServerRoot /usr/local/apache</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>ServerRoot</tt> définit le + répertoire dans lequel se situe le serveur. Typiquement, + ce répertoire contiendra les sous-répertoires + <code>conf/</code> et <code>logs/</code>. Les chemins + d'accès relatifs pour d'autres fichiers de configuration + seront considérés relativement à ce + répertoire.<br /> + Voir aussi <a href="../invoking.html">les <code>-d</code> + options de httpd</a>.</p> + + <p>Voir aussi <a + href="../misc/security_tips.html#serverroot">les trucs de + sécurité</a> pour plus d'informations sur comment + correctment définir les droits d'accès à + ServerRoot.</p> + <hr /> + + <h2><a id="serversignature" name="serversignature">Directive + ServerSignature</a></h2> + <!--%plaintext <?INDEX {\tt ServerSignature} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerSignature On|Off|EMail<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ServerSignature Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire, .htaccess<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + ServerSignature est disponible à partir de la version + 1.3. + + <p>La directive ServerSignature permet la configuration d'une + ligne de bas de page pour les documents + générés par le serveur (messages d'erreur, + liste des répertoire ftp, affichage de mod_info, ...) + L'utilité de l'emploi d'une telle ligne apparaît + dans la cas d'enchaînement de proxy, où + l'utilisateuir souvent n'a aucune possibilité de + déterminer quel élément de la chaîne + de proxies a produit un message d'erreur.<br /> + La valeur par défaut <samp>Off</samp> supprime la ligne + d'erreur (et est compatible avec le comportement d'Apache 1.2 + et précédents). La valeur <samp>On</samp> ajoute + une ligne contenant la version du serveur, la valeur de <a + href="#servername">ServerName</a> de l'hôte virtuel et la + valeur <samp>EMail</samp> ajoute une référence + "mailto:" vers l'adresse <a href="#serveradmin">ServerAdmin</a> + du document demandé.</p> + <hr /> + + <h2><a id="servertokens" name="servertokens">Directive + ServerTokens</a></h2> + <!--%plaintext <?INDEX {\tt ServerTokens} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerTokens Minimal|ProductOnly|OS|Full<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ServerTokens Full</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur <br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + ServerTokens est disponible à partir de la version 1.3 + d'Apache. Le mot clé <code>ProductOnly</code> est + disponible à pertir de la version 1.3.12 + + <p>Cette directive contrôle si le champ + <samp>Server</samp> de l'en-tête de réponse qui + est renvoyé aux clients inclut une description du type + de système de du serveur ainsi que des informations sur + les odules compilés.</p> + + <dl> + <dt><code>ServerTokens Prod[uctOnly]</code></dt> + + <dd>Le serveur renvoie par exemple : <samp>Server: + Apache</samp></dd> + + <dt><code>ServerTokens Min[imal]</code></dt> + + <dd>Le serveur renvoie par exemple : <samp>Server: + Apache/1.3.0</samp></dd> + + <dt><code>ServerTokens OS</code></dt> + + <dd>Le serveur renvoie par exemple : <samp>Server: + Apache/1.3.0 (Unix)</samp></dd> + + <dt><code>ServerTokens Full</code> (ou non + spécifié)</dt> + + <dd>Le serveur renvoie par exemple : <samp>Server: + Apache/1.3.0 (Unix) PHP/3.0 MyMod/1.2</samp></dd> + </dl> + + <p>Cette directive s'applique à la globalité du + serveur et ne paut pas être activé ou + désactivé sur la base d'hôtes virtuels.</p> + <hr /> + + <h2><a id="servertype" name="servertype">Directive + ServerType</a></h2> + <!--%plaintext <?INDEX {\tt ServerType} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ServerType <em>type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ServerType standalone</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>ServerType</tt> définit comment le + serveur est exécuté par le système + d'exploitation. <em>Type</em> peut prendre l'une des valeurs + suivantes :</p> + + <dl> + <dt>inetd</dt> + + <dd>Le serveur sera exécuté à partir du + processus system inetd ; la commande nécessaire au + démarrage du serveur devra être ajoutée + au fichier <code>/etc/inetd.conf</code></dd> + + <dt>standalone</dt> + + <dd>Le serveur est lancé en tant que démon ; la + commande de démarrage du serveur sera ajoutée + aux scripts de démarrage du système + d'exploitation. (<code>/etc/rc.local</code> ou + <code>/etc/rc3.d/...</code>.)</dd> + </dl> + + <p>Inetd est l'option la moins utilisée des deux. Pour + chaque connexion http demandée, une nouvelle instance du + serveur est créée ; une fois la connexion + établie, ce programme tourne. Ceci implique un + coût important en ressources pour chaque connexion, mais + certains administrateurs préfèrent parfois ce + mode pour des raisons de sécurité.</p> + + <p>Standalone est l'option la plus fréquente pour la + directive <tt>ServerType</tt> dans la mesure où ce + dernier est de loin plus performant. Le serveur n'est + démarré qu'une fois, et dessert toutes les + connexions ultérieures. Si vous utilisez Apache sur un + site très chargé, le mode standalone sera + certainement le seul choix possible.</p> + <hr /> + + <h2><a id="startservers" name="startservers">Directive + StartServers</a></h2> + <!--%plaintext <?INDEX {\tt StartServers} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> StartServers <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>StartServers 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>StartServers</tt> définit le nombre + de processus fils créés dès le + démarrage du serveur. Le nombre de ces processus + étant contrôlé dynamiquement en fonction de + la charge, il y a en général peu + d'intérêt à modifier la valeur par + défaut de ce paramètre.</p> + + <p>Lorsque le serveur est exécuté sous Microsoft + Windows, cette directive n'a aucun effet. Comme la version + Windows d'Apache est écrite en multithread, un seul + processus gère l'intégralité des + requêtes. La directive <a + href="#threadsperchild">ThreadsPerChild</a> contrôle le + nombre maximal de threads traitant les requêtes, ce qui a + un effet similaire à la directive Unix + <samp>StartServers</samp></p> + + <p>Voir aussi <a href="#minspareservers">MinSpareServers</a> et + <a href="#maxspareservers">MaxSpareServers</a>.</p> + <hr /> + + <h2><a id="threadsperchild" name="threadsperchild">Directive + ThreadsPerChild</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ThreadsPerChild <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ThreadsPerChild 50</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau (Windows)<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + Disponible seulement à partir de la version 1.3 pour + Windows d'Apache + + <p>Cette directive indique au serveur combien de threads il + doit lancer. Cela est équivalent au nombre maximum de + connexions que le serveur peut traiter simultanément ; + soyez sûr de vous et réglez le nombre suffisament + haut si votre site est très fréquenté.</p> + + <p>Cette directive n'a aucun effet sur les systèmes + Unix. Les utilisateurs Unix regarderont les directives <a + href="#startservers">StartServers</a> et <a + href="#maxrequestsperchild">MaxRequestsPerChild</a>.</p> + <hr /> + + <h2><a id="threadstacksize" name="threadstacksize">Directive + ThreadStackSize</a></h2> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> ThreadStackSize <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>ThreadStackSize 65536</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau (NetWare)<br /> + <strong>Compatibilité :</strong> disponible à + partir de la version d'Apache 1.3 sur Netware. + + <p>Cette directive indique la taille de la pile à + utiliser pour les threads. Si vous rencontrer un + problème de débordement de pile, vous devez + augmenter cette valeur.</p> + + <p>Cette directive n'a aucun effet sur les autres + systèmes.</p> + <hr /> + + <h2><a id="timeout" name="timeout">Directive TimeOut</a></h2> + <!--%plaintext <?INDEX {\tt TimeOut} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> TimeOut <em>nombre</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>TimeOut + 300</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>TimeOut</tt> définit la + temporisation courante pendant laquelle Apache attendra l'une + de ces trois choses :</p> + + <ol> + <li>Le temps total de réception d'une requête + GET.</li> + + <li>Le temps entre la réception de paquets TCP lors + d'une requête POST ou PUT.</li> + + <li>Le temps entre deux acquittements lors de la transmission + de paquets TCP de réponse.</li> + </ol> + + <p>Nous prévoyons dans le futur de permettre une + configuration individuelle de chacune de ces temporisations. La + valeur par défaut était de 1200 avant la version + 1.2, mais a été abaissée à 300 + depuis, ce qui est déjà largement plus que + nécessaire dans la plupart des situations. Il n'est + cependant pas réglé plus bas car il peut exister + (encore) des portions de code un peu "floues" par lesquelles le + temporisateur n'est pas remis à zéro lors de la + transmission d'un paquet.</p> + <hr /> + + <h2><a id="usecanonicalname" + name="usecanonicalname">UseCanonicalName directive</a></h2> + <!--%plaintext <?INDEX {\tt UseCanonicalName} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> UseCanonicalName on|off|dns<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> + <code>UseCanonicalName on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel, répertoire<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Surcharge :</strong></a> Options<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> + UseCanonicalName est disponible à partir de la verion + 1.3 + + <p>Dans beaucoup de situations, Apache doit construire des URL + <em>s'autoréférençant</em>, autremnet dit, + des URL référençant le même serveur. + Avec la directive <code>UseCanonicalName on</code> (dans les + versions d'Apache inférieures à 1.3) Apache + utilise les valeurs des directives <a + href="#servername">ServerName</a> et <a href="#port">Port</a> + pour construire un nom canonique du serveur. Ce nom est + utilisé pour toutes les URL autoréférentes + et pour les valeurs de <code>SERVER_NAME</code> et + <code>SERVER_PORT</code> pour les scripts CGI.</p> + + <p>Avec <code>UseCanonicalName off</code>, Apache formera les + URLS autoréférentes en utilisant le nom + d'hôte le numéro de port fourni par le client si + ceux ci sont fournis (sinon il utilisera le nom canonique). Ces + valeurs sont les mêmes qui sont employées pour + implémenter les <a + href="../vhosts/name-based.html">hôtes virtuels + basés sur des noms</a>, et sont disponibles pour les + mêmes clients. Les variable CGI <code>SERVER_NAME</code> + et <code>SERVER_PORT</code> seront aussi construites à + partir des valeurs fournies par les clients.</p> + + <p>Un exemple où cette directive est utile est le cas + d'un serveur intranet où des utilisateurs se connectent + à la machine en utilisant des noms courts tels que + <code>www</code>. Vous noterez que si l'utilisateur tape un nom + court et que l'URL est un répertoire tel que + <code>http://www/splat</code>, <em>sans le caractère + oblique / final</em> , Apache redirigera la requête vers + <code>http://www.domain.com/splat/</code>. Si vous avez une + authentification active, lu'tilisateur devra s'authentifier + deux fois, (une première fois pour <code>www</code> et + une deuxième fois pour An example where this may be + useful is on an intranet server where you have users connecting + to the machine using short names such as . You'll notice that + if the users type a <code>www.domain.com</code>). Mais si la + directive <code>UseCanonicalName</code> est à off, + Apache redirigera vers <code>http://www/splat/</code>.</p> + + <p>Il existe une troisième option, + <code>UseCanonicalName DNS</code>, qui est prévu pour + être employé avec de nombreux hôtes virtuels + basés sur les adresses IP afin de supporter les clients + qui ne fournissent pas d'en-tête <code>Host:</code>. Avec + cette option Apache effectue une résolution DNS inverse + sur l'adresse IP du serveur sur lequel le client se connecte + afin de travailler avec pour les URL + autoréférentes.</p> + + <p><strong>Attention :</strong> si les scripts CGI font des + suppositions sur les valeurs de <code>SERVER_NAME</code> il + peuvent ne plus fonctionner avec cette option. Mais le script + CGI utilise uniquement <code>SERVER_NAME</code> pour construire + des URL autoréférentes, il ne evrait y avoir + aucun problèmes.</p> + + <p><strong>Voir également :</strong> <a + href="#servername">ServerName</a>, <a href="#port">Port</a></p> + <hr /> + + <h2><a id="user" name="user">Directive User</a></h2> + <!--%plaintext <?INDEX {\tt User} directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> User <em>utilisateurUnix</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Défaut :</strong></a> <code>User + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur, hôte virtuel<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> noyau + + <p>La directive <tt>User</tt> définit l'utilisateur + associé au serveur. Pour utiliser cette directive, un + serveur standalone devra être lancé sous + <code>root</code>. <em>utilisateurUnix</em> est l'un parmi + :</p> + + <dl> + <dt>un nom d'utilisateur</dt> + + <dd>se réfère à un utilisateur + déclaré du système.</dd> + + <dt># suivi d'un numéro d'utilisateur.</dt> + + <dd>se réfère à l'utilisateur + déclaré du système portant ce + numéro.</dd> + </dl> + + <p>L'utilisateur peut n'avoir aucun privilège ce qui lui + permet néanmoins de pouvoir avoir accès à + des fichiers qui ne sont pas sensés être visibles + du "reste du monde", mais pas d'exécuter du code qui ne + serait pas explicitement exécutable par l'utilisateur + associé à httpd. Il est d'ailleurs + recommandé de créer un utilisateur et un groupe + specialement pour exécuter le serveur. Certains + administrateurs utilisent souvent l'utilisateur + <code>nobody</code>, mais ceci n'est pas toujours possible ou + souhaitable. Par exemple, le cache de mod_proxy quancd celui + est activé , doit être accessible à cette + utilisateur (voir la directive <a + href="mod_proxy.html#cacheroot"><code>CacheRoot</code></a> + ).</p> + + <p><strong>Note :</strong> si vous démarrez le serveur + sous un utilisateur non-root, la tentative pour passer sous un + utilisateur de moindre privilège échouera, et le + serveur continuera à sexécuter sous l'utilisateur + d'origine. Si vous démarrez le serveur sous + <code>root</code>, alors il sera normal que le processus + père continue à s'exécuter sous + <code>root</code>.</p> + + <p><strong>Note spécifique :</strong> L'utilisation de + cette directive dans une section <tt><VirtualHost></tt> + nécessite un <a href="../suexec.html">wrapper suEXEC</a> + correctement configuré. Lorsqu'elle est utilisée + de cette façon dans une section + <tt><VirtualHost></tt>, seul l'utilisateur associé + à l'exécution des scripts CGI est affecté. + Les requêtes non-CGI seront toujours traitées sous + l'utilisateur défini dans la directive User de la + section principale.</p> + + <p><strong>Sécurité :</strong> Ne + définissez pas l'utilisateur (ni le <a + href="#group">groupe</a>) comme <code>root</code> sauf si vous + savez exactement ce que vous faites, et si vous êtes + totalement conscients des risques qui sont encourus.</p> + <hr /> + + <h2><a id="virtualhost" name="virtualhost">Directive + <VirtualHost></a></h2> + <!--%plaintext <?INDEX {\tt VirtualHost} section directive> --> + <a href="directive-dict.html#Syntax" rel="Help"><strong>Syntaxe + :</strong></a> <VirtualHost <em>adresse</em>[:<em>port</em>] + ...> ... </VirtualHost> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Contexte :</strong></a> configuration + serveur<br /> + <a href="directive-dict.html#Status" rel="Help"><strong>Statut + :</strong></a> Core<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> la + "virtualisation" d'hôtes non basés sur l'adressage + IP n'est disponible qu'à partir de la version 1.1 + d'Apache<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibilité :</strong></a> le + support d'adresses multiples n'est disponible qu'à + partir de la version 1.2 d'Apache + + <p>Les directives <VirtualHost> et </VirtualHost> + sont utilisées pour "encapsuler" un groupe de directives + qui s'appliquent à un hôte virtuel particulier. + Toute directive autorisée dans un contexte "hôte + virtuel" peut être présente. Lorsque le serveur + reçoit une requête demandant un document + spécifique sur un hôte virtuel spécifique, + il utilise les directives de configuration explicitées + dans la section <VirtualHost> correspondante. + <em>Adresse</em> peut être :</p> + + <ul> + <li>l'adresse IP de l'hôte virtuel</li> + + <li>un nom de domaine entièrement qualifié pour + l'adresse IP de cet hôte virtuel.</li> + </ul> + + <p>Exemple :</p> + + <blockquote> +<pre> +<code><VirtualHost 10.1.2.3> +ServerAdmin webmaster@host.foo.com +DocumentRoot /www/docs/host.foo.com +ServerName host.foo.com +ErrorLog logs/host.foo.com-error_log +TransferLog logs/host.foo.com-access_log +</VirtualHost> +</code> +</pre> + </blockquote> + + <p>Chaque hôte virtuel doit être associé + à une adresse IP, à un numéro de port ou + à un nom d'hôte différents que celui + attribué au serveur, dans le dernier cas la machine du + serveur doit être configurée pour accepter des + paquets IP sur plusieurs adresses. (Si la machine ne dispose + pas de plusieurs interfaces réseau physiques, ceci peut + être obtenu par la commande <code>ifconfig alias</code> + (si votre OS l'accepte), ou par des patchs du kernel du type <a + href="../misc/vif-info.html">VIF</a> (pour SunOS(TM) + 4.1.x)).</p> + + <p>Vous pouvez spécifier plus d'une adresse IP. Ceci + peut être utile si une machine répond au + même nom venant de deux différentes interfaces. + Par exemple, si vous avez un hôte virtuel qui est + accessible des hôtes à partir d'un réseau + interne (intranet) et externe (internet). Exemple :</p> + + <blockquote> + <code><VirtualHost 192.168.1.2 204.255.176.199><br /> + DocumentRoot /www/docs/host.foo.com<br /> + ServerName host.foo.com<br /> + ServerAlias host<br /> + </VirtualHost></code> + </blockquote> + + <p>Le nom prédéfini <code>_default_</code> peut + être attribué auquel cas cet hôte virtuel + lira toutes les adresses IP qui ne sont pas explicitement + listées dans les autres hôtes virtuels + définis. En l'absence d'un hôte virtuel _default_, + la configuration serveur "principale", à savoir toutes + les définitions en dehors des sections VirtualHost, + seront utilisées si aucun hôte virtuel ne + reconnaît l'adresse.</p> + + <p>Vous pouvez spécifier une commande <code>:port</code> + pour changer le port reconnu par l'hôte virtuel. Si aucun + port n'est mentionné, alors le port reconnu est par + défaut celui mentionné dans la dernière + directive de <code><a href="#port">Port</a></code> de la + section principale qui précède. Vous pouvez + également spécifier <code>:*</code> pour + reconnaître tous les ports à cette adresse. (Ceci + est conseillé lorsque l'hôte virtuel est le + <code>_default_</code>.)</p> + + <p><strong>Sécurité</strong>: Voir les <a + href="../misc/security_tips.html">conseils de + sécurité</a> pour plus de détails sur les + risques encourus si le répertoire contenant les fichiers + de trace peut être écrit par un autre utilisateur + que celui sous lequel est exécuté le serveur.</p> + + <p><strong>Note</strong>: L'utilisation de la directive + <VirtualHost> <strong>n'</strong> affecte + <strong>pas</strong> les adresses qu'écoute Apache. Vous + devez vous assurer que les adresses définies pour les + hôtes virtuels font aussi partie de l'ensemble des + adresses écoutées par Apache et définies + par des directives <a href="#bindaddress">BindAddress</a> ou <a + href="#listen">Listen</a>.</p> + + <p><strong>Voir aussi :</strong> <a + href="../vhosts/index.html">Hôtes virtuels sur + Apache</a><br /> + <a href="../dns-caveats.html">Avertissement concernant DNS et + Apache</a><br /> + <a href="../bind.html">Configurer les ports et adresses + utilisés par Apache</a></p> + + <p><strong>Voir aussi</strong> : <a + href="../sections.html">Comment fonctionnent les sections + concernant les répertoires, chemins et fichiers</a> pour + une explication plus précise concernant la + manière dont ces sections sont combinées + lorsqu'une requête est traitée. + <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/core.html.html b/htdocs/manual/mod/core.html.html new file mode 100644 index 0000000000..4f4cd5ed2d --- /dev/null +++ b/htdocs/manual/mod/core.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="core.html.en" --> + diff --git a/htdocs/manual/mod/core.html.ja.jis b/htdocs/manual/mod/core.html.ja.jis new file mode 100644 index 0000000000..5d9aeadf7d --- /dev/null +++ b/htdocs/manual/mod/core.html.ja.jis @@ -0,0 +1,4193 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache Core Features</title> + </head> + <!-- English Revision: 1.262 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#000080" + alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache コア機能</h1> + + <p>以王踉擦離妊譽謄屬鞜竏綣蝟昭粡竚癈鷭п粐Ьぢのコア機能をコントロ・踉札襪垢襪發里如▽苳誌に利用可能です。</p> + + <h2>ディレクティブ</h2> + + <ul> + <li><a href="#acceptfilter">AcceptFilter</a></li> + + <li><a href="#acceptmutex">AcceptMutex</a></li> + + <li><a href="#accessconfig">AccessConfig</a></li> + + <li><a href="#accessfilename">AccessFileName</a></li> + + <li><a href="#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a href="#addmodule">AddModule</a></li> + + <li><a href="#allowoverride">AllowOverride</a></li> + + <li><a href="#authname">AuthName</a></li> + + <li><a href="#authtype">AuthType</a></li> + + <li><a href="#AuthDigestRealmSeed">AuthDigestRealmSeed</a></li> + + <li><a href="#bindaddress">BindAddress</a></li> + + <li><a href="#bs2000account">BS2000Account</a></li> + + <li><a href="#cgicommandargs">CGICommandArgs</a></li> + + <li><a href="#clearmodulelist">ClearModuleList</a></li> + + <li><a href="#contentdigest">ContentDigest</a></li> + + <li><a href="#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a href="#defaulttype">DefaultType</a></li> + + <li><a href="#directory"><Directory></a></li> + + <li><a href="#directorymatch"><DirectoryMatch></a></li> + + <li><a href="#documentroot">DocumentRoot</a></li> + + <li><a href="#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="#enableexceptionhook">EnableExceptionHook</a></li> + + <li><a href="#errordocument">ErrorDocument</a></li> + + <li><a href="#errorlog">ErrorLog</a></li> + + <li><a href="#fileetag">FileETag</a></li> + + <li><a href="#files"><Files></a></li> + + <li><a href="#filesmatch"><FilesMatch></a></li> + + <li><a href="#group">Group</a></li> + + <li><a href="#hostnamelookups">HostnameLookups</a></li> + + <li><a href="#identitycheck">IdentityCheck</a></li> + + <li><a href="#ifdefine"><IfDefine></a></li> + + <li><a href="#ifmodule"><IfModule></a></li> + + <li><a href="#include">Include</a></li> + + <li><a href="#keepalive">KeepAlive</a></li> + + <li><a href="#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a href="#limit"><Limit></a></li> + + <li><a href="#limitexcept"><LimitExcept></a></li> + + <li><a href="#limitinternalrecursion">LimitInternalRecursion</a></li> + + <li><a href="#limitrequestbody">LimitRequestBody</a></li> + + <li><a href="#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a href="#limitrequestline">LimitRequestLine</a></li> + + <li><a href="#listen">Listen</a></li> + + <li><a href="#listenbacklog">ListenBacklog</a></li> + + <li><a href="#location"><Location></a></li> + + <li><a href="#locationmatch"><LocationMatch></a></li> + + <li><a href="#lockfile">LockFile</a></li> + + <li><a href="#loglevel">LogLevel</a></li> + + <li><a href="#maxclients">MaxClients</a></li> + + <li><a + href="#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a href="#maxspareservers">MaxSpareServers</a></li> + + <li><a href="#minspareservers">MinSpareServers</a></li> + + <li><a href="#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="#options">Options</a></li> + + <li><a href="#pidfile">PidFile</a></li> + + <li><a href="#port">Port</a></li> + + <li><a href="#protocolreqcheck">ProtocolReqCheck</a></li> + + <li><a href="#require">Require</a></li> + + <li><a href="#resourceconfig">ResourceConfig</a></li> + + <li><a href="#rlimitcpu">RLimitCPU</a></li> + + <li><a href="#rlimitmem">RLimitMEM</a></li> + + <li><a href="#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="#satisfy">Satisfy</a></li> + + <li><a href="#scoreboardfile">ScoreBoardFile</a></li> + + <li><a + href="#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="#sendbuffersize">SendBufferSize</a></li> + + <li><a href="#serveradmin">ServerAdmin</a></li> + + <li><a href="#serveralias">ServerAlias</a></li> + + <li><a href="#servername">ServerName</a></li> + + <li><a href="#serverpath">ServerPath</a></li> + + <li><a href="#serverroot">ServerRoot</a></li> + + <li><a href="#serversignature">ServerSignature</a></li> + + <li><a href="#servertokens">ServerTokens</a></li> + + <li><a href="#servertype">ServerType</a></li> + + <li><a href="#shmemuidisuser">ShmemUIDisUser</a></li> + + <li><a href="#startservers">StartServers</a></li> + + <li><a href="#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="#threadstacksize">ThreadStackSize</a></li> + + <li><a href="#timeout">TimeOut</a></li> + + <li><a href="#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="#user">User</a></li> + + <li><a href="#virtualhost"><VirtualHost></a></li> + </ul> + <hr /> + + <h2><a id="acceptfilter" name="acceptfilter">AcceptFilter + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AcceptFilter + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>AcceptFilter + on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> AcceptFilter は + Apache 1.3.22 以降で利用可能です。 + + <p><code>AcceptFilter</code> は、BSD + に特有のフィルタの最適化をコントロ・踉札襪靴泙后鹿粡寂蝟赱齠洲痲筵娼この機能はデフォルトで組み込まれます。 + そして、システムがこの機能をサポ・踉札鹿粡寂蝟赱齠洲痲筵娼續齒站續關で SO_ACCEPTFILTER オプションが利用できる) + していれば、デフォルトで有効となります。 + 現在のところ、FreeBSD においてのみサポ・踉札箸気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ椶靴う苳諮報を得るには、<a + href="../misc/perf-bsd44.html">性能のヒント</a>のフィルタセクションを + 見てください。</p> + + <p>なお、コンパイル時に <code>AP_ACCEPTFILTER_OFF</code> + フラグを利用すればデフォルトを無効にすることが可能です。 + <code>httpd -V</code> と <code>httpd -L</code> + を利用することによって、コンパイル時のデフォルトと SO_ACCEPTFILTER + が有効になっているかどう瘢雹かを参箸垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痺竇頸逡瘢綵≡窿辮纔▽苳餐窿辮纔鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AcceptMutex + uslock|pthread|sysvsem|fcntl|flock|os2sem|tpfcore|none|default<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>AcceptMutex + default</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> AcceptMutex は + Apache 1.3.21 以降で利用可能です。 + + <p><code>AcceptMutex</code> は、accept() においてどの方法の + mutex を利用するのかを指定します。なお、利用できる mutex + はコンパイル時に決定され、 + プラットフォ・踉札爐砲茲辰討呂垢戮討諒,詫僂任覆い海箸△蠅泙后鹿粡寂蝟赱齠洲痲筵娼利用できる mutex は、コマンドラインオプションで + <code>httpd -V</code> を指定すると一覧が表┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢコンパイル時のフラグとして + <code>-D HAVE_METHOD_SERIALIZED_ACCEPT</code> + を指定することによって、異なる方法を追加することもでき、 + 特定のプラットフォ・踉札犖韻踉祉閼絋苳脂釿跿粤鞏竢鈕蜃閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢを編集することも可能です。</p> + + <p>このディレクティブは Microsoft Windows + に対して指定しても効果はありません</p> + + <p>椶靴う苳諮報については<a + href="../misc/perf-tuning.html">パフォ・踉札泪鵐好船紂ンニング</a>を + 参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痺竇齠竢鈕蜃釶辣就痺竇齠竢鈕蜃▽苳餐窿纉鹵闔肅膽蝟昭粡竚癈鷭п粐Ьぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AccessConfig + <em>file-path</em>|<em>directory-path</em>|<em>wildcard-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>AccessConfig + conf/access.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a>Apache 1.3.13 + 以降でのみ、ファイル巳苳擦梁紊錣蠅縫妊譽肇螢僖垢鮖慊蠅任泙后鹿粡寂蝟赱齠洲痲筵娼このディレクティブはバ・踉札献腑ぢ以降には存在しません。 + + <p><a href="#resourceconfig">ResourceConfig</a> ファイルを読み込んだ後、 + それに加えて多くのディレクティブをここで記したファイルから読み込みます。 + <em>File-path</em> は、<a href="#serverroot">ServerRoot</a> + で記したパスからの、相対パスです。<br /> + なお、この機能を無効にするには,里茲逅擦忙慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤巣竇齠衷鈕蜃粤銛跛閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼怏邀の豺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤巣竇齠衷鈕蜃閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼以前は、このファイルには <a href="#directory"><Directory></a> + セクションのみが書かれていました。 + 現在ではサ・踉札仞瀋螢侫.ぅ襪傍劼任襪海箸垢戮討匆椎修砲覆辰討い泙后鹿粡寂蝟赱齠洲痲筵娼ただ、Apache のバ・踉札献腑ぢ以降では、 + Apache と共瘢雹に配布されているデフォルトの <code>access.conf</code> + ファイルにはコメントしか書かれておらず、 + すべてのディレクティブが腓箸覆襯機バ設定ファイルの + <code>httpd.conf</code> に記述されています。 + + <p> + もし、この <code>AccessConfig</code> + ディレクティブに、ファイルではなくディレクトリが指定されれば、 + Apache はそのディレクトリ内のすべてのファイルを読み込み、 + それらを設定ファイルとして処理します。</p> + <p>代わりに、ワイルドカ・踉札匹鮖箸辰独楼呂鮃覆襪海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼すなわち、*.conf ファイルのみ、といったよう瘢雹に。</p> + <p>デフォルトでは指定されたディレクトリの「<em>どのよう瘢雹な</em>」 + ファイルでも設定ファイルとして読み込まれます。</p> + <p>ですから誤って (例えばエディタでテンポラリファイルを作成する等) + ファイルを置かないよう瘢雹に注意してください。</p> + + <p><strong>参墾踉晒齡鳫鈑踉氏鱚羹■蜴竚紜侮竚絋踉晒瓲苳錆畆蝟昭粡竚癈鷭п粐Ь鱚羹■鱚齒竇竢鈕蜃▽苳子纉阨鱆綯闔肅胼踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痺竇齠肅跂釶辣釶辣就痺竇齠肅跂釶辣▽苳餐窿纉麁蛹緡瘢綣蝟昭粡竚癈鷭п粐Ьぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AccessFileName + <em>filename</em> [<em>filename</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>AccessFileName + .htaccess</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> AccessFileName は Apache 1.3 + 以降においてのみ複数のファイル巳苳擦鮖慊蠅任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢドキュメントをクライアントに返すとき、サ・踉札个魯妊譽肇蠅鹿粡寂蝟赱齠洲痲筵娼対してアクセス設定ファイルが有効になっていれば、そのドキュメントへの + パス紊砲△襪垢戮討離妊譽肇蠅蕕海海濃慊蠅気譴震前の一覧の中で + 最初に見つかったファイルを、それう苳擦譽▲札浩罐侫.ぅ襪箸靴篤匹濆澆泙后鹿粡寂蝟赱齠洲痲筵娼例えば:</p> + + <blockquote> + <code>AccessFileName .acl</code> + </blockquote> + のよう瘢雹に指定されていると、 /usr/local/web/index.html + を返す豺隋焚のよう瘢雹にして無効にされていない限り、 + ドキュメントを返す前に /.acl, /usr/.acl, /usr/local/.acl, + /usr/local/web/.acl からディレクティブを読み込みます。 + + <blockquote> + <code><Directory /><br /> + AllowOverride None<br /> + </Directory></code> + </blockquote> + + <p><strong>参墾踉晒齡鳫鈑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a跛阯阮纈鱸粤▽苳餐跛阯纈鱸粤ぢ及び <a + href="../configuring.html">設定ファイル</a></p> + <hr /> + + <h2><a id="adddefaultcharset" + name="adddefaultcharset">AddDefaultCharset ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AddDefaultCharset + On|Off|<em>charset</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> すべて<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑デフォルト:</strong></a> + <code>AddDefaultCharset Off</code><br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>互換性:</strong></a> + AddDefaultCharset は Apache 1.3.12 以降で利用可能です。 + + <p>このディレクティブは、HTTP ヘッダにコンテントタイプパラメ・踉札燭鹿粡寂蝟赱齠洲痲筵娼持たないレスポンスに追加される文字セットの巳苳餐阿鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼これは、ドキュメント内の META + タグで指定されたどのよう瘢雹な文字セットも無効にします。 + <code>AddDefaultCharset Off</code> + という瘢雹設定により、この機能は無効になります。 + <code>AddDefaultCharset On</code> にすれば、ディレクティブの要求通り + Apache 内部のデフォルト文字セット <code>iso-8859-1</code> + に設定します。また、側苳擦踉糸蹙苳祉葹鴦續蹙苳も指定できます。</p> + + <p>例:</p> + + <blockquote> + <code>AddDefaultCharset utf-8</code> + </blockquote> + + <p><b>注意:</b> これはデフォルトで Apache + が生成するステ・踉札織好據ジ ('404 Not Found' や + '301 Moved Permanently' など) には影響<b>しません</b>。 + それらは、(ペ・踉札犬瞭睛討蓮ドコ・踉札匹気譴峠颪譴討い薤苳ぢ尊櫃鹿粡寂蝟赱齠洲痲筵娼文字セットがあるため、デフォルトが適用される必要はないからです。</p> + + <hr /> + + <h2><a id="addmodule" name="addmodule">AddModule + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AddModule + <em>module</em> [<em>module</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> AddModule は Apache 1.2 + 以降で利用可能です。 + + <p>Apache + では、使用しないコンパイル済みのモジュ・踉札襪鮖弔海箸任泙后鹿粡寂蝟赱齠洲痲筵娼このディレクティブは、それらのモジュ・踉札襪鮖藩僂垢襪茲逅擦砲任泙后鹿粡寂蝟赱齠洲痲筵娼起動後、あらかじめ使用モジュ・踉札襪離螢好箸鮑鄒靴討い泙垢鹿粡寂蝟赱齠洲痲筵娼蓿繙就c跂癇迴糒跂跚齡▽苳暫跂癇酪糒跂也齡鹿粡寂蝟赱齠洲痲筵娼ディレクティブによりそのリストの中身を辰垢海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> + + <blockquote> + <code>AddModule mod_include.c</code> + </blockquote> + + <p><code>AddModule</code> の順番は重要です。モジュ・踉札襪詫ダ菘戮鹿粡寂蝟赱齠洲痲筵娼逆順に書きます―後に書かれているものは前の方に書かれているものの + 振る舞いを綵颪垢襪海箸任泙后海譴蓮¬椶妨┐覬洞舛△蠅泙后鹿粡寂蝟赱齠洲痲筵娼例えば、UserDir が Alias の後にあれば、ユ・踉札兇離曄ムディレクトリの + エイリアスを作ることはできません。より椶靴う苳諮報と、推気譴討い鹿粡寂蝟赱齠洲痲筵娼順番については Apache ソ・踉札糠柯枌罎踉祉閼絋苳雌鱆闔肅苺鱇闔逅讀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就c跂癇迴糒跂跚齡▽苳暫跂癇酪糒跂也齡ぢと <a + href="mod_so.html#loadmodule">LoadModule</a></p> + <hr /> + + <h2><a id="allowoverride" name="allowoverride">AllowOverride + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AllowOverride + All|None|<em>directive-type</em> [<em>directive-type</em>] + ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>AllowOverride + All</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> ディレクトリ<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢサ・踉札个畆蝟昭粡竚癈鷭п粐Ь鱚羹■痺竇齠肅跂釶辣▽苳餐窿纉麁蛹緡瘢絋踉晒瓲苳によって指定された) + .htaccess ファイルを見つけた時、そのファイルの中で + 宣言されたどのディレクティブがより前に定義されたアクセス霾鵑鹿粡寂蝟赱齠洲痲筵娼綵颪任襪鮹里詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳士阡綺闔胼苳竢粤糟跫鴪蜆絋踉晒竢粤闔踟鹿粡寂蝟赱齠洲痲筵娼跚蜴瘢雹踉残蜥繝鴒逅紫繝闔鵺阡逅詞弥竅闔逅紫鮗蝟昭粡竚癈鷭п粐Ь瘢雹踉仔蛹纉逅紫繝闔鵺蜊韭蜈磔蒹踉雌闔胼苳暫闔闔胼苳纂蝟昭粡竚癈鷭п粐Ь繝闔硼踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このディレクティブを None に設定すると、.htaccess + ファイルは完全に無視されます。 + この豺隋▲機バはファイルシステムの .htaccess + ファイルを読むことを試みさえしません。</p> + + <p>このディレクティブが <code>All</code> に設定されているときには、 + .htaccess という瘢雹 <a + href="directive-dict.html#Context">コンテキスト</a> + を持つすべてのディレクティブが利用できます。</p> + + <p><em>directive-type</em> + には、以王踉擦離妊譽謄峽欧離ワ・踉札匹里匹譴鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘装衷鈕蜃熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ьぢ認擇亡悗垢襯妊譽謄屬了藩僂魑弔垢畆蝟昭粡竚癈鷭п粐Ь鱚羹閼焉萬籵蹼蔗迪a葢硴苒阨鞴蛹紜装賃庸鳫鍋跂蝟昭粡竚癈鷭п粐Ь踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖癜焙硴譯癜籵逡黼鱠蛹紜装賃葉黼鯑蛹絋踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖癜譯癜苒阨鞴蛹紜装白阨霪蛹絋踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a蓆瘢紜装令辣畆蝟昭粡竚癈鷭п粐Ь鱚羹■装堤艱齡吶瘡輦繞笄装堤艱齡吶瘡輦繞筅踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a蔗紜装奘鞳畆蝟昭粡竚癈鷭п粐Ь鱚羹閼焉莅蔗迪a蔘黼鱠蛹紜装專纈鍋跂畆蝟昭粡竚癈鷭п粐Ь鱚羹■鱚髟蜥紜吶髟蜥絋踉晒瓲苳纃など</em>)。</dd> + + <dt>FileInfo</dt> + + <dd> + ドキュメントタイプを制御するためのディレクティブの使用を許可する (<a + href="mod_mime.html#addencoding">AddEncoding</a>, <a + href="mod_mime.html#addlanguage">AddLanguage</a>, <a + href="mod_mime.html#addtype">AddType</a>, <a + href="#defaulttype">DefaultType</a>, <a + href="#errordocument">ErrorDocument</a>, <a + href="mod_negotiation.html#languagepriority">LanguagePriority</a> + <em>など</em>)。</dd> + + <dt>Indexes</dt> + + <dd> + ディレクトリインデックスを制御するためのディレクティブの使用を許可する + (<a + href="mod_autoindex.html#adddescription">AddDescription</a>, + <a href="mod_autoindex.html#addicon">AddIcon</a>, <a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a>, + <a href="mod_autoindex.html#addiconbytype">AddIconByType</a>, + <a href="mod_autoindex.html#defaulticon">DefaultIcon</a>, <a + href="mod_dir.html#directoryindex">DirectoryIndex</a>, <a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a>, <a + href="mod_autoindex.html#headername">HeaderName</a>, <a + href="mod_autoindex.html#indexignore">IndexIgnore</a>, <a + href="mod_autoindex.html#indexoptions">IndexOptions</a>, <a + href="mod_autoindex.html#readmename">ReadmeName</a> + <em>など</em>)。</dd> + + <dt>Limit</dt> + + <dd> + ホストへのアクセス制御を行う瘢雹ためのディレクティブの使用を許可する (<a + href="mod_access.html#allow">Allow</a>, + <a href="mod_access.html#deny">Deny</a> + and <a href="mod_access.html#order">Order</a>).</dd> + + <dt>Options</dt> + + <dd> + 特定のディレクトリにおける機能を指定するためのディレクティブの使用を許可する + (<a href="#options">Options</a> と <a + href="mod_include.html#xbithack">XBitHack</a>).</dd> + </dl> + + <p>例:</p> + <blockquote><code>AllowOverride AuthConfig Indexes</code></blockquote> + + <p><strong>参墾踉晒齡鳫鈑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a窿纉黽蛹緕瘢紜巣竇齠鍋跂令辣ぢ及び <a + href="../configuring.html">設定ファイルの記述</a></p> + <hr /> + + <h2><a id="authname" name="authname">AuthName + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AuthName + <em>auth-domain</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> ディレクトリ、 + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのディレクティブはディレクトリに対する認可領域 (訳注: realm) + の巳苳餐阿鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼認可領域は、利用圓匹離罅ザ巳苳擦肇僖好錙ドを送信すればよいのかを + クライアントに教えるために利用します。 + <samp>AuthName</samp> は一つの引数を茲蝓鹿粡寂蝟赱齠洲痲筵娼スペ・踉札垢泙泙譴襴苳詞合には、引用符で囲まなければなりません。 + このディレクティブは + <a href="#authtype">AuthType</a> ディレクティブや + <a href="#require">Require</a> ディレクティブ及び、 + <a href="mod_auth.html#authuserfile">AuthUserFile</a> や <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> + などのディレクティブと一緒に利用する必要があります。</p> + + <p>例:</p> + + <blockquote><code>AuthName "秘密のパスワ・踉札▽踉晒竢粤跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮ここで <code>AuthName</code> に指定した文字列が、 + 大部分のブラウ瘢雹ザのパスワ・踉札疋瀬ぅ▲蹈阿防拾踉雑されます。</p> + + <p><strong>訳注:</strong> + 引数に与える文字列は英数字やハイフンなどの記号のみを利用するべきですが、2 + バイト文字を指定した豺腓任癲鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢは通錣諒源麁瑛佑縫薀ぅ▲鵐箸愾个靴泙后鹿粡寂蝟赱齠洲痲筵娼ぢただサポ・踉札箸縮世気譴討い襪錣韻任呂△蠅泙擦踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑参墾踉晒齡鳫鈑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就阯莅蔗迪▽苳ぢ認據▽苳撒認、アクセス制御</a></p> + <hr /> + + <h2><a id="AuthDigestRealmSeed" name="AuthDigestRealmSeed">AuthDigestRealmSeed + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AuthDigestRealmSeed + <em>secret-real-string</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> ディレクトリ、 + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑ぢコア + + <p>このディレクティブは認可領域ごとの秘密の一度きりの接頭鹿粡寂蝟赱齠洲痲筵娼設定します。これは Digest + 交換の間に萋世靴織罅ザ巳苳察▲僖好錙ド、認可領域巳苳司源鵑髻鹿粡寂蝟赱齠洲痲筵娼側苳擦陸苳詞所で再利用できない様にします。</p> + <p>これは <a href="mod_digest.html">mod_digest.html</a> にしか適用されません。 + 存嚇鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖癜焙蜃纉蔗迪▽苳詩閼焉萬粡艱齡讀踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢは専用の再利用対策 (より進んだ、時間も考慮したもの) を汰靴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ動作するためには <a href="#authtype">AuthType</a> に Digest のタイプ、 + <a href="#require">Require</a> ディレクティブと + <a href="mod_auth.html#authuserfile">AuthUserFile</a> や <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> + ディレクティブが設定されていることが必要です。</p> + + <p><strong>参墾踉晒齡鳫鈑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就阯莅蔗迪▽苳ぢ認據▽苳撒認、アクセス制御</a></p> + <hr /> + + <h2><a id="authtype" name="authtype">AuthType + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AuthType + Basic|Digest<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> ディレクトリ、 + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥綣蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このディレクティブは対櫂妊譽肇蠅罵僂垢襯罅ザ・踉伺Е苳孜の鑪爐鯀咾泙后鹿粡寂蝟赱齠洲痲筵娼ただ、現在のところは <code>Basic</code> 磴靴鹿粡寂蝟赱齠洲痲筵娼竢粤堤艱齡閼絋苳しか汰気譴討い泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼このディレクティブは + <a href="#authtype">AuthType</a> ディレクティブや + <a href="#require">Require</a> ディレクティブ及び、 + <a href="mod_auth.html#authuserfile">AuthUserFile</a> や <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> + などのディレクティブと一緒に利用する必要があります。</p> + + <p>AuthDigest が使われると <a + href="#AuthDigestRealmSeed">AuthDigestRealmSeed</a> もセットされます。</p> + <p><strong>参墾踉晒齡鳫鈑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就阯莅蔗迪▽苳ぢ認據▽苳撒認、アクセス制御</a></p> + <hr /> + + <h2><a id="bindaddress" name="bindaddress">BindAddress + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> BindAddress + *|<em>IP-address</em>|<em>domain-name</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>BindAddress + *</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> BindAddress は + 非推鞜竏荻では削除されます。 + + <p>Unix® において HTTP サ・踉札个蓮▲機バのすべての IP + アドレスを listen することができ、一つの IP アドレスだけを + listen することもできます。このディレクティブに * + を指定すると、サ・踉札个呂垢戮討アドレス紊蜩郤蝟昭粡竚癈鷭п粐Ьぢを行います。それ以外の豺腓蓮団蠅踉糸蹙苳刺亅痲糅纉鵙踉晒纃ぢか + <em>domain-name</em> のみで listen します。</p> + + <p>例:</p> + + <code>BindAddress 192.168.15.48</code><br /> + + <p>なお、<code>BindAddress</code> + ディレクティブは一つしか利用できません。</p> + + <p>このディレクティブは Apache 2.0 においては非推如▽踉肢り除かれています。 + 代わりに、同等の機能を持ちかつ複数のアドレスやポ・踉札箸砲い鹿粡寂蝟赱齠洲痲筵娼跚齡緕ぢできるよう瘢雹になった + <code><a href="#listen">Listen</a></code> + ディレクティブを利用できます。</p> + <p>BindAddress は、<code><a + href="#virtualhost"><VirtualHost></a></code> + セクションを使う瘢雹代わりに、複数のサ・踉札个魑阿靴畆蝟昭粡竚癈鷭п粐Ь鱚羹〓闢バ・踉札船礇襯曠好をサポ・踉札箸垢鹿粡寂蝟赱齠洲痲筵娼ために利用することができます。</p> + + <p><strong>参墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼蓿繙就銖癘縺譬栂に関する問題</a><br /> + <strong>参墾踉晒齡鳫鈑踉氏鱚羹〓砠鈔譬草痺蒹鹿粡寂蝟赱齠洲痲筵娼が利用するアドレスとポ・踉札箸寮瀋鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就碵屋旭痺竢槇瘢綵≒鷁旭衣窿阨銓▽苳斬啣旭袷窿阨銓鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> BS2000Account + <em>account</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> BS2000Account は BS2000 + マシンでかつ Apache 1.3.22 以降でのみ利用可能です。 + + <p><code>BS2000Account</code> ディレクティブは、BS2000 + ホストでのみ有効であり、(<a href="#user">User</a> + ディレクティブを利用して) Apache + を孫圓垢觚造魎浜踉市以外のアカウ瘢雹ント番号に指定する必要があります。 + これは、CGI スクリプトが、通搜厦鹿粡寂蝟赱齠洲痲筵娼である、サ・踉札个魑阿靴心浜踉市権限を持つアカウ瘢雹ントの + リソ・踉札垢縫▲札垢任覆い茲逅擦砲垢襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼ぢサブログインによって、BS2000 のタスク環境王踉擦肪屬譴帯屋旭ぢの + POSIX サブシステムにおいて必要です。<code>BS2000Account</code> + ディレクティブは 1 回だけ利用できます。</p> + + <p><strong>参墾踉晒齡鳫鈑踉氏鱚羹〓繧邃蜒譬草痺蒹ぢの + EBCDIC への移植版</a></p> + <hr /> + + <h2><a id="cgicommandargs" name="cgicommandargs">CGICommandArgs + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> CGICommandArgs On|Off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> CGICommandArgs On<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑頸蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Apache + 1.3.24 以降で使用可能。 + + <p>昔々、インタ・踉札優奪箸茲螳汰瓦能秧茲世辰燭箸砲蓮鹿粡寂蝟赱齠洲痲筵娼サ・踉札个洲ぢ文字を含まないクエリ・踉司源鵑鬢踉歯け茲辰堂鮴呂掘鹿粡寂蝟赱齠洲痲筵娼断プログラムへコマンドラインの引数として渡すと便利なことがありました。 + 例えば、<code><IsIndex></code> により生成された検索はよく + そのよう瘢雹に動作していました。このよう瘢雹な動作は今日では一般に + 安全でないと見なされていますが、Apache のデフォルトの動作は + 後方互換性のためにこの振る舞いを維持しています。たいていの CGI + プログラムはコマンドラインの引数を栄佞韻泙擦鵑瑤鹿粡寂蝟赱齠洲痲筵娼栄佞韻襪發里涼罎任蓮△曚箸鵑匹海琉瑤療呂景傍ど佞い討蕕此鹿粡寂蝟赱齠洲痲筵娼悪意のあるクライアントがこの方法を使って安全でないものを渡す + ことに対する脆綫△蠅泙后修里茲逅擦淵好螢廛箸鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢの機能をほぼ損なう瘢雹ことなく保護するために、 + <code>CGICommandArgs Off</code> と設定することが推気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就竚縺鴉閼繻蜩槇鹿粡寂蝟赱齠洲痲筵娼釶辣就竚縺鴉閼繻蜩槇柱縺鰺閼緻蜩ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ClearModuleList<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> ClearModuleList + は Apache 1.2 以降で利用可能です。 + + <p>サ・踉札个呂△蕕犬疝淵皀献紂ルの一覧を持っています。 + このディレクティブはその一覧をクリアします。後で + <a href="#addmodule">AddModule</a> ディレクティブを使って + モジュ・踉札襪魄賤忘討啣辰┐襪海箸圓気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a粐迴糒跂▽苳餐粐酪糒跂ぢと <a + href="mod_so.html#loadmodule">LoadModule</a></p> + + <hr /> + + <h2><a id="contentdigest" name="contentdigest">ContentDigest + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ContentDigest + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ContentDigest + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑頸蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑纈蜊緕讀踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> ContentDigest は Apache 1.1 + 以降で利用可能です。 + + <p>このディレクティブは、RFC1864 及び RFC2068 において定義されている + <code>Content-MD5</code> ヘッダの生成を有効にします。</p> + + <p>MD5 は、任意長のデ・踉札燭痢屮瓮奪察ジダイジェスト」(「指紋」 + と表現されることもある) を計算するアルゴリズムで、 + デ・踉札燭諒儿垢△辰職苳詞合には非錣帽發た蠹戮鹿粡寂蝟赱齠洲痲筵娼メッセ・踉札献瀬ぅ献Д好箸吠儿垢娠任気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳暫闔銓諜閼絋苳ヘッダは、エンドツ・踉札┘鵐匹鹿粡寂蝟赱齠洲痲筵娼エンティティボディ・踉擦亡泙泙譴襯瓮奪察ジの完全性チェック + (Message Integrity Check - MIC) を提供します。 + このヘッダを調べることで、プロキシやクライアントは、 + 途中経路におけるエンティティボディの予期せぬ変更などを + 検出することができます。ヘッダの例:</p> +<pre> + Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== +</pre> + + <p>リクエストごとにメッセ・踉札献瀬ぅ献Д好箸魴彁擦垢鹿粡寂蝟赱齠洲痲筵娼ぢ値はキャッシュされません) ことから、 + サ・踉札丱僖侫マンスが低王踉擦垢襪海箸砲弔い特躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳暫闔銓諜閼鹿粡寂蝟赱齠洲痲筵娼は、コア機能により処理されたドキュメントを送るときのみ有効であり、 + SSI ドキュメントや CGI スクリプトの出力、 + バイトレンジを指定した応答の豺腓砲呂海離悒奪世鷲嬪燭気譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就竢鱚糒逅粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼釶辣就竢鱚糒逅粡鱚笏闥衷鱚汀逅堤鱚笏闥ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> CoreDumpDirectory + <em>ディレクトリパス</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> ServerRoot と同じ貊碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢコンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこれにより、Apache + がコアダンプをする前に移動するためのディレクトリを指定できます。 + デフォルトの豺腓蓮蓿繙就s纈鴪闖槇嚆鴟纈呰阡鹿粡寂蝟赱齠洲痲筵娼において指定したディレクトリとなるものの、 + 通錣陸苳詞合はサ・踉札个鬢踉斬行しているユ・踉札兇砲茲辰峠颪澹造気鹿粡寂蝟赱齠洲痲筵娼コアダンプが残されることはありません。 + もし、デバッグのためにコアダンプが必要なのであれば、 + このディレクティブにより違う瘢雹貊蠅棒瀋蠅鬚垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ設定例:</p> + + <blockquote> + <code>CoreDumpDirectory /tmp</code> + </blockquote> + + <hr /> + + <h2><a id="defaulttype" name="defaulttype">DefaultType + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> DefaultType + <em>MIME-type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>DefaultType + text/html</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢサ・踉札个蓮揺妖ぢのタイプマップからは決定できない + ドキュメントの送信を要求されることがあります。</p> + + <p>サ・踉札个蓮▲疋絅瓮鵐箸離灰鵐謄鵐肇織ぅ廚鬟薀ぅ▲鵐箸鹿粡寂蝟赱齠洲痲筵娼通知する必要がありますので、このよう瘢雹にタイプが未知の豺腓鹿粡寂蝟赱齠洲痲筵娼竢粤偵聲絋踉晒竢粤ぢで指定されたタイプを利用します。 + 設定例:</p> + + <blockquote> + <code>DefaultType image/gif</code> + </blockquote> + これは .gif という瘢雹拡張子がファイル巳苳擦亡泙泙譴討い覆ぢ燭鹿粡寂蝟赱齠洲痲筵娼派画像が含まれているディレクトリに適しているでしょう瘢雹。 + + <p><strong>参墾踉晒齡鳫鈑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖迚辣譯痲糘紜槍簫絋踉晒瓲苳及び <a + href="mod_mime.html#typesconfig">TypesConfig</a></p> + + <hr /> + + <h2><a id="directory" name="directory"><Directory> + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <Directory + <em>directory-path</em>|proxy:<em>url-path</em>> + ... </Directory> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼ぢバ・踉札船礇襯曠好碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥綣蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮指定されたディレクトリ配王踉擦砲里潺妊譽謄屬鯏僂気擦襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼逅詞堤鱚笏闥瘢雹苳及び </Directory> + を対として、ディレクティブ群を囲う瘢雹ことができます。 + 囲いの中では、ディレクトリコンテキストで許可されたすべての + ディレクティブが利用できます。<em>directive-path</em> + は、フルパス磴靴魯錺ぅ襯疋ドにて指定します。 + `?' は任意の 1 文字、`*' は任意の文字列にマッチします。Apache 1.3 + の豺隋▲轡Д襪砲韻觧慊蠧瑛諭∧源糧楼六慊蠅檳ぢで可能です。 + また、Apache 1.3では、UNIX のシェルの挙動に似せるために、 + ワイルドカ・踉札匹ぢ文字にはマッチしません。 + 例:</p> +<pre> + <Directory /usr/local/httpd/htdocs> + Options Indexes FollowSymLinks + </Directory> +</pre> + + <p><strong>Apache 1.2 以降の豺墾踉晒齡鳫鈑踉祉閼絋苳時閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢという瘢雹文字を付加することで拡張正規表現を利用することもできます。<br /> + 例えば、</p> +<pre> + <Directory ~ "^/www/.*/[0-9]{3}"> +</pre> + といった指定の豺隋以王踉擦砲△訖鹿粡寂蝟赱齠洲痲筵娼文字のディレクトリにマッチします。 + + <p>もし複数の (正規表現以外の) ディレクトリセクションが + ドキュメントを含むディレクトリ (やその絨魅妊譽肇蝟昭粡竚癈鷭п粐Ьぢとマッチしたならば、<a href="#accessfilename">.htaccess</a> + ファイルのディレクティブも読み込みつつ、 + 短いパスから順に適用されます。 + 例えば、</p> + + <blockquote> + <code><Directory /><br /> + AllowOverride None<br /> + </Directory><br /> + <br /> + <Directory /home/*><br /> + AllowOverride FileInfo<br /> + </Directory></code> + </blockquote> + と設定し、ドキュメント <code>/home/web/dir/doc.html</code> + へのアクセスがあった豺腓砲楼焚のよう瘢雹に動作します: + + <ul> + <li><code>AllowOverride None</code> が適用される。 + (<code>.htaccess</code> ファイルは無効になる)</li> + + <li><code>AllowOverride FileInfo</code> が適用される + (<code>/home/web</code> ディレクトリに対して)。</li> + + <li><code>/home/web/.htaccess</code> の FileInfo + ディレクティブが適用される。</li> + </ul> + + <p>ディレクトリセクションにおける正規表現については、Apache 1.2 と + 1.3 で禊外靴い磴い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏窺の豺隋巳苳誌のディレクトリセクションが同じく、 + 設定ファイル内に現れる順に髭苳参舛気譴泙后亀集修離妊譽肇螢札轡腑鵑蓮鹿粡寂蝟赱齠洲痲筵娼一番短くマッチした豺腓飽貪戮世嬰僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢでは、 + 正規表現は、通錣離札轡腑鵑垢戮禿僂気譴襪泙嚢洋犬気譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼その後、すべての正規表現が設定ファイルに現れた順で試されます。 + 例えば、以王踉擦里茲逅擦弗苳詞合に</p> + + <blockquote> + <code><Directory ~ abc$><br /> + ... directives here ...<br /> + </Directory><br /> + </code> + </blockquote> + + アクセスされているファイル巳苳擦鹿粡寂蝟赱齠洲痲筵娼竢粤闕絲痰祚頤碎蜒煦豁痰祚蜴粤蔗迪閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢであるとしましょう瘢雹。サ・踉札个踉祉閼絋苳晒閼絋苳錆踉祉閼絋苳晒蓖辣閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼竢粤闕絲痰礒踉晒竢粤竢粤闕絲痰祚頤碎蜒煦讀踉晒竢粤ぢ及び + <code>/home/abc/public_html/abc</code> の順に考慮します。 + Apache 1.2 であれば、<code>/home/abc</code> + の髭苳参舛鬚垢觝櫃法∪亀集修泪奪舛慧僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼草痺蒹鹿粡寂蝟赱齠洲痲筵娼の豺腓論亀集修魯張蝓紊里修了世任倭瓦洋犬気譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼すべての通錣瘢雹踉残蜥繝鴒逅紫ぢと <code>.htaccess</code> + ファイルが髭苳参舛気譴襪泙如洋犬気譴泙擦鵝修慮紂∪亀集修鹿粡寂蝟赱齠洲痲筵娼竢粤闕絲痰祚頤碎蜒煦豁痰礒踉晒竢粤ぢにマッチし、適用されます。 + + <p><strong>Apache のデフォルトでは <Directory /> + へのアクセスは <samp>Allow from All</samp> + になっていることに注意してください。これは、URL + からマップされたどのファイルでも Apache は送るという瘢雹ことです。 + これは以王踉擦里茲逅擦砲靴栃儿垢垢襪海箸筅苳皐されています。</strong></p> +<pre> + <Directory /> + Order Deny,Allow + Deny from All + </Directory> +</pre> + + <p><strong>そしてアクセスを<em>可能にしたい</em> + ディレクトリに対して個別に設定すればよいでしょう瘢雹。 + このあたりについては、<a href="../misc/security_tips.html" + >セキュリティに関するコツ</a>を参箸靴討世気ぁ闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉残蜥繝鴒逅紫ぢディレクティブは入れ子にすることができず、 + <a href="#limit"><Limit></a> や <a + href="#limitexcept"><LimitExcept></a> + セクションの中にも記述できません。 + + <p><a href="mod_proxy.html">mod_proxy</a> が有効になっている豺隋鹿粡寂蝟赱齠洲痲筵娼踉祉閼絋苳諮鳫墾踉晒竢粤ぢ構文を使って、プロキシされているコンテンツに + 対して適用させることができます。この構文は設定を適用したい + プロキシされている URL を指定するか、プロキシされているコンテンツすべてに + 適用させるために <code>*</code> を指定する、という瘢雹よう瘢雹になっています:</p> + + <p>すべてのプロキシされているコンテンツに適用させるには:</p> + + <pre> + <Directory proxy:*> + ... directives here ... + </Directory> + </pre> + + <p>プロキシされているコンテンツの一部分にのみ適用させるには:</p> + + <pre> + <Directory proxy:http://www.example.com/> + ... directives here ... + </Directory> + </pre> + + <p><strong>参闔胼苳産ぢリクエストを韻榛櫃法鹿粡寂蝟赱齠洲痲筵娼異なる複数のセクションがどのよう瘢雹にして組み合わされるのかについては + <a href="../sections.html">Directory, Location 及び Files + セクションがどのよう瘢雹に動作するのか</a></p> + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就d蜥繝鴒轣茴堤鱚笏闥癆竏鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就粡鱚笏闥癆竏⊆蝟昭粡竚癈鷭п粐Ь瘢綵≫蜥繝鴒轣茴逅詞堤鱚笏闥癆竏逅紫王苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑構文:</strong></a> <DirectoryMatch + <em>regex</em>> ... </DirectoryMatch> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Apache 1.3 以降で使用可能 + + <p>指定されたディレクトリ配王踉擦砲里潺妊譽謄屬鯏僂気擦襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼蓿繙就d蜥繝鴒▽苳殺瘢雹踉残蜥繝鴒逅紫ぢと同様に + <DirectoryMatch> 及び </DirectoryMatch> + を対として、ディレクティブ群を囲う瘢雹ことができます。 + ただし、引数は正規表現となります。例えば、</p> +<pre> + <DirectoryMatch "^/www/.*/[0-9]{3}"> +</pre> + + <p>といった指定の豺腓ぢ以王踉擦砲△訖鹿粡寂蝟赱齠洲痲筵娼文字のディレクトリにマッチします。</p> + + <p><strong>参墾踉晒齡鳫鈑蝟昭粡竚癈鷭п粐Ьぢ通錣瘢雹踉残蜥繝鴒逅紫鹿粡寂蝟赱齠洲痲筵娼セクションと一緒に正規表現を利用するための解説としては + <a href="#directory"><Directory></a><br /> + <strong>参闔胼苳産ぢリクエストを韻榛櫃法鹿粡寂蝟赱齠洲痲筵娼異なる複数のセクションがどのよう瘢雹にして組み合わされるのかについては + <a href="../sections.html">Directory, Location 及び Files + セクションがどのよう瘢雹に動作するのか</a></p> + <hr /> + + <h2><a id="documentroot" name="documentroot">DocumentRoot + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> DocumentRoot + <em>directory-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>DocumentRoot + /usr/local/apache/htdocs</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのディレクティブは、httpd + がファイルを提供するディレクトリを設定します。Alias + のよう瘢雹なディレクティブにマッチしない豺腓砲蓮▲疋絅瓮鵐箸鹿粡寂蝟赱齠洲痲筵娼ぢ訳注:ファイルシステム紊パスを生成するために、リクエストされた + URL のパス部分をドキュメントル・踉札箸防嬪燭靴泙后鹿粡寂蝟赱齠洲痲筵娼例:</p> + + <blockquote> + <code>DocumentRoot /usr/web</code> + </blockquote> + この豺隋鹿粡寂蝟赱齠洲痲筵娼竢粤蔗痕蓖齡闕鈔纔讀踉晒竢粤ぢへのアクセスがあれば + <code>/usr/web/index.html</code> が返されます。 + + <p>ところで、DocumentRoot + の引数のパスの最後の文字にスラッシュが指定されていると + (<em>例えば</em>、"DocumentRoot /usr/web/" のよう瘢雹に) + 問題が起こるという瘢雹 mod_dir のバグがあるよう瘢雹です。 + そのため、このよう瘢雹な指定はしないよう瘢雹にしてください。</p> + <hr /> + + <h2><a id="ebcdicconvert" + name="ebcdicconvert">EBCDICConvert</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> EBCDICConvert + On|Off[=<em>direction</em>] <em>extension</em> + [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> EBCDICConvert は + Apache 1.3.19 以降でかつ EBCDIC + ベ・踉札垢離廛薀奪肇侫ムにおいてのみ利用可能です。 + + <p>EBCDICConvert + ディレクティブは与えられたファイルの拡張子を指定の変換設定 + (<samp>On</samp> か <samp>Off</samp>) にマップします。 + 拡張子の最初のドットはあってもなくても構いません。</p> + + <p>オプションの形踉雌瘢隍苳始扈薤苳私蜥繝闔瘢隍苳ぢや + <samp>Off=<i>direction</i></samp>) が指定されると (<i>direction</i> + は <samp>In</samp>, <samp>Out</samp>, <samp>InOut</samp> のどれか)、 + ディレクティブは指定された向きにだけ適用されます (<samp>In</samp>: + PUT や POST リクエストでコンテンツをアップロ・踉札鼻黶逅熙踉晒黶逅瑳蝟昭粡竚癈鷭п粐Ь都ぢや POST リクエストで返されるコンテンツ、<samp>InOut</samp>: + 陸苳司慮琶儡ぢ。<br /> + それ以外の形阿任蓮黶逅侮熙踉晒黶逅陸苳司慮琶儡蝟昭粡竚癈鷭п粐Ьぢであるとみなされます。</p> + + <p>一般的な MIME に基づいたル・踉札襪髻鹿粡寂蝟赱齠洲痲筵娼より細かいファイルの拡張子に基づいたル・踉札襪苳糸書きできるよう瘢雹に、 + 拡張子に基づいた設定は MIME + タイプに基づいた設定より前に試されます。</p> + + <p><strong>例</strong>:<br /> + 以王踉擦寮瀋蠅任蓮當未踉雌瘢隍苳鯖讀踉晒黶逅ぢファイルは + EBCDIC エンコ・踉札妊鵐阿塒で、<samp>*.ahtml</samp> ファイルは + ASCII エンコ・踉札妊鵐阿塒です:</p> + +<pre> + # *.html と *.ahtml は HTML: + AddType text/html .html .ahtml + + # *.ahtml は変換されない (既に ASCII になっている): + EBCDICConvert Off .ahtml + + # 側苳擦里垢戮討纔蔗迪ぢファイルは EBCDIC のはず: + EBCDICConvertByType On text/html +</pre> + <br /> + <br /> + + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就e矣粡窿闔鶯磔鞳▽苳仕唾追鍛闔鶯濁奘鞳ぢと <a + href="../ebcdic.html#ebcdic">EBCDICConvertByType + 変換関数の概要</a></p> + <hr /> + + <h2><a id="ebcdicconvertbytype" + name="ebcdicconvertbytype">EBCDICConvertByType</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> EBCDICConvertByType + On|Off[=<em>direction</em>] <em>mimetype</em> + [<em>mimetype</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> EBCDICConvertByType は + Apache 1.3.19 以降でかつ EBCDIC ベ・踉札垢離廛薀奪肇侫ムにおいてのみ + 利用可能です。 + + <p>EBCDICConvertByType ディレクティブは与えられた MIME タイプ + (ワイルドカ・踉札匹皺を指定された変換設定 (<samp>On</samp> か + <samp>Off</samp>) にマップします。</p> + + <p>オプションの形踉雌瘢隍苳始扈薤苳私蜥繝闔瘢隍苳ぢや + <samp>Off=<i>direction</i></samp>) が指定されると (<i>direction</i> + は <samp>In</samp>, <samp>Out</samp>, <samp>InOut</samp> のどれか)、 + ディレクティブは指定された向きにだけ適用されます (<samp>In</samp>: + PUT や POST リクエストでコンテンツをアップロ・踉札鼻黶逅熙踉晒黶逅瑳蝟昭粡竚癈鷭п粐Ь都ぢや POST リクエストで返されるコンテンツ、<samp>InOut</samp>: + 陸苳司慮琶儡ぢ。<br /> + それ以外の形阿任蓮黶逅侮熙踉晒黶逅陸苳司慮琶儡蝟昭粡竚癈鷭п粐Ьぢであるとみなされます。</p> + + <p><strong>例</strong>:<br /> + 有用な標準設定には以王踉擦離妊侫襯箸△襪戮任墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼すべてのテキストドキュメントは EBCDIF のファイル: + EBCDICConvertByType On text/* message/* multipart/* + EBCDICConvertByType On application/x-www-form-urlencoded \ + model/vrml application/postscript + # すべての側苳擦離侫.ぅ襪魯丱ぅ淵蠅箸澆覆鹿粡寂蝟赱齠洲痲筵娼殿団秒衷鉚纈蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ьぢ例えば NFS でマウ瘢雹ントされた unix + サ・踉札个薀疋絅瓮鵐箸鯀襦△箸い逅擦茲逅擦鹿粡寂蝟赱齠洲痲筵娼喪檀のドキュメントのみを扱う瘢雹豺腓蓮焚のよう瘢雹にしてください: +<pre> + # すべてのドキュメントは既に ASCII + EBCDICConvertByType Off */* +</pre> + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就e矣粡窿闔鶯▽苳仕唾追鍛闔鶯ぢと <a + href="../ebcdic.html#ebcdic">EBCDIC 変換関数の概要</a></p> + <hr /> + + <h2><a id="ebcdickludge" + name="ebcdickludge">EBCDICKludge</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> EBCDICKludge + On|Off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>EBCDICKludge + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> EBCDICKludge は Apache + 1.3.19 以降で EBCDIC ベ・踉札垢離廛薀奪肇侫ムでのみ使用可能です。 + 非推如▽苳鮫来のバ・踉札献腑鵑任郎鐔気譴詬縦蠅任后碣鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕唾追男跿粢は apache のバ・踉札献腑ぢから 1.3.18 + との互換性を保つために提供されています。それらのバ・踉札献腑鵑任蓮鹿粡寂蝟赱齠洲痲筵娼♯纔↑辣齠瘍絲↑逡踉蜷癇槇ぢで始まる MIME タイプと、 + "application/x-www-form-urlencoded" + のすべてのファイルはデフォルトで変換され、 + 側苳擦里垢戮討離疋絅瓮鵐箸鰐喫儡垢覗蕕譴討い泙靴拭鹿粡寂蝟赱齠洲痲筵娼▽踉雌瘢隍苳飼纔皃苳侍黹蜑踉晒皃苳殺踉脂齦碪絋踉晒薤苳殺踉晒黶逅⊆蝟昭粡竚癈鷭п粐Ьぢがドキュメントに対して設定されている豺腓砲里漾▲疋絅瓮鵐箸鹿粡寂蝟赱齠洲痲筵娼喪檀フォ・踉札泪奪箸任△襪箸澆覆気譟∈栃儡垢気譴泙擦鵑任靴拭鹿粡寂蝟赱齠洲痲筵娼変換する代わりに、"<samp><b>x-ascii-</b></samp>" + がタイプから茲蟒譟▽踉雌瘢隍苳飼纔薤苳雌鞳瘢隍苳拶鹿粡寂蝟赱齠洲痲筵娼がドキュメントの MIME タイプになっていました。</p> + + <p>EBCDICKludge ディレクトリが <samp>On</samp> に設定されていて、 + <a href="#ebcdicconvert">EBCDICConvert</a> ディレクティブがそこの + コンテキストにマッチすれば、サ・踉札个鹿粡寂蝟赱齠洲痲筵娼黶逅薤苳飼絲皃苳侍黹蜑踉晒皃苳殺踉脂齦碪絋踉晒薤苳殺踉晒黶逅ぢという瘢雹形阿鹿粡寂蝟赱齠洲痲筵娼揺妖ぢタイプを調べます。ドキュメントにそのよう瘢雹なタイプがあれば、 + "<samp><b>x-ascii-</b></samp>" が茲蟒譴董∧儡垢踉雌瘢隍苳始聿瘢隍苳纂蝟昭粡竚癈鷭п粐Ьぢに設定されます。例えば NFS でマウ瘢雹ントされたディレクトリの + ASCII のドキュメントを送っているよう瘢雹な豺腓法△海譴砲茲鹿粡寂蝟赱齠洲痲筵娼すべてのテキストファイルは EBCDIC + であるという瘢雹前提を変更することができます。<br /> + EBCDICKludge では、側苳擦浜タイプ (<em>例えば</em> model/vrml) を + EBCDIC のテキストファイルとして扱う瘢雹ことはできません。 + そのよう瘢雹な変換には綉踉氏鹿粡寂蝟赱齠洲痲筵娼鱚羹■繧邃蜒竢鉚纈紜殿団秒衷鉚纈絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブの使用がより良い方法です。(Apache バ・踉札献腑梗蝟昭粡竚癈鷭п粐Ьぢより前では、バイナリドキュメントを EBCDIC + テキストファイルとして扱う瘢雹方法は全くありませんでした)。</p> + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就e矣粡窿闔鶯▽苳仕唾追鍛闔鶯畆蝟昭粡竚癈鷭п粐Ь鱚羹■繧邃蜒竢鉚纈紜殿団秒衷鉚纈絋踉晒瓲苳と <a + href="../ebcdic.html#ebcdic">EBCDIC 変換関数の概要</a></p> + <hr /> + + <h2><a id="enableexceptionhook" name="enableexceptionhook"> + EnableExceptionHook directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> EnableExceptionHook + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>EnableExceptionHook + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> EnableExceptionHook + は Apache 1.3.30 以降で使用可能 + + <p><code>EnableExceptionHook</code> はモジュ・踉札襪胞踉斬装された + 例外フックを子プロセスがクラッシュした後に呼ぶかどう瘢雹かを制御します。 + 例外フックはモジュ・踉札襪薀奪轡紊慮彊魴萃蠅垢襪燭瓩凌巴忍苳諮報を + ログ犬垢襪任襪茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就纈鳫鰾閭緕槇瘢綵√鴪闥粹笊辣銓▽苳仕鴪闥弟笊辣銓鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ErrorDocument + <em>error-code document</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> ディレクトリ磴靴蔗痺竇齠鹿粡寂蝟赱齠洲痲筵娼コンテキストにおいての指定は Apache 1.1 以降でのみ利用可能です。 + + <p>問題やエラ・踉擦犬靴燭箸瞭虻遒箸靴董鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢには以王踉擦了佑弔里逅擦前譴弔瞭虻遒鮴瀋蠅垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼闌鹿粡寂蝟赱齠洲痲筵娼跚草痺蒹ぢ標準の簡単なエラ・踉札瓮奪察ジを表薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢ濃慊蠅靴織瓮奪察ジを表薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢ問題やエラ・踉擦僚萢鬚垢覦戮法▽踉捌サ・踉札估發鹿粡寂蝟赱齠洲痲筵娼纃孀稔鞜蹙苳へリダイレクト</li> + + <li>問題やエラ・踉擦僚萢鬚垢覦戮法杏瑤踉糸蹙苳師厂蹙苳纂蝟昭粡竚癈鷭п粐Ьぢへリダイレクト</li> + </ol> + + <p>最初のものがデフォルトの動作で、2 番目から 4 番目は、 + <code>ErrorDocument</code> ディレクティブにより、HTTP + のレスポンスコ・踉札匹函▲瓮奪察ジか URL を指定することで設定します。</p> + + <p><em>メッセ・踉札蹙苳ぢを記述する豺腓砲蓮鷭徹冑ぢ文字 + (<code>"</code>) を最初に付与します。 + 二重引用符はメッセ・踉札犬砲牢泙泙譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢは豺腓砲茲辰董¬簑蠅筌┘蕁について付加的な霾鵑鯆鷆,靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳師厂ぢの豺腓蓮▲蹇カルの URL の指定としてスラッシュで始まる (/) + パスか、クライアントが解瓩任襯侫厂ぢを指定します。<br /> + 例:</p> + + <blockquote> + <code>ErrorDocument 500 + http://foo.example.com/cgi-bin/tester<br /> + ErrorDocument 404 /cgi-bin/bad_urls.pl<br /> + ErrorDocument 401 /subscription_info.html<br /> + ErrorDocument 403 "Sorry can't allow you access today</code> + </blockquote> + + <p>リモ・踉札厂例えば、頭に http と付与した方法) を + <code>ErrorDocument</code> に指定するとき、 + たとえ文書が同じサ・踉札个砲△蹐逅擦箸癲▲疋絅瓮鵐箸匹海砲△襪鯆銘里垢襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢはリダイレクトをクライアントに送出するという瘢雹ことに、注意してください。 + これにはいろいろと関連して起こる問題があります。 + 中でも最も重要なのは、クライアントは元々のエラ・踉札好董タスコ・踉札匹鬢踉歯け茲蕕此鹿粡寂蝟赱齠洲痲筵娼代わりにリダイレクトのステ・踉札織好魁ドを右踉肢るという瘢雹ことです。 + これにより、ステ・踉札織好魁ドを使って URL が有効であるかどう瘢雹かを決定しよう瘢雹とする + ウ瘢雹ェブロボットやその側苳札薀ぅ▲鵐箸髻∈陲気擦襪發靴譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼さらに、<code>ErrorDocument 401</code> にリモ・踉札箸厂ぢを指定すると、 + クライアントは 401 という瘢雹ステ・踉札織好魁ドを右踉肢らないため、 + パスワ・踉札匹鬟罅ザに入力要求しなければならないことがわかりません。 + 拾苳擦辰董齡鳫鈑鴪闥弟笊辣銓葦という瘢雹ディレクティブを使う瘢雹豺腓蓮鹿粡寂蝟赱齠洲痲筵娼必ずロ・踉札襪癖現颪鮖王苳使しなければなりません。</strong></p> + + <p>サ・踉札个言靴織┘蕁メッセ・踉札犬乢苳皿さすぎる」と + Microsoft Internet Explorer (MSIC) はデフォルトでそれを無視し、 + 「親切な」エラ・踉札瓮奪察ジで置き換えます。しきい値はエラ・踉擦鹿粡寂蝟赱齠洲痲筵娼鑪爐砲茲辰動曚蠅泙垢巳苳誌、エラ・踉札疋絅瓮鵐箸渦ぢバイトより + 大きくすると、MSIE はサ・踉札个言靴織┘蕁を隠さずに表┐靴泙后鹿粡寂蝟赱齠洲痲筵娼より椶靴う苳諮報は Microsoft Knowledgebase の記事 <a + href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807" + >Q294807</a> にあります。</p> + + <p>参蓿繙就蹲纈鳫鬯蔗迪▽苳ぢレスポンスをカスタマイズする方法についての解説。</a> + ステ・踉札織好魁ドとその意味の完全なリストは <a + href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">HTTP + 仕様書</a>を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就纈鳫鳰閾釶辣就纈鳫鳰閾▽苳仕鴪闥弥膽蝟昭粡竚癈鷭п粐Ьぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ErrorLog + <em>file-pathh</em>|syslog[:<em>facility</em>] <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ErrorLog + logs/error_log</code> (Unix)<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ErrorLog + logs/error.log</code> (Windows and OS/2)<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢエラ・踉札蹈哀妊譽謄屬蓮▲機バに生じたさまざまなエラ・踉擦鹿粡寂蝟赱齠洲痲筵娼記録するためのファイルの巳苳餐阿鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃肅跂癆荀踉晒纃ぢがスラッシュ (/) から始まらない豺腓蓮畆蝟昭粡竚癈鷭п粐Ь鱚羹■黼鴟纈鳫阡▽苳屍纈鰔闖熙踉晒瓲苳からの相対パスとみなされます。 + <em>file-path</em> がパイプ (|) から始まる豺腓蓮鹿粡寂蝟赱齠洲痲筵娼エラ・踉札蹈阿鮟萢垢襪燭瓩胞踉斬行されるコマンドが + 指定されていると解瓩気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例</p> + + <p><code>ErrorLog logs/vhost1.error</code></p> + + or + + <p><code>ErrorLog |/usr/local/bin/errorlog.pl</code></p> + + <p><strong>Apache 1.3 以降の豺墾踉晒齡鳫鈑ぢファイル巳苳擦梁紊錣蠅鹿粡寂蝟赱齠洲痲筵娼竢粤齷鼬閾閼絋苳と指定することによって、 + システムがサポ・踉札箸靴討い譴跫舮┯蝟昭粡竚癈鷭п粐Ьぢを利用したロギングが有効になります。デフォルトでは、 + <code>local7</code> ファシリティとなりますが、 + <code>syslog:</code><em>facility</em> + といった形で記述することにより、通跫腮羽鹿粡寂蝟赱齠洲痲筵娼のドキュメントで説明されているファシリティの一つを使う瘢雹よう瘢雹に + することができます。</p> + + <p>例:</p> + + <p><code>ErrorLog syslog</code></p> + + or + + <p><code>ErrorLog syslog:user</code></p> + + <p>セキュリティ: + ログファイルを格忍踉擦垢襯妊譽肇蠅▲機バを起動したユ・踉札彊奮阿鹿粡寂蝟赱齠洲痲筵娼ユ・踉札兇砲茲辰峠颪瓩襴苳詞合にセキュリティが破られる可能性があることに + 関する楮戮踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蜩祚黼笊鱸熹蜷鶤蔗迪s纈鴪闖槇セキュリティに関するコツ</a> + を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ参墾踉晒齡鳫鈑踉氏鱚羹■跫芟纐繻▽苳嗣閾悶讀踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢ及び <a href="../logs.html">Apache のログファイル</a></p> + <hr /> + + <h2><a id="fileetag" name="fileetag">FileETag ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> FileETag + <i>component</i> ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Apache 1.3.23 以降で利用可能です。 + + <p>FileETag + ディレクティブはドキュメントがファイルに基づいたものであるときに、 + ETag (エンティティタグ) 応答ヘッダフィ・踉札襯匹鮑鄒垢襪箸忙藩僂垢鹿粡寂蝟赱齠洲痲筵娼ファイルの属性を設定します。 (ETag の値はネットワ・踉札梁唹茲鮴疚鵑垢襪燭瓩鹿粡寂蝟赱齠洲痲筵娼キャッシュの管理で使われます。) Apache 1.3.22 以前では、ETag の値は + <i>錣ファイルの inode, サイズ、最終修正時刻 (mtime) から作成 + されていました。FileETag ディレクティブにより、これらのどれを使う瘢雹かを + 選ぶことができます。認韻気譴襯ワ・踉札匹瑳蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉私竢逅痺≪闕鞜笏▽苳纂蝟昭粡竚癈鷭п粐Ь糘皃苳刺麗粤熙苳纂蝟昭粡竚癈鷭п粐Ь粐ファイルの inode 番号を計算に使います</dd> + <dt><b>MTime</b></dt> + <dd>ファイルの最終修正時刻を使います</dd> + <dt><b>Size</b></dt> + <dd>ファイルの中身のバイト数を使います</dd> + <dt><b>All</b></dt> + <dd>使用可能なすべてのフィ・踉札襯匹鮖箸い泙鹿粡寂蝟赱齠洲痲筵娼Е踉祉閼絋苳仔蛹綸壤胼瘢雹鈞齔刺麗粤逅試碵雹耀蜊絋瘢雹鈞齔屍蝴絋踉晒竢粤と等価です)</dd> + <dt><b>None</b></dt> + <dd>ドキュメントがファイルに基づいたものでも、ETag フィ・踉札襯匹鹿粡寂蝟赱齠洲痲筵娼応答に付加しません</dd> + </dl> + <p> + INode, MTime, Size キ・踉札錙ドには '+' や '-' を前に付けて + 指定することもできます。この豺腓蓮△茲蟾と楼呂薹僞苳撒された + デフォルトの設定に変更を加えるよう瘢雹になります。そのよう瘢雹な接頭鹿粡寂蝟赱齠洲痲筵娼無いキ・踉札錙ドを指定すると、即座に継気靴神瀋蠅鯡妓砲靴泙后鹿粡寂蝟赱齠洲痲筵娼隍苳纂蝟昭粡竚癈鷭п粐Ьぢあるディレクトリの設定に + '<code>FileETag INode MTime Size</code>' があり、 + サブディレクトリの設定に '<code>FileETag -INode</code>' があるときは、 + そのサブディレクトリの設定は (設定が綵颪気譴覆韻譴丱汽屮妊譽肇蠅鹿粡寂蝟赱齠洲痲筵娼サブディレクトリにも継気気譴泙Е踉祉閼絋苳仔蛹綸壤胼瘢雹鈞齔四夂辣逅試碵雹嚔閼絋苳薩鹿粡寂蝟赱齠洲痲筵娼と同じになります。</p> + <hr /> + + <h2><a id="files" name="files"><Files> ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <Files + <em>filename</em>> ... </Files><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、.htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Apache 1.2 以降で利用可能です。 + + <p><Files> ディレクティブは、ファイル巳苳擦砲茲襯▲札浩罎鮃圓逅擦發里如畆蝟昭粡竚癈鷭п粐Ь鱚羹■粡鱚笏闥逅詞堤鱚笏闥瘢雹苳殺踉晒瓲苳ディレクティブや <a + href="#location"><Location></a> ディレクティブと同じよう瘢雹な機能を持ちます。 + これは、</Files> ディレクティブと対になっていなければなりません。 + このセクション中のディレクティブは、ベ・踉札耕 (ファイル巳苳擦虜埜紊良蝟昭粡竚癈鷭п粐Ьぢが指定されたファイル巳苳擦縫泪奪舛垢襪垢戮討離屮献Д箸謀僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼竢粤逅詞鍋跂鵙瘢雹苳殺踉晒竢粤ぢセクションは <Directory> + セクションと <code>.htaccess</code> が読み込まれた後、 + <Location> + セクションよりは先に設定ファイルに現れた順に適用されます。 + <Files> は、<Directory> + セクション内にネストさせることができ、 + ファイルシステムの一部にのみ限定して適用させることができます。</p> + + <p><em>filename</em> + 引数は、ファイル巳苳擦錺ぅ襯疋ド文字列で、ワイルドカ・踉札匹任鹿粡寂蝟赱齠洲痲筵娼狄は一つの文字、`*' は任意の文字列にマッチします。<code>~</code> + という瘢雹文字を付加することで拡張正規表現を使う瘢雹こともできます。 + 例えば、</p> +<pre> + <Files ~ "\.(gif|jpe?g|png)$"> +</pre> + とすることにより、一般的なインタ・踉札優奪箸硫菫侫マットにマッチします。 + ただし、Apache 1.3 以降の豺腓砲蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就f蛹纉轣茴逅詞鍋跂麝癆竏逅紫ぢを使う瘢雹方が推気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢちなみに、<a + href="#directory"><code><Directory></code></a> 及び <a + href="#location"><code><Location></code></a> セクションとは異なり、 + <code><Files></code> + は .htaccess ファイル内で利用することができます。 + これにより、ユ・踉札兇侫.ぅ詼茲縫▲札垢寮罎鮃圓覆逅擦海箸任襪茲逅擦鹿粡寂蝟赱齠洲痲筵娼なっています。 + 例えば、ディレクトリ内にある一つのファイルに対してパスワ・踉札匹砲茲詈欷遒鮃圓覆逅擦砲蓮鹿粡寂蝟赱齠洲痲筵娼竢粤窿纉鵙踉晒竢粤ぢに以王踉擦里茲逅擦弊瀋蠅鯆媛辰垢譴侘匹い任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉仔蛹纉粱蜴芍逅紫鹿粡寂蝟赱齠洲痲筵娼吶髟蜥苒阨痲迚郤蝟昭粡竚癈鷭п粐Ь瘢雹踉晒鍋跂鵙瘢雹苳殺踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮なお、このディレクティブはサブディレクトリにも適用され、 + 紊領磴陸苳詞合には、特に設定が綵颪気譴覆じ造蝓鹿粡寂蝟赱齠洲痲筵娼サブディレクトリ中の <code>admin.cgi</code> + という瘢雹ファイルにも保護がかかるという瘢雹ことを忘れないでください。</p> + + <p>(<code>Require</code> ディレクティブの使い方については、<a + href="#require">Require</a>を参箸靴討世気ぁ踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑参闔胼苳産蝟昭粡竚癈鷭п粐Ьぢリクエストを韻榛櫃法曚覆詈瑤離札轡腑鵑匹里茲逅擦砲靴鹿粡寂蝟赱齠洲痲筵娼組み合わされるのかについては <a href="../sections.html"> + Directory, Location, Files セクションの動作方法</a></p> + <hr /> + + <h2><a id="filesmatch" + name="filesmatch"><FilesMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <FilesMatch + <em>regex</em>> ... </FilesMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、.htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Apache 1.3 以降で利用可能です。 + + <p><FilesMatch> ディレクティブは、<a href="#files"><Files></a> + ディレクティブ同様にファイル巳苳擦砲茲襯▲札浩罎竜’修鯆鷆,靴泙后燭世掘鹿粡寂蝟赱齠洲痲筵娼このディレクティブには正規表現を指定します。 + 例えば:</p> +<pre> + <FilesMatch "\.(gif|jpe?g|png)$"> +</pre> + + <p>は一般的なインタ・踉札優奪箸硫菫薦踉三にマッチします。</p> + <p><strong>参闔胼苳産蝟昭粡竚癈鷭п粐Ьぢリクエストを韻榛櫃法曚覆詈瑤離札轡腑鵑匹里茲逅擦砲靴鹿粡寂蝟赱齠洲痲筵娼組み合わされるのかについては <a href="../sections.html"> + Directory, Location, Files セクションの動作方法</a></p> + <hr /> + + <h2><a id="group" name="group">Group ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> Group + <em>unix-group</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>Group + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳伺鳫鹿粡寂蝟赱齠洲痲筵娼ディレクティブは、サ・踉札个螢┘好箸鳳垢觝櫃離哀襦プを設定します。 + このディレクティブを使う瘢雹ためには、スタンドアロ・踉札鵐機バを root + で起動しなければなりません。 + <em>Unix-group</em> は、以王踉擦里匹舛蕕鬚箸蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘グル・踉札很</dt> + + <dd>巳苳餐阿妊哀襦プを指定します。</dd> + + <dt># を先頭にグル・踉札彫踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐数字でグル・踉札廚鮖慊蠅靴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼隍苳ぢサ・踉札个鬢踉斬行するために新しいグル・踉札廚鮑鄒垢襪海箸筅苳皐されています。 + <code>nobody</code> と指定する管理圓發い泙垢△修離罅ザは利用可能でない + 豺腓發△蠅泙垢掘∨ましくもありません。</p> + + <p>例:</p> + + <code>Group www-group</code> + + <p>注意点: root ユ・踉札彊奮阿妊機バを起動された豺隋鹿粡寂蝟赱齠洲痲筵娼指定したグル・踉札廚悵椶襪海箸任此△修里泙泙離罅ザで孫圓気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ特に注意すべき点: <VirtualHost> + 内でこのディレクティブを使用するためには、<a href="../suexec.html">suEXEC + ラッパ・踉が設定されていなければなりません。 + この豺隋断を孫圓垢襪箸砲里漾∋慊蠅靴織哀襦プが利用されます。 + CGI 以外の豺腓砲蓮▲瓮ぅ鸚瀋蠅砲韻鳫鹿粡寂蝟赱齠洲痲筵娼ディレクティブで指定されたグル・踉札廚能萢気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢセキュリティ: セキュリティに関する解説は <a href="#user">User</a> + を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蓖齡釶辣跫闍鵞鹿粡寂蝟赱齠洲痲筵娼釶辣就蓖齡釶辣跫闍鵞被齡釶辣弥闍ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> HostnameLookups + on|off|double<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>HostnameLookups + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> + <code>double</code> は Apache 1.3 以降で利用可能です。<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>互換性:</strong></a> Apache 1.3 より前はデフォルトが + <code>on</code> になっています。 + + <p>このディレクティブは、ホスト巳苳擦鬟蹈愛踉持集できるよう瘢雹に DNS + ルックアップを有効にします (さらに、CGI/SSI に + <code>REMOTE_HOST</code> 変数として渡します)。<code>double</code> + を指定した豺隋鷭鼎竜娑鮃圓い泙后弔泙蝓娑慮紊法鹿粡寂蝟赱齠洲痲筵娼その結果に対して正引きを行います。正引きの結果の IP + アドレスの中にオリジナルのアドレスと一致するものがなければなりません + ("tcpwrappers" の用語では PARANOID と呼ばれています)。</p> + + <p>ちなみに、<a href="mod_access.html">mod_access</a> + でホスト巳苳擦砲茲襯▲札浩罎鮃圓逅殺苳詞合には、設定の如何によらず + 二重の逆引きが孫圓気譴泙后鹿粡寂蝟赱齠洲痲筵娼これは、セキュリティを保つために必要です。 + <code>HostnameLookups double</code> を設定しない限り、 + 側苳擦良呂海瞭鷭典娑侶覯未鮖箸逅擦海箸呂任泙擦鵝N磴┐弌鹿粡寂蝟赱齠洲痲筵娼竢粤被齡釶辣弥闍闔閼絋苳と設定してある屬如鹿粡寂蝟赱齠洲痲筵娼ホスト巳苳擦砲茲襯▲札浩造鮃圓辰織屮献Д箸悗鹿粡寂蝟赱齠洲痲筵娼リクエストを韻燭箸垢襪函鷭鼎竜娑垢襪櫃砲茲蕕此鹿粡寂蝟赱齠洲痲筵娼竢粤凖溶堙瀏腕圖踉晒竢粤ぢには通錣竜娑覯未呂気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏窺より前のバ・踉札献腑鵑任蓮△海離妊譽謄屬離妊侫襯箸鹿粡寂蝟赱齠洲痲筵娼竢粤闔閼絋苳でしたが、 + 本当に逆引きを必要としているわけではないサイトの + ネットワ・踉札肇薀侫奪鯆禪困気擦襪燭瓩法竢粤閹网踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼に変更されました。ルックアップによる勇苳桟廚蔽抉笋覆覆襪燭瓠鹿粡寂蝟赱齠洲痲筵娼エンドユ・踉札兇砲箸辰討睥匹い任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼栂のルックアップには、かなりの時間が必要となる豺腓燭鹿粡寂蝟赱齠洲痲筵娼負荷の高いサイトではこのディレクティブは <code>off</code> + にすべきです。なお、<em>/support</em> ディレクトリに含まれる + <a href="../programs/logresolve.html">logresolve</a> + ユ・踉札謄螢謄砲茲蝓草痺蒹ぢの動作とは別に、ログに残されている + IP アドレスからホスト巳苳擦鬟襯奪▲奪廚垢襪海箸椎修任后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蜆緕竏繝襤瘢綵∫粤銓蜚蒹站▽苳刺粤銓蜚蒹站鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> IdentityCheck + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>IdentityCheck + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのディレクティブは、クライアントマシン紊鹿粡寂蝟赱齠洲痲筵娼蜆緕ぢやそれに類似したデ・踉札皀鵑虻遒靴討い襪箸法鹿粡寂蝟赱齠洲痲筵娼それう苳擦譴寮楝海紡个靴特官骸蝟昭粡竚癈鷭п粐Ьぢに準処したリモ・踉札肇罅ザの巳苳餐阿離蹈鵐阿鮃圓覆逅擦茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼この霾鵑蓮▲▲札好蹈阿胞踉持集されます。</p> + + <p>ここで得られた霾鵑牢蔽韻淵罅ザ追跡に使う瘢雹以外は、 + 全く信頼するべきではありません。</p> + + <p>すべてのリクエストに対してルックアップが行なわれますので、 + 職踉珊錣蔽抉笋量簑蠅魑海垢發靴譴覆い海箸肪躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼ぢ訳注: 例えばクライアント側瘢雹に) ファイアウ瘢雹ォ・踉札襪△襪函鹿粡寂蝟赱齠洲痲筵娼ルックアップが最圓掘謄螢┘好箸絢蝟昭粡竚癈鷭п粐Ьぢ秒の遅延が加わることになる可能性があります。 + 拾苳擦辰董貳姪砲魯ぅ鵐拭ネットからアクセス可能なパブリックなサ・踉札个鹿粡寂蝟赱齠洲痲筵娼有益なものではありません。</p> + <hr /> + + <h2><a id="ifdefine" name="ifdefine"><IfDefine> + ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <IfDefine + [!]<em>parameter-name</em>> <em>...</em> + </IfDefine><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> すべて<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> <IfDefine> + は Apache 1.3.1 以降で利用可能です。 + + <p><IfDefine <em>test</em>>...</IfDefine> + セクションは、ディレクティブを魴鑄佞濃慊蠅垢襪燭瓩僕僂靴泙后鹿粡寂蝟赱齠洲痲筵娼膚偵肅鈬ぢセクションに含まれるディレクティブは、<em>test</em> + が定義されているときのみ処理されます。もし、<em>test</em> + が定義されていなければ、 + 開始と終了の指定の間のディレクティブは無視されます。</p> + + <p><IfDefine> セクションディレクティブに指定する + <em>test</em> は、,瞭鵑弔侶薦踉三のう瘢雹ちの一つをとります。</p> + + <ul> + <li><em>parameter-name</em></li> + + <li><code>!</code><em>parameter-name</em></li> + </ul> + + <p>前圓離院スでは、もし <em>parameter-name</em> + と巳苳刺佞韻蕕譴織僖薀瓠タが定義されていれば、 + 開始と終了の間のディレクティブが処理されます。後圓陸苳詞合は逆で、 + <em>parameter-name</em> + が指定されて<strong>いない</strong>豺腓暴萢気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉糸蹙苳諮癇瘢續纈瘢絋踉晒纃ぢ引数は、サ・踉札个魑阿垢觝櫃鹿粡寂蝟赱齠洲痲筵娼竢粤蔗筅踉晒竢粤ぢのコマンドラインに + <code>-D</code><em>parameter-</em> という瘢雹形で指定すると定義されます。 </p> + + <p><IfDefine> セクションは入れ子にすることができ、 + 複数のパラメ・踉札燭砲茲襯謄好箸鬚垢襪燭瓩忙藩僂任泙后鹿粡寂蝟赱齠洲痲筵娼例:</p> +<pre> + $ httpd -DReverseProxy ... + + # httpd.conf + <IfDefine ReverseProxy> + LoadModule rewrite_module libexec/mod_rewrite.so + LoadModule proxy_module libexec/libproxy.so + </IfDefine> +</pre> + <hr /> + + <h2><a id="ifmodule" name="ifmodule"><IfModule> + ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <IfModule + [!]<em>module-name</em>> <em>...</em> + </IfModule><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> すべて<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> IfModule は Apache 1.2 + 以降で利用可能です。 + + <p><IfModule <em>test</em>>...</IfModule> + セクションは、ディレクティブを魴鑄佞濃慊蠅垢襪燭瓩僕僂靴泙后鹿粡寂蝟赱齠洲痲筵娼膚酪糒跂ぢセクションに含まれるディレクティブは、<em>test</em> + で指定するモジュ・踉札襪箸濆泙譴討い襪箸里濬萢気譴泙后發鹿粡寂蝟赱齠洲痲筵娼纃齡蹙苳が組み込まれていなければ、開始と終了の間のディレクティブ + は無視されます。</p> + + <p><IfModule> セクションディレクティブに指定する + <em>test</em> は、,瞭鵑弔侶薦踉三のう瘢雹ちの一つをとります。</p> + + <ul> + <li><em>module name</em></li> + + <li>!<em>module name</em></li> + </ul> + + <p>前圓離院スでは、もし <em>module name</em> + と巳苳刺佞韻蕕譴織皀献紂ルが Apache に組み込まれていれば + (コンパイル済みのものと、<a + href="mod_so.html#loadmodule">LoadModule</a> + を利用して動的に読み込んだものの陸苳司ぢ、 + 開始と終了の間のディレクティブが処理されます。後圓陸苳詞合は逆で、 + <em>module name</em> + が組み込まれて<strong>いない</strong>豺腓暴萢気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉糸蹙苳詩閼釶辣蹙苳纂蝟昭粡竚癈鷭п粐Ьぢ引数は、コンパイルをした時のモジュ・踉札襪離侫.ぅ詭で、例えば + <code>mod_rewrite.c</code> といった形になります。</p> + + <p><IfModule> セクションは入れ子にすることが可能であり、 + 複数のモジュ・踉札襪離謄好箸鮃圓覆逅擦燭瓩忙藩僂任泙后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蜴竚紜瘢綵∫釿跿粤▽苳刺釿跿粤ぢディレクティブ</a></h2> + <strong>構文:</strong> Include + <em>file-path</em>|<em>directory-path</em>|<em>wildcard-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Include は Apache 1.3 + 以降で利用可能です。ワイルドカ・踉札匹魯弌ジョン 1.3.27 + で導入されました。 + + <p>このディレクティブにより、サ・踉札个寮瀋螢侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼側苳擦寮瀋螢侫.ぅ襪鬟ぅ鵐襦ドすることができます。</p> + + <p><em>file-path</em> は、(スラッシュから始まる) フルパスか、 + <code>ServerRoot</code> からの相対パスで指定します。</p> + + <p>Apache 1.3.13 から、<code>Include</code> にファイルの代わりに + ディレクトリを指定することによって、 + ディレクトリとそのサブディレクトリ内のすべてのファイルを + 読み込んで処理できるよう瘢雹になりました。</p> + <p>ワイルドカ・踉札匹鮖箸逅擦海箸如△海譴鯲磴┐竢鈕Ъ蝟昭粡竚癈鷭п粐Ьぢファイルのみに制限することができます。</p> + + <p>例:</p> + + <blockquote> + <code>Include /usr/local/apache/conf/ssl.conf<br /> + Include /usr/local/apache/conf/vhosts/ + </code> + </blockquote> + + <p><code>ServerRoot</code> からの相対パスの豺腓墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳刺釿跿粤闔罸齠谺竢鈕碣鹿粡寂蝟赱齠洲痲筵娼侮竚竢鈕蓖齡鶩鹿粡寂蝟赱齠洲痲筵娼閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢなお、ディレクトリを指定する際は、エディタのテンポラリファイルなど、 + 目的外のファイルを置かないよう瘢雹にしなければなりません。 + そのよう瘢雹なファイルがあると、Apache はそれらからディレクティブを + 読み込もう瘢雹として、起動に最圓垢襪發靴譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼竢粤瘰痺蒹笏竢鈕蜃齡閼絋苳を孫圓垢襪函∪瀋蠅鬟船Д奪靴討い觧鹿粡寂蝟赱齠洲痲筵娼読み込まれたファイルのリストが表┐気譴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼鳫阡先闢遙鞜竏繝闔肅苳纉蝟昭粡竚癈鷭п粐Ь會閭纉皷鈑闔肅粡鱚笏闥鬲跫竅豁瘰痺蒹闔罸闢鹿粡寂蝟赱齠洲痲筵娼鳫竇齠蜴竢鈕蜃蛹綺鬲跫竅豁瘰痺蒹闔罸闢蓖齡閏蝟昭粡竚癈鷭п粐Ь會閭纉皷鈑闔肅肅跂齟閭瘡鞜竏絲竢鈕蓖齡鶩闢鹿粡寂蝟赱齠洲痲筵娼囮銓癢房蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これにより、設定の一部として意図したファイルだけが + 使われているかどう瘢雹かを確認できます。</p> + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就鳫苒瘢鶩瘰痺蒹笏谺蔗迪▽苳氏鞜竏繝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就諷辮瘡蝟紜瘢綵繞鞜跚▽苳史繞霑跚鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a></h2> + <strong>構文: (Apache 1.1)</strong> KeepAlive + <em>max-requests</em><br /> + <strong>デフォルト: (Apache 1.1)</strong> <code>KeepAlive + 5</code><br /> + <strong>構文: (Apache 1.2)</strong> KeepAlive on|off<br /> + <strong>デフォルト: (Apache 1.2)</strong> <code>KeepAlive + On</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> KeepAlive は Apache 1.1 以降で利用可能です。 + + <p>HTTP/1.0 の Keep-Alive 拡張と HTTP/1.1 + の持続的接続の機能は、複数のリクエストが同じ TCP + の接続で送られる、長時間持続する HTTP + セッションを提供します。たくさんの画像が含まれる HTML + ドキュメントでは豺腓砲茲辰討話抉篁屬哀鹿粡寂蝟赱齠洲痲筵娼短縮される結果もでています。Apache 1.2 以降で Keep-Alive + 接続を有効にするには <code>KeepAlive On</code> と設定します。</p> + + <p>HTTP/1.0 に対応したクライアントの際には、 + クライアントより特に要求があった豺腓里繞隲糟蝟接続となります。 + さらに、HTTP/1.0 クライアントでは、コンテンツの容量が先に + (訳注: 要求に対して応答を返す前に) わかる豺腓里繞隲糟蝟綣蝟昭粡竚癈鷭п粐Ьぢ接続を利用できます。これは、CGI の出力や SSI のペ・踉札検鹿粡寂蝟赱齠洲痲筵娼サ・踉札个言靴織妊譽肇蠅離螢好箸里茲逅擦米暗灰鵐謄鵐弔鹿粡寂蝟赱齠洲痲筵娼挽墅ぢクライアントに送る豺腓砲繞隲糟蝟綣蝟昭粡竚癈鷭п粐Ьぢ接続を使えないことを意味します。HTTP/1.1 + に対応したクライアントの際には、 + 特に指定されない限りはデフォルトとして持続的な接続が行なわれます。 + クライアントが要求すれば、コンテンツの容量を判別できないものを + 持続的な接続を通して送るために、チャンクエンコ・踉札妊鵐阿僂い蕕譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳餐鞜竏窺のみ</strong>: + Apache が接続ごとに佞任詬弋瓩虜蚤膺瑤踉糸蹙苳詩癢繿齡鵙踉晒纃鹿粡寂蝟赱齠洲痲筵娼にて指定できます。 + 制限は、サ・踉札个離螢宗スを多大に利用するよう瘢雹なクライアントを防ぐために + 行ないます。 + <code>0</code> に設定すると制限値はなくなります。 + Apache 1.2 及び 1.3 の豺腓砲蓮浴繞霑跚吶髟纉蝟昭粡竚癈鷭п粐Ьぢディレクティブにより制御します。</p> + + <p>参踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就m癢諷辮瘡蝟纈繿齡鵞浴繞霑跚吶髟纉鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就諷辮瘡蝟續蜊繽⊆蝟昭粡竚癈鷭п粐Ь瘢綵繞鞜跚辣阨槇妹辮糟蝟縱蜊繽ぢディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> KeepAliveTimeout + <em>seconds</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>KeepAliveTimeout + 15</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> KeepAliveTimeout + は Apache 1.1 以降で利用可能です。 + + <p>接続を閉じる前に、Apache が,離螢┘好箸魏辛誕圓弔鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼リクエストを栄佞韻晋紊蓮畆蝟昭粡竚癈鷭п粐Ь鱚羹■辣阨槇竢粤夂辣阨熙踉晒竢粤ぢディレクティブによって + 指定されたタイムアウ瘢雹ト値が使われます。</p> + + <p><code>KeepAliveTimeout</code> を大きな値に設定すると、 + 負荷の高いサ・踉札个砲い討魯僖侫マンスの問題を引き起こす豺腓△蠅泙后鹿粡寂蝟赱齠洲痲筵娼タイムアウ瘢雹トが長ければ長いほど、より多くのサ・踉札丱廛蹈札垢鹿粡寂蝟赱齠洲痲筵娼活発でないクライアントからの接続の終了を待ち続けることになります。</p> + <hr /> + + <h2><a id="limit" name="limit"><Limit> ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <Limit + <em>method</em> [<em>method</em>] ... > ... + </Limit><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> any<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢアクセス制御は、通齡鳫鈑すべての</strong>アクセスメソッドに対して + 影響し、普通はこれが胞苳擦泙靴さ麁阿任后鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑そう瘢雹したことから、大部分の豺腓砲魯▲札浩罎亡悗錣襯妊譽謄屬鹿粡寂蝟赱齠洲痲筵娼竢粤逅詞跚迚熙瘢雹苳殺踉晒竢粤ぢセクション内に書くべきではありません。 </strong></p> + + <p><Limit> + ディレクティブの目的は、アクセス制御の範囲を指定された HTTP + メソッドに限定するためです。それ以外のメソッドは、<Limit> + で囲われたアクセス制御の<strong>影響を韻泙擦闔胼苳ぢ。 + 以王踉擦領磴蓮佻嘖侖坎徒都甜蝟昭粡竚癈鷭п粐Ьぢのメソッドに対してのみアクセスの制御を行い、 + それ以外のメソッドについては制限しません:</p> + + <blockquote> + <code><Limit POST PUT DELETE><br /> + Require valid-user<br /> + </Limit></code> + </blockquote> + <p>メソッドの巳苳餐阿砲蓮播坎腕坎孕津姪堙地領澱坎來貧林蝟昭粡竚癈鷭п粐Ь壮暖侑椀読猟侑椀仭埣八肪鰐地俎溶崚模男嬶模男鹿粡寂蝟赱齠洲痲筵娼の中から、一つ以紊鯲鶺鵑垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑メソッドの巳苳餐阿蓮臺源苳皿文字を区別します。</strong> + また、GET を指定すると HEAD に関しても制限がかかります。 + TRACE メソッドを制限することはできません。</p> + + <p><strong>警告:</strong> アクセス制限を行なう瘢雹ときは <a + href="#limit"><Limit></a> よりも <a + href="#limitexcept"><LimitExcept></a> セクションを + 使う瘢雹よう瘢雹にしてください。<a href="#limitexcept"><LimitExcept></a> + セクションは任意のメソッドに対する保護は行ないませんので。</p> + + <hr /> + + <h2><a id="limitexcept" name="limitexcept"><LimitExcept> + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <LimitExcept + <em>method</em> [<em>method</em>] ... > ... + </LimitExcept><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> any<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Apache 1.3.5 以降で利用可能です。 + + <p><LimitExcept> と </LimitExcept> + は、引数に<strong>含まれていない</strong> HTTP + のアクセスメソッドに適用するためのアクセス制御 + ディレクティブを囲むために利用します。<em>つまり</em>、<a + href="#limit"><Limit></a> セクションの反対の動作をし、 + 標準のメソッドと標準外や未認韻離瓮愁奪匹陸苳詞合の陸苳司鮴瀋蠅任泙后鹿粡寂蝟赱齠洲痲筵娼蓿繙就l蜊蜚▽苳殺瘢雹踉嗣蜊蜚逅紫鹿粡寂蝟赱齠洲痲筵娼のドキュメントも併せて参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> + + <pre> + <LimitExcept POST GET> + Require valid-user + </LimitExcept> + </pre> + + <hr /> + + <h2><a id="limitinternalrecursion" + name="limitinternalrecursion">LimitInternalRecursion directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> LimitInternalRecursion + <em>number</em> [<em>number</em>]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>LimitInternalRecursion + 20</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> LimitInternalRecursion + is は Apache 1.3.28 以降でのみ使用可能です。 + + <p>内部リダイレクトは、例えば、オリジナルのリクエストを + CGI スクリプトに内部リダイレクトする <a + href="mod_actions.html#action">Action</a> + ディレクティブを使った豺腓鉾犬靴泙后鹿粡寂蝟赱齠洲痲筵娼サブリクエストはある URI + がリクエストされた豺腓鵬燭襪里鯑佑澆瓩襪燭瓩鞜竏綣蝟昭粡竚癈鷭п粐Ьぢの方法です。例えば、<a href="mod_dir.html">mod_dir</a> + は <a + href="mod_dir.html#directoryindex">DirectoryIndex</a> + に挙げられているファイルを探すためにサブリクエストを使います。</p> + + <p><code>LimitInternalRecursion</code> は内部リダイレクトや + サブリクエストが無限ル・踉札廚亡戮辰職苳詞合に + サ・踉札个薀奪轡紊垢襪里鯔匹泙后鹿粡寂蝟赱齠洲痲筵娼このよう瘢雹なル・踉札廚歪巳苳誌、設定ミスが原因で起こります。</p> + + <p>このディレクティブは二つの異なる制限値を保存します。それう苳擦譴涼佑蓮鹿粡寂蝟赱齠洲痲筵娼リクエスト単位で髭苳参舛気譴泙后能蕕踉糸蹙苳試矼鬢踉晒纃ぢは後に続くことのできる + 内部リダイレクトの絽造鮴瀋蠅靴泙后F鵑弔瓩踉糸蹙苳試矼鬢踉晒纃ぢは + サブリクエストの入れ子構造の職踉擦気鮴瀋蠅靴泙后纃烈轤纈蹙苳を + 一つだけ指定した豺腓蓮△修涼佑方の制限値に使用されます。 + 値 <code>0</code> は「無制限」を意味します。</p> + + <p><strong>例</strong></p> + <pre> + LimitInternalRecursion 5 + </pre> + + <hr /> + <h2><a id="limitrequestbody" + name="limitrequestbody">LimitRequestBody ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> LimitRequestBody + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>LimitRequestBody + 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> LimitRequestBody + は Apache 1.3.2 以降で利用可能です。 + + <p>このディレクティブは、リクエストボディにおいて許される 0 + (無制限を意味します) から 2147483647 (2GB) + までのバイト数、<em>bytes</em> を指定します。</p> + + <p>LimitRequestBody ディレクティブは、指定されたコンテキスト + (サ・踉札仭澗痢▲妊譽肇蝓▲侫.ぅ襦▲蹈院ション) 内において + HTTP リクエストメッセ・踉札献椒妊竜討気譴襯汽ぅ困棒造鬚韻襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼クライアントのリクエストがその制限値を超えていれば、 + サ・踉札个魯螢┘好箸鮟萢擦困縫┘蕁を返します。 + 通錣離螢┘好肇瓮奪察ジボディのサイズは、リソ・踉札垢陸踉誌類や + 許可されているメソッドによって大きく変わります。 + CGI スクリプトは、よくサ・踉札个悒侫ム霾鵑鯀垢襪燭瓩鹿粡寂蝟赱齠洲痲筵娼メッセ・踉札献椒妊鮖箸い泙后鹿粡寂蝟赱齠洲痲筵娼侖メソッドの汰蓮△海離妊譽謄屬涼佑箸靴鹿粡寂蝟赱齠洲痲筵娼覆箸發△襯螢宗スに対してサ・踉札个踉歯け付けよう瘢雹とする + 表現の大きさほどの値を必要とします。</p> + + <p>このディレクティブは、 + 管理圓薀ぅ▲鵐箸蕕琉昿苳誌なリクエストを制御できるよう瘢雹にし、 + 何らかの形のサ・踉札咼控馮盜況訳注:DoS) を避けるのに有効です。</p> + + <p>ある貊蠅悗離侫.ぅ襯▲奪廛蹇ドを許可するとした豺腓法鹿粡寂蝟赱齠洲痲筵娼アップロ・踉札匹任襯侫.ぅ襪離汽ぅ困旭に制限したければ、 + 以王踉擦里茲逅擦忙慊蠅垢譴个茲い任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼頏絋苳嗣蜊蜚吶髟纉閼碓牡旭鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就跚迚繿齡肅繻糂⊆蝟昭粡竚癈鷭п粐Ь瘢綵蜊蜚鱚髟纉蜈趙鵞也迚繿齡鍋繻糂ぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> LimitRequestFields + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> + <code>LimitRequestFields 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> + LimitRequestFields はApache 1.3.2 以降で利用可能です。 + + <p><em>number</em>には、0 (無制限を意味します) から 32767 + までの数値を指定します。 + デフォルト値は、定数 <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> + によりコンパイル時に定義されます (配布時には 100 と指定されています)。</p> + + <p>LimitRequestBody ディレクティブは、サ・踉札亟浜踉市が HTTP + リクエスト中において許可するリクエストヘッダフィ・踉札襯豹瑤鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼サ・踉札个呂海涼佑砲歪巳苳誌のクライアントからのリクエストに含まれるであろう瘢雹 + フィ・踉札襯匹凌瑤茲蠡腓蔽佑鯢廚箸靴泙后鹿粡寂蝟赱齠洲痲筵娼クライアントにより使われた要求ヘッダ・踉札侫ルドの数が + 20 を超えることはほとんどありませんが、 + これは錙垢離薀ぅ▲鵐箸陸踉斬装によって変わり、 + 楮戮淵灰鵐謄鵐肇優乾轡─ションをするためのブラウ瘢雹ザの設定にまでも + 影響されることがあります。オプションの HTTP + 拡張はリクエストヘッダフィ・踉札襯匹鮖箸辰童修気譴襴苳詞合が + 多くあります。</p> + + <p>このディレクティブは、 + 管理圓薀ぅ▲鵐箸蕕琉昿苳誌なリクエストを制御できるよう瘢雹にし、 + 何らかの形のサ・踉札咼控馮盜況訳注:DoS) を避けるのに有効です。</p> + + <p>例:</p> + + <pre>LimitRequestFields 50</pre> + + <hr /> + + <h2><a id="limitrequestfieldsize" + name="limitrequestfieldsize">LimitRequestFieldsize + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> LimitRequestFieldsize + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> + <code>LimitRequestFieldsize 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> + LimitRequestFieldsize は Apache 1.3.2 以降で利用可能です。 + + <p>このディレクティブは、HTTP + リクエストヘッダ内に含めることのできるバイト、<em>bytes</em> を + 0 からコンパイル時に定義される定数 + <code>DEFAULT_LIMIT_REQUEST_FIELDSIZE</code> (配布時には 8192 と指定) + で指定された値までの数字で指定します。</p> + + <p>LimitRequestFieldsize ディレクティブは、 + サ・踉札个離灰鵐僖ぅ觧忙慊蠅靴織ぅ鵐廛奪肇丱奪侫〕椴粍焚に + HTTP リクエストヘッダの許容されるサイズを制限することができます。 + サ・踉札个蓮△海離妊譽謄屬涼佑箸靴董鹿粡寂蝟赱齠洲痲筵娼通錣離薀ぅ▲鵐肇螢┘好箸藾蕕譴晋帖垢離悒奪瀬侫ルドに + 十分足る大きさを必要とします。 + 普通のリクエストヘッダのサイズは、個々のクライアントにより大きく変わり、 + 楮戮淵灰鵐謄鵐肇優乾轡─ションをするためのブラウ瘢雹ザの設定にまでも + 影響されることがあります。 + </p> + + <p>このディレクティブは、 + 管理圓薀ぅ▲鵐箸蕕琉昿苳誌なリクエストを制御できるよう瘢雹にし、 + 何らかの形のサ・踉札咼控馮盜況訳注:DoS) を避けるのに有効です。</p> + + <p>例:</p> + + <pre>LimitRequestFieldSize 16380</pre> + + <p>通錣魯妊侫襯箸虔儿垢垢詆廚呂覆い任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就跚迚繿齡跚鈬⊆蝟昭粡竚癈鷭п粐Ь瘢綵蜊蜚鱚髟纉蜴紜也迚繿齡也鈬ぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> LimitRequestLine + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>LimitRequestLine + 8190</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> LimitRequestLine + は Apache 1.3.2 以降で利用可能です。 + + <p>このディレクティブは、HTTP リクエスト行内で許容されるバイト数 + <em>bytes</em> を 0 からコンパイル時の定数 + <code>DEFAULT_LIMIT_REQUEST_LINE</code> (配布時には 8192 と指定) + で指定された値までの数字で指定します。</p> + + <p>LimitRequestLine ディレクティブにより、サ・踉札亟浜踉市は + サ・踉札个離灰鵐僖ぅ觧忙慊蠅靴織ぅ鵐廛奪肇丱奪侫〕椴粍焚に + クライアントからの HTTP + リクエスト行のサイズの制限を行う瘢雹ことができます。リクエスト行は、 + HTTP メソッド、URI, プロトコルバ・踉札献腑鵑蘋辰討蝓鹿粡寂蝟赱齠洲痲筵娼也迚繿齡也鈬ぢはサ・踉札个悗離螢┘好箸紡个靴撞討垢襯螢┘好鹿粡寂蝟赱齠洲痲筵娼孀の長さを制限することになります。サ・踉札个蓮播埃蝟昭粡竚癈鷭п粐Ьぢリクエストのクエリ部分も含めて、リソ・踉札垢量前が入るに足る + 大きさを必要とします。</p> + + <p>このディレクティブは、 + 管理圓薀ぅ▲鵐箸蕕琉昿苳誌なリクエストを制御できるよう瘢雹にし、 + 何らかの形のサ・踉札咼控馮盜況訳注:DoS) を避けるのに有効です。</p> + + <p>例:</p> + + <pre>LimitRequestLine 16380</pre> + + <p>通錣陸苳詞合には、デフォルトから変更する必要ないでしょう瘢雹。</p> + <hr /> + + <h2><a id="listen" name="listen">Listen ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> Listen + [<em>IP-address</em>:]<em>port</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Listen は Apache 1.1 + 以降で利用可能です。 + + <p>Listen ディレクティブは、Apache が複数の IP アドレスやポ・踉札箸鹿粡寂蝟赱齠洲痲筵娼跚齡緕ぢするよう瘢雹に指┐靴泙后妊侫襯箸任蓮△垢戮討鹿粡寂蝟赱齠洲痲筵娼賓ぢインタ・踉札侫Аスへのリクエストに応答し、<code><a + href="#port">Port</a></code> ディレクティブが指定したポ・踉札箸里澆鹿粡寂蝟赱齠洲痲筵娼跚齡緕ぢすることになります。</p> + <tt><a + href="#bindaddress">BindAddress</a></tt> や <tt>Port</tt> + の代わりに <tt>Listen</tt> を使用することができます。 + <tt>Listen</tt> は特定のポ・踉札筈踉祉しくはアドレスとポ・踉札箸料塙腓錣擦砲茲鹿粡寂蝟赱齠洲痲筵娼リクエストの栄佞韻鮖慊蠅垢襪海箸椎修任后鹿粡寂蝟赱齠洲痲筵娼最初のポ・踉札犯峭罎里澆了慊衒,鰺僂靴職苳詞合には、 + サ・踉札个踉飼熙苳姉闥熙踉晒ぢディレクティブで与えられたポ・踉札箸紡紊錣蝓鹿粡寂蝟赱齠洲痲筵娼すべてのインタ・踉札侫Аス紊濃慊蠅気譴織檗トを listen + します。もし、ポ・踉札箸醗貊錣アドレスが指定されていれば、 + 指定されたインタ・踉札侫Аスのポ・踉札箸蜩します。 + + <p>なお、Apache が離機バを指す URL を正しく生成できるよう瘢雹に + <tt>Port</tt> ディレクティブも使う瘢雹必要があるかもしれないことに + 注意してください。</p> + + <p>Listen する複数のアドレスとポ・踉札箸鮖慊蠅垢襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼複数の Listen ディレクティブを使用することができます。 + その豺隋▲機バは指定されたすべてのアドレスとポ・踉札箸如鹿粡寂蝟赱齠洲痲筵娼リクエストに対する応答を行ないます。</p> + + <p>サ・踉札个番ポ・踉札箸旭番ポ・踉札箸領方で接続を栄佞韻訐瀋蠅領墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蜩鍵鹿粡寂蝟赱齠洲痲筵娼蜩鍵旭鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼二つのインタ・踉札侫Аスとポ・踉札犯峭罎砲い得楝海鬢踉歯け付ける設定の例: +<pre> + Listen 192.170.2.1:80 + Listen 192.170.2.5:8000 +</pre> + + <p><strong>参墾踉晒齡鳫鈑踉氏鱚羹〓粮鶚竅癆鶤蔗迪▽苳残林ぢに関する問題</a><br /> + <strong>参墾踉晒齡鳫鈑踉氏鱚羹〓砠鈔譬草痺蒹ぢが利用するアドレスとポ・踉札箸寮瀋碣鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳ぢ参墾踉晒齡鳫鈑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕鞣鞜竏絎闥膀蜴肬鈿烽鶤蔗迪l蜩鈞▽苳ぢ既知のバグ</a></p> + <hr /> + + <h2><a id="listenbacklog" name="listenbacklog">ListenBacklog + ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ListenBacklog + <em>backlog</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ListenBacklog + 511</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> ListenBacklog は Apache 1.2.0 + 以降で利用可能です。 + + <p>栄佞韻任討い覆だ楝海鯊垉,気擦觝櫃虜蚤膺瑤鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼通錣亙儿垢良廚呂△蠅泙擦鵑掘∧儿垢垢襪海箸亘ましくありません。 + しかし、システムによっては TCP SYN フラッド攻撃を韻討い襪箸鹿粡寂蝟赱齠洲痲筵娼この数値を増やした方が良い豺腓△蠅泙后竢粤跚齡緕┣踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼システムコ・踉札襪痺謖閾ぢパラメ・踉札燭鮖王苳使してください。</p> + + <p>この数値は、OS によって気蔽佑棒造気譴討い襪海箸茲△蝓鹿粡寂蝟赱齠洲痲筵娼腕ぢによってさまざまです。さらに、多くの OS は backlog + で指定された値そのものを使う瘢雹のではなく、それに基づく値 + (通錣呂茲蠡腓蔽を使う瘢雹という瘢雹ことにも注意してください。</p> + <hr /> + + <h2><a id="location" name="location"><Location> + ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <Location + <em>URL-path</em>|<em>URL</em>> ... </Location><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Location は Apache 1.1 + 以降で利用可能です。 + + <p><Location> ディレクティブは、URL + によるアクセス制御を提供します。<a + href="#directory"><Directory></a> ディレクティブと似ていて、 + </Location> ディレクティブで終了するサブセクションを開始します。 + <code><Location></code> セクションは、<Directory> + セクションと <code>.htaccess</code> の読み込みの後、<Files> + セクションを適用した後に、設定ファイルに現れた順に処理されます。</p> + + <p>URL はファイルシステムに対応する必要はなく、<Location> + は完全にファイルシステムに関係せず動作することを強調しておきます。</p> + + <p>すべてのリクエスト (プロキシを除く) に対し、URL は + <code>/path/</code> という瘢雹、<code>http://servername</code> + という瘢雹接頭魎泙泙覆し舛妊泪奪舛靴泙后鹿粡寂蝟赱齠洲痲筵娼プロキシリクエストの豺腓砲蓮竢粤黹蒹辣痕纈鴈瘢絲鞜閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢという瘢雹接頭魎泙犒舛妊泪奪舛掘∪榮踉鮫を含めて指定する必要があります。</p> + + <p>URL にはワイルドカ・踉札匹鰺僂垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼狄は任意の一文字、`*' は任意の文字列にマッチします。 </p> + + <p><strong>Apache 1.2 以降の豺墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼竢粤踉晒竢粤ぢという瘢雹文字を追加することで、拡張正規表現を + 利用することもできます。 + 例えば、</p> +<pre> + <Location ~ "/(extra|special)/data"> +</pre> + + <p>は URL に "/extra/data" か "/special/data" + という瘢雹文字列が含まれている豺腓縫泪奪舛靴泙后修靴董鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢ以降の豺腓砲蓮竢粤逅詞弥竅闔逅紫閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢの正規表現版と全く同じ動作をする <a + href="#locationmatch"><LocationMatch></a> + という瘢雹新しいディレクティブがあります。</p> + + <p><code>Location</code> 機能は、<code><a + href="mod_mime.html#sethandler">SetHandler</a></code> + ディレクティブと組合わせて利用すると特に便利です。 + 例えば、foo.com のブラウ瘢雹ザからのみステ・踉札織垢了王苳使を有効にしたければ、 + ,里茲逅擦砲垢譴侘匹い任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉嗣閭癆蜿鵙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь續悲鈔跂黼鴟纈鷦蝟昭粡竚癈鷭п粐Ь鰾纈緕糟跫蝟昭粡竚癈鷭п粐Ь緕胙闕跛鹿粡寂蝟赱齠洲痲筵娼糟跫胙闕肬鎬竢躰蝟昭粡竚癈鷭п粐Ь瘢雹踉晒弥竅闔逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳餐鞜竏窺以降における / (スラッシュ) + の茲螳靴い砲弔い討涼躇墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼スラッシュ文字は、URL + 内に現れる貊蠅鳳犬栃僂錣詁段未憤嫐鮖辰討い泙后鹿粡寂蝟赱齠洲痲筵娼ファイルシステムにおいて利用する豺腓砲亙瑤離好薀奪轡紊任皸譴弔鹿粡寂蝟赱齠洲痲筵娼スラッシュとして扱われますが、(例えば、<code>/home///foo</code> + は <code>/home/foo</code> といったよう瘢雹に) URL + においては必ずしもそう瘢雹なるわけではありません。 + <code><LocationMatch></code> + ディレクティブや正規表現を利用した <code><Location></code> + ディレクティブでそのよう瘢雹な動作をさせたければ、 + 明吠瑤離好薀奪轡紊魑劼垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼例えば、<code><LocationMatch ^/abc></code> は、 + <code>/abc</code> という瘢雹リクエスト URL にマッチしますが、 + <code>//abc</code> という瘢雹リクエスト URL にはマッチしません。 + (正規表現でない) <code><Location></code> ディレクティブは、 + Proxy リクエストに対して利用する際には同様のふるまいをしますが、 + (正規表現でない) <code><Location></code> を Proxy + でないリクエストに対して利用する際には、 + 一つのスラッシュで複数のスラッシュにマッチします。 + 例えば、<code><Location /abc/def></code> と指定し、 + <code>/abc//def</code> + という瘢雹リクエストがあれば、マッチすることになります。</p> + + <p><strong>参闔胼苳産ぢリクエストを韻榛櫃法鹿粡寂蝟赱齠洲痲筵娼異なる複数のセクションがどのよう瘢雹にして + 組み合わされるのかについては <a href="../sections.html"> + Directory, Location, Files セクションの動作法</a></p> + <hr /> + + <h2><a id="locationmatch" + name="locationmatch"><LocationMatch></a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <LocationMatch + <em>regex</em>> ... </LocationMatch><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> LocationMatch は Apache 1.3 + 以降で利用可能です。 + + <p> + <LocationMatch> ディレクティブは、<a + href="#location"><Location></a> と同じ様に + URL によるアクセス制御を提供します。 + ただし、引数は普通の文字列ではなく、正規表現となります。例えば、</p> +<pre> + <LocationMatch "/(extra|special)/data"> +</pre> + + <p>は URL に "/extra/data" か "/special/data" という瘢雹文字列が + 含まれている豺腓縫泪奪舛靴泙后鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ参闔胼苳産ぢリクエストを韻榛櫃法鹿粡寂蝟赱齠洲痲筵娼異なる複数のセクションがどのよう瘢雹にして + 組み合わされるのかについては <a href="../sections.html"> + Directory, Location, Files セクションの動作法</a></p> + <hr /> + + <h2><a id="lockfile" name="lockfile">LockFile + ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> LockFile + <em>ファイルパス</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>LockFile + logs/accept.lock</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳嗣閭詁蛹ディレクティブは Apache が USE_FCNTL_SERIALIZED_ACCEPT + か USE_FLOCK_SERIALIZED_ACCEPT + でコンパイルされたときに使う瘢雹ロックファイルへのパスを指定します。 + このディレクティブは通錣魯妊侫襯斑佑里泙泙砲靴討戮任后鹿粡寂蝟赱齠洲痲筵娼これを変える腓瞥海蓮竢粤跫苴閼絋苳ディレクトリが NFS + マウ瘢雹ントされている、という瘢雹ものです。これは、<strong>ロックファイルは + ロ・踉札襯妊好苳糸に作られなければならない</strong>からです。 + 腑機バプロセスの PID がファイル巳苳擦慮紊膨媛辰気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢセキュリティ</strong> <code>/var/tmp</code> + のよう瘢雹な皆が書き込めるディレクトリは避けるのが賢明です。 + これは、サ・踉札个鄒靴茲逅擦箸垢襯蹈奪侫.ぅ襪汎韻弧前のファイルを + 作成することで、サ・踉札个竜阿鯀忙澆垢襦△箸い逅札機ビス拒否攻撃を + 行う瘢雹ことが可能になるからです。</p> + <hr /> + + <h2><a id="loglevel" name="loglevel">LogLevel + ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> LogLevel + <em>level</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>LogLevel + warn</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> LogLevel は Apache 1.3 + 以降で利用可能です。 + + <p>LogLevel は、エラ・踉札蹈阿惶燭垢襯瓮奪察ジの蘢浩鮖慊蠅靴泙鹿粡寂蝟赱齠洲痲筵娼└踉氏鱚羹■纈鳫鳰閾▽苳仕鴪闥弥胼踉晒瓲苳ディレクティブを見てください)。 + 以王踉擦踉糸蹙苳詞纐繻蹙苳を指定でき、順に重要度が王踉擦辰討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎絋苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈繙槇齡鳫鈑レベル</strong> </th> + + <th align="left"><strong>説明</strong> </th> + <th align="left"><strong>例</strong> </th> + </tr> + + <tr> + <td><code>emerg</code> </td> + + <td>緊急 - システムが利用できない</td> + <td>Child cannot open lock file. Exiting + (子プロセスがロックファイルを開けないため終了した)</td> + </tr> + + <tr> + <td><code>alert</code> </td> + + <td>彫苳擦舛紡仆茲筅苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳紫續頷篋阨趙逾粤鴉蜴纈瘢胙闕蜆鹿粡寂蝟赱齠洲痲筵娼續頷篋苗ぢからユ・踉札玉を特定できなかった)</td> + </tr> + + <tr> + <td><code>crit</code> </td> + + <td>致命的な筅苳纂蝟昭粡竚癈鷭п粐Ь齒站續那蛹繖艱齒站續纔蜚蜴竏蛹篌蝟昭粡竚癈鷭п粐Ь閭諷ぢソケットが得られないため、子プロセスを終了させた)</td> + </tr> + + <tr> + <td><code>error</code> </td> + + <td>エラ・踉筅苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳姉鱚轣鱚鈔黹鱸頸縺粤鴦鹿粡寂蝟赱齠洲痲筵娼ぢスクリプトのヘッダが足りないままで終わった)</td> + </tr> + + <tr> + <td><code>warn</code> </td> + + <td>警告</td> + <td>child process 1234 did not exit, sending another SIGHUP + (子プロセス 1234 が終了しなかった。もう瘢雹一度 SIGHUP を送る)</td> + </tr> + + <tr> + <td><code>notice</code> </td> + + <td>普通だが、重要な霾筅苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳肢鞣竅蔗蒜怠哮纃頸蜴竢鱚蝟昭粡竚癈鷭п粐Ь蔗篋蒜怠シグナルを院へコアダンプをした)</td> + </tr> + + <tr> + <td><code>info</code> </td> + + <td>追加霾筅苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳拶嚆鴟纈繞逑轣鈬繖蜴竰縺黼鹿粡寂蝟赱齠洲痲筵娼囈癇纈鴦闥蜴癢嚼癇縒纈鴦ぢ「サ・踉札个鷲蕾戮發ぁ鹿粡寂蝟赱齠洲痲筵娼鶯嚆鴟纈や Min/MaxSpareServers の値を増やす必要があるかも)」)</td> + </tr> + + <tr> + <td><code>debug</code> </td> + + <td>デバッグメッセ・踉札筅苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳拶緕蜴竢鈕蜃蛹設定ファイルを開いている...)</td> + </tr> + </table> + + <p>特定のレベルが指定された豺隋△修譴茲蟾發ぅ譽戰襪里垢戮討鹿粡寂蝟赱齠洲痲筵娼メッセ・踉札犬鷙陲気譴泙后鹿粡寂蝟赱齠洲痲筵娼纃例えば</em>、<code>LogLevel info</code> に指定すると、 + <code>notice</code> と <code>warn</code> も報告されます。</p> + + <p>なお <code>crit</code> 以紊鮖慊蠅垢襪海箸筅苳皐されます。</p> + + <p>例:</p> + + <pre>LogLevel notice</pre> + + <p><strong>注:</strong> 通錣離侫.ぅ襪傍燭垢襴苳詞合レベル + <code>notice</code> のメッセ・踉札犬詫淦垢襪海箸任此鹿粡寂蝟赱齠洲痲筵娼錣傍燭気譴泙后靴掘△海譴踉祉閼絋苳雌跫胼踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を使ってログ犬鮃圓覆逅殺苳詞合にはあてはまりません。</p> + + <hr /> + + <h2><a id="maxclients" name="maxclients">MaxClients + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> MaxClients + <em>数値</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>MaxClients + 256</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳四癢柱蜈銓鷦蝟昭粡竚癈鷭п粐Ьぢディレクティブは、同時にサポ・踉札箸任觝蚤腑螢┘好反瑤鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼子サ・踉札丱廛蹈札垢蓮△海譴茲蠡燭郎鄒気譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼なお、256 クライアントより大きな数値を指定するためには、httpd.h の + HARD_SERVER_LIMIT を編集して再コンパイルしなければなりません。</p> + + <p>MaxClients の制限を超えた接続は、通錣踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就l蜩鈞痺謖閾▽苳嗣蜩鄲痺謖閾鹿粡寂蝟赱齠洲痲筵娼ディレクティブで指定した数までキュ・踉擦貌譴蕕譴泙后鹿粡寂蝟赱齠洲痲筵娼そして、別のリクエストを終了し子プロセスが解放された時点で、 + 接続が栄佞韻蕕譴泙后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就轣繞鞜跚鱚髟纉⊆蝟昭粡竚癈鷭п粐Ь瘢綵癢諷辮瘡蝟纈繿齡鵞浴繞霑跚吶髟纉鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> MaxKeepAliveRequests + <em>数値</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> + <code>MaxKeepAliveRequests 100</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Apache 1.2 以降で利用可能です。 + + <p>MaxKeepAliveRequests ディレクティブは、<a + href="#keepalive">KeepAlive</a> が有効な豺腓法鹿粡寂蝟赱齠洲痲筵娼一回の接続で栄佞渦椎修淵螢┘好箸凌瑤鮴造靴泙后鹿粡寂蝟赱齠洲痲筵娼▽踉祉閼絋苳三閼絋苳拶ぢに設定していれば、栄佞韻襯螢┘好箸鰐祇造砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼この設定は、サ・踉札仞修鮓苳糸させるために、大きな数値を指定することを勧めます。 + なお、Apache 1.1 ではこの値は、KeepAlive + ディレクティブのオプションとして指定されていました。</p> + + <p>例</p> + + <pre>MaxKeepAliveRequests 500</pre> + + <hr /> + + <h2><a id="maxrequestsperchild" + name="maxrequestsperchild">MaxRequestsPerChild + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> MaxRequestsPerChild + <em>数値</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> + <code>MaxRequestsPerChild 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳四癢吶髟纉倥鮹蓍趙ぢディレクティブは、 + 個々の子サ・踉札弌プロセスが処理できるリクエストの最大数を設定します。 + MaxRequestsPerChild + で指定された数のリクエストを処理すると、子プロセスは終了します。 + なお、0 を指定すると、プロセスは限りなく動きつづけます。</p> + + <p>MaxRequestsPerChild により、最大数を 0 + 以外の値に設定することは、二つの有益な効果があります:</p> + + <ul> + <li>(予期せぬ) メモリリ・踉札砲茲辰謄廛蹈札垢苳暫費する + メモリの総量を制限することができます。</li> + + <li>プロセスの孫垰崟造澆韻蕕譴襪海箸砲茲蝓鹿粡寂蝟赱齠洲痲筵娼サ・踉札个良蕾拂禪沙縫廛蹈札垢凌瑤鮓墾苳晒させることを助けます。</li> + </ul> + + <p>ただし、Win32 においてはこれを 0 に設定した方が良いでしょう瘢雹。 + 0 以外を指定すると、リクエストの制限に到達したときに子プロセスが終了し、 + 子プロセスがもう瘢雹一度作られ、その際に設定ファイルを読み彫苳擦靴泙后鹿粡寂蝟赱齠洲痲筵娼これにより、設定ファイルを修正後に、 + まだ修正内容が適用されるのを期待していないときに + 予期せぬ振る舞いをすることがあります。 + <a href="#threadsperchild">ThreadsPerChild</a> も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ注意:</strong> <em>KeepAlive</em> リクエストの豺隋鹿粡寂蝟赱齠洲痲筵娼最初のリクエストのみカウ瘢雹ントされます。 + 側踉餐的には子プロセスあたりの<em>接続数</em>を指定するものといえます。</p> + <hr /> + + <h2><a id="maxspareservers" + name="maxspareservers">MaxSpareServers ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> MaxSpareServers + <em>数値</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>MaxSpareServers + 10</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳四癢嚼癇縒纈鴦ぢディレクティブは、<em>アイドル蹙苳ぢである + 子サ・踉札丱廛蹈札垢遼ましい最大数を指定します。 + アイドル屬離廛蹈札垢箸蓮▲螢┘好箸鮟萢靴討い覆ぅ廛蹈札垢里海箸任后鹿粡寂蝟赱齠洲痲筵娼浴鞜鱚嚆鴟纈で指定した数以紊▲ぅ疋襴苳歯態であれば、 + 親プロセスは増えすぎたプロセスを kill します。</p> + + <p>この数値の変更は、とてもアクセスの多いサイトにおいてのみ必要となるでしょう瘢雹。 + 大きな数値を指定することは、ほとんどの豺腓砲藁匹覆だ瀋蠅任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢなお、これは<em>予備</em>サ・踉札个虜蚤膺瑤任△蝓鹿粡寂蝟赱齠洲痲筵娼クライアントからのリクエストを一度にどれだけ処理できるのかの最大数を + 指定するものではありません。 + もし、そう瘢雹いった最大数を指定したいのであれば、<a + href="#maxclients">MaxClients</a> ディレクティブを参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのディレクティブは、Microsoft Windows プラットフォ・踉札爐砲韻鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢサ・踉札个任楼嫐鮖舛泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹■迚銖鞜鱚黼鴟纈鵞莱醵鞜鱚嚆鴟纈鵙踉晒瓲苳ぢ、<a + href="#startservers">StartServers</a>、<a + href="#maxclients">MaxClients</a> も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就迚銖鞜鱚黼鴟纈鵞鹿粡寂蝟赱齠洲痲筵娼釶辣就迚銖鞜鱚黼鴟纈鵞莱醵鞜鱚嚆鴟纈ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> MinSpareServers + <em>数値</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>MinSpareServers + 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳四蜴嚼癇縒纈鴦ぢディレクティブは、<em>アイドル蹙苳ぢである + 子サ・踉札丱廛蹈札垢遼ましい最瑤鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼アイドル屬離廛蹈札垢箸蓮▲螢┘好箸鮟萢靴討い覆ぅ廛蹈札垢里海箸任后鹿粡寂蝟赱齠洲痲筵娼もし MinSpareServers で指定した数よりアイドル屬離機バが覆韻譴弌鹿粡寂蝟赱齠洲痲筵娼親プロセスは 1 秒間に 1 個を限度として新しい子プロセスを生成します。</p> + + <p>この数値の変更は、とてもアクセスの多いサイトにおいてのみ必要となるでしょう瘢雹。 + 大きな数値を指定することは、ほとんどの豺腓砲藁匹覆だ瀋蠅任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢなお、このディレクティブにおいてある数値 <i>m</i> を指定したとすると、 + <i>n</i> という瘢雹数の稼動中のクライアントリクエストがある時に、 + <i>n + m</i> 以紊踉祉閼絋苳肢鞣閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢプロセスが確造吠飮気譴襪茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのディレクティブは、Microsoft Windows + プラットフォ・踉札爐任楼嫐鮖舛泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹■迚銖鞜鱚黼鴟纈鵞莱醵鞜鱚嚆鴟纈鵙踉晒瓲苳ぢ、<a + href="#startservers">StartServers</a>、<a + href="#maxclients">MaxClients</a> も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就釶辣鶯跏闢槇鹿粡寂蝟赱齠洲痲筵娼釶辣就釶辣鶯跏闢槇令辣帷鶯貳闢ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> NameVirtualHost + <em>addr</em>[:<em>port</em>]<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> NameVirtualHost + は Apache 1.3 以降で利用可能です。 + + <p>NameVirtualHost ディレクティブは、 + <a href="../vhosts/">巳苳餐哀戞スのバ・踉札船礇襯曠好の設定を行いたい豺腓鹿粡寂蝟赱齠洲痲筵娼必要となるものです。</p> + + <p><em>addr</em> にはホスト巳苳擦鮖慊蠅任泙垢▽苳誌に IP + アドレスかワイルドカ・踉札匹鮖慊蠅垢襪里筅苳皐されます。 + <em>例えば、</em></p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44</code> + </blockquote> + NameVirtualHost ディレクティブは、巳苳餐哀戞スのバ・踉札船礇襯曠好箸鹿粡寂蝟赱齠洲痲筵娼利用してリクエストを栄佞韻アドレスを指定します。 + これは、普通は巳苳餐哀戞スのバ・踉札船礇襯曠好肇▲疋譽垢任后鹿粡寂蝟赱齠洲痲筵娼ただし、ファイア・踉札逅札ルや側苳擦離廛蹈靴螢┘好箸鬢踉歯け付け、 + 違う瘢雹 IP アドレスのサ・踉札个縫侫錙ドするという瘢雹豺腓蓮鹿粡寂蝟赱齠洲痲筵娼リクエストを提供したいマシン紊諒ぅ鵐拭フェ・踉札垢鹿粡寂蝟赱齠洲痲筵娼賓ぢアドレスを指定する必要があります。 + 複数のアドレスで複数の巳苳餐哀戞スのバ・踉札船礇襯曠好箸鮖慊蠅垢襴苳詞合は + 各アドレスに対してディレクティブを書いてください。 + + <p>「腑機バ」や、どの _default_ サ・踉札个癲鹿粡寂蝟赱齠洲痲筵娼令辣帷鶯貳闢で指定した IP アドレスへのリクエスト + を処理することは<strong>ありません</strong> (なう踉擦瘢縉蜥瘡被齡鹿粡寂蝟赱齠洲痲筵娼を指定したけどそのアドレスに VirtualHost を定義しなかった豺腓鮟ぢ。</p> + + <p>なお、巳苳餐哀戞スのバ・踉札船礇襯曠好箸縫檗ト番号を指定することも可能です。<br /> + 例えば、</p> + + <blockquote> + <code>NameVirtualHost 111.22.33.44:8080</code> + </blockquote> + Apache 1.3.13 以紊陸苳詞合には、<em>addr</em> に <code>*</code> + を指定することができます。 + これにより、NameVirtualHostディレクティブや <a + href="#virtualhost"><VirtualHost></a> セクションで指定されなかった、 + より細かく設定されているアドレス以外のすべてのアドレスへの接続にマッチします。 + 巳苳餐哀戞スのバ・踉札船礇襯曠好箸世韻鰺僂靴燭う苳詞合や、 + 設定ファイル中にサ・踉札个仄蝟昭粡竚癈鷭п粐Ьぢアドレスを記述することを胞苳擦泙覆う苳詞合に有用でしょう瘢雹。 + + <p><strong>参墾踉晒齡鳫鈑踉氏鱚羹〓闢草痺蒹ぢバ・踉札船礇襯曠好伐鮴盻鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就關闔鵞瘢綵頸蜿銖▽苳始頸蜿銖ぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> Options + [+|-]<em>option</em> [[+|-]<em>option</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑頸蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始頸蜿銖ぢディレクティブは、特定のディレクトリに対して + どの機能を有効にするのかを制御します。</p> + + <p><em>option</em> を <code>None</code> + に指定すると、特別な機能はすべて無効になります。また、以王踉擦陸踉雑す + 1 個以紊里發里鮖慊蠅任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘糟讀踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐藍踉蛄蜈ぢを除いたすべての機能が有効となります。 + これがデフォルトです。</dd> + + <dt>ExecCGI</dt> + + <dd> + CGI スクリプトの孫圓魑弔靴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳仔闌跫也鉉鵙踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐鹿粡寂蝟赱齠洲痲筵娼サ・踉札个△海離妊譽肇蠧發妊轡鵐椒螢奪螢鵐鬚燭匹譴襪茲逅擦砲靴泙后碣鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑注意点</strong>: + サ・踉札个轡鵐椒螢奪螢鵐鬚燭匹襴苳詞合でも、 + <code><Directory></code> + セクションにマッチさせるためのパス巳苳擦纃変更されません</em>。<br /> + <strong>注意点</strong>: <Location> + 内にこのオプションを指定しても無視されます。</dd> + + <dt>Includes</dt> + + <dd> + SSI を有効にします。</dd> + + <dt>IncludesNOEXEC</dt> + + <dd> + SSI は有効になりますが、#exec コマンド と #exec CGI + は無効になります。ただし、#include virtual により、ScriptAlias + されたディレクトリで CGI を孫圓垢襪海箸浪椎修任后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳刺鈔纔纉熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳纂蝟昭粡竚癈鷭п粐Ьぢもし、URL がディレクトリにマップするリクエストであって、かつ + DirectoryIndex で指定したファイル (例えば、index.html) が + ディレクトリ内に無ければ、 + ディレクトリ内の一覧を整形して返せるよう瘢雹にします。</dd> + + <dt>MultiViews</dt> + + <dd> + <a href="../content-negotiation.html">コンテントネゴシエ・踉札轡腑蝟昭粡竚癈鷭п粐Ьぢされた MultiViews を許可します。</dd> + + <dt>SymLinksIfOwnerMatch</dt> + + <dd> + シンボリック先のファイルまたはディレクトリが、 + シンボリックリンクの所有ユ・踉札勅蝟昭粡竚癈鷭п粐Ьぢと同じ豺腓砲里潺轡鵐椒螢奪螢鵐鬚燭匹譴襪茲逅擦砲靴泙后碣鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑注意点</strong>: <Location> + 内にこのオプションを指定しても無視されます。</dd> + </dl> + 通錙▲妊譽肇蠅紡个靴栃瑤踉祉閼絋苳始頸蜿銖閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢが適用可能な豺隋∈任盒瓩い發琉譴弔里澆僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼複数の指定がマ・踉札犬気譴襪錣韻任呂△蠅泙擦鵝靴掘△垢戮討鹿粡寂蝟赱齠洲痲筵娼竢粤闔鵙踉晒竢粤ぢディレクティブが + や - + 付きで指定された豺腓魯廛轡腑鵑涼佑魯沺ジされます。 + + を頭につければ現在の設定に加えられ、- + を付ければ現在の設定から削除されます。 + + <p>例えば、+ や - を利用しない豺腓墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳殺瘢雹踉残蜥繝鴒皴粹笂逅紫碣鹿粡寂蝟赱齠洲痲筵娼頸蜿銖鈔纔纉闌跫也鉉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь逅詞蜥繝鴒逅紫碣鹿粡寂蝟赱齠洲痲筵娼瘢雹踉残蜥繝鴒皴粹笂鞳礒瘢雹苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь闔侮竚纉碣鹿粡寂蝟赱齠洲痲筵娼瘢雹踉晒堤鱚笏闥瘢雹苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь皴粹笂鞳という瘢雹ディレクトリには、<code>Includes</code> + だけが適用されます。しかし、2 番目の <code>Options</code> で + + や - を利用してみると: + + <blockquote> + <code><Directory /web/docs><br /> + Options Indexes FollowSymLinks<br /> + </Directory><br /> + <Directory /web/docs/spec><br /> + Options +Includes -Indexes<br /> + </Directory></code> + </blockquote> + + /web/docs/spec という瘢雹ディレクトリには、 <code>FollowSymLinks</code> + と <code>Includes</code> が適用されます。 + + + <p><strong>注意:</strong> <code>-IncludesNOEXEC</code> 磴靴鹿粡寂蝟赱齠洲痲筵娼竢粤釿跿粤鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を指定すると、前の設定がどのよう瘢雹になっていよう瘢雹とも SSI + は無効となります。</p> + + <p>どのよう瘢雹な設定もされていなければ、デフォルトでは + <code>All</code> になります。</p> + <hr /> + + <h2><a id="pidfile" name="pidfile">PidFile ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> PidFile + <em>ファイルパス</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>PidFile + logs/httpd.pid</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳姉蜆鍋跂ぢディレクティブはサ・踉札个如モンのプロセス ID + を記録するファイルを設定します。ファイル巳苳擦好薀奪轡鹿粡寂蝟赱齠洲痲筵娼┓から始められていなければ、ServerRoot からの相対パスとなります。 + PidFile は <a href="#servertype">standalone</a> + モ・踉札匹任里濟藩僂任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就e鴪闥跫腆湯鳫鯡閾ぢと TransferLog を閉じて開き彫苳擦靴董鹿粡寂蝟赱齠洲痲筵娼設定ファイルを再読み込みさせることができるよう瘢雹にサ・踉札个鹿粡寂蝟赱齠洲痲筵娼シグナルを送ることができれば便利なことがあります。 + これは、SIGHUP (kill -1) シグナルを PidFile + に記載されているプロセス ID に送ることによって可能です。</p> + + <p>PidFile はログファイルの貊蠅踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蜩祚黼笊鱸熹蜷鶤蔗迪s纈鴪闖槇安全性</a>と同じよう瘢雹な + 注意が必要です。</p> + <hr /> + + <h2><a id="port" name="port">Port ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> Port + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>Port + 80</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉糸蹙苳試矼鬢踉晒纃には、0 から 65535 + までの番号を指定します。いくつかのポ・踉札犯峭特に1024番以前) + は、特定のプロトコルのために予約されています。 + <code>/etc/services</code> + を見ると、定義されているポ・踉札箸琉賤△蠅泙后D巳苳誌、HTTP + プロトコルの標準のポ・踉札箸です。</p> + + <p>Port ディレクティブは、二つの意味を持っており、一つは + NCSA の絨霧澳垢箸靴討良彑任草痺蒹鹿粡寂蝟赱齠洲痲筵娼の設定では混同しやすい点です)</p> + <ul> + <li>ポ・踉札犯峭罎鮖慊蠅靴討い踉氏鱚羹■跚齡緕▽苳嗣蜩遉踉晒瓲苳や <a + href="#bindaddress">BindAddress</a> がなければ、腑機バ内 + (<a href="#virtualhost"><VirtualHost></a> セクション外) + に記述することによって、サ・踉札个蜩郤蝟昭粡竚癈鷭п粐Ьぢするポ・踉札箸糧峭罎鮖慊蠅任泙后也齡緕ぢ磴靴蜴篩粐鱚齠鹿粡寂蝟赱齠洲痲筵娼において <code>:number</code> といった指定がされていれば、Port + はサ・踉札个蜩するポ・踉札箸砲榔洞舛靴泙擦鵝薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳姉闥ディレクティブの値は、<code>SERVER_PORT</code> 環境変数 + (<a href="mod_cgi.html">CGI</a> や + <a href="mod_include.html">SSI</a> において設定される) + を設定し、サ・踉札个踉捌分箸鮖王苳使する URL を生成する + (例えば、踉捌身へ外部リダイレクトを作成する豺腓覆蝟昭粡竚癈鷭п粐Ьぢ豺腓僕僂気譴泙后海瞭虻遒踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就u黼竅鈿鉗竅跪瘢紜專綯瘤闔蜒瘡令辣鹿粡寂蝟赱齠洲痲筵娼により変更できます。</li> + </ul> + + Port ディレクティブの腓米虻遒蓮蓿繙就s纈鴈瘢紜嚆鴟纈令辣鹿粡寂蝟赱齠洲痲筵娼ディレクティブと同様のものとみなすことができます。 + ServerName と Port + は、サ・踉札个纃正阿蹙苳ぢアドレスが、何であるかを指定します。 + + <p>80 番ポ・踉札箸蓮嬶婦ぢの特別なポ・踉札箸琉譴弔任后碓牡鹿粡寂蝟赱齠洲痲筵娼番未満のすべてのポ・踉札箸魯轡好謄爐藩僂垢襪燭瓩僕縮鵑気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼纃すなわち</em>、一般ユ・踉札鳫阡ぢ以外) は使用することができません。 + 一般ユ・踉札兇呂修谿弗苳糸のポ・踉札箸靴藩僂任泙擦鵝修里燭瓠鹿粡寂蝟赱齠洲痲筵娼鍵ぢ番ポ・踉札箸鮖藩僂垢襪砲蓮鳫阡鹿粡寂蝟赱齠洲痲筵娼アカウ瘢雹ントでサ・踉札个魑阿靴覆韻譴个覆蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼起動後に、ポ・踉札箸鬟丱ぅ鵐匹靴晋紂▲螢┘好箸鬢踉歯け付ける前に + Apache は <a href="#user">User + ディレクティブ</a>で指定された、より特権の低いユ・踉札兇飽楾圓靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢもし、80 番ポ・踉札箸鮖藩僂任覆う苳詞合には、 + 使用していない側苳擦稜ぐ佞離檗トを選んでください。root 以外のユ・踉札兇覆蕁鹿粡寂蝟赱齠洲痲筵娼鍵旭ぢなどのよう瘢雹に 1023 より紊離檗トを選んで王踉擦気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢセキュリティ: もし、root によってサ・踉札个魑阿靴燭覆蕁鹿粡寂蝟赱齠洲痲筵娼蓿繙就u黼鬆專纈ぢを root 以外に設定してください。接続を + root で扱う瘢雹と、サイトは重大なセキュリティ攻撃にさらされる + 可能性があります。 </p> + <hr /> + + <h2><a id="protocolreqcheck" name="protocolreqcheck">ProtocolReqCheck + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ProtocolReqCheck + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ProtocolReqCheck + on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> + ProtocolReqCheck は Apache 1.3.27 以降でのみ使用可能です。 + + <p>このディレクティブは Request 行の Protocol + フィ・踉札襯匹慮渓淵船Д奪鮃圓逅擦茲逅擦砲靴泙后草痺蒹ぢの 1.3.26 + 以前のバ・踉札献腑鵑竢粤挽墅閼絋苳のよう瘢雹な) 間違った + Protocol を黙って栄佞韻董竢粤挽墅閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢとみなしていました。このバ・踉札献腑鵑任呂修逅擦任呂覆會阡閭闌鹿粡寂蝟赱齠洲痲筵娼フィ・踉札襯匹論気靴い發里任覆韻譴个覆蕕覆覆蠅泙靴拭鹿粡寂蝟赱齠洲痲筵娼窺凱俺ぢ以前の動作が胞苳擦泙靴辰燭蝓廚世辰燭蠅垢襴苳詞合は + <code>ProtocolReqCheck off</code> + と設定することにより厳密なチェックをしないよう瘢雹にできます。</p> + + <hr /> + + <h2><a id="require" name="require">Require ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> Require + <em>entity-name</em> [<em>entity-name</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのディレクティブは、どの認攤僂澆離罅ザがリソ・踉札垢鹿粡寂蝟赱齠洲痲筵娼アクセスすることができるかを指定します。 + 以王踉擦里茲逅擦聞淑犬砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼吶髟蜥纈踉糸蹙苳歯黼鱸筅踉晒纃纃纈蜆蹙苳旨蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮指定されたユ・踉札兇里漾▲螢宗スへのアクセスを許可します。</p> + </li> + + <li> + Require group <em>group-name</em> [<em>group-name</em>] ... + + + <p>指定されたグル・踉札廚紡阿垢襯罅ザのみ、リソ・踉札垢悗離▲札垢魑弔靴泙后鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь繿鱚瘡蜆黼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢすべての認擇気譴織罅ザに、リソ・踉札垢悗離▲札垢魑弔靴泙后鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳紙蛹絖阯鈬鮗蝟昭粡竚癈鷭п粐Ь踉諮巳苳餐阿侫.ぅ襪僚衢踉市のシステムでの巳苳餐阿帽腓逅札罅ザだけが + リソ・踉札垢鬟▲札垢任泙后碣鹿粡寂蝟赱齠洲痲筵娼杼鞜竏窺凱屋ぢ以降で使用可能]</p> + </li> + <li>file-group + <p>ファイルの所有圓離哀襦プのシステムでの巳苳餐阿帽腓逅札哀襦プのメンバだけが + リソ・踉札垢縫▲札垢任泙后碣杼鞜竏窺凱屋ぢ以降で使用可能]</p> + </li> + </ul> + + <p>Require は、正しく動作するためには <a + href="#authname">AuthName</a> 及び <a + href="#authtype">AuthType</a> ディレクティブや、 + <a + href="mod_auth.html#authuserfile">AuthUserFile</a> 及び <a + href="mod_auth.html#authgroupfile">AuthGroupFile</a> + (ユ・踉札兇肇哀襦プを指定するために) といったディレクティブと共瘢雹に + 指定する必要があります。 + 例えば:</p> + + <blockquote> + <code>AuthType Basic<br /> + AuthName "Restricted Directory"<br /> + AuthUserFile /web/users<br /> + AuthGroupFile /web/groups<br /> + Require group admin<br /> + </code> + </blockquote> + アクセス制御は、<strong>すべての</strong>メソッドに対して行われます。 + <strong>通錣蓮△海譴ましい動作です。</strong> + もし、特定のメソッドに対してのみアクセスの制御を適用し、 + 側苳擦離瓮愁奪匹論造靴覆う苳詞合には、<a + href="#limit"><Limit></a> セクション内に <code>Require</code> + を指定してください。 + + <p><a href="#satisfy">Satisfy</a> 及び <a + href="mod_access.html">mod_access</a> も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鱚齒竇竢鈕蜃釶辣就鱚齒竇竢鈕蜃▽苳子纉阨鱆綯闔肅膽蝟昭粡竚癈鷭п粐Ьぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ResourceConfig + <em>file-path</em>|<em>directory-path</em>|<em>wildcard-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ResourceConfig + conf/srm.conf</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> ファイル巳苳擦任呂覆鹿粡寂蝟赱齠洲痲筵娼ディレクトリを指定する機能は Apache 1.3.13 以降でのみ使用可能です。 + + <p>サ・踉札个鞣闔ファイルを読み込んだ後、 + 追加のディレクティブをここで記したファイルから読み込みます。 + <em>File-path</em>は、<a href="#serverroot">ServerRoot</a> + からの相対パスです。<br /> + この機能を無効にするには,里茲逅擦忙慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤吶齒竇衷鈕蜃粤銛跛閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼怏邀の豺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤吶齒竇衷鈕蜃閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼以前は、サ・踉札仞瀋蠅亡悗垢襯妊譽謄屬踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就d蜥繝鴒▽苳殺瘢雹踉ぢディレクトリ></a> + セクション以外のほとんどのディレクティブが書かれていました。 + 尊檗什澆任蓮屮機バ設定ファイル」コンテキストに記述できることすべてが + 記述可能になっています。 + ただ、Apache のバ・踉札献腑ぢ以降で配布されているデフォルトの + <code>srm.conf</code> ではこのファイル内にはコメントしか書かれておらず、 + すべてのディレクティブがサ・踉札仞瀋螢侫.ぅ襪踉祉閼絋苳肢鞣闔网踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼に記述されています。 + + <p> + <code>ResourceConfig</code> + がファイルではなくディレクトリを指定していれば、Apache + はそのディレクトリ内とすべてのサブディレクトリ内のすべてのファイルを + 読み込み、それらを設定ファイルとして処理します。</p> + <p>代わりに、ワイルドカ・踉札匹鮖箸辰独楼呂鮃覆襪海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼すなわち、*.conf ファイルのみ、といったよう瘢雹に。</p> + <p>デフォルトでは指定されたディレクトリの「<em>どのよう瘢雹な</em>」 + ファイルでも設定ファイルとして読み込まれます。</p> + <p>ですから誤って (例えばエディタでテンポラリファイルを作成する等) + ファイルを置かないよう瘢雹に注意してください。</p> + + <p><strong>参墾踉晒齡鳫鈑踉氏鱚羹■痺竇齠竢鈕蜃▽苳餐窿纉鹵闔肅胼踉晒瓲苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏Å跚迚槇瘢綵Å跚迚槇厂蜊蜚弛妣踉晒瓲苳畆蝟昭粡竚癈鷭п粐Ь篏Å跚迚頤釶辣就鳰蜊蜚竦ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> RLimitCPU + <em>number</em>|max [<em>number</em>|max] <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> RLimitCPU は Apache 1.2 + 以降で利用可能です。 + + <p>一つか二つのパラメ・踉札燭鮖慊蠅任泙后鹿粡寂蝟赱齠洲痲筵娼最初のパラメ・踉札燭倭乾廛蹈札垢紡个垢襯螢宗スのソフトリミットを設定し、 + 2 番目のパラメ・踉札燭郎蚤腓離螢宗スリミットを設定します。 + パラメ・踉札燭砲録▲撻譟ティングシステムの最大となる + <code>max</code> のどちらかを指定することができます。 + 最大のリソ・踉札好螢潺奪箸鬢苳糸げるためには、サ・踉札个闖蝟昭粡竚癈鷭п粐Ьぢで孫圓垢襪鳫阡ぢによって起動されなければいけません。 </p> + + <p>ちなみに、この設定は Apache + の子プロセス里任呂覆▲螢┘好箸鬢踉歯け付けた Apache + の子プロセスから fork されたプロセスに適用されます。これには + CGI や SSI から孫圓気譴織灰泪鵐匹泙泙譴泙垢草痺蒹鹿粡寂蝟赱齠洲痲筵娼の親プロセスから fork されたログのパイププロセスなどには適用されません。</p> + + <p>CPU リソ・踉札垢離螢潺奪箸魯廛蹈札垢△燭蠅良耽瑤派修錣気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹■鳰蜊蜚辣蹉厂蜊蜚妖勇踉晒瓲苳や <a + href="#rlimitnproc">RLimitNPROC</a> も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鳰蜊蜚辣蹉瘢綵Å跚迚纃▽苳子也迚斗鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> RLimitMEM + <em>number</em>|max [<em>number</em>|max]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> RLimitMEM は Apache 1.2 以降で利用可能です。 + + <p>一つか二つのパラメ・踉札燭鮖慊蠅任泙后鹿粡寂蝟赱齠洲痲筵娼最初のパラメ・踉札燭倭乾廛蹈札垢紡个垢襯螢宗スのソフトリミットを設定し、 + 2 番目のパラメ・踉札燭郎蚤腓離螢宗スリミットを設定します。 + パラメ・踉札燭砲録▲撻譟ティングシステムの最大となる + <code>max</code> のどちらかを指定することができます。 + 最大のリソ・踉札好螢潺奪箸鬢苳糸げるためには、サ・踉札个闖蝟昭粡竚癈鷭п粐Ьぢで孫圓垢襪鳫阡ぢによって起動されなければいけません。 </p> + + <p>ちなみに、この設定は Apache + の子プロセス里任呂覆▲螢┘好箸鬢踉歯け付けた Apache + の子プロセスから fork されたプロセスに適用されます。これには + CGI や SSI から孫圓気譴織灰泪鵐匹泙泙譴泙垢草痺蒹鹿粡寂蝟赱齠洲痲筵娼の親プロセスから fork されたログのパイププロセスなどには適用されません。</p> + + <p>メモリリソ・踉札垢離螢潺奪箸魯廛蹈札垢△燭蠅離丱ぅ反瑤派修気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹■鳰蜊蜚竦厂蜊蜚弛妣踉晒瓲苳や <a + href="#rlimitnproc">RLimitNPROC</a> も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鳰蜊蜚鉋鳫磚瘢綵Å跚迚頏閭▽苳子也迚侑話鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> RLimitNPROC + <em>number</em>|max [<em>number</em>|max]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <em>Unset; uses + operating system defaults</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> RLimitNPROC は Apache 1.2 以降で利用可能です。 + + <p>一つか二つのパラメ・踉札燭鮖慊蠅任泙后鹿粡寂蝟赱齠洲痲筵娼最初のパラメ・踉札燭倭乾廛蹈札垢紡个垢襯螢宗スのソフトリミットを設定し、 + 2 番目のパラメ・踉札燭郎蚤腓離螢宗スリミットを設定します。 + パラメ・踉札燭砲録▲撻譟ティングシステムの最大となる + <code>max</code> のどちらかを指定することができます。 + 最大のリソ・踉札好螢潺奪箸鬢苳糸げるためには、サ・踉札个闖蝟昭粡竚癈鷭п粐Ьぢで孫圓垢襪鳫阡ぢによって起動されなければいけません。 </p> + + <p>ちなみに、この設定は Apache + の子プロセス里任呂覆▲螢┘好箸鬢踉歯け付けた Apache + の子プロセスから fork されたプロセスに適用されます。これには + CGI や SSI から孫圓気譴織灰泪鵐匹泙泙譴泙垢草痺蒹蝟昭粡竚癈鷭п粐Ьぢの親プロセスから fork されたログのパイププロセスなどには適用されません。</p> + + <p>プロセスの制限は、ユ・踉札兇△燭蠅離廛蹈札洪瑤農罎気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ注意点: CGI プロセスがウ瘢雹ェブサ・踉札个離罅ザ ID + 以外で孫圓気譴襪里齡鳫鈑無ければ</strong>、このディレクティブは、 + サ・踉札丶踉捌身が生成できるプロセスの数を制限することになります。 + そのよう瘢雹な靴砲覆辰討い襪匹逅擦蓮▲┘蕁ログの中の + <strong><em>cannot fork</em></strong> + という瘢雹メッセ・踉札犬砲茲螻稜Г垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹■鳰蜊蜚竦厂蜊蜚弛妣踉晒瓲苳や <a + href="#rlimitcpu">RLimitCPU</a> も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黶黽瘢綵‰癆蜩胱▽苳屍癆蜩胱ぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> Satisfy any|all<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> Satisfy all<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Satisfy は Apache 1.2 + 以降で利用可能です。 + + <p><code>Allow</code> と <code>Require</code> + の陸苳司箸錣譴討い襪箸離▲札好櫂螢掘を設定します。パラメ・踉札燭鹿粡寂蝟赱齠洲痲筵娼纃п跛Е踉晒纃ぢか <em>'any'</em> + です。このディレクティブはある貊蠅悗離▲札垢罅ザ巳苳ぢパスワ・踉札鹿粡寂蝟赱齠洲痲筵娼纃と</em>クライアントのホストのアドレスで制限されているときにのみ + 役立ちます。デフォルトの動作 ("all") + はクライアントがアドレスによるアクセス制限を満たし、 + <em>かつ</em>正しいユ・踉札玉とパスワ・踉札匹鯑呂垢襪海箸鰺弋瓩靴泙后鹿粡寂蝟赱齠洲痲筵娼≡銷では、クライアントはホストの制限を満たすか、 + 正しいユ・踉札玉とパスワ・踉札匹瞭呂鬚垢襪鬚垢譴丱▲札垢魑弔気譴泙后鹿粡寂蝟赱齠洲痲筵娼これは、ある貊蠅鬟僖好錙ドで保護するけれど、特定のアドレスからの + クライアントにはパスワ・踉札匹瞭呂鰺弋瓩擦困縫▲札垢魑弔垢襦鹿粡寂蝟赱齠洲痲筵娼という瘢雹よう瘢雹なときに使用できます。</p> + + <p><a href="#require">Require</a> と <a + href="mod_access.html#allow">Allow</a> も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黹闥繧閨鰾肅跂釶辣就黹闥繧閨鰾肅跂▽苳屍竢鱚啄癇籠蛹綣蝟昭粡竚癈鷭п粐Ьぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ScoreBoardFile + <em>ファイルパス</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ScoreBoardFile + logs/apache_status</code> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢア・踉札謄船磴砲茲辰討蓮▲機バの親プロセスと子プロセスが + 通信するためのファイルを置く貊蠅鮖慊蠅垢襪燭瓩竢鱚啄癇籠蛹綣蝟昭粡竚癈鷭п粐Ьぢディレクティブを使う瘢雹必要があることがあります。 + 使用しているア・踉札謄船磴竢鱚硼癇篌蝟昭粡竚癈鷭п粐Ьぢファイルを必要としているかどう瘢雹かを調べる一番簡単な方法は Apache + を孫圓靴討海離妊譽謄屬濃慊蠅気譴討い鹿粡寂蝟赱齠洲痲筵娼ファイルを作成するかどう瘢雹かを見ることです。 + 使用しているア・踉札謄船磴任海譴廚弗苳詞合は、このファイルを使う瘢雹 + Apache は一つだけであることを確造砲垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍竢鱚啄癇籠蛹を使う瘢雹必要がある豺腓蓮△修譴鼠鹿粡寂蝟赱齠洲痲筵娼ディスク紊肪屬海箸蚤戮苳糸するでしょう瘢雹。 + ただし、ログファイルの位置と + <a href="../misc/security_tips.html">セキュリティ</a>に関する + 警告を十分注意する必要があります。</p> + + <p>Apache 1.2 以降:</p> + + <p>Linux 1.x ユ・踉札兇踉祉閼絋苳暫闔肅苺鱇闔閼絋苳の + <code>EXTRA_CFLAGS</code> に <code>-DHAVE_SHMGET</code> を + 設定することができるかもしれません。これは、1.x + のいくつかでは動作しますが、 + すべてで動作するという瘢雹わけではありません。(1.3b4 より前では + <code>HAVE_SHMGET</code> で十分でした。)</p> + + <p>SVR4 ユ・踉札兇踉祉閼絋苳暫闔肅苺鱇闔閼絋苳の + <code>EXTRA_CFLAGS</code> に <code>-DUSE_SHMGET_SCOREBOARD</code> + を追加することを考慮した方が良いでしょう瘢雹。 + これは動作すると考えられていますが、1.2 + のリリ・踉札垢泙任縫謄好箸鬚垢襪海箸呂任泙擦鵑任靴拭┗盍鹿粡寂蝟赱齠洲痲筵娼より前では <code>HAVE_SHMGET</code> で十分でした。)</p> + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就韶蜴膊蔗迪▽苳餐鞜竏の停止と再起動</a></p> + <hr /> + + <h2><a id="scriptinterpretersource" + name="scriptinterpretersource">ScriptInterpreterSource + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ScriptInterpreterSource + registry|script<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> + <code>ScriptInterpreterSource script</code> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥蜴粹ぢのみ) + + <p>このディレクティブは、Apache 1.3.5 以降で CGI + スクリプトを孫圓垢襴苳詞合に利用するインタ・踉札廛螢燭髻鹿粡寂蝟赱齠洲痲筵娼どのよう瘢雹に探し出すかについて制御するために使用します。 + デフォルトの豺腓魯好螢廛箸ー蝟昭粡竚癈鷭п粐Ьぢ行に指されているインタ・踉札廛螢燭鮖藩僂靴泙垢鹿粡寂蝟赱齠洲痲筵娼噬鱸頸侮鴃鱚鰉阨鱆鱚芍齡鴒鹿粡寂蝟赱齠洲痲筵娼を指定すると、スクリプトファイルの拡張子 (例えば、 .pl) + をキ・踉擦箸靴董怏鈔阯のレジストリを検索するよう瘢雹になります。</p> + <hr /> + + <h2><a id="sendbuffersize" name="sendbuffersize">SendBufferSize + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> SendBufferSize + <em>bytes</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢサ・踉札个蓮埣仄蝟昭粡竚癈鷭п粐Ьぢバッファのサイズを指定されたバイト数に設定します。高速で大きな遅延 + (<em>例えば</em>、100ms 程度あるよう瘢雹な高速な大陸瘢雹横断回線など) + のある豺腓法▲汽ぅ困鯢現爐喙蝟昭粡竚癈鷭п粐Ьぢのデフォルト以紊紡腓垢襪燭瓩鉾鵙苳誌に有用です。</p> + <hr /> + + <h2><a id="serveradmin" name="serveradmin">ServerAdmin + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ServerAdmin + <em>email-address</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍纈鯀粱蜴鹿粡寂蝟赱齠洲痲筵娼は、クライアントに返すさまざまなエラ・踉札瓮奪察ジ中に記述する、 + 電子メ・踉札襪離▲疋譽垢鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢその際、これのために専用のアドレスを設定するのが良いでしょう瘢雹。 + <em>例えば、</em></p> + + <blockquote> + <code>ServerAdmin www-admin@foo.bar.com</code> + </blockquote> + といったよう瘢雹にします。ユ・踉札兇呂い弔皀機バに関する話であるという瘢雹ことを + 明記してくるわけではありませんので。 + + <hr /> + + <h2><a id="serveralias" name="serveralias">ServerAlias + ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ServerAlias + <em>hostname</em> [<em>hostname</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> バ・踉札船礇襯曠好碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> ServerAlias は Apache 1.1 + 以降で利用可能です。 + + <p>ServerAliasディレクティブは、<a + href="../vhosts/name-based.html">ネ・踉札爛戞スのバ・踉札船礇襯曠好において + 使用するホストの別巳苳擦鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> + + <pre> + <VirtualHost *> + ServerName server.domain.com + ServerAlias server server2.domain.com server2 + ... + </VirtualHost> + </pre> + + <p><strong>参墾踉晒齡鳫鈑踉氏鱚羹〓闢草痺蒹ぢバ・踉札船礇襯曠好叛睫製鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黼鴟纈釶辣釶辣就黼鴟纈釶辣▽苳屍纈鯲瘢綣蝟昭粡竚癈鷭п粐Ьぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ServerName + <em>fully-qualified-domain-name</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍纈鯲瘢ディレクティブは、サ・踉札个離曠好般を設定します。 + これは、リダイレクトする URL を生成する際に利用されます。 + 特に指定がなされていなかった豺腓砲蓮▽踉捌サ・踉札个防嬪燭気譴討い鹿粡寂蝟赱齠洲痲筵娼賓ぢアドレスから推測しますが、これは確造癖,任呂覆鹿粡寂蝟赱齠洲痲筵娼正しいホスト巳苳擦鯤屬垢箸盡造蠅泙擦鵝碣鹿粡寂蝟赱齠洲痲筵娼例えば:</p> + + <blockquote> + <code>ServerName www.example.com</code> + </blockquote> + を、マシンに対する正しい (メインの) 巳苳餐阿鹿粡寂蝟赱齠洲痲筵娼竢粤皷逅跂逅跂闕閼絋苳であるときに使う瘢雹ことができます。 + + <p><a href="../vhosts/name-based.html">巳苳餐哀戞スのバ・踉札船礇襯曠好鹿粡寂蝟赱齠洲痲筵娼を利用している豺隋畆蝟昭粡竚癈鷭п粐Ь鱚羹■鶯跏闢槇竢粤逅詞帷鶯貳闢熙瘢雹苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼セクション内の <code>ServerName</code> + はこのバ・踉札船礇襯曠好箸縫泪奪舛垢襪燭瓩鵬燭螢┘好箸鹿粡寂蝟赱齠洲痲筵娼被齡ヘッダに現れる必要があるのかを指定します。</p> + + <p><strong>参闔胼苳産碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹〓粮鶚竅癆鶤蔗迪▽苳残林ぢに関する問題</a><br /> + <a href="../vhosts/">Apacheバ・踉札船礇襯曠好叛睫製碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹■繝瘤闔蜒瘡釶辣▽苳師黼秩鈿鉗竅賣瘢絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就n瘢纐蜥瘡蓖齡▽苳士瘢縉蜥瘡被齡碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹■黼鴟纈瘡蛛鵞嚆鴟纈糟蛛鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏‰纈鴃癆茴瘢綵‰纈鴃癆茴嚆鴟纈倚鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ServerPath + <em>ディレクトリパス</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> バ・踉札船礇襯曠好碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> ServerPath は Apache 1.1 + 以降で利用可能です。 + + <p>ServerPath ディレクティブは、<a + href="../vhosts/">ネ・踉札爛戞スのバ・踉札船礇襯曠好において利用する + レガシ・踉擦厂ぢパス巳苳擦鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ参墾踉晒齡鳫鈑踉氏鱚羹〓闢草痺蒹鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好叛睫製鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黼鴟纈鳫阡釶辣就黼鴟纈鳫阡▽苳屍纈鰔闖蝟昭粡竚癈鷭п粐Ьぢディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ServerRoot + <em>ディレクトリパス</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ServerRoot + /usr/local/apache</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍纈鰔闖蝟昭粡竚癈鷭п粐Ьぢディレクティブは、サ・踉札个踉紫に利用するディレクトリを設定します。 + 通錙竢粤竢鈕踉晒竢粤ぢや <code>logs/</code> + といったサブディレクトリが含まれます。 + また、側苳擦寮瀋螢侫.ぅ襪砲韻訌蠡丱僖垢蓮鹿粡寂蝟赱齠洲痲筵娼このディレクトリからとなります。</p> + + <p><a href="../invoking.html">httpd の <code>-d</code> について</a> + を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍纈鰔闖の権限をどのよう瘢雹に設定するかについては <a + href="../misc/security_tips.html#serverroot">セキュリティに関する覚書</a> + に霾鵑△蠅泙后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黼鴟纈皷芬癆紜鹿粡寂蝟赱齠洲痲筵娼釶辣就黼鴟纈皷芬癆紜嚆鴟纈嚔芬癆ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ServerSignature + On|Off|EMail<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ServerSignature + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> ServerSignature + は Apache 1.3 以降で利用可能です。 + + <p>ServerSignature ディレクティブは、サ・踉札个言垢襯疋絅瓮鵐鹿粡寂蝟赱齠洲痲筵娼ぢエラ・踉札瓮奪察ジ、mod_proxy における FTP のディレクトリリスト、 + mod_info の出力、等々) + の最王踉珊圓防嬪燭垢襯侫奪燭寮瀋蠅鮃圓覆い泙后鹿粡寂蝟赱齠洲痲筵娼そのよう瘢雹な、フッタ行を有効にしたい理由としては、 + プロキシが複数連なっている豺腓法▲罅ザはどのサ・踉札个屬靴鹿粡寂蝟赱齠洲痲筵娼エラ・踉札瓮奪察ジかを知る蠱覆曚箸鵑斌気い蕕任后碣鹿粡寂蝟赱齠洲痲筵娼デフォルトである <samp>Off</samp> + に設定をすると、エラ・踉擦虜櫃旅圓淦気譴泙后鹿粡寂蝟赱齠洲痲筵娼ぢそして、Apache-1.2 以前と互換の動作をします) + <samp>On</samp> に設定した豺腓蓮韻縫疋絅瓮鵐箸涼罎法鹿粡寂蝟赱齠洲痲筵娼サ・踉札个離弌ジョン、稼動中のバ・踉札船礇襯曠好箸踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就s纈鴈瘢紜嚆鴟纈令辣ぢの書かれた行を追加し、 + <samp>EMail</samp> にした豺腓呂気蕕忙王苳使されたドキュメントに対する <a + href="#serveradmin">ServerAdmin</a> を指す "mailto:" が追加されます。</p> + <hr /> + + <h2><a id="servertokens" name="servertokens">ServerTokens + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ServerTokens + Minimal|ProductOnly|OS|Full<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ServerTokens + Full</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑闥絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> ServerTokens は Apache 1.3 + 以降で利用可能です。 + また、<code>ProductOnly</code> キ・踉札錙ドは Apache 1.3.12 + 以降で利用可能です。 + + <p>このディレクティブは、クライアントに送り返す <samp>Server</samp> + レスポンスヘッダ内に、サ・踉札个琉貳姪喙蝟昭粡竚癈鷭п粐Ьぢ鑛未筺▲灰鵐僖ぅ襪気譴徳箸濆泙譴討い襯皀献紂ルの霾鵑鹿粡寂蝟赱齠洲痲筵娼含めるかどう瘢雹かを指定します。</p> + + <dl> + <dt><code>ServerTokens Prod[uctOnly]</code></dt> + + <dd>サ・踉札个例えば): <samp>Server: + Apache</samp> といったよう瘢雹に送ります。</dd> + + <dt><code>ServerTokens Min[imal]</code></dt> + + <dd>サ・踉札个例えば): <samp>Server: + Apache/1.3.0</samp> といったよう瘢雹に送ります。</dd> + + <dt><code>ServerTokens OS</code></dt> + + <dd>サ・踉札个例えば): <samp>Server: Apache/1.3.0 + (Unix)</samp> といったよう瘢雹に送ります。</dd> + + <dt><code>ServerTokens Full</code> (もしくは未指定)</dt> + + <dd>サ・踉札个例えば): <samp>Server: Apache/1.3.0 + (Unix) PHP/3.0 MyMod/1.2</samp> といったよう瘢雹に送ります。</dd> + </dl> + + <p>この設定はサ・踉札仭澗里謀僂気譟鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好筈苳糸で有効にしたり無効にしたりはできません。</p> + <hr /> + + <h2><a id="servertype" name="servertype">ServerType + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ServerType + <em>type</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ServerType + standalone</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍纈鰓ディレクティブは、サ・踉札个轡好謄爐砲匹里茲逅擦鹿粡寂蝟赱齠洲痲筵娼孫圓気譴襪鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃奘鞳蹙苳には、,里匹舛蕕鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘蜴續筅踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐サ・踉札个蓮蜴續プロセスから孫圓気譟鹿粡寂蝟赱齠洲痲筵娼竢粤鈬闔网踉晒竢粤ぢに起動するコマンドを記述します。</dd> + + <dt>standalone</dt> + + <dd>サ・踉札个蓮▲如モンプロセスとして孫圓掘鹿粡寂蝟赱齠洲痲筵娼システムのスタ・踉札肇▲奪廛好螢廛鹿粡寂蝟赱齠洲痲筵娼└踉祉閼絋苳晒續祚鱆閭瘡閼絋苳か <code>/etc/rc3.d/...</code>) + に起動するコマンドを記述します。</dd> + </dl> + + Inetd は、あまり利用されません。 + その設定では、HTTP 接続を韻訶戮法▲機バが 1 + から立ち紊欧蕕譟∪楝海擦靴晋紊縫廛蹈哀薀爐盻擦靴泙后鹿粡寂蝟赱齠洲痲筵娼これは、接続の度にとても負荷がかかりますが、 + セキュリティを理由にこのオプションを好む管理圓發い泙后鹿粡寂蝟赱齠洲痲筵娼肬銓闌闥就鱚笄ただ、Inetd モ・踉札匹録筅苳皐されておらず、 + 今後もずっと利用可能という瘢雹わけではありません。 + 可能な限り使わないでください。</font> + + <p>Standalone は、ずっと効率的であるため、ServerType + の標準的な設定となっています。 + サ・踉札个楼貪抖阿気譴襪函△垢戮討寮楝海鮟萢靴泙后鹿粡寂蝟赱齠洲痲筵娼もし、負荷の高いサイトで Apache を利用するつもりであれば、 + standalone は唯一のオプションといえるでしょう瘢雹。</p> + <hr /> + + <h2><a id="shmemuidisuser" name="shmemuidisuser">ShmemUIDisUser + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ShmemUIDisUser + <em>on|off</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ShmemUIDisUser + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> + + <p>ShmemUIDisUser ディレクティブは System V + 共瘢雹有メモリに基づいたスコアボ・踉札匹痢⊇衢踉市の <code>uid</code> と + <code>gid</code> をサ・踉札个寮瀋蠅踉氏鱚羹■纈▽苳師黼鬢踉晒瓲苳と + <a href="#group">Group</a> に変更するかどう瘢雹かを制御します。 + Apache 1.3.26 までのリリ・踉札垢魯妊侫襯箸任海譴鮃圓辰討い泙靴拭鹿粡寂蝟赱齠洲痲筵娼子プロセスは既に共瘢雹有メモリセグメントにアタッチされていますので、 + その動作は Apache の通錣瞭虻遒砲鷲廚任呂覆況發鯔匹阿燭瓩砲癲鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢはそのよう瘢雹な動作をしなくなりました。しかし、特別な豺腓砲鹿粡寂蝟赱齠洲痲筵娼以前の動作が必要になることもあり、それはこのディレクティブを + <code>on</code> にすることで存修任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのディレクティブはSystem V に基づいたスコアボ・踉札匹任呂覆ぁ鹿粡寂蝟赱齠洲痲筵娼竢粤迯瘰閼絋苳のよう瘢雹なシステムでは効力はありません。 + + </p> + + <hr /> + + <h2><a id="startservers" name="startservers">StartServers + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> StartServers + <em>数値</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>StartServers + 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍鶯嚆鴟纈ディレクティブは、起動時にどれだけのサ・踉札仍劵廛蹈札垢鹿粡寂蝟赱齠洲痲筵娼孫圓垢襪里鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼プロセスの数は、負荷によって動的に制御されるため、 + 普通はこのパラメ・踉札燭鯤儿垢垢詬海呂曚箸鵑匹△蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳四蜒鳫齒胄蜴粹鹿粡寂蝟赱齠洲痲筵娼で孫圓垢襴苳詞合には、このディレクティブは意味を持ちません。 + Windows では錣飽譴弔了劵廛蹈札垢垢戮討離螢┘好箸魄靴い泙后鹿粡寂蝟赱齠洲痲筵娼子プロセスの内部では、リクエストはスレッドで処理されます。 + <a href="#threadsperchild">ThreadsPerChild</a> ディレクティブは + リクエストを扱う瘢雹最大の子スレッドの数を制御しますので、UNIX で + <samp>StartServers</samp> を指定したのと同じよう瘢雹な効果になります。</p> + + <p><a href="#minspareservers">MinSpareServers</a> や + <a href="#maxspareservers">MaxSpareServers</a> も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鱚痲齔纈竏蛹笄鹿粡寂蝟赱齠洲痲筵娼釶辣就鱚痲齔纈竏蛹笄壽鱚痲麸纈宙蛹筅踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ構文:</strong></a> ThreadsPerChild + <em>数値</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ThreadsPerChild + 50</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥蜴粹蝟昭粡竚癈鷭п粐Ь續怐鱚踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢ互換性:</strong> Windows 紊覇虻遒垢鞜竏窺骸蝟昭粡竚癈鷭п粐Ьぢ以降においてのみ有効 + + <p>このディレクティブは、サ・踉札个匹譴世韻離好譽奪匹鮖藩僂垢襪里鹿粡寂蝟赱齠洲痲筵娼指┐靴泙后鹿粡寂蝟赱齠洲痲筵娼これが、サ・踉札个萢任觝蚤臉楝蛙瑤砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼たくさんのヒットがあるサイトの豺腓砲録佑鯀笋紘廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢなお、このディレクティブは UNIX システム紊任楼嫐鮖舛泙擦鵝鹿粡寂蝟赱齠洲痲筵娼嬶婦ぢの豺腓砲蓮踉氏鱚羹■齡癇纈鴦▽苳屍鶯嚆鴟纈鵙踉晒瓲苳や <a + href="#maxrequestsperchild">MaxRequestsPerChild</a> + を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鱚痲齡痺謫蝴紜鹿粡寂蝟赱齠洲痲筵娼釶辣就鱚痲齡痺謫蝴紜壽鱚痲囈痺誡蝴絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ構文:</strong></a> ThreadStackSize + <em>数値</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>ThreadStackSize + 65536</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥續怐鱚踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢ互換性:</strong> NetWare 紊覇虻遒垢鞜竏窺骸蝟昭粡竚癈鷭п粐Ьぢ以降においてのみ有効 + + <p>このディレクティブは、各スレッドのスタックのサイズをサ・踉札个忙悧踉雑します。 + スタックがオ・踉札丱侫蹇するよう瘢雹であれば、より大きな数値に設定する + 必要があります。</p> + + <p>このディレクティブは、側苳擦離轡好謄爐陸苳詞合には意味を持ちません。</p> + <hr /> + + <h2><a id="timeout" name="timeout">TimeOut ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> TimeOut + <em>数値</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>TimeOut + 300</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蜊縅ぢディレクティブは、現在のところ + 以王踉擦了阿弔梁圓岨屬砲弔い討猟蟲舛鮃圓い泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉誌讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳伺都ぢリクエストを右踉肢るのにかかる総時間</li> + + <li>POST や PUTリクエストにおいて、,弛鹿粡寂蝟赱齠洲痲筵娼パケットが届くまでの待ち時間</li> + + <li>レスポンスを返す際、TCP の ACK が帰ってくるまでの時間</li> + </ol> + 茲砲亙漫垢寮瀋蠅鬚垢襪海箸椎修砲任襪茲逅珊涌特罎任后鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢ以前においてはタイマ・踉擦屋がデフォルトでしたが、 + 300 に王踉擦欧蕕譴泙靴拭外でもほとんどの豺腓禄淑垢訝佑任后鹿粡寂蝟赱齠洲痲筵娼コ・踉札秒罎諒僂弗苳詞所にまだパケットを送る際にタイマをリセットしない + 貊蠅△襪發靴譴覆い里如▲妊侫襯箸鬚茲螟苳皿さい値にはしていません。 + <hr /> + + <h2><a id="usecanonicalname" + name="usecanonicalname">UseCanonicalName ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> UseCanonicalName + on|off|dns<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>UseCanonicalName + on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑頸蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> UseCanonicalName + は Apache 1.3 以降で利用可能です。 + + <p>多くの靴鞜竏は<em>併王苳使</em> + URL、すなわち同じサ・踉札个鮖悗厂、を作成する必要があります。 + <code>UseCanonicalName on</code> を使う瘢雹と (1.3 + より前のすべてのバ・踉札献腑鵑任草痺蒹ぢは <a + href="#servername">ServerName</a> ディレクティブと <a + href="#port">Port</a> + ディレクティブを使ってサ・踉札个寮畿踉三な巳苳餐阿鮑鄒靴泙后鹿粡寂蝟赱齠洲痲筵娼この巳苳餐阿垢戮討陸踉捌己参厂ぢで使われ、CGI の + <code>SERVER_NAME</code> と <code>SERVER_PORT</code> + にも使われます。</p> + + <p>例えば、<a href="#servername">ServerName</a> が + <code>www.example.com</code> に設定されていて、<a + href="#port">Port</a> が <code>9090</code> + に設定されている豺腓蓮▲機バの<em>正阿別前</em>は + <code>www.example.com:9090</code> になります。<code>Port</code> + の値がデフォルトの <code>80</code> であるときは、 + <code>:80</code> は<em>正阿別前</em>からは覆譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳師黼秩鈿鉗竅賣瘢閹网踉晒竢粤ぢでは Apache + はクライアントがホスト巳苳擦肇檗トを提供した豺腓砲呂修譴蕕鮓気胞踉捌己参鹿粡寂蝟赱齠洲痲筵娼孀を作成します (提供されていない豺腓櫓苳糸で定義されているよう瘢雹に + 正阿別前を使います)。 + これらの値は<a href="../vhosts/name-based.html">巳苳餐哀戞スの + バ・踉札船礇襯曠好を汰垢襪里忙箸錣譴討い襪里汎韻乎佑如鹿粡寂蝟赱齠洲痲筵娼同じクライアントから萋世任訝佑任后断変数 + <code>SERVER_NAME</code> と <code>SERVER_PORT</code> + もクライアントから与えられた値から作成されます。</p> + + <p>これが有用な豺腓領磴蓮▲ぅ鵐肇薀優奪箸離機バで、<code>www</code> + のよう瘢雹な短い巳苳餐阿妊罅ザがマシンに接続しているときです。 + ユ・踉札兇擦ぬ前を入力して、URL + が<em>最後のスラッシュ無しの</em>ディレクトリへのものであるときに、 + Apache はリクエストを <code>http://www.domain.com/splat/</code> + へリダイレクトすることに気付くでしょう瘢雹。 + 認擇鬚垢襪茲逅擦棒瀋蠅靴討い襪函△海陸苳詞合ユ・踉札兇鹿粡寂蝟赱齠洲痲筵娼回認擇鬚靴覆韻譴个覆蕕覆覆蠅泙竢粤踉晒竢粤ぢに対して + 1 回、<code>www.domain.com</code> に対してもう瘢雹一回 -- + より椶靴う苳諮報は <a href="../misc/FAQ.html#prompted-twice">この話題の + FAQ</a> を参箸靴討世気ぢ。しかし、<code>UseCanonicalName</code> + が off になっていると、Apache は <code>htttp://www/splat/</code> + にリダイレクトします。</p> + + <p>三つ目のオプション <code>UseCanonicalName DNS</code> は、 + <code>Host:</code> + ヘッダを提供しない古いクライアントをサポ・踉札箸靴紳腟呂仄蝟昭粡竚癈鷭п粐Ьぢベ・踉札垢離弌チャルホスティングで使用されることを意図しています。 + このオプションでは、Apache はクライアントが接続した IP アドレスに + DNS の逆引きを行なって併王苳使 URL を作成します。</p> + + <p><strong>警告:</strong> CGI が <code>SERVER_NAME</code> + に関する王苳残蠅鮃圓覆辰討い襪箸蓮鹿粡寂蝟赱齠洲痲筵娼このオプションの設定で動作しなくなるかもしれません。 + クライアントは側踉餐的にはホスト巳苳擦砲箸靴鹿粡寂蝟赱齠洲痲筵娼何でも胞苳擦澆涼佑鮖慊蠅垢襪海箸任泙后靴掘断が + <code>SERVER_NAME</code> のみを使って併王苳使 URL + を作成している豺腓呂匹寮瀋蠅鮃圓覆辰討眤胼苳紙夫なはずです。</p> + + <p><strong>参墾踉晒齡鳫鈑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就s纈鴈瘢紜嚆鴟纈令辣蓿繙就p闥槇倆鶯鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就纈釶辣就纈▽苳師黼ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> User + <em>unix-userid</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>User + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳師黼ディレクティブはサ・踉札个螢┘好箸鳳垢襪箸離罅ザ + ID を設定します。このディレクティブを使う瘢雹ためには、standalone + サ・踉札个闖として起動されていなければなりません。 + <em>Unix-userid</em> は以王踉擦里匹譴任墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳ぢユ・踉札玉</dt> + + <dd>巳苳餐阿妊罅ザを指定。</dd> + + <dt># の後にユ・踉札業峭罅熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢ番号でユ・踉札兇鮖慊蝓筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼ユ・踉札兇漏阿寮こ逅擦藐蕕譴襪海箸魄嫂泙靴討い覆ぅ侫.ぅ襪鬟▲札鹿粡寂蝟赱齠洲痲筵娼できてしまう瘢雹よう瘢雹な権限が無いものにすべきで、同様に httpd のリクエスト + に対して意図されていないコ・踉札匹鬢踉斬行できないよう瘢雹なものにすべきです。 + サ・踉札个鬢踉斬行するためだけに新しい専用のユ・踉札兇肇哀襦プを設定することを + お勧めします。管理圓涼罎砲踉祉閼絋苳試閧閼踉晒竢粤ぢを使う瘢雹人もいますが、 + このユ・踉札兇櫓苳誌に使用可能という瘢雹わけではなく、胞苳擦泙靴い錣韻任發△蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼例えば、mod_proxy のキャッシュを使用しているときは、 + それをこのユ・踉札兇▲札垢任詆廚△蠅泙鹿粡寂蝟赱齠洲痲筵娼└踉氏鱚羹閼熕鳫譯竅竏纈闖槇竢粤秩竏縡闖熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a> を参ぢ。 + + <p>注意: root でないユ・踉札兇妊機バを孫圓靴職苳詞合は、より覆じ造鹿粡寂蝟赱齠洲痲筵娼ユ・踉札兇悗諒儿垢胞踉産敗し、元々のユ・踉札兇箸靴豆踉斬行し続けます。 + root でサ・踉札个鬢踉斬行したときは、親プロセスが root + のまま孫圓径海韻襪里論畿苳誌な動作です。</p> + + <p>特別な注意: このディレクティブを <VirtualHost> + 内で使う瘢雹には適切に設定された <a href="../suexec.html">suEXEC + ラッパ・踉が必要です。このよう瘢雹に <VirtualHost> + の中で使われたときは CGI を孫圓垢襯罅ザだけが影響を韻泙后鹿粡寂蝟赱齠洲痲筵娼断以外のリクエストは依然として黼鮗蝟昭粡竚癈鷭п粐Ьぢディレクティブで指定されたユ・踉札兇能萢気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢセキュリティ: 燭鬚笋辰討い襪魎袷瓦僕鬚靴討い鹿粡寂蝟赱齠洲痲筵娼どのよう瘢雹な危険性があるかを理解していない豺腓蓮鹿粡寂蝟赱齠洲痲筵娼專纈もしくは <a href="#group">Group</a>) を root + にしないでください。</p> + + <hr /> + + <h2><a id="virtualhost" name="virtualhost"><VirtualHost> + ディレクティブ</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> <VirtualHost + <em>addr</em>[:<em>port</em>] [<em>addr</em>[:<em>port</em>]] + ...> ... </VirtualHost> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑闥絎碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> IP アドレスベ・踉札垢任覆ぅ弌チャルホストは、 + Apache 1.1 以降で利用可能です。<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>互換性:</strong></a> 複数のアドレスの指定は Apache 1.2 + 以降でのみ可能です。 + + <p><VirtualHost> 及び </VirtualHost> は、 + あるバ・踉札船礇襯曠好箸紡个靴討里濺僂気譴襯妊譽謄峽欧魄呂鹿粡寂蝟赱齠洲痲筵娼ために使われます。 + バ・踉札船礇襯曠好肇灰鵐謄好箸乃弔気譴襪垢戮討離妊譽謄屬鮖慊蟆椎修任后鹿粡寂蝟赱齠洲痲筵娼サ・踉札个∋慊蠅気譴織弌チャルホストにあるドキュメントへのリクエストを栄佞韻職苳詞合、 + <VirtualHost> セクションの中にあるディレクティブが適用されます。 + + <em>Addr</em> は、,里發里僂任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚バ・踉札船礇襯曠好箸アドレス</li> + + <li>バ・踉札船礇襯曠好箸に対応する完全なドメイン巳苳薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼例: + + <blockquote> + <code><VirtualHost 10.1.2.3><br /> + ServerAdmin webmaster@host.foo.com<br /> + DocumentRoot /www/docs/host.foo.com<br /> + ServerName host.foo.com<br /> + ErrorLog logs/host.foo.com-error_log<br /> + TransferLog logs/host.foo.com-access_log<br /> + </VirtualHost></code> + </blockquote> + 各々のバ・踉札船礇襯曠好箸砲呂修譴れ違う瘢雹 IP + アドレス、ポ・踉札犯峭网踉祉しくはホスト巳苳擦紡弍垢詆廚△蝓鹿粡寂蝟赱齠洲痲筵娼番目の豺腓砲亙瑤離▲疋譽垢仄蝟昭粡竚癈鷭п粐Ьぢパケットを任襪茲逅擦縫機バマシンを設定しなければなりません。 + (もし、マシンが複数のネットワ・踉札ぅ鵐拭フェ・踉札垢鮖燭覆う苳詞合は、 + (OSがサポ・踉札箸靴討い譴竢粤蜀竢鈕蜃跚癈閼絋苳コマンドや + <a href="../misc/vif-info.html">VIF</a> のよう瘢雹なカ・踉札優襯僖奪鹿粡寂蝟赱齠洲痲筵娼囎醢哦塒堪窺用) により達成できます)。 + + <p>複数の IP アドレスを定義することもできます。 + 二つのインタフェ・踉札垢紡个靴篤韻弧前で応答しているときに有用でしょう瘢雹。 + 例えば、内部向け (イントラネット) と + 外部向け (インタ・踉札優奪にバ・踉札船礇襯曠好箸鬚靴討い襴苳詞合です。<br /> + 設定例:</p> + + <blockquote> + <code><VirtualHost 192.168.1.2 204.255.176.199><br /> + DocumentRoot /www/docs/host.foo.com<br /> + ServerName host.foo.com<br /> + ServerAlias host<br /> + </VirtualHost></code> + </blockquote> + + <code>_default_</code> という瘢雹特別な巳苳餐阿鮖慊蠅垢襪海箸砲茲蝓鹿粡寂蝟赱齠洲痲筵娼側苳擦離弌チャルホストで指定されていない IP + アドレスすべてに対してマッチさせることが可能です。_default_ + バ・踉札船礇襯曠好箸気い箸蓮△發靴匹海砲皀泪奪舛靴覆い蜥瘡被齡鹿粡寂蝟赱齠洲痲筵娼セクションの外の定義からなる「隋廛機バ設定が使用されます。 + + <p><code>:port</code> + といった形阿乃劼垢襪海箸砲茲蝓▲泪奪舛気擦襯檗トを変更可能です。 + この指定をしない豺腓砲蓮▽踉紫サ・踉札仞瀋蠅砲韻覦貳嶌埜紊鹿粡寂蝟赱齠洲痲筵娼竢粤蓿繙就p闥槇倆鶯閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢで指定されたポ・踉札箸妊侫襯箸箸覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼竢粤昏閼絋苳を指定することにより、 + アドレス紊里垢戮討離檗トにマッチします。(<code>_default_</code> + のときはこれを使う瘢雹ことが推気譴討い泙后踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑セキュリティに関して</strong>: + サ・踉札弌を起動した以外のユ・踉札兇蹈哀侫.ぅ襪欖匹気譴襯妊譽肇蠅鹿粡寂蝟赱齠洲痲筵娼書き込み可能なときになう踉札札絅螢謄砲蕕譴覯椎柔△襪陸苳施細は + <a href="../misc/security_tips.html">セキュリティに関するコツ</a> + を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ注意点</strong>: <VirtualHost> は Apache が + Listen する IP アドレスには影響を与え<strong>ません</strong>。 + <a href="#bindaddress">BindAddress</a> か + <a href="#listen">Listen</a> を使って Apache が正しいアドレスを + listen するよう瘢雹に設定する必要があるかもしれません。</p> + + <p><strong>参墾踉晒齡鳫鈑踉氏鱚羹〓闢草痺蒹ぢバ・踉札船礇襯曠好叛睫製碣鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳ぢ参墾踉晒齡鳫鈑踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就銖癘縺譬栂に関する問題</a><br /> + <strong>参墾踉晒齡鳫鈑踉氏鱚羹〓砠鈔譬草痺蒹ぢが利用するアドレスとポ・踉札箸鮴瀋蠅垢碣鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳ぢ参闔胼苳産蝟昭粡竚癈鷭п粐Ьぢリクエストを韻榛櫃法曚覆詈瑤離札轡腑鵑匹里茲逅擦砲靴徳箸濆腓錣気譴襪里砲弔い討鹿粡寂蝟赱齠洲痲筵娼蓿繙就繝闔鶤蔗迪▽苳残蜥繝鴒弥竅闔鍋跂セクションの動作法</a> + </p> + <hr /> + + <!--#include virtual="footer.html" --> + </body> +</html> + + + diff --git a/htdocs/manual/mod/directive-dict.html.en b/htdocs/manual/mod/directive-dict.html.en new file mode 100644 index 0000000000..33f21e5393 --- /dev/null +++ b/htdocs/manual/mod/directive-dict.html.en @@ -0,0 +1,304 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Definitions of terms used to describe Apache + directives</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Terms Used to Describe Apache + Directives</h1> + + <p>Each Apache configuration directive is described using a + common format that looks like this:</p> + + <dl> + <dd><a href="#Syntax" rel="Help"><strong>Syntax:</strong></a> + <em>directive-name</em> <em>some args</em><br /> + <a href="#Default" rel="Help"><strong>Default:</strong></a> + <samp><em>directive-name default-value</em></samp><br /> + <a href="#Context" rel="Help"><strong>Context:</strong></a> + <em>context-list</em><br /> + <a href="#Override" + rel="Help"><strong>Override:</strong></a> + <em>override</em><br /> + <a href="#Status" rel="Help"><strong>Status:</strong></a> + <em>status</em><br /> + <a href="#Module" rel="Help"><strong>Module:</strong></a> + <em>module-name</em><br /> + <a href="#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + <em>compatibility notes</em></dd> + </dl> + + <p>Each of the directive's attributes, complete with possible + values where possible, are described in this document.</p> + + <h2>Directive Terms</h2> + + <ul> + <li><a href="#Syntax">Syntax</a></li> + + <li><a href="#Default">Default</a></li> + + <li><a href="#Context">Context</a></li> + + <li><a href="#Override">Override</a></li> + + <li><a href="#Status">Status</a></li> + + <li><a href="#Module">Module</a></li> + + <li><a href="#Compatibility">Compatibility</a></li> + </ul> + <hr /> + + <h2><a id="Syntax" name="Syntax">Syntax</a></h2> + + <p>This indicates the format of the directive as it would + appear in a configuration file. This syntax is extremely + directive-specific, and is described in detail in the + directive's definition. Generally, the directive name is + followed by a series of one or more space-separated arguments. + If an argument contains a space, the argument must be enclosed + in double quotes. Optional arguments are enclosed in square + brackets. Where an argument can take on more than one possible + value, the possible values are separated by vertical bars "|". + Literal text is presented in the default font, while + argument-types for which substitution is necessary are + <em>emphasized</em>. Directives which can take a variable + number of arguments will end in "..." indicating that the last + argument is repeated.</p> + + <p>Directives use a great number of different argument types. A + few common ones are defined below.</p> + + <dl> + <dt><em>URL</em></dt> + + <dd>A complete Uniform Resource Locator including a scheme, + hostname, and optional pathname as in + <code>http://www.example.com/path/to/file.html</code></dd> + + <dt><em>URL-path</em></dt> + + <dd>The part of a <em>url</em> which follows the scheme and + hostname as in <code>/path/to/file.html</code>. The + <em>url-path</em> represents a web-view of a resource, as + opposed to a file-system view.</dd> + + <dt><em>file-path</em></dt> + + <dd>The path to a file in the local file-system beginning + with the root directory as in + <code>/usr/local/apache/htdocs/path/to/file.html</code>. + Unless otherwise specified, a <em>file-path</em> which does + not begin with a slash will be treated as relative to the <a + href="core.html#serverroot">ServerRoot</a>.</dd> + + <dt><em>directory-path</em></dt> + + <dd>The path to a directory in the local file-system + beginning with the root directory as in + <code>/usr/local/apache/htdocs/path/to/</code>.</dd> + + <dt><em>filename</em></dt> + + <dd>The name of a file with no accompanying path information + as in <code>file.html</code>.</dd> + + <dt><em>regex</em></dt> + + <dd>A <a href="../misc/FAQ.html#regex">regular + expression</a>, which is a way of describing a pattern to + match in text. The directive definition will specify what the + <em>regex</em> is matching against.</dd> + + <dt><em>extension</em></dt> + + <dd>In general, this is the part of the <em>filename</em> + which follows the last dot. However, Apache recognizes + multiple filename extensions, so if a <em>filename</em> + contains more than one dot, each dot-separated part of the + filename following the first dot is an <em>extension</em>. + For example, the <em>filename</em> <code>file.html.en</code> + contains two extensions: <code>.html</code> and + <code>.en</code>. For Apache directives, you may specify + <em>extension</em>s with or without the leading dot. In + addition, <em>extension</em>s are not case sensitive.</dd> + + <dt><em>MIME-type</em></dt> + + <dd>A method of describing the format of a file which + consists of a major format type and a minor format type, + separated by a slash as in <code>text/html</code>.</dd> + + <dt><em>env-variable</em></dt> + + <dd>The name of an <a href="../env.html">environment + variable</a> defined in the Apache configuration process. + Note this is not necessarily the same as an operating system + environment variable. See the <a + href="../env.html">environment variable documentation</a> for + more details.</dd> + </dl> + <hr /> + + <h2><a id="Default" name="Default">Default</a></h2> + + <p>If the directive has a default value (<em>i.e.</em>, if you + omit it from your configuration entirely, the Apache Web server + will behave as though you set it to a particular value), it is + described here. If there is no default value, this section + should say "<em>None</em>". Note that the default listed here + is not necessarily the same as the value the directive takes in + the default httpd.conf distributed with the server.</p> + <hr /> + + <h2><a id="Context" name="Context">Context</a></h2> + + <p>This indicates where in the server's configuration files the + directive is legal. It's a comma-separated list of one or more + of the following values:</p> + + <dl> + <dt><strong>server config</strong></dt> + + <dd>This means that the directive may be used in the server + configuration files (<em>e.g.</em>, <samp>httpd.conf</samp>, + <samp>srm.conf</samp>, and <samp>access.conf</samp>), but + <strong>not</strong> within any + <samp><VirtualHost></samp> or <Directory> + containers. It is not allowed in <samp>.htaccess</samp> files + at all.</dd> + + <dt><strong>virtual host</strong></dt> + + <dd>This context means that the directive may appear inside + <samp><VirtualHost></samp> containers in the server + configuration files.</dd> + + <dt><strong>directory</strong></dt> + + <dd>A directive marked as being valid in this context may be + used inside <samp><Directory></samp>, + <samp><Location></samp>, and <samp><Files></samp> + containers in the server configuration files, subject to the + restrictions outlined in <a href="../sections.html">How + Directory, Location and Files sections work</a>.</dd> + + <dt><strong>.htaccess</strong></dt> + + <dd>If a directive is valid in this context, it means that it + can appear inside <em>per</em>-directory + <samp>.htaccess</samp> files. It may not be processed, though + depending upon the <a href="#Override" + rel="Help">overrides</a> currently active.</dd> + </dl> + + <p>The directive is <em>only</em> allowed within the designated + context; if you try to use it elsewhere, you'll get a + configuration error that will either prevent the server from + handling requests in that context correctly, or will keep the + server from operating at all -- <em>i.e.</em>, the server won't + even start.</p> + + <p>The valid locations for the directive are actually the + result of a Boolean OR of all of the listed contexts. In other + words, a directive that is marked as being valid in + "<samp>server config, .htaccess</samp>" can be used in the + <samp>httpd.conf</samp> file and in <samp>.htaccess</samp> + files, but not within any <Directory> or + <VirtualHost> containers.</p> + <hr /> + + <h2><a id="Override" name="Override">Override</a></h2> + + <p>This directive attribute indicates which configuration + override must be active in order for the directive to be + processed when it appears in a <samp>.htaccess</samp> file. If + the directive's <a href="#Context" rel="Help">context</a> + doesn't permit it to appear in <samp>.htaccess</samp> files, + this attribute should say "<em>Not applicable</em>".</p> + + <p>Overrides are activated by the <a + href="core.html#allowoverride" + rel="Help"><samp>AllowOverride</samp></a> directive, and apply + to a particular scope (such as a directory) and all + descendants, unless further modified by other + <samp>AllowOverride</samp> directives at lower levels. The + documentation for that directive also lists the possible + override names available.</p> + <hr /> + + <h2><a id="Status" name="Status">Status</a></h2> + + <p>This indicates how tightly bound into the Apache Web server + the directive is; in other words, you may need to recompile the + server with an enhanced set of modules in order to gain access + to the directive and its functionality. Possible values for + this attribute are:</p> + + <dl> + <dt><strong>Core</strong></dt> + + <dd>If a directive is listed as having "Core" status, that + means it is part of the innermost portions of the Apache Web + server, and is always available.</dd> + + <dt><strong>Base</strong></dt> + + <dd>A directive labeled as having "Base" status is supported + by one of the standard Apache modules which is compiled into + the server by default, and is therefore normally available + unless you've taken steps to remove the module from your + configuration.</dd> + + <dt><strong>Extension</strong></dt> + + <dd>A directive with "Extension" status is provided by one of + the modules included with the Apache server kit, but the + module isn't normally compiled into the server. To enable the + directive and its functionality, you will need to change the + server build configuration files and re-compile Apache.</dd> + + <dt><strong>Experimental</strong></dt> + + <dd>"Experimental" status indicates that the directive is + available as part of the Apache kit, but you're on your own + if you try to use it. The directive is being documented for + completeness, and is not necessarily supported. The module + which provides the directive may or may not be compiled in by + default; check the top of the page which describes the + directive and its module to see if it remarks on the + availability.</dd> + </dl> + <hr /> + + <h2><a id="Module" name="Module">Module</a></h2> + + <p>This quite simply lists the name of the source module which + defines the directive.</p> + <hr /> + + <h2><a id="Compatibility" + name="Compatibility">Compatibility</a></h2> + + <p>If the directive wasn't part of the original Apache version + 1 distribution, the version in which it was introduced should + be listed here. If the directive has the same name as one from + the NCSA HTTPd server, any inconsistencies in behavior between + the two should also be mentioned. Otherwise, this attribute + should say "<em>No compatibility issues.</em>"</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/directive-dict.html.fr b/htdocs/manual/mod/directive-dict.html.fr new file mode 100644 index 0000000000..5f6e3c8411 --- /dev/null +++ b/htdocs/manual/mod/directive-dict.html.fr @@ -0,0 +1,251 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.4 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Termes utilisés pour décrire les + directives Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Termes utilisés pour décrire + les directives Apache</h1> + + <p>Chaque directive de configuration d'Apache est + décrite selon un format de présentation commun + ressemblant à ceci :</p> + + <dl> + <dd><a href="#Syntax" + rel="Help"><strong>Syntaxe:</strong></a> + <em>nomDirective</em> <em>arguments</em><br /> + <a href="#Default" + rel="Help"><strong>Défaut:</strong></a> + <samp><em>nomDirective + valeursParDéfaut</em></samp><br /> + <a href="#Context" rel="Help"><strong>Contexte:</strong></a> + <em>listeDeContextes</em><br /> + <a href="#Override" + rel="Help"><strong>Surcharge:</strong></a> + <em>DirectivesSurchargées</em><br /> + <a href="#Status" rel="Help"><strong>Statut:</strong></a> + <em>statut</em><br /> + <a href="#Module" rel="Help"><strong>Module:</strong></a> + <em>nomModule</em><br /> + <a href="#Compatibility" + rel="Help"><strong>Compatibilité:</strong></a> + <em>notes concernant la compatibilité</em></dd> + </dl> + + <p>Chacun des attributs possibles pour les directives, avec + toutes leurs valeurs possibles sont décrites dans ce + document.</p> + + <h2>Termes employés pour les directives</h2> + + <ul> + <li><a href="#Syntax">Syntaxe</a></li> + + <li><a href="#Default">Défaut</a></li> + + <li><a href="#Context">Contexte</a></li> + + <li><a href="#Override">Surcharge</a></li> + + <li><a href="#Status">Statut</a></li> + + <li><a href="#Module">Module</a></li> + + <li><a href="#Compatibility">Compatibilité</a></li> + </ul> + <hr /> + + <h2><a id="Syntax" name="Syntax">Syntaxe</a></h2> + + <p>Indique le format dans laquelle la directive doit être + inscrite dans les fichiers de configuration. Cette syntaxe est + très spécifique pour chaque directive, et est + décrite en détail dans la définition de la + directive. Généralement, le nom de la directive + est suivi d'un ou de plusieurs arguments. Les arguments + optionnels sont entourés de crochets Quand un argument + peut prendre plus d'une valeur possible, les valeurs possibles + sont séparées par une barre verticale. Les + valeurs littérales sont affichée avec la fontes + par défaut, tandis qur les type d'arguments pour + lesquels une substitution doit être faite sont en + italique. Les diretrives pouvant avoir un nombre variable + d'arguments se terminent avec "..." indiquant que le dernier + argument se répète.</p> + <hr /> + + <h2><a id="Default" name="Default">Défaut</a></h2> + + <p>Si la directive a une valeur par défaut + (<em>c-à-d.</em>, si elle n'apparait pas du tout dans le + fichier de configuration, le serveur Apache se comportera comme + si cette directive avait été écrite en + mentionnant cette valeur), elle est spécifiée + ici. Si aucune valeur n'est définie par défaut, + cette section précisera "<em>Non + précisé</em>".</p> + <hr /> + + <h2><a id="Context" name="Context">Contexte</a></h2> + + <p>Indique là ou l'implantation de la directive dans le + fichier de configuration est licite. Il est exprimé + comme une liste séparée par des virgules, et + pouvant contenir les éléments suivants :</p> + + <dl> + <dt><strong>configuration serveur</strong></dt> + + <dd>La directive peut être utilisée dans le + fichier de configuration du serveur (<em>ex.</em>, + <samp>httpd.conf</samp>, <samp>srm.conf</samp>, et + <samp>access.conf</samp>), mais dans <strong>aucune</strong> + des sections intérieures des containers + <samp><VirtualHost></samp> ni <Directory>. Elle + n'est pas permise dans aucun des fichiers + <samp>.htaccess</samp>.</dd> + + <dt><strong>hôte virtuel</strong></dt> + + <dd>Dans ce contexte, la directive peut apparaître dans + les containers <samp><VirtualHost></samp> écrits + dans les fichiers de configuration du serveur.</dd> + + <dt><strong>répertoire</strong></dt> + + <dd>La directive peut apparaître dans les containers + <samp><Directory></samp> écrits dans les + fichiers de configuration du serveur.</dd> + + <dt><strong>.htaccess</strong></dt> + + <dd>La directive peut apparaître dans les fichiers + <samp>.htaccess</samp> situé dans chacun des + répertoires. Elle peut ou ne pas être + interprétée, suivant la configuration des + directives <a href="#Override" rel="Help">de + surcharge</a>.</dd> + </dl> + + <p>Les directives ne sont autorisées <em>que</em> dans + les contextes cités ; si vous essayez de les + écrire ailleurs, vous provoquerez une erreur de + configuration qui soit conduira le serveur à ignorer les + requêtes dans le contexte spécifié, soit + peut empêcher le serveur de fonctionner -- + <em>c-à-d.</em>, le serveur refusera de + démarrer.</p> + + <p>Les emplacements valides pour les directives sont le + résultat d'un OU booléen de tous les contextes + cités. En d'autres termes, une directive marquée + comma étant valide dans le contexte "<samp>configuration + serveur, .htaccess</samp>" peut être utilisée dans + le fichier <samp>httpd.conf</samp> et dans les fichiers + <samp>.htaccess</samp>, mais pas dans le container + <Directory> ni <VirtualHost>.</p> + <hr /> + + <h2><a id="Override" name="Override">Surcharge</a></h2> + + <p>Cet attribut de directive précise quelle surcharge + doit être permise pour que la directive puisse être + interprétée lorsqu'elle apparaît dans un + fichier <samp>.htaccess</samp>. Si le <a href="#Context" + rel="Help">contexte</a> de directive ne permet pas une + écriture dans les fichiers <samp>.htaccess</samp>, cet + attribut doit mentionner "<em>Non applicable</em>".</p> + + <p>Les surcharges sont gérées par la directive <a + href="core.html#allowoverrides" + rel="Help"><samp>AllowOverrides</samp></a>, et ont une + portée définie, par exemple un répertoire + donné et tous ses descendants, sauf si la configuration + de surcharge est changée à un endroit de la + descendance par une directive <samp>AllowOverrides</samp> d'un + niveau inférieur. La documentation pour cette directive + liste aussi les noms possibles de surcharges disponibles.</p> + <hr /> + + <h2><a id="Status" name="Status">Statut</a></h2> + + <p>Indique à quel module du serveur Apache Web la + directive est rattachée ; en d'autres termes, vous + devrez peut être recompiler le serveur en + précisant un ensemble plus large de modules pour pouvoir + bénéficier de cette fonctionnalité. Les + valeurs possibles pour cet attribut sont :</p> + + <dl> + <dt><strong>Noyau</strong></dt> + + <dd>Il s'agit d'une directive du noyau d'Apache et est de ce + fait toujours disponible.</dd> + + <dt><strong>Base</strong></dt> + + <dd>La directive est implémentée dans un module + d'Apache faisant partie de l'ensemble de compilation de base, + et est normalement disponible sauf si vous avez explicitement + enlevé ce module à la compilation.</dd> + + <dt><strong>Extension</strong></dt> + + <dd>La directive est implémentée par un module + faisant partie de l'Apache Server Kit, mais ce module n'est + pas compilé par défaut. Pour activer cette + directive, et rendre opérationnelle cette + fonctionnalité, vous devrez modifier le fichier de + configuration de compilation et recompiler Apache.</dd> + + <dt><strong>Expérimental</strong></dt> + + <dd>Le statut "Experimental" indique que la directive est + disponible dans le Kit Apache, mais que vous ne pouvez + l'utiliser qu'à vos risques et périls. La + directive est documenté dans un souci + d'exhaustivité mais n'est pas forcément + supportée. Le module qui donne accès à + cette directive peut être ou ne pas être + compilé par défaut ; reportez vous en + tête de la page qui décrit la directive et le + module pour toute remarque concernant sa + disponibilité.</dd> + </dl> + <hr /> + + <h2><a id="Module" name="Module">Module</a></h2> + + <p>Donne simplement le nom du module ou est + implémentée cette fonctionnalité.</p> + <hr /> + + <h2><a id="Compatibility" + name="Compatibility">Compatibilité</a></h2> + + <p>Si la directive ne faisait pas partie de la version 1 + d'Apache, le numéro indique la version dans laquelle + elle a été introduite. Si la directive a le + même nom qu'une ancienne directive du serveur HTTPd du + NCSA, toute différence de comportement y sera + mentionnée. Dans les autres cas, cette rubrique + affichera "<em>Pas de remarques sur + compatiblité.</em>"</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/directive-dict.html.html b/htdocs/manual/mod/directive-dict.html.html new file mode 100644 index 0000000000..d5444a6c35 --- /dev/null +++ b/htdocs/manual/mod/directive-dict.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="directive-dict.html.en" --> + diff --git a/htdocs/manual/mod/directive-dict.html.ja.jis b/htdocs/manual/mod/directive-dict.html.ja.jis new file mode 100644 index 0000000000..cf4f5b63c9 --- /dev/null +++ b/htdocs/manual/mod/directive-dict.html.ja.jis @@ -0,0 +1,300 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title>Apache のディレクティブの解説に使われる用語</title> +</head> +<!-- English revision: 1.7 --> +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#000080" +alink="#FF0000"> +<!--#include virtual="header.html" --> +<h1 align="center">Apache +のディレクティブの解説に使われる用語</h1> + +<p>それう苳擦譴鞜竏綣蝟昭粡竚癈鷭п粐Ьぢディレクティブは、,里茲逅擦紛逅残未僚颱踉三によって記述されます:</p> + +<dl> +<dd><a href="#Syntax" rel="Help"><strong>構文:</strong></a> +<em>directive-name</em> <em>some args</em><br /> + <a href="#Default" rel="Help"><strong>デフォルト:</strong></a> +<samp><em>directive-name default-value</em></samp><br /> + <a href="#Context" rel="Help"><strong>コンテキスト:</strong></a> +<em>context-list</em><br /> + <a href="#Override" rel="Help"><strong>綵颪墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼纃阮纈鱸粤蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就S鵞繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼纃齡癆蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就M閼紜繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼纃迴糒跂瘢絋踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹■衷逅癆蛯蛹蜚繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> +<em>compatibility notes</em></dd> +</dl> + +<p>このドキュメントではディレクティブのそれう苳擦譴梁粟睫世気鹿粡寂蝟赱齠洲痲筵娼ています。可能な豺腓魯妊譽謄屬踉肢り得るすべての値も書かれています。</p> + +<h2>ディレクティブの用語</h2> + +<ul> +<li><a href="#Syntax">構文</a></li> + +<li><a href="#Default">デフォルト</a></li> + +<li><a href="#Context">コンテキスト</a></li> + +<li><a href="#Override">綵颪薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■囈癆▽苳ぢステ・踉札織薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■酪糒跂▽苳ぢモジュ・踉札薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■衷逅癆蛯蛹蜚互換性</a></li> +</ul> + +<hr /> +<h2><a id="Syntax" name="Syntax">構文</a></h2> + +<p>設定ファイル中のディレクティブの書阿鬢踉雑します。 +この構文はディレクティブ特有なので、楮戮魯妊譽謄屬寮睫世鹿粡寂蝟赱齠洲痲筵娼参箸靴討世気ぁ0貳姪法▲妊譽謄嵬の後には +空白により分割されたいくつかの引数が続きます。 +引数が空白を含むときは二重引用符 (訳注: ") +で囲まれています。 オプショナルな引数は括弧 (訳注: +[]) で囲まれています。 +引数が複数の値を茲蠧世襴苳詞合は、それらの値は垂彫苳擦遼ぢで +分割されています。 +変更されないテキストはデフォルトのフォントで表┐気譟峇垢良廚鹿粡寂蝟赱齠洲痲筵娼引数は<em>強調されて</em>表┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼引数の数が変わるディレクティブは最後の +引数が繰り返されることを┐垢燭瓩ぢで終わります。</p> + +<p>ディレクティブは多くの違う瘢雹型の引数をとります。いくつか、良く +使われるものを以王踉擦把蟲舛靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘纃孀巳踉晒纃熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉祉閼絋苳肢雕纔瘢韭絎竢躁鞜鎭肅跂讀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼のよう瘢雹に、 +スキ・踉札燹▲曠好般、パス巳苳ぢ蔑椎ぢを含んでいる完全な +Uniform Resource Locator。</dd> + +<dt><em>URL-path</em></dt> + +<dd><code>/path/to/file.html</code> のよう瘢雹に、スキ・踉札爐鹿粡寂蝟赱齠洲痲筵娼ホスト巳苳擦慮紊紡海踉糸蹙苳歯鳰蹙苳の一部。<em>url-path</em> +は ファイルシステムからの視点ではなく、 +ウ瘢雹ェブからの視点でリソ・踉札垢鯢集修靴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉糸蹙苳紙蛹絖鞜蹙苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐竢粤齟閭瘡鞜竏絲蔗粹笂癆莚蛹絎蔗迪閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢのよう瘢雹に、 +ル・踉札肇妊譽肇蠅藥呂泙襯蹇カルのファイルシステム紊離侫.ぅ襪悗離僖后鹿粡寂蝟赱齠洲痲筵娼通錙▲好薀奪轡紊濃呂泙蕕覆踉糸蹙苳紙蛹絖鞜蹙苳は <a +href="core.html#serverroot">ServerRoot</a> からの相対パスとして +扱われます。</dd> + +<dt><em>directory-path</em></dt> + +<dd><code>/usr/local/apache/htdocs/path/to/</code> のよう瘢雹に、 +ル・踉札肇妊譽肇蠅藥呂泙襯蹇カルのファイルシステムのディレクトリへの +パス。</dd> + +<dt><em>filename</em></dt> + +<dd><code>file.html</code> のよう瘢雹に、パス霾鵑良佞い討い覆鹿粡寂蝟赱齠洲痲筵娼ファイル巳苳察筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉糸蹙苳賜繚纔蹙苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐蓿繙就蜩祚徳儁蔗迪r繚纔▽苳ぢ正規表現</a>。これは、 +テキストのマッチのパタ・踉札鵑鯢修靴泙后妊譽謄屬猟蟲舛鹿粡寂蝟赱齠洲痲筵娼纃鱚艱踉晒纃ぢが何に対してマッチを行なう瘢雹のかを指定します。</dd> + +<dt><em>extension</em></dt> + +<dd>一般的には <em>filename</em> +の最後のドットの後の部分です。 しかし、Apache +は複数のファイルの拡張子を認韻靴泙垢里如纃肅跂釶辣蹙苳纂蝟昭粡竚癈鷭п粐Ьぢに複数のドットがあると、最初のドットの後の、それう苳擦譴離疋奪箸琶イ気譴辛鹿粡寂蝟赱齠洲痲筵娼纃纔銖蜿遉踉晒纃訳注: 拡張子) +になります。例えば、<em>filename</em> <code>file.html.en</code> +には二つの拡張子があります。<code>.html</code> と +<code>.en</code> です。Apache +のディレクティブでは、<em>extension</em> +はドット付きでも無しでも指定できます。さらに、<em>extension</em> +は 大文字源魘菠未靴泙擦鵝筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉糸蹙苳四浜鏑鞳蹙苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐竢粤讀踉晒竢粤ぢのよう瘢雹に、スラッシュで分離された +腑侫マットと副フォ・踉札泪奪箸砲茲辰謄侫.ぅ襪侶薦踉三を +表す方法です。</dd> + +<dt><em>env-variable</em></dt> + +<dd>Apache の設定により定義される <a +href="../env.html">環境変数</a>の巳苳餐阿任后海譴魯撻譟ティングシステムの +環境変数と同じとは限らないことに注意してください。楮戮踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就鉚譬環境変数の説明</a>を参箸靴討世気ぁ筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼莢蜆就偵聲槇瘢綵繙癜踉▽苳ぢデフォルト</a></h2> + +<p>ディレクティブにデフォルト値 +(<em>すなわち</em>、設定ファイルから +蔑気譴討い討癲草痺蒹鹿粡寂蝟赱齠洲痲筵娼ウ瘢雹ェブサ・踉札个脇団蠅涼佑棒瀋蠅気譴討い襪里茲逅擦鹿粡寂蝟赱齠洲痲筵娼動作します) がある豺腓呂海海傍劼気譴泙后鹿粡寂蝟赱齠洲痲筵娼デフォルト値の無い豺隋△海海纃麗鈬蹙苳拶ぢと +書かれます。ここで書かれているデフォルトはサ・踉札个閥逅擦貿柯曚気譴討い鹿粡寂蝟赱齠洲痲筵娼デフォルトの httpd.conf +内に書かれているディレクティブの値と +違う瘢雹可能性があることに注意してください。</p> + +<hr /> +<h2><a id="Context" name="Context">コンテキスト</a></h2> + +<p> +これは、サ・踉札个寮瀋螢侫.ぅ訝罎里匹海妊妊譽謄屬覆里鬢踉雑します。 +,胞踉雑す値が一つ以絅鵐浙萓擇蠅芭鶺鵑気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘齡鳫鈑サ・踉札仞瀋螢侫.ぅ闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐これは、サ・踉札仞瀋螢侫.ぅ鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳ぢ例えば</em>、<samp>httpd.conf</samp>, +<samp>srm.conf</samp>, <samp>access.conf</samp>) +内では使用できますが、 <samp><VirtualHost></samp>や +<samp><Directory></samp> の中では +<strong>使用できない</strong>ことを┐靴泙后鹿粡寂蝟赱齠洲痲筵娼黶逅窿纉鵙踉晒黶逅ファイルでの使用は許可されていません。</dd> + +<dt><strong>バ・踉札船礇襯曠好闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐これは、サ・踉札仞瀋螢侫.ぅ襪踉雌瘢隍苳殺瘢雹踉志蜥瘡被齡逅紫瘢隍苳纂蝟昭粡竚癈鷭п粐Ьぢの中で使用できることを┐靴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳ぢディレクトリ</strong></dt> + +<dd>これは、サ・踉札仞瀋螢侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼黶逅逅詞堤鱚笏闥瘢雹苳殺踉晒黶逅、 +<samp><Location></samp>、<samp><Files></samp> +の中で、 <a +href="../sections.html">Directory、Location、Files +セクションの機能</a> +で説明されている制限の王踉擦濃藩僂任襪海箸鬢踉雑します。</dd> + +<dt><strong>.htaccess</strong></dt> + +<dd>これは、ディレクトリ<em>毎</em>の +<samp>.htaccess</samp> ファイル内で +使用可能であることを┐靴泙后ぢただ、<a href="#Override" +rel="Help">綵颪鹿粡寂蝟赱齠洲痲筵娼の設定によっては、処理されないかもしれません。</dd> +</dl> + +<p> +ディレクティブは指┐気譴織灰鵐謄好箸纃のみ</em>許可されます。 +側苳擦陸苳詞所で使おう瘢雹とすると、サ・踉札个修離灰鵐謄好箸鮴気靴靴┐覆鹿粡寂蝟赱齠洲痲筵娼なるよう瘢雹な設定エラ・踉擦犬垢襪▲機バがまったく動作しなくなる、 +<em>すなわち</em>、サ・踉札个阿靴覆覆襪箸い逅擦海箸砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブの有効な位置は、尊櫃狼鵑欧蕕譴討い襯灰鵐謄好箸鹿粡寂蝟赱齠洲痲筵娼論理和 (訳注: Boolen OR) になります。言い換えると、 +"<samp>サ・踉札仞瀋螢侫.ぅ襦窿纉鵙踉晒黶逅で有効だと +記されているディレクティブは <samp>httpd.conf</samp> +ファイルと <samp>.htaccess</samp> ファイルとで有効ですが、 +<samp><Directory></samp> や +<samp><VirtualHost></samp> の中では使用できません。</p> + +<hr /> +<h2><a id="Override" name="Override">綵颪王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このディレクティブの属性は、<samp>.htaccess</samp> +ファイル中に +ディレクティブが現れたときに、それの処理を有効にするために +どの設定の綵颪廚鬢踉雑します。 ディレクティブの <a +href="#Context" rel="Help">コンテキスト</a> +が、<samp>.htaccess</samp> +ファイル中では許可していない豺腓蓮ぢこの属性は +"<em>適用不可</em>" と書かれます。</p> + +<p>綵颪蓮蓿繙就竢鱚譯瘡跫鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟黶逅糟跫鴪蜆絋踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼ディレクティブによって有効にされ、 +特定のスコ・踉札ぢディレクトリなど)と、 +さらに王踉三未離譽戰襪踉雌瘢隍苳餐跛阯纈鱸粤瘢隍苳纂蝟昭粡竚癈鷭п粐Ьぢで修正されない限り、 その配王踉擦紡个靴禿僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼ディレクティブのドキュメントは茲蠧世襴苳糸書きの巳苳餐阿盖鵑欧泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼莢蜆就囈癆釶辣就囈癆▽苳ぢステ・踉札織王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これはディレクティブが Apache +ウ瘢雹ェブサ・踉札个砲匹譴蕕い弔箸濆泙譴討い襪鹿粡寂蝟赱齠洲痲筵娼┐靴泙后8世ご垢┐譴弌▲妊譽謄屬箸修竜’修鰺僂垢襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼モジュ・踉札襪凌瑤鯀笋靴董▲機バを再コンパイルする必要があるかもしれない +という瘢雹ことを┐靴泙后鹿粡寂蝟赱齠洲痲筵娼この属性が茲蠧世訝佑楼焚のものです:</p> + +<dl> +<dt><strong>Core</strong></dt> + +<dd>"Core" のディレクティブは Apache +ウ瘢雹ェブサ・踉札个隆靄椶箸覆襪戮發里任△蝓鹿粡寂蝟赱齠洲痲筵娼錣忙藩儔椎修任△襪海箸鬢踉雑します。</dd> + +<dt><strong>Base</strong></dt> + +<dd>"Base" のディレクティブは +デフォルトでサ・踉札个冒箸濆泙譴討い詆現爛皀献紂ルの中の一つでサ +ポ・踉札箸気譴討い董△錣兇錣鏡瀋蠅薀皀献紂ルを削除したときを除いて、 +通錣任六藩儔椎修任△襪海箸鬢踉雑します。</dd> + +<dt><strong>Extension</strong></dt> + +<dd>"Extension" のディレクティブは、 Apache +サ・踉札个稜柯枴貌浦気譴討い襯皀献紂ルの一つで提供されているものの、 +通錣任魯機バに組み込まれていないことを┐靴泙后鹿粡寂蝟赱齠洲痲筵娼ディレクティブとその機能を有効にするには、サ・踉札丱咼襯浜僂寮瀋螢侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼変更して Apache を再コンパイルする必要があります。</dd> + +<dt><strong>Experimental</strong></dt> + +<dd>"Experimental" のディレクティブは、Apache 配布物に +同梱されているものの、試したい豺腓櫓踉捌己責任で行なう瘢雹 +必要があるという瘢雹ことを┐靴泙后妊譽謄屬蓮△垢戮討離疋絅瓮鵐箸鹿粡寂蝟赱齠洲痲筵娼完全にそろわせるために解説されていますが、サポ・踉札箸気譴討い襪箸聾造蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼ディレクティブを提供するモジュ・踉札襪魯妊侫襯箸覗箸濆泙譴討い襪鹿粡寂蝟赱齠洲痲筵娼しれませんし、そう瘢雹でないかもしれません。使用可能かどう瘢雹かは、 +ディレクティブとモジュ・踉札襪寮睫世鬚靴討い襯據ジの先頭を調べてください。</dd> +</dl> + +<hr /> +<h2><a id="Module" name="Module">モジュ・踉札王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鹿粡寂蝟赱齠洲痲筵娼これは単純にディレクティブが定義されているモジュ・踉札襪量前を記載します。</p> + +<hr /> +<h2><a id="Compatibility" name="Compatibility">互換性</a></h2> + +<p>ディレクティブが Apache 1 +の配布に組み込まれていなかった豺隋鹿粡寂蝟赱齠洲痲筵娼ディレクティブが導入されたバ・踉札献腑鵑海海暴颪譴討い泙后鹿粡寂蝟赱齠洲痲筵娼ディレクティブが NCSA HTTPd +サ・踉札个里發里汎韻弧前である豺隋鹿粡寂蝟赱齠洲痲筵娼異なる挙動があるとここに書かれます。 +挙動が同じ豺腓蓮▽踉糸蹙苳ぢ互換性の問題無し</em>" +と書かれています。</p> + +<!--#include virtual="footer.html" --> +</body> +</html> diff --git a/htdocs/manual/mod/directives.html.de b/htdocs/manual/mod/directives.html.de new file mode 100644 index 0000000000..da94e519f3 --- /dev/null +++ b/htdocs/manual/mod/directives.html.de @@ -0,0 +1,255 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<HTML> +<HEAD> +<TITLE>Apache Konfigurationsdirektiven</TITLE> +</HEAD> + +<!-- Background white, links blue (unvisited), navy (visited), red (active) --> +<BODY + BGCOLOR="#FFFFFF" + TEXT="#000000" + LINK="#0000FF" + VLINK="#000080" + ALINK="#FF0000" +> +<!--#include virtual="header.html" --> +<H1 ALIGN="CENTER">Apache Konfigurationsdirektiven</H1> +<P> +Dieses Dokument enthält eine vollständige Liste aller +Konfigurationsdirektiven der Apache Standard-Distribution. +Die Beschreibungen sind dabei in einem einheitlichen Format verfasst, +wobei es zu den im Beschreibungsformat verwendeten Feldern eine eigene +<A + HREF="directive-dict.html" + REL="Glossary" +>Legende</A> +gibt. +</P> +<UL> +<li><a href="core.html#acceptfilter">AcceptFilter</a></li> +<li><a href="core.html#acceptmutex">AcceptMutex</a></li> +<LI><A HREF="core.html#accessconfig">AccessConfig</A> +<LI><A HREF="core.html#accessfilename">AccessFileName</A> +<LI><A HREF="mod_actions.html#action">Action</A> +<LI><A HREF="mod_autoindex.html#addalt">AddAlt</A> +<LI><A HREF="mod_autoindex.html#addaltbyencoding">AddAltByEncoding</A> +<LI><A HREF="mod_autoindex.html#addaltbytype">AddAltByType</A> +<LI><A HREF="mod_mime.html#addcharset">AddCharset</A> +<LI><A HREF="core.html#adddefaultcharset">AddDefaultCharset</A> +<LI><A HREF="mod_autoindex.html#adddescription">AddDescription</A> +<LI><A HREF="mod_mime.html#addencoding">AddEncoding</A> +<LI><A HREF="mod_mime.html#addhandler">AddHandler</A> +<LI><A HREF="mod_autoindex.html#addicon">AddIcon</A> +<LI><A HREF="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</A> +<LI><A HREF="mod_autoindex.html#addiconbytype">AddIconByType</A> +<LI><A HREF="mod_mime.html#addlanguage">AddLanguage</A> +<LI><A HREF="core.html#addmodule">AddModule</A> +<LI><A HREF="mod_info.html#addmoduleinfo">AddModuleInfo</A> +<LI><A HREF="mod_mime.html#addtype">AddType</A> +<LI><A HREF="mod_log_agent.html#agentlog">AgentLog</A> +<LI><A HREF="mod_alias.html#alias">Alias</A> +<LI><A HREF="mod_alias.html#aliasmatch">AliasMatch</A> +<LI><A HREF="mod_access.html#allow">Allow</A> +<LI><A HREF="mod_proxy.html#allowconnect">AllowCONNECT</A> +<LI><A HREF="core.html#allowoverride">AllowOverride</A> +<LI><A HREF="mod_auth_anon.html#anonymous">Anonymous</A> +<LI><A HREF="mod_auth_anon.html#Authoritative">Anonymous_Authoritative</A> +<LI><A HREF="mod_auth_anon.html#LogEmail">Anonymous_LogEmail</A> +<LI><A HREF="mod_auth_anon.html#MustGiveEmail">Anonymous_MustGiveEmail</A> +<LI><A HREF="mod_auth_anon.html#NoUserID">Anonymous_NoUserID</A> +<LI><A HREF="mod_auth_anon.html#VerifyEmail">Anonymous_VerifyEmail</A> +<LI><A HREF="mod_auth.html#authauthoritative">AuthAuthoritative</A> +<LI><A HREF="mod_auth_db.html#authdbauthoritative">AuthDBAuthoritative</A> +<LI><A HREF="mod_auth_db.html#authdbgroupfile">AuthDBGroupFile</A> +<LI><A HREF="mod_auth_dbm.html#authdbmauthoritative">AuthDBMAuthoritative</A> +<LI><A HREF="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</A> +<LI><A HREF="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</A> +<LI><A HREF="mod_auth_db.html#authdbuserfile">AuthDBUserFile</A> +<LI><A HREF="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</A> +<LI><A HREF="mod_digest.html#authdigestfile">AuthDigestFile</A> +<LI><A HREF="mod_auth.html#authgroupfile">AuthGroupFile</A> +<LI><A HREF="core.html#authname">AuthName</A> +<LI><A HREF="core.html#authtype">AuthType</A> +<LI><A HREF="mod_auth.html#authuserfile">AuthUserFile</A> +<LI><A HREF="core.html#bindaddress">BindAddress</A> +<LI><A HREF="mod_setenvif.html#browsermatch">BrowserMatch</A> +<LI><A HREF="mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</A> +<LI><A HREF="core.html#bs2000account">BS2000Account</A> +<LI><A HREF="mod_proxy.html#cachedefaultexpire">CacheDefaultExpire</A> +<LI><A HREF="mod_proxy.html#cachedirlength">CacheDirLength</A> +<LI><A HREF="mod_proxy.html#cachedirlevels">CacheDirLevels</A> +<LI><A HREF="mod_proxy.html#cacheforcecompletion">CacheForceCompletion</A> +<LI><A HREF="mod_proxy.html#cachegcinterval">CacheGcInterval</A> +<LI><A HREF="mod_proxy.html#cachelastmodifiedfactor">CacheLastModifiedFactor</A> +<LI><A HREF="mod_proxy.html#cachemaxexpire">CacheMaxExpire</A> +<LI><A HREF="mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</A> +<LI><A HREF="mod_proxy.html#cacheroot">CacheRoot</A> +<LI><A HREF="mod_proxy.html#cachesize">CacheSize</A> +<LI><A HREF="mod_speling.html#checkspelling">CheckSpelling</A> +<LI><A HREF="core.html#clearmodulelist">ClearModuleList</A> +<LI><A HREF="core.html#contentdigest">ContentDigest</A> +<li><a href="mod_usertrack.html#cookiedomain">CookieDomain</a></li> +<LI><A HREF="mod_usertrack.html#cookieexpires">CookieExpires</A> +<li><a href="mod_usertrack.html#cookieformat">CookieFormat</a></li> +<LI><A HREF="mod_cookies.html#cookielog">CookieLog</A> (mod_cookies) +<LI><A HREF="mod_log_config.html#cookielog">CookieLog</A> (mod_log_config) +<li><a href="mod_usertrack.html#cookieprefix">CookiePrefix</a></li> +<li><a href="mod_usertrack.html#cookiestyle">CookieStyle</a></li> +<LI><A HREF="mod_usertrack.html#cookietracking">CookieTracking</A> +<LI><A HREF="core.html#coredumpdirectory">CoreDumpDirectory</A> +<LI><A HREF="mod_log_config.html#customlog">CustomLog</A> +<LI><A HREF="mod_autoindex.html#defaulticon">DefaultIcon</A> +<LI><A HREF="mod_mime.html#defaultlanguage">DefaultLanguage</A> +<LI><A HREF="core.html#defaulttype">DefaultType</A> +<LI><A HREF="mod_access.html#deny">Deny</A> +<LI><A HREF="core.html#directory"><Directory></A> +<LI><A HREF="core.html#directorymatch"><DirectoryMatch></A> +<LI><A HREF="mod_dir.html#directoryindex">DirectoryIndex</A> +<LI><A HREF="core.html#documentroot">DocumentRoot</A> +<LI><A HREF="core.html#ebcdicconvert">EBCDICConvert</A> +<LI><A HREF="core.html#ebcdicconvertbytype">EBCDICConvertByType</A> +<LI><A HREF="core.html#ebcdickludge">EBCDICKludge</A> +<LI><A HREF="core.html#errordocument">ErrorDocument</A> +<li><a href="mod_headers.html#errorheader">ErrorHeader</a></li> +<LI><A HREF="core.html#errorlog">ErrorLog</A> +<LI><A HREF="mod_example.html#example">Example</A> +<LI><A HREF="mod_expires.html#expiresactive">ExpiresActive</A> +<LI><A HREF="mod_expires.html#expiresbytype">ExpiresByType</A> +<LI><A HREF="mod_expires.html#expiresdefault">ExpiresDefault</A> +<LI><A HREF="mod_status.html#extendedstatus">ExtendedStatus</A> +<LI><A HREF="mod_autoindex.html#fancyindexing">FancyIndexing</A> +<li><a href="core.html#fileetag">FileETag</a></li> +<LI><A HREF="core.html#files"><Files></A> +<LI><A HREF="core.html#filesmatch"><FilesMatch></A> +<LI><A HREF="mod_mime.html#forcetype">ForceType</A> +<LI><A HREF="mod_log_forensic.html#forensiclog">ForensicLog</A> +<LI><A HREF="core.html#group">Group</A> +<LI><A HREF="mod_headers.html#header">Header</A> +<LI><A HREF="mod_autoindex.html#headername">HeaderName</A> +<LI><A HREF="core.html#hostnamelookups">HostNameLookups</A> +<LI><A HREF="core.html#identitycheck">IdentityCheck</A> +<LI><A HREF="core.html#ifdefine"><IfDefine></A> +<LI><A HREF="core.html#ifmodule"><IfModule></A> +<LI><A HREF="mod_imap.html#imapbase">ImapBase</A> +<LI><A HREF="mod_imap.html#imapdefault">ImapDefault</A> +<LI><A HREF="mod_imap.html#imapmenu">ImapMenu</A> +<LI><A HREF="core.html#include">Include</A> +<LI><A HREF="mod_autoindex.html#indexignore">IndexIgnore</A> +<LI><A HREF="mod_autoindex.html#indexoptions">IndexOptions</A> +<LI><A HREF="mod_autoindex.html#indexorderdefault">IndexOrderDefault</A> +<LI><A HREF="mod_isapi.html#isapireadaheadbuffer">ISAPIReadAheadBuffer</A> +<LI><A HREF="mod_isapi.html#isapilognotsupported">ISAPILogNotSupported</A> +<LI><A HREF="mod_isapi.html#isapiappendlogtoerrors">ISAPIAppendLogToErrors</A> +<LI><A HREF="mod_isapi.html#isapiappendlogtoquery">ISAPIAppendLogToQuery</A> +<LI><A HREF="core.html#keepalive">KeepAlive</A> +<LI><A HREF="core.html#keepalivetimeout">KeepAliveTimeout</A> +<LI><A HREF="mod_negotiation.html#languagepriority">LanguagePriority</A> +<LI><A HREF="core.html#limit"><Limit></A> +<LI><A HREF="core.html#limitexcept"><LimitExcept></A> +<LI><A HREF="core.html#limitinternalrecursion">LimitInternalRecursion</A> +<LI><A HREF="core.html#limitrequestbody">LimitRequestBody</A> +<LI><A HREF="core.html#limitrequestfields">LimitRequestFields</A> +<LI><A HREF="core.html#limitrequestfieldsize">LimitRequestFieldsize</A> +<LI><A HREF="core.html#limitrequestline">LimitRequestLine</A> +<LI><A HREF="core.html#listen">Listen</A> +<LI><A HREF="core.html#listenbacklog">ListenBacklog</A> +<LI><A HREF="mod_so.html#loadfile">LoadFile</A> +<LI><A HREF="mod_so.html#loadmodule">LoadModule</A> +<LI><A HREF="core.html#location"><Location></A> +<LI><A HREF="core.html#locationmatch"><LocationMatch></A> +<LI><A HREF="core.html#lockfile">LockFile</A> +<LI><A HREF="mod_log_config.html#logformat">LogFormat</A> +<LI><A HREF="core.html#loglevel">LogLevel</A> +<LI><A HREF="core.html#maxclients">MaxClients</A> +<LI><A HREF="core.html#maxkeepaliverequests">MaxKeepAliveRequests</A> +<LI><A HREF="core.html#maxrequestsperchild">MaxRequestsPerChild</A> +<LI><A HREF="core.html#maxspareservers">MaxSpareServers</A> +<LI><A HREF="mod_cern_meta.html#metadir">MetaDir</A> +<LI><A HREF="mod_cern_meta.html#metafiles">MetaFiles</A> +<LI><A HREF="mod_cern_meta.html#metasuffix">MetaSuffix</A> +<LI><A HREF="mod_mime_magic.html#mimemagicfile">MimeMagicFile</A> +<LI><A HREF="core.html#minspareservers">MinSpareServers</A> +<LI><A HREF="mod_mmap_static.html#mmapfile">MMapFile</A> +<LI><A HREF="core.html#namevirtualhost">NameVirtualHost</A> +<LI><A HREF="mod_proxy.html#nocache">NoCache</A> +<LI><A HREF="core.html#options">Options</A> +<LI><A HREF="mod_access.html#order">Order</A> +<LI><A HREF="mod_env.html#passenv">PassEnv</A> +<LI><A HREF="core.html#pidfile">PidFile</A> +<LI><A HREF="core.html#port">Port</A> +<li><a href="core.html#protocolreqcheck">ProtocolReqCheck</a></li> +<LI><A HREF="mod_proxy.html#proxyblock">ProxyBlock</A> +<LI><A HREF="mod_proxy.html#proxydomain">ProxyDomain</A> +<LI><A HREF="mod_proxy.html#proxypass">ProxyPass</A> +<LI><A HREF="mod_proxy.html#proxypassreverse">ProxyPassReverse</A> +<LI><A HREF="mod_proxy.html#proxyreceivebuffersize">ProxyReceiveBufferSize</A> +<LI><A HREF="mod_proxy.html#proxyremote">ProxyRemote</A> +<LI><A HREF="mod_proxy.html#proxyrequests">ProxyRequests</A> +<LI><A HREF="mod_proxy.html#proxyvia">ProxyVia</A> +<LI><A HREF="mod_autoindex.html#readmename">ReadmeName</A> +<LI><A HREF="mod_alias.html#redirect">Redirect</A> +<LI><A HREF="mod_alias.html#redirectmatch">RedirectMatch</A> +<LI><A HREF="mod_alias.html#redirectperm">RedirectPermanent</A> +<LI><A HREF="mod_alias.html#redirecttemp">RedirectTemp</A> +<LI><A HREF="mod_log_referer.html#refererignore">RefererIgnore</A> +<LI><A HREF="mod_log_referer.html#refererlog">RefererLog</A> +<LI><A HREF="mod_mime.html#removeencoding">RemoveEncoding</A> +<LI><A HREF="mod_mime.html#removehandler">RemoveHandler</A> +<LI><A HREF="mod_mime.html#removetype">RemoveType</A> +<LI><A HREF="core.html#require">Require</A> +<LI><A HREF="core.html#resourceconfig">ResourceConfig</A> +<LI><A HREF="mod_rewrite.html#RewriteBase">RewriteBase</A> +<LI><A HREF="mod_rewrite.html#RewriteCond">RewriteCond</A> +<LI><A HREF="mod_rewrite.html#RewriteEngine">RewriteEngine</A> +<LI><A HREF="mod_rewrite.html#RewriteLock">RewriteLock</A> +<LI><A HREF="mod_rewrite.html#RewriteLog">RewriteLog</A> +<LI><A HREF="mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</A> +<LI><A HREF="mod_rewrite.html#RewriteMap">RewriteMap</A> +<LI><A HREF="mod_rewrite.html#RewriteOptions">RewriteOptions</A> +<LI><A HREF="mod_rewrite.html#RewriteRule">RewriteRule</A> +<LI><A HREF="core.html#rlimitcpu">RLimitCPU</A> +<LI><A HREF="core.html#rlimitmem">RLimitMEM</A> +<LI><A HREF="core.html#rlimitnproc">RLimitNPROC</A> +<LI><A HREF="core.html#satisfy">Satisfy</A> +<LI><A HREF="core.html#scoreboardfile">ScoreBoardFile</A> +<LI><A HREF="mod_actions.html#script">Script</A> +<LI><A HREF="mod_alias.html#scriptalias">ScriptAlias</A> +<LI><A HREF="mod_alias.html#scriptaliasmatch">ScriptAliasMatch</A> +<LI><A HREF="core.html#scriptinterpretersource">ScriptInterpreterSource</A> +<LI><A HREF="mod_cgi.html#scriptlog">ScriptLog</A> +<LI><A HREF="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</A> +<LI><A HREF="mod_cgi.html#scriptloglength">ScriptLogLength</A> +<LI><A HREF="core.html#sendbuffersize">SendBufferSize</A> +<LI><A HREF="core.html#serveradmin">ServerAdmin</A> +<LI><A HREF="core.html#serveralias">ServerAlias</A> +<LI><A HREF="core.html#servername">ServerName</A> +<LI><A HREF="core.html#serverpath">ServerPath</A> +<LI><A HREF="core.html#serverroot">ServerRoot</A> +<LI><A HREF="core.html#serversignature">ServerSignature</A> +<LI><A HREF="core.html#servertokens">ServerTokens</A> +<LI><A HREF="core.html#servertype">ServerType</A> +<LI><A HREF="mod_env.html#setenv">SetEnv</A> +<LI><A HREF="mod_setenvif.html#setenvif">SetEnvIf</A> +<LI><A HREF="mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</A> +<LI><A HREF="mod_mime.html#sethandler">SetHandler</A> +<li><a href="core.html#shmemuidisuser">ShmemUIDisUser</a></li> +<LI><A HREF="core.html#startservers">StartServers</A> +<LI><A HREF="core.html#threadsperchild">ThreadsPerChild</A> +<LI><A HREF="core.html#timeout">TimeOut</A> +<LI><A HREF="mod_log_config.html#transferlog">TransferLog</A> +<LI><A HREF="mod_mime.html#typesconfig">TypesConfig</A> +<LI><A HREF="mod_env.html#unsetenv">UnsetEnv</A> +<LI><A HREF="core.html#usecanonicalname">UseCanonicalName</A> +<LI><A HREF="core.html#user">User</A> +<LI><A HREF="mod_userdir.html#userdir">UserDir</A> +<LI><A HREF="core.html#virtualhost"><VirtualHost></A> +<LI><A HREF="mod_vhost_alias.html#virtualdocumentroot">VirtualDocumentRoot</A> +<LI><A HREF="mod_vhost_alias.html#virtualdocumentrootip">VirtualDocumentRootIP</A> +<LI><A HREF="mod_vhost_alias.html#virtualscriptalias">VirtualScriptAlias</A> +<LI><A HREF="mod_vhost_alias.html#virtualscriptaliasip">VirtualScriptAliasIP</A> +<LI><A HREF="mod_include.html#xbithack">XBitHack</A> +</UL> + +<!--#include virtual="footer.html" --> +</BODY> +</HTML> diff --git a/htdocs/manual/mod/directives.html.en b/htdocs/manual/mod/directives.html.en new file mode 100644 index 0000000000..7f75ba1a20 --- /dev/null +++ b/htdocs/manual/mod/directives.html.en @@ -0,0 +1,595 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache directives</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache Directives</h1> + + <p>Each Apache directive available in the standard Apache + distribution is listed here. They are described using a + consistent format, and there is <a href="directive-dict.html" + rel="Glossary">a dictionary</a> of the terms used in their + descriptions available.</p> + + <ul> + <li><a href="core.html#acceptfilter">AcceptFilter</a></li> + + <li><a href="core.html#acceptmutex">AcceptMutex</a></li> + + <li><a href="core.html#accessconfig">AccessConfig</a></li> + + <li><a + href="core.html#accessfilename">AccessFileName</a></li> + + <li><a href="mod_actions.html#action">Action</a></li> + + <li><a href="mod_autoindex.html#addalt">AddAlt</a></li> + + <li><a + href="mod_autoindex.html#addaltbyencoding">AddAltByEncoding</a></li> + + <li><a + href="mod_autoindex.html#addaltbytype">AddAltByType</a></li> + + <li><a href="mod_mime.html#addcharset">AddCharset</a></li> + + <li><a + href="core.html#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a + href="mod_autoindex.html#adddescription">AddDescription</a></li> + + <li><a href="mod_mime.html#addencoding">AddEncoding</a></li> + + <li><a href="mod_mime.html#addhandler">AddHandler</a></li> + + <li><a href="mod_autoindex.html#addicon">AddIcon</a></li> + + <li><a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a></li> + + <li><a + href="mod_autoindex.html#addiconbytype">AddIconByType</a></li> + + <li><a href="mod_mime.html#addlanguage">AddLanguage</a></li> + + <li><a href="core.html#addmodule">AddModule</a></li> + + <li><a + href="mod_info.html#addmoduleinfo">AddModuleInfo</a></li> + + <li><a href="mod_mime.html#addtype">AddType</a></li> + + <li><a href="mod_log_agent.html#agentlog">AgentLog</a></li> + + <li><a href="mod_alias.html#alias">Alias</a></li> + + <li><a href="mod_alias.html#aliasmatch">AliasMatch</a></li> + + <li><a href="mod_access.html#allow">Allow</a></li> + + <li><a + href="mod_proxy.html#allowconnect">AllowCONNECT</a></li> + + <li><a href="core.html#allowoverride">AllowOverride</a></li> + + <li><a href="mod_auth_anon.html#anonymous">Anonymous</a></li> + + <li><a + href="mod_auth_anon.html#Authoritative">Anonymous_Authoritative</a></li> + + <li><a + href="mod_auth_anon.html#LogEmail">Anonymous_LogEmail</a></li> + + <li><a + href="mod_auth_anon.html#MustGiveEmail">Anonymous_MustGiveEmail</a></li> + + <li><a + href="mod_auth_anon.html#NoUserID">Anonymous_NoUserID</a></li> + + <li><a + href="mod_auth_anon.html#VerifyEmail">Anonymous_VerifyEmail</a></li> + + <li><a + href="mod_auth.html#authauthoritative">AuthAuthoritative</a></li> + + <li><a + href="mod_auth_db.html#authdbauthoritative">AuthDBAuthoritative</a></li> + + <li><a + href="mod_auth_db.html#authdbgroupfile">AuthDBGroupFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmauthoritative">AuthDBMAuthoritative</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></li> + + <li><a + href="mod_auth_db.html#authdbuserfile">AuthDBUserFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a></li> + + <li><a + href="mod_digest.html#authdigestfile">AuthDigestFile</a></li> + + <li><a + href="mod_auth.html#authgroupfile">AuthGroupFile</a></li> + + <li><a href="core.html#authname">AuthName</a></li> + + <li><a href="core.html#authtype">AuthType</a></li> + + <li><a + href="mod_auth.html#authuserfile">AuthUserFile</a></li> + + <li><a href="core.html#bindaddress">BindAddress</a></li> + + <li><a + href="mod_setenvif.html#browsermatch">BrowserMatch</a></li> + + <li><a + href="mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</a></li> + + <li><a href="core.html#bs2000account">BS2000Account</a></li> + + <li><a + href="mod_proxy.html#cachedefaultexpire">CacheDefaultExpire</a></li> + + <li><a + href="mod_proxy.html#cachedirlength">CacheDirLength</a></li> + + <li><a + href="mod_proxy.html#cachedirlevels">CacheDirLevels</a></li> + + <li><a + href="mod_proxy.html#cacheforcecompletion">CacheForceCompletion</a></li> + + <li><a + href="mod_proxy.html#cachegcinterval">CacheGcInterval</a></li> + + <li><a + href="mod_proxy.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></li> + + <li><a + href="mod_proxy.html#cachemaxexpire">CacheMaxExpire</a></li> + + <li><a + href="mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></li> + + <li><a href="mod_proxy.html#cacheroot">CacheRoot</a></li> + + <li><a href="mod_proxy.html#cachesize">CacheSize</a></li> + + <li><a href="core.html#cgicommandargs">CGICommandArgs</a></li> + + <li><a + href="mod_speling.html#checkspelling">CheckSpelling</a></li> + + <li><a + href="core.html#clearmodulelist">ClearModuleList</a></li> + + <li><a href="core.html#contentdigest">ContentDigest</a></li> + + <li><a + href="mod_usertrack.html#cookiedomain">CookieDomain</a></li> + + <li><a + href="mod_usertrack.html#cookieexpires">CookieExpires</a></li> + + <li><a + href="mod_usertrack.html#cookieformat">CookieFormat</a></li> + + <li><a href="mod_cookies.html#cookielog">CookieLog</a> + (mod_cookies)</li> + + <li><a href="mod_log_config.html#cookielog">CookieLog</a> + (mod_log_config)</li> + + <li><a + href="mod_usertrack.html#cookieprefix">CookiePrefix</a></li> + + <li><a + href="mod_usertrack.html#cookiestyle">CookieStyle</a></li> + + <li><a + href="mod_usertrack.html#cookietracking">CookieTracking</a></li> + + <li><a + href="core.html#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a + href="mod_log_config.html#customlog">CustomLog</a></li> + + <li><a + href="mod_autoindex.html#defaulticon">DefaultIcon</a></li> + + <li><a + href="mod_mime.html#defaultlanguage">DefaultLanguage</a></li> + + <li><a href="core.html#defaulttype">DefaultType</a></li> + + <li><a href="mod_access.html#deny">Deny</a></li> + + <li><a href="core.html#directory"><Directory></a></li> + + <li><a + href="core.html#directorymatch"><DirectoryMatch></a></li> + + <li><a + href="mod_dir.html#directoryindex">DirectoryIndex</a></li> + + <li><a href="core.html#documentroot">DocumentRoot</a></li> + + <li><a href="core.html#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="core.html#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="core.html#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="core.html#enableexceptionhook">EnableExceptionHook</a></li> + + <li><a href="core.html#errordocument">ErrorDocument</a></li> + + <li><a href="mod_headers.html#errorheader">ErrorHeader</a></li> + + <li><a href="core.html#errorlog">ErrorLog</a></li> + + <li><a href="mod_example.html#example">Example</a></li> + + <li><a + href="mod_expires.html#expiresactive">ExpiresActive</a></li> + + <li><a + href="mod_expires.html#expiresbytype">ExpiresByType</a></li> + + <li><a + href="mod_expires.html#expiresdefault">ExpiresDefault</a></li> + + <li><a + href="mod_status.html#extendedstatus">ExtendedStatus</a></li> + + <li><a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a></li> + + <li><a href="core.html#fileetag">FileETag</a></li> + + <li><a href="core.html#files"><Files></a></li> + + <li><a + href="core.html#filesmatch"><FilesMatch></a></li> + + <li><a href="mod_mime.html#forcetype">ForceType</a></li> + + <li><a href="mod_log_forensic.html#forensiclog">ForensicLog</a></li> + + <li><a href="core.html#group">Group</a></li> + + <li><a href="mod_headers.html#header">Header</a></li> + + <li><a + href="mod_autoindex.html#headername">HeaderName</a></li> + + <li><a + href="core.html#hostnamelookups">HostnameLookups</a></li> + + <li><a href="core.html#identitycheck">IdentityCheck</a></li> + + <li><a href="core.html#ifdefine"><IfDefine></a></li> + + <li><a href="core.html#ifmodule"><IfModule></a></li> + + <li><a href="mod_imap.html#imapbase">ImapBase</a></li> + + <li><a href="mod_imap.html#imapdefault">ImapDefault</a></li> + + <li><a href="mod_imap.html#imapmenu">ImapMenu</a></li> + + <li><a href="core.html#include">Include</a></li> + + <li><a + href="mod_autoindex.html#indexignore">IndexIgnore</a></li> + + <li><a + href="mod_autoindex.html#indexoptions">IndexOptions</a></li> + + <li><a + href="mod_autoindex.html#indexorderdefault">IndexOrderDefault</a></li> + + <li><a + href="mod_isapi.html#isapireadaheadbuffer">ISAPIReadAheadBuffer</a></li> + + <li><a + href="mod_isapi.html#isapilognotsupported">ISAPILogNotSupported</a></li> + + <li><a + href="mod_isapi.html#isapiappendlogtoerrors">ISAPIAppendLogToErrors</a></li> + + <li><a + href="mod_isapi.html#isapiappendlogtoquery">ISAPIAppendLogToQuery</a></li> + + <li><a href="core.html#keepalive">KeepAlive</a></li> + + <li><a + href="core.html#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a + href="mod_negotiation.html#languagepriority">LanguagePriority</a></li> + + <li><a href="core.html#limit"><Limit></a></li> + + <li><a + href="core.html#limitexcept"><LimitExcept></a></li> + + <li><a + href="core.html#limitinternalrecursion">LimitInternalRecursion</a></li> + + <li><a + href="core.html#limitrequestbody">LimitRequestBody</a></li> + + <li><a + href="core.html#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="core.html#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a + href="core.html#limitrequestline">LimitRequestLine</a></li> + + <li><a href="core.html#listen">Listen</a></li> + + <li><a href="core.html#listenbacklog">ListenBacklog</a></li> + + <li><a href="mod_so.html#loadfile">LoadFile</a></li> + + <li><a href="mod_so.html#loadmodule">LoadModule</a></li> + + <li><a href="core.html#location"><Location></a></li> + + <li><a + href="core.html#locationmatch"><LocationMatch></a></li> + + <li><a href="core.html#lockfile">LockFile</a></li> + + <li><a + href="mod_log_config.html#logformat">LogFormat</a></li> + + <li><a href="core.html#loglevel">LogLevel</a></li> + + <li><a href="core.html#maxclients">MaxClients</a></li> + + <li><a + href="core.html#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="core.html#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a + href="core.html#maxspareservers">MaxSpareServers</a></li> + + <li><a href="mod_cern_meta.html#metadir">MetaDir</a></li> + + <li><a href="mod_cern_meta.html#metafiles">MetaFiles</a></li> + + <li><a + href="mod_cern_meta.html#metasuffix">MetaSuffix</a></li> + + <li><a + href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></li> + + <li><a + href="core.html#minspareservers">MinSpareServers</a></li> + + <li><a href="mod_mmap_static.html#mmapfile">MMapFile</a></li> + + <li><a + href="core.html#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="mod_proxy.html#nocache">NoCache</a></li> + + <li><a href="core.html#options">Options</a></li> + + <li><a href="mod_access.html#order">Order</a></li> + + <li><a href="mod_env.html#passenv">PassEnv</a></li> + + <li><a href="core.html#pidfile">PidFile</a></li> + + <li><a href="core.html#port">Port</a></li> + + <li><a href="core.html#protocolreqcheck">ProtocolReqCheck</a></li> + + <li><a href="mod_proxy.html#proxyblock">ProxyBlock</a></li> + + <li><a href="mod_proxy.html#proxydomain">ProxyDomain</a></li> + + <li><a href="mod_proxy.html#proxypass">ProxyPass</a></li> + + <li><a + href="mod_proxy.html#proxypassreverse">ProxyPassReverse</a></li> + + <li><a + href="mod_proxy.html#proxyreceivebuffersize">ProxyReceiveBufferSize</a></li> + + <li><a href="mod_proxy.html#proxyremote">ProxyRemote</a></li> + + <li><a + href="mod_proxy.html#proxyrequests">ProxyRequests</a></li> + + <li><a href="mod_proxy.html#proxyvia">ProxyVia</a></li> + + <li><a + href="mod_autoindex.html#readmename">ReadmeName</a></li> + + <li><a href="mod_alias.html#redirect">Redirect</a></li> + + <li><a + href="mod_alias.html#redirectmatch">RedirectMatch</a></li> + + <li><a + href="mod_alias.html#redirectperm">RedirectPermanent</a></li> + + <li><a + href="mod_alias.html#redirecttemp">RedirectTemp</a></li> + + <li><a + href="mod_log_referer.html#refererignore">RefererIgnore</a></li> + + <li><a + href="mod_log_referer.html#refererlog">RefererLog</a></li> + + <li><a + href="mod_mime.html#removeencoding">RemoveEncoding</a></li> + + <li><a + href="mod_mime.html#removehandler">RemoveHandler</a></li> + + <li><a href="mod_mime.html#removetype">RemoveType</a></li> + + <li><a href="core.html#require">Require</a></li> + + <li><a + href="core.html#resourceconfig">ResourceConfig</a></li> + + <li><a + href="mod_rewrite.html#RewriteBase">RewriteBase</a></li> + + <li><a + href="mod_rewrite.html#RewriteCond">RewriteCond</a></li> + + <li><a + href="mod_rewrite.html#RewriteEngine">RewriteEngine</a></li> + + <li><a + href="mod_rewrite.html#RewriteLock">RewriteLock</a></li> + + <li><a href="mod_rewrite.html#RewriteLog">RewriteLog</a></li> + + <li><a + href="mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</a></li> + + <li><a href="mod_rewrite.html#RewriteMap">RewriteMap</a></li> + + <li><a + href="mod_rewrite.html#RewriteOptions">RewriteOptions</a></li> + + <li><a + href="mod_rewrite.html#RewriteRule">RewriteRule</a></li> + + <li><a href="core.html#rlimitcpu">RLimitCPU</a></li> + + <li><a href="core.html#rlimitmem">RLimitMEM</a></li> + + <li><a href="core.html#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="core.html#satisfy">Satisfy</a></li> + + <li><a + href="core.html#scoreboardfile">ScoreBoardFile</a></li> + + <li><a href="mod_actions.html#script">Script</a></li> + + <li><a href="mod_alias.html#scriptalias">ScriptAlias</a></li> + + <li><a + href="mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></li> + + <li><a + href="core.html#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="mod_cgi.html#scriptlog">ScriptLog</a></li> + + <li><a + href="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></li> + + <li><a + href="mod_cgi.html#scriptloglength">ScriptLogLength</a></li> + + <li><a + href="core.html#sendbuffersize">SendBufferSize</a></li> + + <li><a href="core.html#serveradmin">ServerAdmin</a></li> + + <li><a href="core.html#serveralias">ServerAlias</a></li> + + <li><a href="core.html#servername">ServerName</a></li> + + <li><a href="core.html#serverpath">ServerPath</a></li> + + <li><a href="core.html#serverroot">ServerRoot</a></li> + + <li><a + href="core.html#serversignature">ServerSignature</a></li> + + <li><a href="core.html#servertokens">ServerTokens</a></li> + + <li><a href="core.html#servertype">ServerType</a></li> + + <li><a href="mod_env.html#setenv">SetEnv</a></li> + + <li><a href="mod_setenvif.html#setenvif">SetEnvIf</a></li> + + <li><a + href="mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a></li> + + <li><a href="mod_mime.html#sethandler">SetHandler</a></li> + + <li><a href="core.html#shmemuidisuser">ShmemUIDisUser</a></li> + + <li><a href="core.html#startservers">StartServers</a></li> + + <li><a + href="core.html#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="core.html#timeout">TimeOut</a></li> + + <li><a + href="mod_log_config.html#transferlog">TransferLog</a></li> + + <li><a href="mod_mime.html#typesconfig">TypesConfig</a></li> + + <li><a href="mod_env.html#unsetenv">UnsetEnv</a></li> + + <li><a + href="core.html#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="core.html#user">User</a></li> + + <li><a href="mod_userdir.html#userdir">UserDir</a></li> + + <li><a + href="core.html#virtualhost"><VirtualHost></a></li> + + <li><a + href="mod_vhost_alias.html#virtualdocumentroot">VirtualDocumentRoot</a></li> + + <li><a + href="mod_vhost_alias.html#virtualdocumentrootip">VirtualDocumentRootIP</a></li> + + <li><a + href="mod_vhost_alias.html#virtualscriptalias">VirtualScriptAlias</a></li> + + <li><a + href="mod_vhost_alias.html#virtualscriptaliasip">VirtualScriptAliasIP</a></li> + + <li><a href="mod_include.html#xbithack">XBitHack</a></li> + </ul> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/directives.html.fr b/htdocs/manual/mod/directives.html.fr new file mode 100644 index 0000000000..d0a53b39eb --- /dev/null +++ b/htdocs/manual/mod/directives.html.fr @@ -0,0 +1,572 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--Traduction anglais 1.69 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Directives Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Directives Apache</h1> + + <p>Chacune des directives Apache disponible dans la + distribution standard est listée ici. Elles sont + décrites selon un format précis, et nous + fournissons un <a href="directive-dict.html" + rel="Glossary">dictionnaire</a> des termes utilisés pour + leur description.</p> + + <ul> + <li><a href="core.html#acceptfilter">AcceptFilter</a></li> + + <li><a href="core.html#acceptmutex">AcceptMutex</a></li> + + <li><a href="core.html#accessconfig">AccessConfig</a></li> + + <li><a + href="core.html#accessfilename">AccessFileName</a></li> + + <li><a href="mod_actions.html#action">Action</a></li> + + <li><a href="mod_autoindex.html#addalt">AddAlt</a></li> + + <li><a + href="mod_autoindex.html#addaltbyencoding">AddAltByEncoding</a></li> + + <li><a + href="mod_autoindex.html#addaltbytype">AddAltByType</a></li> + + <li><a href="mod_mime.html#addcharset">AddCharset</a></li> + + <li><a + href="core.html#adddefaultcharset">AddDefaultCharset</a></li> + + <li><a + href="mod_autoindex.html#adddescription">AddDescription</a></li> + + <li><a href="mod_mime.html#addencoding">AddEncoding</a></li> + + <li><a href="mod_mime.html#addhandler">AddHandler</a></li> + + <li><a href="mod_autoindex.html#addicon">AddIcon</a></li> + + <li><a + href="mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a></li> + + <li><a + href="mod_autoindex.html#addiconbytype">AddIconByType</a></li> + + <li><a href="mod_mime.html#addlanguage">AddLanguage</a></li> + + <li><a href="core.html#addmodule">AddModule</a></li> + + <li><a + href="mod_info.html#addmoduleinfo">AddModuleInfo</a></li> + + <li><a href="mod_mime.html#addtype">AddType</a></li> + + <li><a href="mod_log_agent.html#agentlog">AgentLog</a></li> + + <li><a href="mod_alias.html#alias">Alias</a></li> + + <li><a href="mod_alias.html#aliasmatch">AliasMatch</a></li> + + <li><a href="mod_access.html#allow">allow</a></li> + + <li><a + href="mod_proxy.html#allowconnect">AllowCONNECT</a></li> + + <li><a href="core.html#allowoverride">AllowOverride</a></li> + + <li><a href="mod_auth_anon.html#anonymous">Anonymous</a></li> + + <li><a + href="mod_auth_anon.html#Authoritative">Anonymous_Authoritative</a></li> + + <li><a + href="mod_auth_anon.html#LogEmail">Anonymous_LogEmail</a></li> + + <li><a + href="mod_auth_anon.html#MustGiveEmail">Anonymous_MustGiveEmail</a></li> + + <li><a + href="mod_auth_anon.html#NoUserID">Anonymous_NoUserID</a></li> + + <li><a + href="mod_auth_anon.html#VerifyEmail">Anonymous_VerifyEmail</a></li> + + <li><a + href="mod_auth.html#authauthoritative">AuthAuthoritative</a></li> + + <li><a + href="mod_auth_db.html#authdbauthoritative">AuthDBAuthoritative</a></li> + + <li><a + href="mod_auth_db.html#authdbgroupfile">AuthDBGroupFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmauthoritative">AuthDBMAuthoritative</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></li> + + <li><a + href="mod_auth_db.html#authdbuserfile">AuthDBUserFile</a></li> + + <li><a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a></li> + + <li><a + href="mod_digest.html#authdigestfile">AuthDigestFile</a></li> + + <li><a + href="mod_auth.html#authgroupfile">AuthGroupFile</a></li> + + <li><a href="core.html#authname">AuthName</a></li> + + <li><a href="core.html#authtype">AuthType</a></li> + + <li><a + href="mod_auth.html#authuserfile">AuthUserFile</a></li> + + <li><a href="core.html#bindaddress">BindAddress</a></li> + + <li><a + href="mod_setenvif.html#browsermatch">BrowserMatch</a></li> + + <li><a + href="mod_setenvif.html#browsermatchnocase">BrowserMatchNoCase</a></li> + + <li><a href="core.html#bs2000account">BS2000Account</a></li> + + <li><a + href="mod_proxy.html#cachedefaultexpire">CacheDefaultExpire</a></li> + + <li><a + href="mod_proxy.html#cachedirlength">CacheDirLength</a></li> + + <li><a + href="mod_proxy.html#cachedirlevels">CacheDirLevels</a></li> + + <li><a + href="mod_proxy.html#cacheforcecompletion">CacheForceCompletion</a></li> + + <li><a + href="mod_proxy.html#cachegcinterval">CacheGcInterval</a></li> + + <li><a + href="mod_proxy.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></li> + + <li><a + href="mod_proxy.html#cachemaxexpire">CacheMaxExpire</a></li> + + <li><a + href="mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></li> + + <li><a href="mod_proxy.html#cacheroot">CacheRoot</a></li> + + <li><a href="mod_proxy.html#cachesize">CacheSize</a></li> + + <li><a + href="mod_speling.html#checkspelling">CheckSpelling</a></li> + + <li><a + href="core.html#clearmodulelist">ClearModuleList</a></li> + + <li><a href="core.html#contentdigest">ContentDigest</a></li> + + <li><a + href="mod_usertrack.html#cookieexpires">CookieExpires</a></li> + + <li><a href="mod_cookies.html#cookielog">CookieLog</a> + (mod_cookies)</li> + + <li><a href="mod_log_config.html#cookielog">CookieLog</a> + (mod_log_config)</li> + + <li><a + href="mod_usertrack.html#cookietracking">CookieTracking</a></li> + + <li><a + href="core.html#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a + href="mod_log_config.html#customlog">CustomLog</a></li> + + <li><a + href="mod_autoindex.html#defaulticon">DefaultIcon</a></li> + + <li><a + href="mod_mime.html#defaultlanguage">DefaultLanguage</a></li> + + <li><a href="core.html#defaulttype">DefaultType</a></li> + + <li><a href="mod_access.html#deny">deny</a></li> + + <li><a href="core.html#directory"><Directory></a></li> + + <li><a + href="core.html#directorymatch"><DirectoryMatch></a></li> + + <li><a + href="mod_dir.html#directoryindex">DirectoryIndex</a></li> + + <li><a href="core.html#documentroot">DocumentRoot</a></li> + + <li><a href="core.html#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="core.html#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="core.html#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="core.html#errordocument">ErrorDocument</a></li> + + <li><a href="core.html#errorlog">ErrorLog</a></li> + + <li><a href="mod_example.html#example">Example</a></li> + + <li><a + href="mod_expires.html#expiresactive">ExpiresActive</a></li> + + <li><a + href="mod_expires.html#expiresbytype">ExpiresByType</a></li> + + <li><a + href="mod_expires.html#expiresdefault">ExpiresDefault</a></li> + + <li><a + href="mod_status.html#extendedstatus">ExtendedStatus</a></li> + + <li><a + href="mod_autoindex.html#fancyindexing">FancyIndexing</a></li> + + <li><a href="core.html#files"><Files></a></li> + + <li><a + href="core.html#filesmatch"><FilesMatch></a></li> + + <li><a href="mod_mime.html#forcetype">ForceType</a></li> + + <li><a href="mod_log_forensic.html#forensiclog">ForensicLog</a></li> + + <li><a href="core.html#group">Group</a></li> + + <li><a href="mod_headers.html#header">Header</a></li> + + <li><a + href="mod_autoindex.html#headername">HeaderName</a></li> + + <li><a + href="core.html#hostnamelookups">HostNameLookups</a></li> + + <li><a href="core.html#identitycheck">IdentityCheck</a></li> + + <li><a href="core.html#ifdefine"><IfDefine></a></li> + + <li><a href="core.html#ifmodule"><IfModule></a></li> + + <li><a href="mod_imap.html#imapbase">ImapBase</a></li> + + <li><a href="mod_imap.html#imapdefault">ImapDefault</a></li> + + <li><a href="mod_imap.html#imapmenu">ImapMenu</a></li> + + <li><a href="core.html#include">Include</a></li> + + <li><a + href="mod_autoindex.html#indexignore">IndexIgnore</a></li> + + <li><a + href="mod_autoindex.html#indexoptions">IndexOptions</a></li> + + <li><a + href="mod_autoindex.html#indexorderdefault">IndexOrderDefault</a></li> + + <li><a + href="mod_isapi.html#isapireadaheadbuffer">ISAPIReadAheadBuffer</a></li> + + <li><a + href="mod_isapi.html#isapilognotsupported">ISAPILogNotSupported</a></li> + + <li><a + href="mod_isapi.html#isapiappendlogtoerrors">ISAPIAppendLogToErrors</a></li> + + <li><a + href="mod_isapi.html#isapiappendlogtoquery">ISAPIAppendLogToQuery</a></li> + + <li><a href="core.html#keepalive">KeepAlive</a></li> + + <li><a + href="core.html#keepalivetimeout">KeepAliveTimeout</a></li> + + <li><a + href="mod_negotiation.html#languagepriority">LanguagePriority</a></li> + + <li><a href="core.html#limit"><Limit></a></li> + + <li><a + href="core.html#limitexcept"><LimitExcept></a></li> + + <li><a + href="core.html#limitrequestbody">LimitRequestBody</a></li> + + <li><a + href="core.html#limitrequestfields">LimitRequestFields</a></li> + + <li><a + href="core.html#limitrequestfieldsize">LimitRequestFieldsize</a></li> + + <li><a + href="core.html#limitrequestline">LimitRequestLine</a></li> + + <li><a href="core.html#listen">Listen</a></li> + + <li><a href="core.html#listenbacklog">ListenBacklog</a></li> + + <li><a href="mod_so.html#loadfile">LoadFile</a></li> + + <li><a href="mod_so.html#loadmodule">LoadModule</a></li> + + <li><a href="core.html#location"><Location></a></li> + + <li><a + href="core.html#locationmatch"><LocationMatch></a></li> + + <li><a href="core.html#lockfile">LockFile</a></li> + + <li><a + href="mod_log_config.html#logformat">LogFormat</a></li> + + <li><a href="core.html#loglevel">LogLevel</a></li> + + <li><a href="core.html#maxclients">MaxClients</a></li> + + <li><a + href="core.html#maxkeepaliverequests">MaxKeepAliveRequests</a></li> + + <li><a + href="core.html#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a + href="core.html#maxspareservers">MaxSpareServers</a></li> + + <li><a href="mod_cern_meta.html#metadir">MetaDir</a></li> + + <li><a href="mod_cern_meta.html#metafiles">MetaFiles</a></li> + + <li><a + href="mod_cern_meta.html#metasuffix">MetaSuffix</a></li> + + <li><a + href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></li> + + <li><a + href="core.html#minspareservers">MinSpareServers</a></li> + + <li><a href="mod_mmap_static.html#mmapfile">MMapFile</a></li> + + <li><a + href="core.html#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="mod_proxy.html#nocache">NoCache</a></li> + + <li><a href="core.html#options">Options</a></li> + + <li><a href="mod_access.html#order">order</a></li> + + <li><a href="mod_env.html#passenv">PassEnv</a></li> + + <li><a href="core.html#pidfile">PidFile</a></li> + + <li><a href="core.html#port">Port</a></li> + + <li><a href="mod_proxy.html#proxyblock">ProxyBlock</a></li> + + <li><a href="mod_proxy.html#proxydomain">ProxyDomain</a></li> + + <li><a href="mod_proxy.html#proxypass">ProxyPass</a></li> + + <li><a + href="mod_proxy.html#proxypassreverse">ProxyPassReverse</a></li> + + <li><a + href="mod_proxy.html#proxyreceivebuffersize">ProxyReceiveBufferSize</a></li> + + <li><a href="mod_proxy.html#proxyremote">ProxyRemote</a></li> + + <li><a + href="mod_proxy.html#proxyrequests">ProxyRequests</a></li> + + <li><a href="mod_proxy.html#proxyvia">ProxyVia</a></li> + + <li><a + href="mod_autoindex.html#readmename">ReadmeName</a></li> + + <li><a href="mod_alias.html#redirect">Redirect</a></li> + + <li><a + href="mod_alias.html#redirectmatch">RedirectMatch</a></li> + + <li><a + href="mod_alias.html#redirectperm">RedirectPermanent</a></li> + + <li><a + href="mod_alias.html#redirecttemp">RedirectTemp</a></li> + + <li><a + href="mod_log_referer.html#refererignore">RefererIgnore</a></li> + + <li><a + href="mod_log_referer.html#refererlog">RefererLog</a></li> + + <li><a + href="mod_mime.html#removeencoding">RemoveEncoding</a></li> + + <li><a + href="mod_mime.html#removehandler">RemoveHandler</a></li> + + <li><a href="mod_mime.html#removetype">RemoveType</a></li> + + <li><a href="core.html#require">require</a></li> + + <li><a + href="core.html#resourceconfig">ResourceConfig</a></li> + + <li><a + href="mod_rewrite.html#RewriteBase">RewriteBase</a></li> + + <li><a + href="mod_rewrite.html#RewriteCond">RewriteCond</a></li> + + <li><a + href="mod_rewrite.html#RewriteEngine">RewriteEngine</a></li> + + <li><a + href="mod_rewrite.html#RewriteLock">RewriteLock</a></li> + + <li><a href="mod_rewrite.html#RewriteLog">RewriteLog</a></li> + + <li><a + href="mod_rewrite.html#RewriteLogLevel">RewriteLogLevel</a></li> + + <li><a href="mod_rewrite.html#RewriteMap">RewriteMap</a></li> + + <li><a + href="mod_rewrite.html#RewriteOptions">RewriteOptions</a></li> + + <li><a + href="mod_rewrite.html#RewriteRule">RewriteRule</a></li> + + <li><a href="core.html#rlimitcpu">RLimitCPU</a></li> + + <li><a href="core.html#rlimitmem">RLimitMEM</a></li> + + <li><a href="core.html#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="core.html#satisfy">Satisfy</a></li> + + <li><a + href="core.html#scoreboardfile">ScoreBoardFile</a></li> + + <li><a href="mod_actions.html#script">Script</a></li> + + <li><a href="mod_alias.html#scriptalias">ScriptAlias</a></li> + + <li><a + href="mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></li> + + <li><a + href="core.html#scriptinterpretersource">ScriptInterpreterSource</a></li> + + <li><a href="mod_cgi.html#scriptlog">ScriptLog</a></li> + + <li><a + href="mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></li> + + <li><a + href="mod_cgi.html#scriptloglength">ScriptLogLength</a></li> + + <li><a + href="core.html#sendbuffersize">SendBufferSize</a></li> + + <li><a href="core.html#serveradmin">ServerAdmin</a></li> + + <li><a href="core.html#serveralias">ServerAlias</a></li> + + <li><a href="core.html#servername">ServerName</a></li> + + <li><a href="core.html#serverpath">ServerPath</a></li> + + <li><a href="core.html#serverroot">ServerRoot</a></li> + + <li><a + href="core.html#serversignature">ServerSignature</a></li> + + <li><a href="core.html#servertokens">ServerTokens</a></li> + + <li><a href="core.html#servertype">ServerType</a></li> + + <li><a href="mod_env.html#setenv">SetEnv</a></li> + + <li><a href="mod_setenvif.html#setenvif">SetEnvIf</a></li> + + <li><a + href="mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a></li> + + <li><a href="mod_mime.html#sethandler">SetHandler</a></li> + + <li><a href="core.html#startservers">StartServers</a></li> + + <li><a + href="core.html#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="core.html#timeout">TimeOut</a></li> + + <li><a + href="mod_log_config.html#transferlog">TransferLog</a></li> + + <li><a href="mod_mime.html#typesconfig">TypesConfig</a></li> + + <li><a href="mod_env.html#unsetenv">UnsetEnv</a></li> + + <li><a + href="core.html#usecanonicalname">UseCanonicalName</a></li> + + <li><a href="core.html#user">User</a></li> + + <li><a href="mod_userdir.html#userdir">UserDir</a></li> + + <li><a + href="core.html#virtualhost"><VirtualHost></a></li> + + <li><a + href="mod_vhost_alias.html#virtualdocumentroot">VirtualDocumentRoot</a></li> + + <li><a + href="mod_vhost_alias.html#virtualdocumentrootip">VirtualDocumentRootIP</a></li> + + <li><a + href="mod_vhost_alias.html#virtualscriptalias">VirtualScriptAlias</a></li> + + <li><a + href="mod_vhost_alias.html#virtualscriptaliasip">VirtualScriptAliasIP</a></li> + + <li><a href="mod_include.html#xbithack">XBitHack</a></li> + </ul> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/directives.html.html b/htdocs/manual/mod/directives.html.html new file mode 100644 index 0000000000..ae7d722522 --- /dev/null +++ b/htdocs/manual/mod/directives.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="directives.html.en" --> + diff --git a/htdocs/manual/mod/directives.html.ja.jis b/htdocs/manual/mod/directives.html.ja.jis new file mode 100644 index 0000000000..b043eab707 --- /dev/null +++ b/htdocs/manual/mod/directives.html.ja.jis @@ -0,0 +1,592 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache ディレクティブ</title> + + </head> + <!-- English revision: 1.84 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache ディレクティブ</h1> + + <p>通錣鞜竏配布に含まれる Apache のディレクティブは、 + ,里茲逅擦砲覆蠅泙后5劼亡悗垢覺靄椽颱踉三については、 + それらの有効な表記に関する <a href="directive-dict.html" + rel="glossary">ぢが用意されています。 + </p> + + <ul> + <li><a href="core.html#acceptfilter">AcceptFilter</a></li> + + <li><a href="core.html#acceptmutex">AcceptMutex</a></li> + + <li><a href="core.html#accessconfig">AccessConfig</a></li> + + <li><a href="core.html#accessfilename" + >AccessFileName</a></li> + + <li><a href="mod_actions.html#action">Action</a></li> + + <li><a href="mod_autoindex.html#addalt">AddAlt</a></li> + + <li><a href="mod_autoindex.html#addaltbyencoding" + >AddAltByEncoding</a></li> + + <li><a href="mod_autoindex.html#addaltbytype" + >AddAltByType</a></li> + + <li><a href="mod_mime.html#addcharset">AddCharset</a></li> + + <li><a href="core.html#adddefaultcharset" + >AddDefaultCharset</a></li> + + <li><a href="mod_autoindex.html#adddescription" + >AddDescription</a></li> + + <li><a href="mod_mime.html#addencoding">AddEncoding</a></li> + + <li><a href="mod_mime.html#addhandler">AddHandler</a></li> + + <li><a href="mod_autoindex.html#addicon">AddIcon</a></li> + + <li><a href="mod_autoindex.html#addiconbyencoding" + >AddIconByEncoding</a></li> + + <li><a href="mod_autoindex.html#addiconbytype" + >AddIconByType</a></li> + + <li><a href="mod_mime.html#addlanguage">AddLanguage</a></li> + + <li><a href="core.html#addmodule">AddModule</a></li> + + <li><a href="mod_info.html#addmoduleinfo" + >AddModuleInfo</a></li> + + <li><a href="mod_mime.html#addtype">AddType</a></li> + + <li><a href="mod_log_agent.html#agentlog">AgentLog</a></li> + + <li><a href="mod_alias.html#alias">Alias</a></li> + + <li><a href="mod_alias.html#aliasmatch">AliasMatch</a></li> + + <li><a href="mod_access.html#allow">Allow</a></li> + + <li><a href="mod_proxy.html#allowconnect" + >AllowCONNECT</a></li> + + <li><a href="core.html#allowoverride">AllowOverride</a></li> + + <li><a href="mod_auth_anon.html#anonymous">Anonymous</a></li> + + <li><a href="mod_auth_anon.html#authoritative" + >Anonymous_Authoritative</a></li> + + <li><a href="mod_auth_anon.html#logemail" + >Anonymous_LogEmail</a></li> + + <li><a href="mod_auth_anon.html#mustgiveemail" + >Anonymous_MustGiveEmail</a></li> + + <li><a href="mod_auth_anon.html#nouserid" + >Anonymous_NoUserID</a></li> + + <li><a href="mod_auth_anon.html#verifyemail" + >Anonymous_VerifyEmail</a></li> + + <li><a href="mod_auth.html#authauthoritative" + >AuthAuthoritative</a></li> + + <li><a href="mod_auth_db.html#authdbauthoritative" + >AuthDBAuthoritative</a></li> + + <li><a href="mod_auth_db.html#authdbgroupfile" + >AuthDBGroupFile</a></li> + + <li><a href="mod_auth_dbm.html#authdbmauthoritative" + >AuthDBMAuthoritative</a></li> + + <li><a href="mod_auth_dbm.html#authdbmgroupfile" + >AuthDBMGroupFile</a></li> + + <li><a href="mod_auth_dbm.html#authdbmgroupfile" + >AuthDBMGroupFile</a></li> + + <li><a href="mod_auth_db.html#authdbuserfile" + >AuthDBUserFile</a></li> + + <li><a href="mod_auth_dbm.html#authdbmuserfile" + >AuthDBMUserFile</a></li> + + <li><a href="mod_digest.html#authdigestfile" + >AuthDigestFile</a></li> + + <li><a href="mod_auth.html#authgroupfile" + >AuthGroupFile</a></li> + + <li><a href="core.html#authname">AuthName</a></li> + + <li><a href="core.html#authtype">AuthType</a></li> + + <li><a href="mod_auth.html#authuserfile" + >AuthUserFile</a></li> + + <li><a href="core.html#bindaddress">BindAddress</a></li> + + <li><a href="mod_setenvif.html#browsermatch" + >BrowserMatch</a></li> + + <li><a href="mod_setenvif.html#browsermatchnocase" + >BrowserMatchNoCase</a></li> + + <li><a href="core.html#bs2000account">BS2000Account</a></li> + + <li><a href="mod_proxy.html#cachedefaultexpire" + >CacheDefaultExpire</a></li> + + <li><a href="mod_proxy.html#cachedirlength" + >CacheDirLength</a></li> + + <li><a href="mod_proxy.html#cachedirlevels" + >CacheDirLevels</a></li> + + <li><a href="mod_proxy.html#cacheforcecompletion" + >CacheForceCompletion</a></li> + + <li><a href="mod_proxy.html#cachegcinterval" + >CacheGcInterval</a></li> + + <li><a href="mod_proxy.html#cachelastmodifiedfactor" + >CacheLastModifiedFactor</a></li> + + <li><a href="mod_proxy.html#cachemaxexpire" + >CacheMaxExpire</a></li> + + <li><a href="mod_negotiation.html#cachenegotiateddocs" + >CacheNegotiatedDocs</a></li> + + <li><a href="mod_proxy.html#cacheroot">CacheRoot</a></li> + + <li><a href="mod_proxy.html#cachesize">CacheSize</a></li> + + <li><a href="core.html#cgicommandargs">CGICommandArgs</a></li> + + <li><a href="mod_speling.html#checkspelling" + >CheckSpelling</a></li> + + <li><a href="core.html#clearmodulelist" + >ClearModuleList</a></li> + + <li><a href="core.html#contentdigest">ContentDigest</a></li> + + <li><a href="mod_usertrack.html#cookiedomain">CookieDomain</a></li> + + <li><a href="mod_usertrack.html#cookieexpires" + >CookieExpires</a></li> + + <li><a + href="mod_usertrack.html#cookieformat">CookieFormat</a></li> + + <li><a href="mod_cookies.html#cookielog">CookieLog</a> + (mod_cookies)</li> + + <li><a href="mod_log_config.html#cookielog">CookieLog</a> + (mod_log_config)</li> + + <li><a + href="mod_usertrack.html#cookieprefix">CookiePrefix</a></li> + + <li><a href="mod_usertrack.html#cookiestyle">CookieStyle</a></li> + + <li><a href="mod_usertrack.html#cookietracking" + >CookieTracking</a></li> + + <li><a href="core.html#coredumpdirectory" + >CoreDumpDirectory</a></li> + + <li><a href="mod_log_config.html#customlog" + >CustomLog</a></li> + + <li><a href="mod_autoindex.html#defaulticon" + >DefaultIcon</a></li> + + <li><a href="mod_mime.html#defaultlanguage" + >DefaultLanguage</a></li> + + <li><a href="core.html#defaulttype">DefaultType</a></li> + + <li><a href="mod_access.html#deny">Deny</a></li> + + <li><a href="core.html#directory"><Directory></a></li> + + <li><a href="core.html#directorymatch" + ><DirectoryMatch></a></li> + + <li><a href="mod_dir.html#directoryindex" + >DirectoryIndex</a></li> + + <li><a href="core.html#documentroot">DocumentRoot</a></li> + + <li><a href="core.html#ebcdicconvert">EBCDICConvert</a></li> + + <li><a + href="core.html#ebcdicconvertbytype">EBCDICConvertByType</a></li> + + <li><a href="core.html#ebcdickludge">EBCDICKludge</a></li> + + <li><a href="core.html#enableexceptionhook">EnableExceptionHook</a></li> + + <li><a href="core.html#errordocument">ErrorDocument</a></li> + + <li><a href="mod_headers.html#errorheader">ErrorHeader</a></li> + + <li><a href="core.html#errorlog">ErrorLog</a></li> + + <li><a href="mod_example.html#example">Example</a></li> + + <li><a href="mod_expires.html#expiresactive" + >ExpiresActive</a></li> + + <li><a href="mod_expires.html#expiresbytype" + >ExpiresByType</a></li> + + <li><a href="mod_expires.html#expiresdefault" + >ExpiresDefault</a></li> + + <li><a href="mod_status.html#extendedstatus" + >ExtendedStatus</a></li> + + <li><a href="mod_autoindex.html#fancyindexing" + >FancyIndexing</a></li> + + <li><a href="core.html#fileetag">FileETag</a></li> + + <li><a href="core.html#files"><Files></a></li> + + <li><a href="core.html#filesmatch" + ><FilesMatch></a></li> + + <li><a href="mod_mime.html#forcetype">ForceType</a></li> + + <li><a href="mod_log_forensic.html#forensiclog">ForensicLog</a></li> + + <li><a href="core.html#group">Group</a></li> + + <li><a href="mod_headers.html#header">Header</a></li> + + <li><a href="mod_autoindex.html#headername" + >HeaderName</a></li> + + <li><a href="core.html#hostnamelookups" + >HostnameLookups</a></li> + + <li><a href="core.html#identitycheck">IdentityCheck</a></li> + + <li><a href="core.html#ifdefine"><IfDefine></a></li> + + <li><a href="core.html#ifmodule"><IfModule></a></li> + + <li><a href="mod_imap.html#imapbase">ImapBase</a></li> + + <li><a href="mod_imap.html#imapdefault">ImapDefault</a></li> + + <li><a href="mod_imap.html#imapmenu">ImapMenu</a></li> + + <li><a href="core.html#include">Include</a></li> + + <li><a href="mod_autoindex.html#indexignore" + >IndexIgnore</a></li> + + <li><a href="mod_autoindex.html#indexoptions" + >IndexOptions</a></li> + + <li><a href="mod_autoindex.html#indexorderdefault" + >IndexOrderDefault</a></li> + + <li><a href="mod_isapi.html#isapireadaheadbuffer" + >ISAPIReadAheadBuffer</a></li> + + <li><a href="mod_isapi.html#isapilognotsupported" + >ISAPILogNotSupported</a></li> + + <li><a href="mod_isapi.html#isapiappendlogtoerrors" + >ISAPIAppendLogToErrors</a></li> + + <li><a href="mod_isapi.html#isapiappendlogtoquery" + >ISAPIAppendLogToQuery</a></li> + + <li><a href="core.html#keepalive">KeepAlive</a></li> + + <li><a href="core.html#keepalivetimeout" + >KeepAliveTimeout</a></li> + + <li><a href="mod_negotiation.html#languagepriority" + >LanguagePriority</a></li> + + <li><a href="core.html#limit"><Limit></a></li> + + <li><a href="core.html#limitexcept" + ><LimitExcept></a></li> + + <li><a href="core.html#limitinternalrecursion" + >LimitInternalRecursion</a></li> + + <li><a href="core.html#limitrequestbody" + >LimitRequestBody</a></li> + + <li><a href="core.html#limitrequestfields" + >LimitRequestFields</a></li> + + <li><a href="core.html#limitrequestfieldsize" + >LimitRequestFieldsize</a></li> + + <li><a href="core.html#limitrequestline" + >LimitRequestLine</a></li> + + <li><a href="core.html#listen">Listen</a></li> + + <li><a href="core.html#listenbacklog">ListenBacklog</a></li> + + <li><a href="mod_so.html#loadfile">LoadFile</a></li> + + <li><a href="mod_so.html#loadmodule">LoadModule</a></li> + + <li><a href="core.html#location"><Location></a></li> + + <li><a href="core.html#locationmatch" + ><LocationMatch></a></li> + + <li><a href="core.html#lockfile">LockFile</a></li> + + <li><a href="mod_log_config.html#logformat" + >LogFormat</a></li> + + <li><a href="core.html#loglevel">LogLevel</a></li> + + <li><a href="core.html#maxclients">MaxClients</a></li> + + <li><a href="core.html#maxkeepaliverequests" + >MaxKeepAliveRequests</a></li> + + <li><a href="core.html#maxrequestsperchild" + >MaxRequestsPerChild</a></li> + + <li><a href="core.html#maxspareservers" + >MaxSpareServers</a></li> + + <li><a href="mod_cern_meta.html#metadir">MetaDir</a></li> + + <li><a href="mod_cern_meta.html#metafiles">MetaFiles</a></li> + + <li><a href="mod_cern_meta.html#metasuffix" + >MetaSuffix</a></li> + + <li><a href="mod_mime_magic.html#mimemagicfile" + >MimeMagicFile</a></li> + + <li><a href="core.html#minspareservers" + >MinSpareServers</a></li> + + <li><a href="mod_mmap_static.html#mmapfile">MMapFile</a></li> + + <li><a href="core.html#namevirtualhost" + >NameVirtualHost</a></li> + + <li><a href="mod_proxy.html#nocache">NoCache</a></li> + + <li><a href="core.html#options">Options</a></li> + + <li><a href="mod_access.html#order">Order</a></li> + + <li><a href="mod_env.html#passenv">PassEnv</a></li> + + <li><a href="core.html#pidfile">PidFile</a></li> + + <li><a href="core.html#port">Port</a></li> + + <li><a href="core.html#protocolreqcheck">ProtocolReqCheck</a></li> + + <li><a href="mod_proxy.html#proxyblock">ProxyBlock</a></li> + + <li><a href="mod_proxy.html#proxydomain">ProxyDomain</a></li> + + <li><a href="mod_proxy.html#proxypass">ProxyPass</a></li> + + <li><a href="mod_proxy.html#proxypassreverse" + >ProxyPassReverse</a></li> + + <li><a href="mod_proxy.html#proxyreceivebuffersize" + >ProxyReceiveBufferSize</a></li> + + <li><a href="mod_proxy.html#proxyremote">ProxyRemote</a></li> + + <li><a href="mod_proxy.html#proxyrequests" + >ProxyRequests</a></li> + + <li><a href="mod_proxy.html#proxyvia">ProxyVia</a></li> + + <li><a href="mod_autoindex.html#readmename" + >ReadmeName</a></li> + + <li><a href="mod_alias.html#redirect">Redirect</a></li> + + <li><a href="mod_alias.html#redirectmatch" + >RedirectMatch</a></li> + + <li><a href="mod_alias.html#redirectperm" + >RedirectPermanent</a></li> + + <li><a href="mod_alias.html#redirecttemp" + >RedirectTemp</a></li> + + <li><a href="mod_log_referer.html#refererignore" + >RefererIgnore</a></li> + + <li><a href="mod_log_referer.html#refererlog" + >RefererLog</a></li> + + <li><a href="mod_mime.html#removeencoding" + >RemoveEncoding</a></li> + + <li><a href="mod_mime.html#removehandler" + >RemoveHandler</a></li> + + <li><a href="mod_mime.html#removetype">RemoveType</a></li> + + <li><a href="core.html#require">Require</a></li> + + <li><a href="core.html#resourceconfig" + >ResourceConfig</a></li> + + <li><a href="mod_rewrite.html#rewritebase" + >RewriteBase</a></li> + + <li><a href="mod_rewrite.html#rewritecond" + >RewriteCond</a></li> + + <li><a href="mod_rewrite.html#rewriteengine" + >RewriteEngine</a></li> + + <li><a href="mod_rewrite.html#rewritelock" + >RewriteLock</a></li> + + <li><a href="mod_rewrite.html#rewritelog">RewriteLog</a></li> + + <li><a href="mod_rewrite.html#rewriteloglevel" + >RewriteLogLevel</a></li> + + <li><a href="mod_rewrite.html#rewritemap">RewriteMap</a></li> + + <li><a href="mod_rewrite.html#rewriteoptions" + >RewriteOptions</a></li> + + <li><a href="mod_rewrite.html#rewriterule" + >RewriteRule</a></li> + + <li><a href="core.html#rlimitcpu">RLimitCPU</a></li> + + <li><a href="core.html#rlimitmem">RLimitMEM</a></li> + + <li><a href="core.html#rlimitnproc">RLimitNPROC</a></li> + + <li><a href="core.html#satisfy">Satisfy</a></li> + + <li><a href="core.html#scoreboardfile" + >ScoreBoardFile</a></li> + + <li><a href="mod_actions.html#script">Script</a></li> + + <li><a href="mod_alias.html#scriptalias">ScriptAlias</a></li> + + <li><a href="mod_alias.html#scriptaliasmatch" + >ScriptAliasMatch</a></li> + + <li><a href="core.html#scriptinterpretersource" + >ScriptInterpreterSource</a></li> + + <li><a href="mod_cgi.html#scriptlog">ScriptLog</a></li> + + <li><a href="mod_cgi.html#scriptlogbuffer" + >ScriptLogBuffer</a></li> + + <li><a href="mod_cgi.html#scriptloglength" + >ScriptLogLength</a></li> + + <li><a href="core.html#sendbuffersize" + >SendBufferSize</a></li> + + <li><a href="core.html#serveradmin">ServerAdmin</a></li> + + <li><a href="core.html#serveralias">ServerAlias</a></li> + + <li><a href="core.html#servername">ServerName</a></li> + + <li><a href="core.html#serverpath">ServerPath</a></li> + + <li><a href="core.html#serverroot">ServerRoot</a></li> + + <li><a href="core.html#serversignature" + >ServerSignature</a></li> + + <li><a href="core.html#servertokens">ServerTokens</a></li> + + <li><a href="core.html#servertype">ServerType</a></li> + + <li><a href="mod_env.html#setenv">SetEnv</a></li> + + <li><a href="mod_setenvif.html#setenvif">SetEnvIf</a></li> + + <li><a href="mod_setenvif.html#setenvifnocase" + >SetEnvIfNoCase</a></li> + + <li><a href="mod_mime.html#sethandler">SetHandler</a></li> + + <li><a href="core.html#shmemuidisuser">ShmemUIDisUser</a></li> + + <li><a href="core.html#startservers">StartServers</a></li> + + <li><a href="core.html#threadsperchild" + >ThreadsPerChild</a></li> + + <li><a href="core.html#timeout">TimeOut</a></li> + + <li><a href="mod_log_config.html#transferlog" + >TransferLog</a></li> + + <li><a href="mod_mime.html#typesconfig">TypesConfig</a></li> + + <li><a href="mod_env.html#unsetenv">UnsetEnv</a></li> + + <li><a href="core.html#usecanonicalname" + >UseCanonicalName</a></li> + + <li><a href="core.html#user">User</a></li> + + <li><a href="mod_userdir.html#userdir">UserDir</a></li> + + <li><a href="core.html#virtualhost" + ><VirtualHost></a></li> + + <li><a href="mod_vhost_alias.html#virtualdocumentroot" + >VirtualDocumentRoot</a></li> + + <li><a href="mod_vhost_alias.html#virtualdocumentrootip" + >VirtualDocumentRootIP</a></li> + + <li><a href="mod_vhost_alias.html#virtualscriptalias" + >VirtualScriptAlias</a></li> + + <li><a href="mod_vhost_alias.html#virtualscriptaliasip" + >VirtualScriptAliasIP</a></li> + + <li><a href="mod_include.html#xbithack">XBitHack</a></li> + </ul> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/footer.html b/htdocs/manual/mod/footer.html new file mode 100644 index 0000000000..70ddfccdcd --- /dev/null +++ b/htdocs/manual/mod/footer.html @@ -0,0 +1,5 @@ + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> diff --git a/htdocs/manual/mod/header.html b/htdocs/manual/mod/header.html new file mode 100644 index 0000000000..09a28d8ca6 --- /dev/null +++ b/htdocs/manual/mod/header.html @@ -0,0 +1,5 @@ + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> diff --git a/htdocs/manual/mod/index-bytype.html.en b/htdocs/manual/mod/index-bytype.html.en new file mode 100644 index 0000000000..4c05d03f37 --- /dev/null +++ b/htdocs/manual/mod/index-bytype.html.en @@ -0,0 +1,297 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache modules</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache modules</h1> + + <p>Below is a list of all of the modules that come as part of + the Apache distribution. See also the list of modules <a + href="./">sorted alphabetically</a> and the complete + alphabetical list of <a href="directives.html">all Apache + directives</a>. For modules that are not part of the Apache + distribution, please see <a + href="http://modules.apache.org/">http://modules.apache.org</a>.</p> + + <h2>Core</h2> + + <dl> + <dt><a href="core.html">Core</a></dt> + + <dd>Core Apache features</dd> + </dl> + + <h2>Environment Creation</h2> + + <dl> + <dt><a href="mod_env.html">mod_env</a></dt> + + <dd>Passing of environments to CGI scripts</dd> + + <dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 + and up</dt> + + <dd>Set environment variables based on client + information</dd> + + <dt><a href="mod_unique_id.html">mod_unique_id</a> Apache 1.3 + and up</dt> + + <dd>Generate unique request identifier for every request</dd> + </dl> + + <h2>Content Type Decisions</h2> + + <dl> + <dt><a href="mod_mime.html">mod_mime</a></dt> + + <dd>Determining document types using file extensions</dd> + + <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt> + + <dd>Determining document types using "magic numbers"</dd> + + <dt><a href="mod_negotiation.html">mod_negotiation</a></dt> + + <dd>Content negotiation</dd> + </dl> + + <h2>URL Mapping</h2> + + <dl> + <dt><a href="mod_alias.html">mod_alias</a></dt> + + <dd>Mapping different parts of the host filesystem in the + document tree, and URL redirection</dd> + + <dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 and + up</dt> + + <dd>Powerful URI-to-filename mapping using regular + expressions</dd> + + <dt><a href="mod_userdir.html">mod_userdir</a></dt> + + <dd>User home directories</dd> + + <dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 and + up</dt> + + <dd>Automatically correct minor typos in URLs</dd> + + <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache + 1.3.7 and up</dt> + + <dd>Support for dynamically configured mass virtual + hosting</dd> + </dl> + + <h2>Directory Handling</h2> + + <dl> + <dt><a href="mod_dir.html">mod_dir</a></dt> + + <dd>Basic directory handling</dd> + + <dt><a href="mod_autoindex.html">mod_autoindex</a></dt> + + <dd>Automatic directory listings</dd> + </dl> + + <h2>Access Control</h2> + + <dl> + <dt><a href="mod_access.html">mod_access</a></dt> + + <dd>Access control based on client hostname or IP + address</dd> + + <dt><a href="mod_auth.html">mod_auth</a></dt> + + <dd>User authentication using text files</dd> + + <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt> + + <dd>User authentication using DBM files</dd> + + <dt><a href="mod_auth_db.html">mod_auth_db</a></dt> + + <dd>User authentication using Berkeley DB files</dd> + + <dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 + and up</dt> + + <dd>Anonymous user access to authenticated areas</dd> + + <dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache + 1.3.8 and up</dt> + + <dd>Experimental MD5 authentication</dd> + + <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 and + up</dt> + + <dd>MD5 authentication</dd> + </dl> + + <h2>HTTP Response</h2> + + <dl> + <dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 and + up</dt> + + <dd>Add arbitrary HTTP headers to resources</dd> + + <dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 + and up</dt> + + <dd>Support for HTTP header metafiles</dd> + + <dt><a href="mod_expires.html">mod_expires</a> Apache 1.2 and + up</dt> + + <dd>Apply Expires: headers to resources</dd> + + <dt><a href="mod_asis.html">mod_asis</a></dt> + + <dd>Sending files which contain their own HTTP headers</dd> + </dl> + + <h2>Dynamic Content</h2> + + <dl> + <dt><a href="mod_include.html">mod_include</a></dt> + + <dd>Server-parsed documents</dd> + + <dt><a href="mod_cgi.html">mod_cgi</a></dt> + + <dd>Invoking CGI scripts</dd> + + <dt><a href="mod_actions.html">mod_actions</a> Apache 1.1 and + up</dt> + + <dd>Executing CGI scripts based on media type or request + method</dd> + + <dt><a href="mod_isapi.html">mod_isapi</a> WIN32 only</dt> + + <dd>Windows ISAPI Extension support</dd> + </dl> + + <h2>Internal Content Handlers</h2> + + <dl> + <dt><a href="mod_status.html">mod_status</a> Apache 1.1 and + up</dt> + + <dd>Server status display</dd> + + <dt><a href="mod_info.html">mod_info</a> Apache 1.1 and + up</dt> + + <dd>Server configuration information</dd> + </dl> + + <h2>Logging</h2> + + <dl> + <dt><a href="mod_log_config.html">mod_log_config</a></dt> + + <dd>User-configurable logging replacement for + mod_log_common</dd> + + <dt><a href="mod_log_forensic.html">mod_log_forensic</a></dt> + + <dd>Forensic logging of requests made to the server</dd> + + <dt><a href="mod_log_agent.html">mod_log_agent</a></dt> + + <dd>Logging of User Agents</dd> + + <dt><a href="mod_log_referer.html">mod_log_referer</a></dt> + + <dd>Logging of document references</dd> + + <dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 + and up</dt> + + <dd>User tracking using Cookies (replacement for + mod_cookies.c)</dd> + </dl> + + <h2>Miscellaneous</h2> + + <dl> + <dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 and + up</dt> + + <dd>The imagemap file handler</dd> + + <dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 and + up</dt> + + <dd>Caching proxy abilities</dd> + + <dt><a href="mod_so.html">mod_so</a> Apache 1.3 and up</dt> + + <dd>Support for loading modules (DLLs on Windows) at + runtime</dd> + + <dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache + 1.3 and up</dt> + + <dd>Experimental file caching, mapping files into memory to + improve performace</dd> + </dl> + + <h2>Development</h2> + + <dl> + <dt><a href="mod_example.html">mod_example</a> Apache 1.2 and + up</dt> + + <dd>Demonstrates Apache API</dd> + </dl> + + <h2>Obsolete</h2> + + <dl> + <dt><a href="mod_browser.html">mod_browser</a> Apache 1.2.* + only</dt> + + <dd>Set environment variables based on User-Agent strings. + Replaced by mod_setenvif in Apache 1.3 and up</dd> + + <dt><a href="mod_cookies.html">mod_cookies</a> up to Apache + 1.1.1</dt> + + <dd>Support for Netscape-like cookies. Replaced in Apache 1.2 + by mod_usertrack</dd> + + <dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* and + earlier</dt> + + <dd>Start-time linking with the GNU libdld. Replaced in + Apache 1.3 by mod_so</dd> + + <dt><a href="mod_log_common.html">mod_log_common</a> up to + Apache 1.1.1</dt> + + <dd>Standard logging in the Common Logfile Format. Replaced + by the mod_log_config module in Apache 1.2 and up</dd> + </dl> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/index-bytype.html.fr b/htdocs/manual/mod/index-bytype.html.fr new file mode 100644 index 0000000000..401ed55271 --- /dev/null +++ b/htdocs/manual/mod/index-bytype.html.fr @@ -0,0 +1,323 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- Traduction anglais 1.11 --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + + <title>Modules Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Modules Apache</h1> + + <p>Ci dessous est donnée une liste des modules faisant + partie de la distribution Apache. Voir aussi la liste des + modules <a href="./">triés alphabétiquement</a> + et la liste complète alphabétique de <a + href="directives.html">toutes les directives d'Apache</a>. Pour + les modules d'Apache qui ne font pas partie de la distribution, + vous pouvez consulter <a + href="http://modules.apache.org/">http://modules.apache.org</a></p> + + <h2>Base</h2> + + <dl> + <dt><a href="core.html">Base</a></dt> + + <dd>Fonctionnalités de base d'Apache</dd> + </dl> + + <h2>Création de l'environnement</h2> + + <dl> + <dt><a href="mod_env.html">mod_env</a> Apache 1.1 et + supérieur</dt> + + <dd>Passage d'environnement aux scripts CGI</dd> + + <dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 + et supérieur</dt> + + <dd>Définition de variables d'environnement en + fonction des informations client</dd> + + <dt><a href="mod_unique_id.html">mod_unique_id</a> Apache 1.3 + et supérieur</dt> + + <dd>Génération d'identifiants uniques de + requête</dd> + </dl> + + <h2>Gestion du type de contenu</h2> + + <dl> + <dt><a href="mod_mime.html">mod_mime</a></dt> + + <dd>Détermination du type des documents en fonction de + l'extension du fichier</dd> + + <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt> + + <dd>Détermination du type des documents en fonction de + "nombres magiques"</dd> + + <dt><a href="mod_negotiation.html">mod_negotiation</a></dt> + + <dd>Négotiation de contenu</dd> + </dl> + + <h2>Transformation d'URL</h2> + + <dl> + <dt><a href="mod_alias.html">mod_alias</a></dt> + + <dd>Association de différentes parties du + système de fichier de l'hôte dans l'arborescence + des documents, et redirection des URL.</dd> + + <dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 et + supérieur</dt> + + <dd>Association des URI à des fichiers en utilisant + des expressions régulières</dd> + + <dt><a href="mod_userdir.html">mod_userdir</a></dt> + + <dd>Répertoires personnels d'utilisateurs</dd> + + <dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 et + supérieur</dt> + + <dd>Correction automatique d'erreurs de frappe mineures dans + les URL</dd> + + <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache + 1.3.7 et supérieur</dt> + + <dd>Support d'hôtes virtuels dynamiquement + configurables</dd> + </dl> + + <h2>Gestion des répertoires</h2> + + <dl> + <dt><a href="mod_dir.html">mod_dir</a></dt> + + <dd>Gestion de base des répertoires</dd> + + <dt><a href="mod_autoindex.html">mod_autoindex</a></dt> + + <dd>Création automatique des listes des + répertoires</dd> + </dl> + + <h2>Contrôle d'accès</h2> + + <dl> + <dt><a href="mod_access.html">mod_access</a></dt> + + <dd>Contrôle d'accès basé sur le nom du + client ou son adresse IP</dd> + + <dt><a href="mod_auth.html">mod_auth</a></dt> + + <dd>Authentification des utilisateurs à partir d'un + fichier texte</dd> + + <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt> + + <dd>Authentification des utilisateurs à partir d'un + fichier DBM</dd> + + <dt><a href="mod_auth_db.html">mod_auth_db</a> Apache 1.1 and + up</dt> + + <dd>Authentification des utilisateurs à partir d'une + base Berkeley</dd> + + <dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 + et supérieur</dt> + + <dd>Accès aux utilisateurs anonymes à des zones + authentifiées</dd> + + <dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache + 1.3.8 et supérieur</dt> + + <dd>Authentication des utilisateurs à partir d'un + fichier MD5 (expérimental)</dd> + + <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 et + supérieur</dt> + + <dd>Authentication des utilisateurs à partir d'un + fichier MD5</dd> + </dl> + + <h2>Réponse HTTP</h2> + + <dl> + <dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 et + supérieur</dt> + + <dd>Ajout d'en-têtes HTTP aux ressources</dd> + + <dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 + et supérieur</dt> + + <dd>Support des métafichiers d'en-tête HTTP</dd> + + <dt><a href="mod_expires.html">mod_expires</a> Apache 1.2 et + supérieur</dt> + + <dd>Ajout de l'en-tête Expires: pour les ressources + demandées</dd> + + <dt><a href="mod_asis.html">mod_asis</a></dt> + + <dd>Envoi de fichiers contenant leurs propres en-têtes + HTTP</dd> + </dl> + + <h2>Contenu dynamique</h2> + + <dl> + <dt><a href="mod_include.html">mod_include</a></dt> + + <dd>Documents analysés par le serveur</dd> + + <dt><a href="mod_cgi.html">mod_cgi</a></dt> + + <dd>Appel des scripts CGI</dd> + + <dt><a href="mod_actions.html">mod_actions</a> Apache 1.1 et + supérieur</dt> + + <dd>Exécution de scripts CGI en fonction du type de + média ou de la requête</dd> + + <dt><a href="mod_isapi.html">mod_isapi</a> WIN32 + seulement</dt> + + <dd>Support des extensions Windows ISAPI</dd> + </dl> + + <h2>Gestion du contenu interne</h2> + + <dl> + <dt><a href="mod_status.html">mod_status</a> Apache 1.1 et + supérieur</dt> + + <dd>Affichage de l'état du système</dd> + + <dt><a href="mod_info.html">mod_info</a> Apache 1.1 et + supérieur</dt> + + <dd>Informations sur la configuration du serveur</dd> + </dl> + + <h2>Trace</h2> + + <dl> + <dt><a href="mod_log_config.html">mod_log_config</a></dt> + + <dd>Trace configurable des accès. Remplace + mod_log_common</dd> + + <dt><a href="mod_log_forensic.html">mod_log_forensic</a></dt> + + <dd>Forensic logging of requests made to the server</dd> + + <dt><a href="mod_log_agent.html">mod_log_agent</a></dt> + + <dd>Trace des User Agents</dd> + + <dt><a href="mod_log_referer.html">mod_log_referer</a></dt> + + <dd>Trace des référence d'un document</dd> + + <dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 + et supérieur</dt> + + <dd>Suivi des utilisateurs à l'aide de cookies + (remplacement de mod_cookies)</dd> + </dl> + + <h2>Divers</h2> + + <dl> + <dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 et + supérieur</dt> + + <dd>Gestion des fichiers imagemap</dd> + + <dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 et + supérieur</dt> + + <dd>Module de cache par proxy</dd> + + <dt><a href="mod_so.html">mod_so</a> Apache 1.3 et + supérieur</dt> + + <dd>Support des modules dynamiques (.so sur Unix, .dll sur + Win32)</dd> + + <dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache + 1.3 et supérieur</dt> + + <dd>Module expérimental de cache mémoire des + fichiers afin d'améliorer les performances</dd> + </dl> + + <h2>Développement</h2> + + <dl> + <dt><a href="mod_example.html">mod_example</a> Apache 1.2 et + supérieur</dt> + + <dd>Démonstration de l'API Apache</dd> + </dl> + + <h2>Obsolète</h2> + + <dl> + <dt><a href="mod_browser.html">mod_browser</a> Apache 1.2.* + seulement</dt> + + <dd>Définition de variables d'environnement en + fonction de la chaîne User-Agent. Ce module est + remplacé par mod_setenvif à partir de la + version 1.3</dd> + + <dt><a href="mod_cookies.html">mod_cookies</a> jusqu'à + Apache 1.1.1</dt> + + <dd>Support des cookies Netscape. Ce module est + remplacé dans Apache 1.2 par le module + mod_usertrack</dd> + + <dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* et + précédents</dt> + + <dd>Lien au lancement en utilisant la librairie GNU libdld. + Ce module est remplcé dans Apache 1.3 par mod_so</dd> + + <dt><a href="mod_log_common.html">mod_log_common</a> + jusqu'à Apache 1.1.1</dt> + + <dd>Trace des accès utilisant le "Common Logfile + Format". Ce module est remplacé par mod_log_config + à partir d'Apache 1.2</dd> + </dl> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/index-bytype.html.html b/htdocs/manual/mod/index-bytype.html.html new file mode 100644 index 0000000000..18aca3abb2 --- /dev/null +++ b/htdocs/manual/mod/index-bytype.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="index-bytype.html.en" --> + diff --git a/htdocs/manual/mod/index-bytype.html.ja.jis b/htdocs/manual/mod/index-bytype.html.ja.jis new file mode 100644 index 0000000000..172a7ca492 --- /dev/null +++ b/htdocs/manual/mod/index-bytype.html.ja.jis @@ -0,0 +1,272 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <title>Apache モジュ・踉札蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察鈑跚鼈纐蜩蜿邵鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳餐鞜竏モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢの配布に含まれているモジュ・踉札襪蓮焚の通りです。 + <a href="./">アルファベット順</a> や <a href="directives.html">Apache + の全ディレクティブ</a> のアルファベット順リストも参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢの配布に含まれない Apache モジュ・踉札襪砲弔い討踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕閼纉鞜竏絎闥膀▽苳肢雕迴糒跂鶤瘰痺蒹鱧鹿粡寂蝟赱齠洲痲筵娼を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢コア</h2> + + <dl> + <dt><a href="core.html">Core</a></dt> + + <dd>Apache のコア</dd> + </dl> + + <h2>環境変数の操作</h2> + + <dl> + <dt><a href="mod_env.html">mod_env</a></dt> + + <dd>CGI スクリプトに対してさまざまな環境変数を渡す</dd> + + <dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 以降</dt> + + <dd>クライアントの霾鵑鮓気亡超竸瑤鮴瀋蠅垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熾鉗髟縷蜆譬迴籖蜻煢筅踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼瘤熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢリクエストごとに、一意なリクエスト ID を生成する</dd> + </dl> + + <h2>コンテンツの鑪爐魴萃蠅垢王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熏蜊絎蔗迪▽苳詩閼熏蜊絋踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐ファイルの拡張子を利用してドキュメントタイプの判定を行なう瘢雹</dd> + + <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt> + + <dd>"マジックナンバ・踉を利用してドキュメントタイプの判定を行なう瘢雹</dd> + + <dt><a href="mod_negotiation.html">mod_negotiation</a></dt> + + <dd>コンテントネゴシエ・踉札轡腑鶺’修鯆鷆,垢筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢孀のマッピングを行う瘢雹</h2> + + <dl> + <dt><a href="mod_alias.html">mod_alias</a></dt> + + <dd>ホストファイルシステムのドキュメントツリ・踉擦悗離泪奪團鵐圧擇鹿粡寂蝟赱齠洲痲筵娼孀のリダイレクションを行なう瘢雹</dd> + + <dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 以降</dt> + + <dd>正規表現を利用した、URI + からファイル巳苳擦悗龍呂淵泪奪團鵐圧’修鯆鷆,垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熾黼鰾蜥譬迴籖纈粡鬢踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐ユ・踉札兇離曄ムディレクトリにアクセスする機能を提供する</dd> + + <dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 以降</dt> + + <dd>URL の気糞劵潺垢鬢踉捌動的に修正する</dd> + + <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache 1.3.7 以降</dt> + + <dd>たくさんのバ・踉札船礇襯曠好叛瀋蠅鯑暗帽柔垢筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢ディレクトリを茲螳靴逅王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焙蜥譬迴籖粡鬢踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐ディレクトリの茲螳靴い砲弔い討痢靄榲糞’修鯆鷆,垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉濶鈔纔譬迴籖癜蜴粤踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐暗縫妊譽肇螳賤鮑鄒垢筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢アクセス制御</h2> + + <dl> + <dt><a href="mod_access.html">mod_access</a></dt> + + <dd>クライアントのホスト巳苳擦アドレスによってアクセス制御を行なう瘢雹</dd> + + <dt><a href="mod_auth.html">mod_auth</a></dt> + + <dd>テキストファイル形阿稜Е苳孜ファイルを使用したユ・踉札暁Е苳孜機能を提供する</dd> + + <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt> + + <dd>DBM 形阿稜Е苳孜ファイルを使用したユ・踉札暁Е苳孜機能を提供する</dd> + + <dt><a href="mod_auth_db.html">mod_auth_db</a></dt> + + <dd>Berkeley DB 形阿稜Е苳孜ファイルを使用したユ・踉札暁Е苳孜機能を提供する</dd> + + <dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 以降</dt> + + <dd>認擇廚箸覆襯┘螢△悗瞭震 (anonymous) でのアクセス機能を提供する</dd> + + <dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache 1.3.8 以降</dt> + + <dd>MD5 を使用した認攀’訳注: Digest 認を提供する</dd> + + <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 以降</dt> + + <dd>MD5 認訳注: Digest 認機能を提供する + (mod_auth_digest により、mod_digest は非推砲覆辰討い踉晒粐鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳使墺レスポンス</h2> + + <dl> + <dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 以降</dt> + + <dd>リソ・踉札垢貿ぐ佞墺ヘッダを加える</dd> + + <dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 以降</dt> + + <dd>HTTP ヘッダメタファイルをサポ・踉札箸垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煥蜥纉譬迴籖纔韈鱚鵙踉晒瓲苳草痺蒹ぢ以降</dt> + + <dd>リソ・踉札垢蜥纉ヘッダを適用する</dd> + + <dt><a href="mod_asis.html">mod_asis</a></dt> + + <dd>HTTP ヘッダを含むファイルを送信する</dd> + </dl> + + <h2>動的コンテンツ</h2> + + <dl> + <dt><a href="mod_include.html">mod_include</a></dt> + + <dd>SSI ドキュメントを有効にする</dd> + + <dt><a href="mod_cgi.html">mod_cgi</a></dt> + + <dd>CGI スクリプトを孫圓垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉笏蜿銖譬迴籖痺闔鵙踉晒瓲苳草痺蒹ぢ以降</dt> + + <dd>メディアタイプやリクエストメソッドによって CGI + スクリプトを孫圓垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煢黶韈譬迴籖蜩瘰薤踉晒瓲苳徂粒のみ</dt> + + <dd>Windows ISAPI エクステンションをサポ・踉札箸垢筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢内部コンテンツハンドラ-</h2> + + <dl> + <dt><a href="mod_status.html">mod_status</a> Apache 1.1 以降</dt> + + <dd>サ・踉札个硫堝愛苳歯況を表┐垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煢鈕鎬蔗迪▽苳詩閼煢鈕錵踉晒瓲苳草痺蒹ぢ以降</dt> + + <dd>サ・踉札个寮瀋螟苳諮報を閲覧する</dd> + </dl> + + <h2>ロギング</h2> + + <dl> + <dt><a href="mod_log_config.html">mod_log_config</a></dt> + + <dd>mod_log_common の代わりとなるもので、ユ・踉札兇颱踉三を設定できる</dd> + + <dt><a href="mod_log_forensic.html">mod_log_forensic</a></dt> + + <dd>サ・踉札个悗離螢┘好箸闥緕皷ログ筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煬閾焉艱銓譬迴籖跫艤瘍緕熙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐專纈艱銓ぢのログを記録する</dd> + + <dt><a href="mod_log_referer.html">mod_log_referer</a></dt> + + <dd>ドキュメントの参噺凖禿凖勞ぢのログを記録する</dd> + + <dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 以降</dt> + + <dd>cookie によりユ・踉札兇猟廟廚鮃圓覆逅迴籖竢闍蜈鶤を置き換えたもの)</dd> + </dl> + + <h2>その側苳王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煢轣隰蔗迪▽苳詩閼煢轣隍踉晒瓲苳草痺蒹ぢ以降</dt> + + <dd>イメ・踉札献泪奪廛侫.ぅ襪鬢踉肢り扱う瘢雹機能を提供する</dd> + + <dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 以降</dt> + + <dd>proxy キャッシュ機能を提供する</dd> + + <dt><a href="mod_so.html">mod_so</a> Apache 1.3 以降</dt> + + <dd>孫垰縫皀献紂ル (UNIXでは .so、Win32 では .dll) + を動的読み込みする機能を提供する</dd> + + <dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache 以降</dt> + + <dd>ファイルのキャッシングを行なう瘢雹存嚇淵皀献紂ルで、 + ファイルをメモリ内にマッピングすることによりパフォ・踉札泪鵐垢鮓苳糸させる</dd> + </dl> + + <h2>開発用</h2> + + <dl> + <dt><a href="mod_example.html">mod_example</a> Apache 1.2 以降</dt> + + <dd>Apache API のデモンストレ・踉札轡腑麝筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢現在では利用されていないモジュ・踉札王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼烽鳫纈譬迴籖碣阯黼鬢踉晒瓲苳草痺蒹ぢのみ</dt> + + <dd>User-Agent 文字列を元に環境変数を設定する。Apache 1.3 + 以降において、mod_setenvif で置き換えられた</dd> + + <dt><a href="mod_cookies.html">mod_cookies</a> Apache 1.1.1 以降</dt> + + <dd>Netscape のよう瘢雹な cookie をサポ・踉札箸垢襦鞜竏窺下蝟昭粡竚癈鷭п粐Ьぢにおいて、mod_usertrack に置き換えられた</dd> + + <dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* 以前</dt> + + <dd>GNU libdld を用いて起動時にモジュ・踉札襪離螢鵐鮃圓覆逅察草痺蒹鹿粡寂蝟赱齠洲痲筵娼窺において、mod_so に置き換えられた</dd> + + <dt><a href="mod_log_common.html">mod_log_common</a> Apache 1.1.1 以降</dt> + + <dd>Common Logfile Format + での標準的な書阿砲茲螢蹈阿魑燭垢襦草痺蒹鹿粡寂蝟赱齠洲痲筵娼以降において、mod_log_config モジュ・踉札襪肪屬垢┐蕕譴筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼鈔纔谺緕閭鶩轣銛瘡閼鈔纔谺緕錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭訓昂弘畊概錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝蜴粤蔗迪鄂莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼鈔纔谺緕鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐憾声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼纉蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬草痺蒹閼纉右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮代跫蜩蜩閹跛迴糒跂癆闕癈癇閹鹿粡寂蝟赱齠洲痲筵娼草痺蒹蜩蛯蜿隨繞踈跚齡迴糒跂畆蝟昭粡竚癈鷭п粐Ь鱚羹∫鈔纔絎蔗迪▽苳雌闥磔絋踉晒瓲苳瘤竢逅跂鹿粡寂蝟赱齠洲痲筵娼瘡韆痰續蜒瘡蜩閹踉氏鱚羹≫蜥繝鶤蔗迪▽苳氏跛鞜竏綣蝟昭粡竚癈鷭п粐Ь蜥繝鵙踉晒瓲苳皿闥鞜竏迴糒跂癆鱚阡癇閹蒹鹿粡寂蝟赱齠洲痲筵娼草痺蒹蜩蛯蜿遯跂癈黼畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕迴糒跂鶤瘰痺蒹鱧蔗痕閼纉鞜竏絎闥胼踉晒瓲苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹≪闥絎蔗迪▽苳暫闥絋踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐衷鱚鞜竏聽癆纉筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉窿纉鶤蔗迪▽苳詩閼焉窿纉鵙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐巣竇齠闔闌癈繖竚蜈銓闢瘢闥仄蝟昭粡竚癈鷭п粐Ь粐鱚齠筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉笏蜿銖譬迴籖痺闔鵙踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳仕笊鈑派竰蜷癈繖辣粡鞳鱚髟纉蝟昭粡竚癈鷭п粐Ь續蓖筅踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖瘡蛛鶤蔗迪▽苳詩閼焉跚癈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳四瘰韈鈑蜀聽鱚銓癇蓖齡蛹纉蜴蒹鹿粡寂蝟赱齠洲痲筵娼粹笊辣銓鱚絳鈔厂繖蜥繝闔筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉皷鶤蔗迪▽苳詩閼焉皷鵙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐嚆鈔蜴肅跂蜒竢銓瘟繪阯挽墅縺粤鴦筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉莅蔗迪▽苳詩閼焉荀踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐專纈蒹銓蜒癆蜿蜴蛹纉筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉萬瘤闔譬迴籖癜焉鈿遉踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼瘤熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐鈿銷迴黼痺竇齠癜緕竅癇縺鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖癜焙皰蔗迪▽苳詩閼焉萬籵鞜竏窺瘤篌蝟昭粡竚癈鷭п粐Ь隍踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐專纈蒹銓蜒癆蜿蜴代鳬繻纖肅跂鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖癜焙硴譬迴籖癜焙硴熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳師黼癜緕竅闔皷鈑騨蛹纉筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉萬粡艱齡譬迴籖癜焙蜃纉熙踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼窺凱瘤熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳四諜蒹銓蜒癆蜿遉踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖癜蜴粤蔗迪▽苳詩閼焉濶鈔纔熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐闕癆蜒蜥繝鴒蜩鈑鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖碣阯黼鬯蔗迪▽苳詩閼烽鳫纈鞜竏窺荻蝟昭粡竚癈鷭п粐Ь鉤踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐嚆緕鳫鉈緕鱸痰跂矚黼闔黼鬮燥緕齡鱸鈑鶤鹿粡寂蝟赱齠洲痲筵娼吶韭痺繖迴籖黼鉚蜀草痺蒹鈔隍踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖竇鴈熏續甌蔗迪▽苳詩閼焜纈釼辣鞜竏窺閏蝟昭粡竚癈鷭п粐Ь鈔隍踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐囎韶闥肬挽墅縺粤辣肅跂鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖竍藪蔗迪▽苳詩閼焜芍熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳刺鉚闍蜴断黹鱸頸鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖竢闍蜈鶤蔗迪▽苳詩閼焜闖謇纉鞜竏綣蝟昭粡竚癈鷭п粐Ь熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳屍竟鶯闥續黹瘰絖跚諷闖謇纉吶韭痺繖草痺蒹鹿粡寂蝟赱齠洲痲筵娼磔閼熾黼鶯鱇站筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焙蜃纉蔗迪▽苳詩閼焙蜃纉熙踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳四諜蒹銓蜒癆蜿辮鱚竅磔閼焉萬粡艱齡踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖粡鬯蔗迪▽苳詩閼焙蜥熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳斬癈蜒蜥繝鴒瘤粲蜴胼踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖粲筮蔗迪▽苳詩閼焙趙鞜竏窺荻瘤篌蝟昭粡竚癈鷭п粐Ь癇跚纈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳屍鶯蜊跚鉉蜴蒹燐蛯粲筮辮赱竇蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹迴籖齒筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煥鉚譬迴籖緕踉晒瓲苳草痺蒹鈔隍踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐倚齠蜴閹鉚蜥闔辣銓派竰蜷筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煥逅跂譬迴籖纔瘢韭絋踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳残纃闔齡鱇草痺蒹佗筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煥蜥纉譬迴籖纔韈鱚鵙踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐韶踟蜥纉蒹痲纈纉阨鱆纉筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煦縺粤鴦譬迴籖蒹痲纈鵙踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐粐鰲蜚鱇鴒墺蒹痲纈纉阨鱆纉筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煢轣隰蔗迪▽苳詩閼煢轣隍踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳市蒹轣艱轣肅跂瘤粲纈筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煢釿跿粤譬迴籖蜴竚絋踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐嚆鴟纈癇黼粹笊辣銓鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖蜴肬譬迴籖蜴肬鞜竏窺瘤篌蝟昭粡竚癈鷭п粐Ь隍踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐嚆鴟纈闔肅苺鱇闔鈕闥轣闔筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煢黶韈譬迴籖蜩瘰薤踉晒瓲苳徂粒闔踟熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳思蜴粹啻佗緕皷闔竟鶯筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煬閾焉艱銓譬迴籖跫艤瘍緕熙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐弥艸蜴閹黼燥緕筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煬閾焜闕迴隨蔗迪▽苳詩閼煬閾焜闕迴遉踉晒瓲苳鐚蝟昭粡竚癈鷭п粐Ь鞜竏窺窺右踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐囈瘤籬鰾閾芍鈑衷迯闔閾肅跂闥轣辮赱竇篌蝟昭粡竚癈鷭п粐Ь迴籖跫艤竢鈕蜃閼蜴鞜竏窺瘤筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煬閾焜闔肅膊蔗迪▽苳詩閼煬閾焜闔肅胼踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐專纈闔肅苺鱇碎跫艸蜴鱚韭痺纃緕肬鮗蝟昭粡竚癈鷭п粐Ь閼煬閾焜闕迴遉踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖跫艤肬鱚銖蜒譬迴籖跫艤肬鱚銖蜒熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳仔闥緕皷跫艸蜴閹繿齡轣粤黼鴟纈筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煬閾熬繙纈纈譬迴籖跫艤鱚聽鱚鬢踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐弥艸蜴閹閭緕鱚聽鱚釿纉筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熏蜊絎蔗迪▽苳詩閼熏蜊絋踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐偵鴉蜴蜴粹笊辣銓纉皷鈑蛹纔銖蜿銖筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熏蜊縷轣芍祟蔗迪▽苳詩閼熏蜊縷轣芍礒踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐偵鴉蜴蜴粹笊辣銓纉皷鈑轣芍銛轤纈鵞筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熏轣鞏齡癆蜒譬迴籖迯瘰燗礒踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼窺瘤熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳仕纈蜊緕肅跂痺蓍鈑轣韶蜴肅跂蜴纃闥鹿粡寂蝟赱齠洲痲筵娼蜊頏阮鞳鱠闥轣釿絋踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖鈬苡癆蜿隨蔗迪▽苳詩閼燻繚阡蛛闔熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳暫闔銓繚阡蛛闔筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熕鳫譬迴籖頏陂踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳暫痺蓍鈑鳫砠跚纉筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熬纓鱸譬迴籖鱚蜚絋踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳姉阯纈胚孀畢蛹緕瘢轣韶蜴蜴鱚苺赱鮗蝟昭粡竚癈鷭п粐Ь鱚齠蜿銖筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼燗續緕罧蔗迪▽苳詩閼燗續緕网踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼瘤熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳屍續鉚蜥闔辣銓癇蛛碎纉癈繖竚蜈銓鹿粡寂蝟赱齠洲痲筵娼蜴肬鴉癆蜿遉踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖齒譬迴籖齒鞜竏窺瘤熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳屍竟鶯闥閨粡鈑閼纉錻闔鉗粲讌闔鹿粡寂蝟赱齠洲痲筵娼怏邀鴬鴣銓蜊絋踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖齔繻蜴膊蔗迪▽苳詩閼燗鞳跚鈑鞜竏窺瘤篌蝟昭粡竚癈鷭п粐Ь隍踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐装轣竅跛竢鴪繝迚鈿竟蜴厂鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖齡癆譬迴籖齡癆鞜竏窺瘤篌蝟昭粡竚癈鷭п粐Ь隍踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐嚆鴟纈粡齔赱踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖蜻煢筮蔗迪▽苳詩閼熾鉗髟縷蜆鞜竏窺骸蝟昭粡竚癈鷭п粐Ь鈔隍踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐賠鈬鱇鉗髟鱚髟纉蜆緕肅纈闥鴒繿齡筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熾黼鰾蜥譬迴籖纈粡鬢踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐專纈闕粡鱚笏闥蜈鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖纈痺覡蔗迪▽苳詩閼熾黼鶯鱇站鞜竏窺下蝟昭粡竚癈鷭п粐Ь鈔隍踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐專纈鱇站蜴蜴衷闍蜈辮赱竇辣銓闥鹿粡寂蝟赱齠洲痲筵娼迴籖竢闍蜈鶤礬筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼燒蓖齡焉跚癈譬迴籖闢瘡蛛鵙踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼窺凱瘤熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳屍竟鶯闥瘢蜒瘡踟闔肅苺鱚轣齠蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡蜴胼踉晒粐鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝蜴粤蔗迪皴蔗粹笂瘤豁迴箝蜴粤蔗迪鮗碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握街抗攻聲擬碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼鈔纔谺胙粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝蜴粤蔗迪鮗昭蝟昭粡竚癈鷭ц襷樟卯卸誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼´夸痲闔鈑赱蜩鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼辣隲繿闔銓紜鹿粡寂蝟赱齠洲痲筵娼竢銓緕♯纔蔗迪竏癇黼蜩鎰幻宜苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂酪糒跂草痺蒹蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬酪糒跂草痺蒹右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮忠纉齒齡闔遉瘢雹縺笊糸鈬蜩纉閼纉瘟黶銓鹿粡寂蝟赱齠洲痲筵娼鞜鶯蜈赱蜩蛯蜿草痺蒹幔蜥皷跚齡粤鷦蝟昭粡竚癈鷭п粐Ь閼纉踉氏鱚羹∫鈔纔絎蔗迪▽苳飼鱸逅糸痺綮鞜鞳鹿粡寂蝟赱齠洲痲筵娼續跚齡竢逅讀瘢雹繚鱇飼瘡韆痰逅糸痺綮髟粤踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟纉譬纉纉蜥繝筵草痺蒹倆鹿粡寂蝟赱齠洲痲筵娼跂迴糒跂筵草痺蒹肬銓癈癇粤粡齡鱸碯闔蝟昭粡竚癈鷭п粐Ь阨竟纎闔齦踉纈踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕閼纉鞜竏絎闥膀▽苳肢雕迴糒跂鶤瘰痺蒹鱧鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就竢鱚譬逮黼熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳仔闔笏蜿銕瘡蜚逅糸痺綮粤癈筵草痺蒹筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉窿纉鶤蔗迪▽苳詩閼焉窿纉鵙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐衷銓鬢瘢雹閭蜥禹跂п窿逅糸苒癘綮矚鵙瘢雹縺笊齦跂闕蝟昭粡竚癈鷭п粐Ь跚緕阨闔糅纉黼丶踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖痺闔鶤蔗迪▽苳詩閼焉笏蜿銖鞜竏窺續鹿粡寂蝟赱齠洲痲筵娼齦隍瘢雹縺笊賜蜈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳仕瘢雹縺笊祉蜿粤竰蜷派肬釿闔鞳綣蝟昭粡竚癈鷭п粐Ь逅糸痺綮粡阨赱繿瘢雹繝蜥禹筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉跚癈譬迴籖瘡蛛鵙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐蒼齒竕癆蜿粤蜀网瘢雹縺笊賜緕鞜鶯蜈糒鹿粡寂蝟赱齠洲痲筵娼齷齡逅糸苒癘綮辣肅竏蜈粤ц逅誌竕鱆飼籬銖п鰲闥纉竇釿綣蝟昭粡竚癈鷭п粐Ь纉閭緕續繖蜥繝闔纉厂踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖癈蜩譬迴籖癈蜩熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳仕鉚濶肅竏蜈鴦闔釶銓纒鴦鳫頏纉遶熙瘢雹繝蜥禹鷦蝟昭粡竚癈鷭п粐Ь墺丶踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖癜譬迴籖癜熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐蒹銓蜀蜒癆蜿粤蛹蜩癆纒鴦瘢雹瘍鱇鞜鶯蜥郤蝟昭粡竚癈鷭п粐Ь蜒蓍纈纔筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉萬瘤闔譬迴籖癜焉鈿遉踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼續逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐巣礒瘢雹繚鱇雌跚黶瘤闔纉瘢雹瘍鱇粤鈬鷦蝟昭粡竚癈鷭п粐Ь蒹銓蜀薤瘢雹縺笊糸鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖癜焙皰蔗迪▽苳詩閼焉萬籵鞜竏窺續鹿粡寂蝟赱齠洲痲筵娼齦隍瘢雹縺笊賜蜈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐蒹銓蜀蜒癆蜿粤蛹蜩癆纒鴦瘢雹瘍鱇鞜鶯蜥鈬鹿粡寂蝟赱齠洲痲筵娼矚黼纈諷跂踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖癜焙硴譬迴籖癜焙硴熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐蒹銓蜀蜒癆蜿粤蛹蜩癆纒鴦瘢雹瘍鱇鞜鶯蜥郤蝟昭粡竚癈鷭п粐Ь蜒蓍纈騨筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉萬粡艱齡譬迴籖癜焙蜃纉熙踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼窺凱續逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐装緕竅闔纉跚黶逅氏苒癘綮癇筵鹿粡寂蝟赱齠洲痲筵娼肅竏蜈幼逅糸痺綮鱸辣銓瘡踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖癜蜴粤蔗迪▽苳詩閼焉濶鈔纔熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳暫鬢瘢雹縺笊氏闔闕癆蜻纉蜩粤鷦蝟昭粡竚癈鷭п粐Ь逅糸痺綮鞳鶯濶鱚鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖碣阯黼鬯蔗迪▽苳詩閼烽鳫纈鞜竏窺荻蝟昭粡竚癈鷭п粐Ь纒跂辣銓熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳残逅糸痺綮肅鉗闔鱸痰跂筵緕鳫銕纃緕緕鹿粡寂蝟赱齠洲痲筵娼肬釿闔赱葹逅脂竕鱆試專纈艱銓着閼纉蝟昭粡竚癈鷭п粐Ь纃韭痺逅糸痺綮癇閼燗續緕逅氏苒癘綮癇粤畆蝟昭粡竚癈鷭п粐Ь纈皷闔筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焜纈釼辣譬迴籖竇鴈熏續瓲踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼續逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐囎韶闥粤蹙瘢雹縺笊飼瘋蜒蓍纈筵緕逅糸竕鱆飼挽墅筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焜芍譬迴籖竍薤踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐草鞳粤黹鱸頸断髭踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖竢闍蜈鶤蔗迪▽苳詩閼焜闖謇纉髟Е瘢雹瘍鱇纂蝟昭粡竚癈鷭п粐Ь鞜竏窺窺右踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐囎韶闥粤竢闍蜈励竅鞳着閼纉蝟昭粡竚癈鷭п粐Ь纃韭痺逅糸痺綮瘤草痺蒹癇迴糒跂鹿粡寂蝟赱齠洲痲筵娼迴籖纈痺襴踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖粡艱齡譬迴籖粡艱齡鞜竏窺續鹿粡寂蝟赱齠洲痲筵娼齦隍瘢雹縺笊賜蜈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐蒹銓蜒癆蜿幼畿踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖粡鬯蔗迪▽苳詩閼焙蜥熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳伺纉闔矚黼纉逅糸痺綮鞳鶯濶鱚鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖粲筮蔗迪▽苳詩閼焙趙鞜竏窺荻續鹿粡寂蝟赱齠洲痲筵娼頏逅糸痺綮礒瘢雹縺笊私緕熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳嗣蜈癜瘤竇辣銓蛹蜩瘤赱蛯鱇蜥蜈燐蛯粲筮鹿粡寂蝟赱齠洲痲筵娼着閼纉鱚逅趁逅糸痺綮瘤草痺蒹癇閼燗錵踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖緕蔗迪▽苳詩閼煥鉚鞜竏窺續鹿粡寂蝟赱齠洲痲筵娼齦隍瘢雹縺笊賜蜈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳姉癈黶艱у鉚蜥闔鈬辣銓竰蜷派筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煥逅跂譬迴籖纔瘢韭絋踉晒瓲苳草痺蒹蝟昭粡竚癈鷭п粐Ь逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐彫瘢雹縺笊詩闔齡鱇闔讌双草痺蒹筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煥蜥纉譬迴籖纔韈鱚鵙踉晒瓲苳草痺蒹蝟昭粡竚癈鷭п粐Ь逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐相阨粤у遶熙瘢雹繝蜥禹蜥纉竟纉纉齒竇鷦蝟昭粡竚癈鷭п粐Ь隍瘢雹縺笊祉蜀薤瘢雹縺笊糸鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖蒹痲纈鶤蔗迪▽苳詩閼煦縺粤鴦鞜竏窺續鹿粡寂蝟赱齠洲痲筵娼齦隍瘢雹縺笊賜蜈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐褊у遶熙瘢雹繝蜥禹挽墅纉齒竇鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖蜊瘰譬迴籖蜊瘰鞜竏窺續鹿粡寂蝟赱齠洲痲筵娼齦隍瘢雹縺笊賜蜈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳伺纉闔纉蜒蓍纈蜊瘍纃瘰筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煢釿跿粤譬迴籖蜴竚絋踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐弟笊辣銓瘤瘡逅糸痺綮鞜跂纈筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煢鈕鎬蔗迪▽苳詩閼煢鈕錵踉晒瓲苳草痺蒹蝟昭粡竚癈鷭п粐Ь逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐侮肬鴉癆蜿銖竢鈕蜃癆蜿糒纈筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煢黶韈譬迴籖蜩瘰薤踉晒瓲苳徂粒下蝟昭粡竚癈鷭п粐Ь纒跂辣銓熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳屍竟鶯纉緕皷闔怏鈔阯瓶双髭踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖跫艤瘍緕蔗迪▽苳詩閼煬閾焉艱銓熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳市鱇竇纉黼燥緕筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煬閾焜闕迴隨蔗迪▽苳詩閼煬閾焜闕迴遉踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь髟Е瘢雹瘍鱇草痺蒹熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳市鱇竇纉窿逅糸苒癘綮蛹蜩瘤跂衷迯闔閾肅跂鹿粡寂蝟赱齠洲痲筵娼楠鴉癆〓迴糒跂齡纃韭痺逅糸痺綮癇閼煬閾焜闔肅膽蝟昭粡竚癈鷭п粐Ь瘢雹瘍鱇鞜鶯蜥Я鞜竏窺王踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖跫艤竢鈕蜃譬迴籖跫艤竢鈕蜃熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳市鱇竇闔肅苺鱇碎粤痺礒瘢雹繚鱇雌吶逅赱竇鹿粡寂蝟赱齠洲痲筵娼迴籖跫艤竢迯闔筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煬閾煕闥緕皷祟蔗迪▽苳詩閼煬閾煕闥緕皷礒踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐楠鱚銖蜒閾芍鈑鱚髟纉痲蒹纈鬢踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖跫艤鱚聽鱚鬯蔗迪▽苳詩閼煬閾熬繙纈纈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳市鱇竇纉逅糸痺綮网瘢雹縺笊賜瘤粹笊辣銓筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熏蜊絎蔗迪▽苳詩閼熏蜊絋踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐彫瘢雹縺笊飼纈迚釶闔鞳纉閭緕肬釿闔綣蝟昭粡竚癈鷭п粐Ьу緕皷闔肅竏蜈鬢踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖迚辣熏瘍蜒譬迴籖迚辣熏瘍蜒熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳残逅糸痺綮鴉蜴癆蜿糒粤粹笊辣銓緕闔笏蜿粤鹿粡寂蝟赱齠洲痲筵娼闕碣纉瘍蜻鵞筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熏轣鞏齡癆蜒譬迴籖迯瘰燗礒踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼窺續逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐酪糒跂逅糸痺綮鱸辣銓瘡竅竏蹙瘢雹縺笊詩濶鱚纉鹿粡寂蝟赱齠洲痲筵娼肅竏蜈鴦肅筵瘢逅糸痺綮跚闥纈纉纈肬鴉瘤竇鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖鈬苡癆蜿隨蔗迪▽苳詩閼燻繚阡蛛闔熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳士逅糸痺綮苡癆蜿粤闔銛筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熕鳫譬迴籖頏陂踉晒瓲苳草痺蒹蝟昭粡竚癈鷭п粐Ь逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐酪糒跂竅竏鞜頏陂踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖鱚蜚絎蔗迪▽苳詩閼熬纓鱸鞜竏窺續鹿粡寂蝟赱齠洲痲筵娼齦隍瘢雹縺笊賜蜈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐齠閭蛛闔纉夘瘢雹瘍鱇粤肅竏蜈鴦蛹蜩瘤蝟昭粡竚癈鷭п粐Ь纉鱚齠蜿銖逅糸痺綮苺跚逅糸苒癘綮鱚鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖黼鉚蜀譬迴籖黼鉚蜀鞜竏窺骸蝟昭粡竚癈鷭п粐Ь齦隍瘢雹縺笊賜蜈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳残逅糸痺綮肅鉗闔鱸痰跂筵緕鳫銕纃緕緕鹿粡寂蝟赱齠洲痲筵娼肬釿闔纉鈕闥轣闔竚蜈銓筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼燗鎬蔗迪▽苳詩閼燗錵踉晒瓲苳草痺蒹蝟昭粡竚癈鷭п粐Ь逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐囎韶闥粤迴糒跂糯釶迚髟纉齦寰蝌跛鹿粡寂蝟赱齠洲痲筵娼怏邀鴬筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼燗鞳跚鈑譬迴籖齔繻蜴胼踉晒瓲苳草痺蒹蝟昭粡竚癈鷭п粐Ь逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐衷鴪繝闔闕癆蜻у鴪纒鴦胙瘰鞳蜴纒鱚籬銖鹿粡寂蝟赱齠洲痲筵娼跂孀巳踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖齡癆譬迴籖齡癆鞜竏窺續鹿粡寂蝟赱齠洲痲筵娼齦隍瘢雹縺笊賜蜈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐聿蜒葹艱讌逅糸痺綮糒熙瘢雹繚鱇詩絋踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖纈粡鬯蔗迪▽苳詩閼熾黼鰾蜥熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳子逅糸痺綮鞳鶯濶鱚鞳鴦闔鈬踈跚黶鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖蜻煢筮蔗迪▽苳詩閼熾鉗髟縷蜆鞜竏窺骸蝟昭粡竚癈鷭п粐Ь齦隍瘢雹縺笊賜蜈熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳伺逅糸痺綮遉瘢雹縺笊賜癆蜿筵蜆緕肅瘤鉗髟纉綣蝟昭粡竚癈鷭п粐Ь繿瘢雹繝蜥禹筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熾黼鶯鱇站譬迴籖纈痺襴踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼續逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐囎蝟粤蛹蜩癆纒鴦瘢雹瘍鱇讌瘟粤竢闍蜈鷦蝟昭粡竚癈鷭п粐Ь鱚逅赱竇辣銓迴籖竢闍蜈鶇筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼燒蓖齡焉跚癈譬迴籖闢瘡蛛鵙踉晒瓲苳草痺蒹鹿粡寂蝟赱齠洲痲筵娼窺凱續逅糸痺綮鱸纒鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐囎韶闥筵荀瘢雹閭蜥禹鶯踈瘢蜻辣銓鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃痰跂鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝蜴粤蔗迪皴蔗粹笂瘤豁迴箝蜴粤蔗迪貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握卸碓恒俄禺碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼鈔纔谺蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝蜴粤蔗迪貅昭蝟昭粡竚癈鷭ц襷樟卯誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺囈鱸笏杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈蜒糘笄鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∫鈔纔谺緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼鈔纔谺裃蜩閭鶩轣銛瘡閼鈔纔谺裃蜩錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭温概盞姐嘘錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝蜴粤蔗迪甌裼鷽莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼鈔纔谺裃蜩鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐憾声蝟昭粡竚癈鷭п粐Ь踉賛鴦蜿扈緕竢粡鈑就蜩鎰屋臆陟職苳纂蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬迪碕瘤臀∬瓣瘤臀∬瓣鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏モジュ・踉札蜚跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察鈑跚鼈纐蜩蜿邵鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■聿聿聿就0旭旭唖蜴觸■旭旭聿⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就f羂旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳餐鞜竏モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢの配布に含まれているモジュ・踉札襪蓮焚の通りです。 + <a href="index-bytype.html">鑪狃腓離皀献紂ルリスト</a> や + <a href="directives.html">Apache の全ディレクティブ</a> + のアルファベット順リストも参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢの配布に含まれない Apache モジュ・踉札襪砲弔い討鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕閼纉鞜竏絎闥膀⊆蝟昭粡竚癈鷭п粐Ь苳肢雕迴糒跂鶤瘰痺蒹鱧ぢを参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就竢鱚譬衷鱚熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳餐鞜竏のコア</dd> + + <dt><a href="mod_access.html">mod_access</a></dt> + + <dd>クライアントのホスト巳苳擦仄蝟昭粡竚癈鷭п粐Ьぢアドレスによってアクセス制御を行なう瘢雹</dd> + + <dt><a href="mod_actions.html">mod_actions</a> + Apache 1.1 以降</dt> + + <dd>メディアタイプやリクエストメソッドによって CGI + スクリプトを孫圓垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焉跚癈譬迴籖瘡蛛鵙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐ホストファイルシステムのドキュメントツリ・踉擦悗離泪奪團鵐圧擇鹿粡寂蝟赱齠洲痲筵娼孀のリダイレクションを行なう瘢雹</dd> + + <dt><a href="mod_asis.html">mod_asis</a></dt> + + <dd>HTTP ヘッダを含むファイルを送信する</dd> + + <dt><a href="mod_auth.html">mod_auth</a></dt> + + <dd>テキストファイル形阿稜Е苳孜ファイルを使用した + ユ・踉札暁Е苳孜機能を提供する</dd> + + <dt><a href="mod_auth_anon.html">mod_auth_anon</a> + Apache 1.1 以降</dt> + + <dd>認擇廚箸覆襯┘螢△悗瞭震 (anonymous) + でのアクセス機能を提供する</dd> + + <dt><a href="mod_auth_db.html">mod_auth_db</a> + Apache 1.1 以降</dt> + + <dd>Berkeley DB + 形阿稜Е苳孜ファイルを使用したユ・踉札暁Е苳孜機能を提供する</dd> + + <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt> + + <dd>DBM 形阿稜Е苳孜ファイルを使用したユ・踉札暁Е苳孜機能を提供する</dd> + + <dt><a href="mod_auth_digest.html">mod_auth_digest</a> + Apache 1.3.8 以降</dt> + + <dd>MD5 を使用した認攀’訳注: Digest 認蝟昭粡竚癈鷭п粐Ьぢを提供する</dd> + + <dt><a href="mod_autoindex.html">mod_autoindex</a></dt> + + <dd>暗縫妊譽肇螳賤鮑鄒垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼烽鳫纈譬迴籖碣阯黼鬢踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь鞜竏窺荻でのみ有効</dt> + + <dd>User-Agent 文字列を元に環境変数を設定する。 + Apache 1.3 以降において、mod_setenvif で置き換えられた</dd> + + <dt><a href="mod_cern_meta.html">mod_cern_meta</a> + Apache 1.1 以降</dt> + + <dd>HTTP ヘッダメタファイルをサポ・踉札箸垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焜芍譬迴籖竍薤踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐断スクリプトを孫圓垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焜闖謇纉譬迴籖竢闍蜈鵙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь鞜竏窺窺以降</dt> + + <dd>Netscape のよう瘢雹な cookie をサポ・踉札箸垢襦鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢにおいて、mod_usertrack に置き換えられた</dd> + + <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 以降</dt> + + <dd>MD5 認訳注: Digest 認機能を提供する + (mod_auth_digest により、mod_digest は非推砲覆辰討い踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蓿繙就迴籖粡鬯蔗迪▽苳詩閼焙蜥熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢディレクトリの茲螳靴い砲弔い討痢靄榲糞’修鯆鷆,垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼焙趙譬迴籖粲筅踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь鞜竏窺荻及びそれ以前</dt> + + <dd>GNU libdld を用いて起動時にモジュ・踉札襪離螢鵐鮃圓覆逅察鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢにおいて、mod_so に置き換えられた</dd> + + <dt><a href="mod_env.html">mod_env</a> Apache 1.1 以降</dt> + + <dd>CGI スクリプトに渡す環境変数の操作を行なう瘢雹</dd> + + <dt><a href="mod_example.html">mod_example</a> + Apache 1.2 以降</dt> + + <dd>Apache API のデモンストレ・踉札轡腑麝筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煥蜥纉譬迴籖纔韈鱚鵙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь鞜竏窺以降</dt> + + <dd>リソ・踉札垢蜥纉ヘッダを適用する</dd> + + <dt><a href="mod_headers.html">mod_headers</a> + Apache 1.2 以降</dt> + + <dd>リソ・踉札垢貿ぐ佞墺ヘッダを加える</dd> + + <dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 以降</dt> + + <dd>イメ・踉札献泪奪廛侫.ぅ襪鬢踉肢り扱う瘢雹機能を提供する</dd> + + <dt><a href="mod_include.html">mod_include</a></dt> + + <dd>SSI ドキュメントを有効にする</dd> + + <dt><a href="mod_info.html">mod_info</a> Apache 1.1 以降</dt> + + <dd>サ・踉札个寮瀋螟苳諮報を閲覧する</dd> + + <dt><a href="mod_isapi.html">mod_isapi</a> WIN32 のみ</dt> + + <dd>Windows ISAPI エクステンションをサポ・踉札箸垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煬閾焉艱銓譬迴籖跫艤瘍緕熙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐專纈艱銓ぢのログを記録する</dd> + + <dt><a href="mod_log_common.html">mod_log_common</a> + Apache 1.1.1 以降</dt> + + <dd>Common Logfile Format での標準的な書阿砲茲螢蹈阿魑燭垢襦鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢ以降において、mod_log_config + モジュ・踉札襪肪屬垢┐蕕譴筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煬閾焜闔肅膊蔗迪▽苳詩閼煬閾焜闔肅胼踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐迴籖跫艤竢迯闔鹿粡寂蝟赱齠洲痲筵娼の代わりとなるもので、ユ・踉札兇颱踉三を設定できる</dd> + + <dt><a href="mod_log_forensic.html">mod_log_forensic</a></dt> + + <dd>サ・踉札个悗離螢┘好箸闥緕皷ログ筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼煬閾熬繙纈纈譬迴籖跫艤鱚聽鱚鬢踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐ドキュメントの参噺凖禿凖勞ぢのログを記録する</dd> + + <dt><a href="mod_mime.html">mod_mime</a></dt> + + <dd>ファイルの拡張子を利用してドキュメントタイプの判定を行なう瘢雹</dd> + + <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt> + + <dd>"マジックナンバ・踉⊆蝟昭粡竚癈鷭п粐Ьぢを利用してドキュメントタイプの判定を行なう瘢雹</dd> + + <dt><a href="mod_mmap_static.html">mod_mmap_static</a> + Apache 1.3 以降</dt> + + <dd>ファイルのキャッシングを行なう瘢雹存嚇淵皀献紂ルで、 + ファイルをメモリ内にマッピングすることにより + パフォ・踉札泪鵐垢鮓苳糸させる</dd> + + <dt><a href="mod_negotiation.html">mod_negotiation</a></dt> + + <dd>コンテントネゴシエ・踉札轡腑鶺’修鯆鷆,垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熕鳫譬迴籖頏陂踉晒瓲苳草痺蒹ぢ以降</dt> + + <dd>proxy キャッシュ機能を提供する</dd> + + <dt><a href="mod_rewrite.html">mod_rewrite</a> + Apache 1.2 以降</dt> + + <dd>正規表現を利用した、URI + からファイル巳苳擦悗龍呂淵泪奪團鵐圧’修鯆鷆,垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼燗續緕罧蔗迪▽苳詩閼燗續緕网踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь鞜竏窺以降</dt> + + <dd>クライアントの霾鵑鮓気亡超竸瑤鬟札奪箸垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼燗鎬蔗迪▽苳詩閼燗錵踉晒瓲苳草痺蒹ぢ以降</dt> + + <dd>孫垰縫皀献紂ル (UNIXでは .so、Win32 では .dll) + を動的読み込みする機能を提供する</dd> + + <dt><a href="mod_speling.html">mod_speling</a> + Apache 1.3 以降</dt> + + <dd>URL の気糞劵潺垢鬢踉捌動的に修正する</dd> + + <dt><a href="mod_status.html">mod_status</a> Apache 1.1 以降</dt> + + <dd>サ・踉札个硫堝愛苳歯況を表┐垢筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼熾黼鰾蜥譬迴籖纈粡鬢踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐ユ・踉札兇離曄ムディレクトリにアクセスする機能を提供する</dd> + + <dt><a href="mod_unique_id.html">mod_unique_id</a> + Apache 1.3 以降</dt> + + <dd>リクエストごとに、一意なリクエスト ID を生成する</dd> + + <dt><a href="mod_usertrack.html">mod_usertrack</a> + Apache 1.2 以降</dt> + + <dd>cookie によりユ・踉札兇猟廟廚鮃圓覆逅鹿粡寂蝟赱齠洲痲筵娼閼焜闖謇纉ぢを置き換えたもの)</dd> + + <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> + Apache 1.3.7 以降</dt> + + <dd>たくさんのバ・踉札船礇襯曠好叛瀋蠅鯑暗帽柔垢筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焉窿纉鶤蔗迪皴蔗粹笂瘤豁迴箝迴籖痺竇齠谺緕錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭金慣繖慨傑錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖痺竇齠谺緕粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖痺竇齠谺緕鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐完声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖痺竇齠蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬酪糒跂閼焉窿纉鵙踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍迴糒跂鳫粤痺竇齠闔闌癈繖竚蜈銓鹿粡寂蝟赱齠洲痲筵娼蓖齡釶辣賓粐鱚齠闥纈葹鱇笏纈蜩笂竚蜈銓鹿粡寂蝟赱齠洲痲筵娼鱚髟纉鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯囂竇鍋跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍阨鱆鍋跂墾踉晒齡鳫鈑閼焉窿纉鶤礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪M閼緝粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂粤銓蜀蜈鮑闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь窿纉黯迴糒跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢囎迯癇踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蜥繝頏阮蜆繖迴籖痺竇齠鱚黼蜴踉祉閼絋苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯粡鱚笏闥逅詞堤鱚笏闥瘢雹苳殺踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯肅跂鵞逅詞鍋跂鵙瘢雹苳殺踉晒瓲苳錆閼絋苳瘤竢粤畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪l閭癆蜿遐逅詞弥竅闔逅紫閼絋苳黼笏蜿銖鹿粡寂蝟赱齠洲痲筵娼癈繻癈踉祉閼絋苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯痺竇齠肅跂釶辣▽苳皿蔗痺竇齠閼絋苳肅跂鹿粡寂蝟赱齠洲痲筵娼竢銓鳫痺竇齠鞜鶯蜒癇癇黼鴟纈巣竇齠瘤綣蝟昭粡竚癈鷭п粐Ь闔闌跂矚黼闔蒹跚緕蓖齡釶辣賓粐鱚齠闥纈鹿粡寂蝟赱齠洲痲筵娼竏癇痺鱸齡蜒閹蒹跚緕鱚髟纉竅頸繖畆蝟昭粡竚癈鷭п粐Ь鱚羹〓緕蔗迪▽苳糸鉚蜥闔辣銓癇蛛碎纉壽綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐跛阯閼絋苳瘤竢粤偵銷閼絋苳粡鱚笏蝟纉鱚黼鹿粡寂蝟赱齠洲痲筵娼齔繝蜀蜒竚蜈銓癇闥鱚阡跛阯繖窿纉蒹鹿粡寂蝟赱齠洲痲筵娼黼鴟纈蛹竢粤粤鬢踉晒竢粤蜥繝續粤聲蝟昭粡竚癈鷭п粐Ь窿纉齡癆絳鈔闔肅苺鱚蓖竢粤糟跫踉晒竢粤鈔鹿粡寂蝟赱齠洲痲筵娼竢粤偵銷閼絋苳粡鱚笏蝟纉銓纈痺痺阡蒹鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳斬阡蓖齡癈繖窿纉鱚齡鱸笏蜿銖鈔癈齬闥筬矚黼篌蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆蜿轣矼逅跂辣銓繖蜊鈬阨鼬癆癈絳鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯黶黽噤黽踉晒瓲苳粡鱚笏蝟蜩黼篌蝟昭粡竚癈鷭п粐Ь粤鴉蜴蓖黼鱚齡鱸笏蜿銖銓纈痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺艱鈬鱇讙窿纉鱚齡鱸笏蜿粡鱚笏蝟纉韶踟瘡貅蝟昭粡竚癈鷭п粐Ь窿纉辣閼└踉祉閼絋苳伺都閼絋苳錆踉祉閼絋苳姉孕閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼竢粤佻嘖閼絋苳錆蓍蜩蒹纉蜥繖繹癘蜿蜴闢蝟昭粡竚癈鷭п粐Ь癈纉被鬪蜩闢皷碎纉蜒齒辣續蓖糂蛹綣蝟昭粡竚癈鷭п粐Ь縺鈑纈續蓖糂銜纉蜒筱緕竚闢蜴粡鱚笏蝟纉鹿粡寂蝟赱齠洲痲筵娼蜴踉氏鱚羹≪闥絎蔗迪l蜊蜚▽苳殺瘢雹踉嗣蜊蜚逅紫繝闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳残蜥繝鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就a跛阯▽苳餐跛阯薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■粤銷▽苳残緕踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就o鰾纈▽苳始鰾纈薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍繞踈蓿繙就竢鱚譯黶黽噤黽踉晒瓲苳瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪r繿鱚▽苳子繿鱚踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡跛阯釶辣就瘡跫糟跫踉晒瓲苳蜆就瘡跫鳫辣鉚⊆蝟昭粡竚癈鷭п粐Ь瘢綵≡跛阯胙闕緕粡鱚笏蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳糟跫胙闕鹿粡寂蝟赱齠洲痲筵娼瘡踰纃蓖齡蹙苳慈緕纃緕鱸痰跂蹙苳纂蝟昭粡竚癈鷭п粐Ь纃蓖齡蹙苳慈緕纃緕鱸痰跂蹙苳旨碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑蜊蜚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖痺竇齠鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉祉閼絋苳餐跛阯閼絋苳粡鱚笏蝟瘋聽笏蜒蓖齡竅郤蝟昭粡竚癈鷭п粐Ь窿纉瘤鱚閹蒹纈鬯窿纉竅矼闔闌跂磔鹿粡寂蝟赱齠洲痲筵娼蓖齡釶辣賓粐鱚齠賓粐鱚齠瘤艱闥阡蒹鮗蝟昭粡竚癈鷭п粐Ь葹鱇笏纈蜩笂竚蜈銓繿齡瘰鱚蜴鉚蜥闔辣銓鹿粡寂蝟赱齠洲痲筵娼鱸痰跂鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蜥齡鱧緕蓍粡鱚笏蝟蜩踞癨鷦蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳紙鳫蹙踉晒竢粤壽齦碵繿銓鱧緕瘤瘠鱚綣蝟昭粡竚癈鷭п粐Ь蜀聽鱚銓闥逑膚踉祉閼絋苳餐跛阯鳫瘡讀踉晒竢粤齔繝蜀蜈筱鹿粡寂蝟赱齠洲痲筵娼緕跛闢鱚跛阯繖窿纉鵺裙笏竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь竢粤偵銷閼絋苳瘤竢粤粤鬢踉晒竢粤蜥繝癈鹿粡寂蝟赱齠洲痲筵娼粡黹黼矼跫瘡跫闔踟癇笊赱蓖齡闥鳫閹鹿粡寂蝟赱齠洲痲筵娼蓖齡窿纉黼鴟纈纃蓖齡蹙苳竅矼鞳竕肅繖鹿粡寂蝟赱齠洲痲筵娼蜴銷肬跛阯蜴肬鴉癆鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘癇瘡粹轣蜴瘢絋踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐祷瘢韭綺踉祉閼絋苳餐跛阯鳫瘰痺蒹鱧閼絋苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь被齡闢釶辣轣茗緕蜴蜩蜴癇瘡跫篌蝟昭粡竚癈鷭п粐Ь窿纉鶤鉤竢逅跂闕竟鈬銓癇轣蒹筱痰阮綣蝟昭粡竚癈鷭п粐Ь逅跂蛹轣竢粤肬鎬瘰痺蒹鱧閼絋苳碯蜚蛹貅蝟昭粡竚癈鷭п粐Ь阡癆竏踉祉閼絋苳紙闖瘰痺蒹鱧閼絋苳皿蓍竢鈕蜃癆蜿跛鹿粡寂蝟赱齠洲痲筵娼竅黼鴟纈鞳鱠闥粹跂纐纈黼林闖謨闔蒹鹿粡寂蝟赱齠洲痲筵娼竚蜈銓痲糅纉鵺繚癇粲纉閹蒹續鈑畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪h闢瘢繻闖謨頌▽苳使闢瘢緻闖謨頌鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絎部蛹粹纐纈黼林闖謨闔蒹痲糅纉鹿粡寂蝟赱齠洲痲筵娼肅鈔蒹齠閭蛛蓖齡釶辣瘤緕肬鵄癇跫闍郤蝟昭粡竚癈鷭п粐Ь蒹闢瘢齠癆轣蒹闥蜃蜴瘡痲糅纉鶤鹿粡寂蝟赱齠洲痲筵娼踟肬鵄癇瘤鱚鴦栂癇竢銖蜩銓鈔蒹鹿粡寂蝟赱齠洲痲筵娼蓖齡釶辣癆竏纉蛹痺竇齠瘡跫筮筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳餐賓粐鱚齠熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳仕逅跂竢粤糟跫胙闕握窺荻界踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼賓粐鱚齠蓖齡跛阯繖窿纉鵙踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘鞜鶯蛛賓粐鱚齠熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳仕逅跂竢粤糟跫胙闕握右踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼蒹蜥齡磔閹賓粐鱚齠肬齦碆續鹿粡寂蝟赱齠洲痲筵娼鱚齡鱸笏蜿隨筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳餐續鳬續轣鼡瘟鬢踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐祷瘢韭綺踉祉閼絋苳餐跛阯鳫躰蝟昭粡竚癈鷭п粐Ь握窺握渥乙貴乙貴握愛踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼續鳬瘤鈬癈闥闥綣蝟昭粡竚癈鷭п粐Ь蜴絖苒瘟鈬齦碆續纉蜒闔鞜竏窺瘤赱鬧筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳餐續鳬銕苗齔繝蜀蜒癆蜿遉踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐祷瘢韭綺踉祉閼絋苳餐跛阯鳫碓共踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼蜊蛹癇頏纐蜿癈絳辮鈬癈竢銖蜩羲蝟昭粡竚癈鷭п粐Ь銕蜃茘闥粤砠鞜竏窺瘤赱鬧筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳士阡癆蒹癈鱚纔瘢韭纉硼癆竏笏踟蒹鹿粡寂蝟赱齠洲痲筵娼黶辣續蓖齡鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蓍鰾闥轣閹蒹鱧緕竢粤糟跫踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟瘡跫窿纉蒹纈竢銓鳫跛繖癈繖郤蝟昭粡竚癈鷭п粐Ь蒹齡緕竇瘤踉氏鱚羹〓緕蔗迪▽苳糸鉚蜥闔辣銓鹿粡寂蝟赱齠洲痲筵娼鱸痰跂怦緕踉祉閼絋苳餐跛阯鳫躰蝟昭粡竚癈鷭п粐Ь鉚拾踉晒竢粤纃緕鱸痰跂蹙苳蜩鞳竕肅繖緕蒹繿齡鹿粡寂蝟赱齠洲痲筵娼蜩跛阯繖窿纉蜀蒹鉚蜥闔辣銓癇蛛碎綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳糸鉚癇蛛碎絋踉晒纃齡鶤蒹纈頏阮蜆纉蒹砠跚鹿粡寂蝟赱齠洲痲筵娼續鉚蜥闔辣銓癇蛛碎纉肚纔蛯跂癨癈繖郤蝟昭粡竚癈鷭п粐Ь葹鱇笏纈蜩笂竚蜈銓繿齡皷鈑蒹蜥繝鷦蝟昭粡竚癈鷭п粐Ь鳫粤磔踉氏鱚羹閼燗續緕罧蔗迪▽苳詩閼燗續緕网踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼壽纈繙闥絳蓍粡鱚笏蝟竅矼黼跛阯窿纉矚黼闔鹿粡寂蝟赱齠洲痲筵娼齦竏痺鴦竚蜈銓竢粤專纈艱銓閼絋苳鳫纈鹿粡寂蝟赱齠洲痲筵娼鞳踉祉閼絋苳子繙纈纈閼絋苳錆阡蒹挽墅繿齡縺粤鮗蝟昭粡竚癈鷭п粐Ь蜈趙鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼嚆鉚膚黼鬮燥緕淤鈿站鮪閭覩蝦續熏縷蜴鹿粡寂蝟赱齠洲痲筵娼逅詞堤鱚笏闥閭鳫阡逅紫鹿粡寂蝟赱齠洲痲筵娼粤偵銷跛阯鹿粡寂蝟赱齠洲痲筵娼偵銷鳫瘡貅蝟昭粡竚癈鷭п粐Ь跛阯鳫緕跂辣煢郤蝟昭粡竚癈鷭п粐Ь瘢雹踉晒堤鱚笏闥瘢雹苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺蜩癈絳鳫纈黼鬮瘍緕齡鱸鈑繚蜴鉗鈑鹿粡寂蝟赱齠洲痲筵娼踉飼熙苳史鈿站鮪閭覩荻愛踉晒蛹矼跛阯繖窿纉鵺鈔跛鹿粡寂蝟赱齠洲痲筵娼阡蒹鴦蛹矼緕蜈筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍繞踈蓿繙就d緕偵銷畆蝟昭粡竚癈鷭п粐Ь鱚羹■闥粤鬆粤鬢踉晒瓲苳瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹閼燗續緕罧蔗迪s續緕罌嚆鉚膚踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≫緕瘢綵≫緕偵銷踉氏篏≫緕鳫辣鉚⊆蝟昭粡竚癈鷭п粐Ь瘢綵≫緕鳫辣鉚▽苳私蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑緕胙闕鹿粡寂蝟赱齠洲痲筵娼瘡踰纃蓖齡蹙苳慈緕纃緕鱸痰跂蹙苳纂蝟昭粡竚癈鷭п粐Ь纃蓖齡蹙苳慈緕纃緕鱸痰跂蹙苳旨碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑蜊蜚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖痺竇齠鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍粡鱚笏蝟瘡跫窿纉蒹纈鱚齡鱸笏繖鹿粡寂蝟赱齠洲痲筵娼矚黼闔闢瘢絳痲糅纉鵺緕鳫鉈緕鱸痰跂鶤蒹鹿粡寂蝟赱齠洲痲筵娼癇苺辣銓肬竢粤偵銷閼絋苳粡鱚笏蝟癇蜆緕竅鹿粡寂蝟赱齠洲痲筵娼癇苺辣銓肬蓿繙就a跛阯▽苳餐跛阯蜥繝踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆瘡齒踉氏鱚羹■瘡跫糟跫踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就o鰾纈▽苳始鰾纈鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖黼鉚蜀譯黼鉚蜀▽苳屍續梼网踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就闥粤鬆瘢綵鰾纈▽苳始鰾纈蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑鰾纈鹿粡寂蝟赱齠洲痲筵娼纃闥粤鱸鈑蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳竢粤粤鮗蝟昭粡竚癈鷭п粐Ь緕糟跫踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑蜊蜚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖痺竇齠鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉祉閼絋苳始鰾纈閼絋苳粡鱚笏蝟竢銓鳫踈蒹繙癜踉窿纉鷦蝟昭粡竚癈鷭п粐Ь鈔蒹鰾纈蜒蓿繙就a跛阯▽苳餐跛阯鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就d緕偵銷蜥繝癇纐瘡筮鹿粡寂蝟赱齠洲痲筵娼纃粤鱸鈑蹙苳蜩鈬网踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳残緕糟跫踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐壽竢粤偵銷閼絋苳粡鱚笏蝟纉鱚跿癆繖繙闥綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐跛阯閼絋苳粡鱚笏蝟纉巣竇齠瘡跫磔繙癜踉蝟昭粡竚癈鷭п粐Ь銷跚緕蜒粹纉阡癆竏踉祉閼絋苳残緕踉晒竢粤蜥繝鹿粡寂蝟赱齠洲痲筵娼闥閻轣瘤踉祉閼絋苳餐跛阯閼絋苳粡鱚笏蝟跛瘡跫篌蝟昭粡竚癈鷭п粐Ь窿纉蒹纈鬯筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳餐跛阯緕踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐壽竢粤糟跫踉晒竢粤蜥繝癇纐瘡矼肬鱚鹿粡寂蝟赱齠洲痲筵娼竢粤偵銷閼絋苳粡鱚笏蝟纉巣竇齠粤鉗繖蝟昭粡竚癈鷭п粐Ь繙癜踉綜竚蜈銓蓍竏閻鈿轣瘤鹿粡寂蝟赱齠洲痲筵娼竢粤糟跫踉晒竢粤蜥繝粹纉癆竏鹿粡寂蝟赱齠洲痲筵娼竢粤偵銷閼絋苳粡鱚笏蝟跛粤鉗繖窿纉蒹鹿粡寂蝟赱齠洲痲筵娼黼鴟纈踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘藍瘡瘟跿鱚熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳始鉤闢蓖齡蜒瘰鞳癇竢粤糟跫踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跚齡鈔鈿瘰鞳癇竢粤偵銷閼絋苳跚齡鱚鹿粡寂蝟赱齠洲痲筵娼苒瘤痺竇齠壽蜩鰾纈蜴葹黶辣聿繝癈鹿粡寂蝟赱齠洲痲筵娼竢粤粤糟跫偵銷閼絋苳瘤蜩辮鱚竅蜴癘闥羲蝟昭粡竚癈鷭п粐Ь葹竢鈕蜃癆蜿隨筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳史纖鰾轣闔踟黼鞜鱇磔闕轣鈿蓍齔痺蜩鹿粡寂蝟赱齠洲痲筵娼瘡跫矼繞纃麗葹蜴跛癈纉鴒鹿粡寂蝟赱齠洲痲筵娼竢粤糟跫踉晒竢粤鈔踉祉閼絋苳残緕踉晒竢粤辣銓鷦蝟昭粡竚癈鷭п粐Ь跿癆繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮蒹闌跫鈑逅跂瘡蓖齡蜴蒹鞜竏絎闥粹轣蜴鹿粡寂蝟赱齠洲痲筵娼癇瘡跫痺竇齠瘡阡蒹蓖齡癇粤鉗繖窿纉鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤粤偵銷跛阯碣鹿粡寂蝟赱齠洲痲筵娼緕胙闕跛碣鹿粡寂蝟赱齠洲痲筵娼跛阯鳫瘰痺蒹鱧碣鹿粡寂蝟赱齠洲痲筵娼閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺鈬逅跂瘡蓖齡蜴蒹鞜竏絎闥粹轣蜴鱚鹿粡寂蝟赱齠洲痲筵娼瘡跫痺竇齠纔竇頸闥蒹闢蓍竏鱚綣蝟昭粡竚癈鷭п粐Ь闖鞜竏絎闥齦矮闕瘟遯蓖鱚緕蜈痺竇齠糟蓖齡鈿蝟昭粡竚癈鷭п粐Ь瘰痺蒹鱧闕瘟癇粤鉗繖窿纉矼竅粤聲蝟昭粡竚癈鷭п粐Ь緕痺竇齠黼鴟纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳始鰾纈跛阯緕踉獅苳纂蝟昭粡竚癈鷭п粐Ь糟跫胙闕鞜竏絎闥胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь偵銷鳫肬鎬瘰痺蒹鱧碣鹿粡寂蝟赱齠洲痲筵娼閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳始阡蒹葹鈔蜀蒹踉祉閼絋苳始鰾纈閼絋苳蜴蒹癈蝟昭粡竚癈鷭п粐Ь逅跂竏瘤艱踉祉閼絋苳残緕糟跫踉晒竢粤瘡蓖齡跛鹿粡寂蝟赱齠洲痲筵娼矼跛阯繖窿纉鶤蓍葹韶緕矼竅絳繚癇粲纉閹蒹鹿粡寂蝟赱齠洲痲筵娼痺瘡鰾纈蜴閹蒹蜥繝蜴蒹闔肅苺鱇闔蛹絳鹿粡寂蝟赱齠洲痲筵娼竢粤糟跫胙闕鞜竏絎闥胼踉晒竢粤蛹矼跿癆繖癈蝟昭粡竚癈鷭п粐Ь鈔蛹阮纈鱸粤蒹踉祉閼絋苳残緕胙闕闖鞜竏絎闥胼踉晒竢粤蝟昭粡竚癈鷭п粐Ь跛闢阡竢粤瘰痺蒹鱧閼絋苳粹轣蜴蛹瘡齒鹿粡寂蝟赱齠洲痲筵娼矼跛阯繖窿纉矼竅粤聲齡癆跛葹鈑鹿粡寂蝟赱齠洲痲筵娼纃瘡跫踉晒纃踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽頏纉緕竇瘤踉祉閼絋苳始鰾纈閼絋苳粡鱚笏蝟竅瘋聽笏鹿粡寂蝟赱齠洲痲筵娼痺竇齠鞜鶯黼鴟纈蜴蒹碵緕竇羲蝟昭粡竚癈鷭п粐Ь窿闕鞜銷蜴竢粤糟跫踉晒竢粤鈔踉祉閼絋苳残緕踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉繝癜黼蜚繙聽笏粤聲痺竇齠蝟昭粡竚癈鷭п粐Ь闥逅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳殺瘢雹踉残蜥繝鴒瘢雹苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь逅試碵雹逅試碵雹粤糟跫偵銷碣鹿粡寂蝟赱齠洲痲筵娼瘢雹踉晒堤鱚笏闥瘢雹苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跛緕瘡痺竇齠竢粤閼絋苳粡鱚笏闥蝟昭粡竚癈鷭п粐Ь繝癜黼蒹繙癜踉窿纉齡癆跛黼鹿粡寂蝟赱齠洲痲筵娼纃粤銷蹙苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉祉閼絋苳始鰾纈閼絋苳粡鱚笏蝟竢銓鳫踈蒹鰾纈羲蝟昭粡竚癈鷭п粐Ь窿纉粡鱚笏蝟頏閭纉皷鈑鉤蜴痺韆癈閹蒹鹿粡寂蝟赱齠洲痲筵娼黼鴟纈闔肅苺鱇闔鳫竇齠蜴膊蓍蜊韭蜈鵺闥逅跂蝟昭粡竚癈鷭п粐Ь葹瘤踉祉閼絋苳餐跛阯閼絋苳闥踉祉閼絋苳残緕踉晒竢粤蜥繝鹿粡寂蝟赱齠洲痲筵娼閭笊鴪蜴蜴瘢雹踉嗣閭癆蜿遉瘢雹苳黼笏蜿跛踞癨矼鹿粡寂蝟赱齠洲痲筵娼纐瘡瘋瘤踉祉閼絋苳餐跛阯閼絋苳闥踉祉閼絋苳残緕踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟閭笊鴪蜴蜴瘢雹踉残蜥繝鴒逅紫繝闔鮗蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳皿蔗痺竇齠閼絋苳肅跂鱚艨鰾跂齠黼蜴閹蒹鹿粡寂蝟赱齠洲痲筵娼竢粤粤鬢踉晒竢粤蜥繝楠粤蛹闔蒹纈芍鈑羲蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔繝闔鵺繞蒹閭緕闔畆蝟昭粡竚癈鷭п粐Ь鱚羹〓黼笏蜿銖譬被堤鱚笏闥閭癆蜿瘤鍋跂鷦蝟昭粡竚癈鷭п粐Ь繝闔鳬踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆瘡齒蓿繙就d緕偵銷鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a跛阯▽苳餐跛阯´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焉窿纉鶤蔗迪皴蔗粹笂瘤豁迴箝迴籖痺竇齠谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭砌銀吾翫午錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖痺竇齠谺蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖痺竇齠谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就迴籖痺竇齠谺緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焉窿纉鶤蔗迪甌裼皴蔗粹笂瘤豁迴箝迴籖痺竇齠谺裃蜩錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭癌剛竅灸金錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖痺竇齠谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖痺竇齠谺裃蜩鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐街声蝟昭粡竚癈鷭п粐Ь踉賛鴦蜿扈緕竢粡鈑就蜩鎰屋臆陟職苳纂蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬迪碕瘤臀∬瓣瘤臀∬瓣鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏迴糒跂閼焉窿纉鵙踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩鱚皷闔窺慨苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆迴籖痺竇齠ぢモジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪魯薀ぅ▲鵐箸離曠好般、IP + アドレス、その側苳擦離薀ぅ▲鵐箸離螢┘好箸瞭団Г亡陲鼎い鹿粡寂蝟赱齠洲痲筵娼アクセス制御機能を提供します。</p> + + <p><a href="module-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪s阨鱆繙蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑閼焉窿纉鶤礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪m閼繪粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札襴踉傘別子:</strong></a> + access_module</p> + + <h2>概要</h2> + + <p>mod_access により提供されるディレクティブはサ・踉札个瞭団蠅良悗鹿粡寂蝟赱齠洲痲筵娼アクセスを制御するために <code><a href="core.html#directory" + ><Directory></a>, <a href="core.html#files"><Files></a + ></code>, <code><a href="core.html#location"><Location></a + ></code> と <code><a href="core.html#accessfilename">.htaccess</a + ></code> ファイルで使用されます。クライアントのホスト巳苳察賓鹿粡寂蝟赱齠洲痲筵娼アドレスや <a href="../env.html">環境変数</a + >として萋世気譴拭△修梁のリクエストの特徴に基づいて + アクセス制御を行なう瘢雹ことができます。<code>Allow</code> と + <code>Deny</code> ディレクティブはどのよう瘢雹なクライアントにアクセスを + 許可する、しないかを指定するために使用されます。一方、 + <code>Order</code> ディレクティブはデフォルトのアクセス屬函鹿粡寂蝟赱齠洲痲筵娼竢粤糟跫踉晒竢粤ぢディレクティブと <code>Deny</code> + ディレクティブとのお互いへの影響の仕方を設定します。 + </p> + + <p>ホストによるアクセス制限とパスワ・踉札匹砲茲詛Е苳孜を同時に + 行なう瘢雹ことが可能です。その豺隋△修瞭鵑弔寮造隆愀犬鮖慊蠅垢襪燭瓩鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯黶黽噤黽踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブを使用します。</p> + + <p>一般的には、アクセス制限ディレクティブはすべてのアクセスメソッド + (<code>GET</code>, <code>PUT</code>, <code>POST</code> など) + に適用されます。そして、ほとんどの豺腓海譴ましい動作です。 + しかし、<a href="core.html#limit"><Limit></a> + セクションの中にディレクティブを書くことで、 + 一部のメソッドにのみ制限をかけることもできます。</p> + + <h2>ディレクティブ</h2> + + <ul> + <li><a href="#allow">Allow</a></li> + + <li><a href="#deny">Deny</a></li> + + <li><a href="#order">Order</a></li> + </ul> + + <p><a href="core.html#satisfy">Satisfy</a> と + <a href="core.html#require">Require</a> も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就瘡跫瘢綵≡跛阯▽苳餐跛阯踉氏篏≡跛阯胙闕緕鹿粡寂蝟赱齠洲痲筵娼釶辣就瘡跫鳫辣鉚▽苳ぢディレクティブ</a></h2> + + <p> + <a href="directive-dict.html#syntax" + rel="Help"><strong>構文:</strong></a> Allow from + all|<em>host</em>|env=<em>env-variablename</em> + [<em>host</em>|env=<em>env-variablename</em>] ...<br /> + <a href="directive-dict.html#context" + rel="Help"><strong>コンテキスト:</strong></a> ディレクトリ、 + .htaccess<br /> + <a href="directive-dict.html#override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑蜊蜚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉窿纉鵙踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢粤糟跫踉晒竢粤ぢディレクティブはどのホストが + サ・踉札个里△詢琉茲鬟▲札垢任襪鳳洞舛鰺燭┐泙后鹿粡寂蝟赱齠洲痲筵娼アクセスはホスト巳苳察賓ぢアドレス、IP アドレスの範囲や、 + 環境変数として萋世気譴拭△修梁のクライアントのリクエストの + 特徴によって制御することができます。</p> + + <p>このディレクティブの最初の引数は錣踉祉閼絋苳紙鳫蹙踉晒竢粤ぢです。 + それに続く引数は三つの違った形阿△蠅泙后竢粤糟跫胙闕鹿粡寂蝟赱齠洲痲筵娼瘡讀踉晒竢粤ぢが指定されていれば、すべてのホストにアクセスを許可し、 + アクセス制限は王踉擦農睫世気譴討い襪茲逅擦法竢粤偵銷閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブと <code>Order</code> + ディレクティブの設定で決まります。 + 特定のホストやホスト群にのみサ・踉札个悗離▲札垢魑弔垢襪燭瓩砲蓮鹿粡寂蝟赱齠洲痲筵娼以王踉擦里匹譴侶薦踉三で <em>host</em> を指定することができます:</p> + + <dl> + <dt>ドメイン巳苳の一部)</dt> + + <dd>例: <code>Allow from apache.org</code><br /> + この文字列に合う瘢雹か、これで終わる巳苳餐阿離曠好箸離▲札垢弔気譴泙后鹿粡寂蝟赱齠洲痲筵娼各部分が完全に合う瘢雹ものだけに適用されますので、紊領磴鹿粡寂蝟赱齠洲痲筵娼竢粤肬鎬瘰痺蒹鱧閼絋苳にはマッチしますが、 + <code>fooapache.org</code> にはマッチしません。 + この設定をすると、サ・踉札个鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯蓖齡釶辣跫闍鵞被齡釶辣弥闍鵙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢの設定に関わらず、クライアントの IP アドレスに対して + DNS の二重の逆引きを行ないます。これは IP アドレスで DNS + の逆引きを行なってそれに関連付けられたホスト巳苳擦鮓弔院鹿粡寂蝟赱齠洲痲筵娼それからホスト巳苳擦農軌鮃圓覆辰謄螢献淵襪仄蝟昭粡竚癈鷭п粐Ьぢアドレスと一致するか確認します。アクセスは正引きと逆引きに矛盾が無く、 + ホスト巳苳擦戝廚靴職苳詞合に限り許可されます。</dd> + + <dt>完全な IP アドレス</dt> + + <dd>例: <code>Allow from 10.1.2.3</code><br /> + アクセスを許可する IP アドレスです。</dd> + + <dt>IP アドレスの一部</dt> + + <dd>例: <code>Allow from 10.1</code><br /> + サブネットの制限用の、IP + アドレスの最初の一つから三つまでのバイトです。</dd> + + <dt>ネットワ・踉札ぢネットマスク の対</dt> + + <dd>例: <code>Allow from 10.1.0.0/255.255.0.0</code><br /> + ネットワ・踉札ぢとネットマスク w.x.y.z です。 + より細粒度のサブネット制限用です。(Apache 1.3 以降)</dd> + + <dt>ネットワ・踉札銕苗指定</dt> + + <dd>例: <code>Allow from 10.1.0.0/16</code><br /> + ネットマスクが nnn の絨魅咼奪箸鹿粡寂蝟赱齠洲痲筵娼となっているものからなること以外は前のものと同じです。 + (Apache 1.3 以降)</dd> + </dl> + + <p>注: 最後の三つの例はまったく同じホストに合います。</p> + + + <p><code>Allow</code> ディレクティブの引数の三つ目の形阿蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就鉚譬環境変数</a> + の存在によりアクセスの制御を行なえるよう瘢雹にするものです。 + <code>Allow from env=</code><em>variablename</em> + が指定されていると、環境変数 <em>variablename</em> + が存在した豺腓縫螢┘好箸魯▲札垢魑弔気譴泙后機バは + <a href="mod_setenvif.html">mod_setenvif</a> + のディレクティブにより、クライアントのリクエスト + の特徴に基づいて柔軟に環境変数を設定する機能を提供します。 + ですから、このディレクティブはクライアントの + <code>User-Agent</code> (ブラウ瘢雹ザの鑪ぢ、<code>Referer</code> + や側苳擦墺リクエストのヘッダフィ・踉札襯匹覆匹亡陲鼎い鹿粡寂蝟赱齠洲痲筵娼アクセス許可をするために使う瘢雹ことができます。 + </p> + + <p>例:</p> + + <blockquote> +<pre> +SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in +<Directory /docroot> + Order Deny,Allow + Deny from all + Allow from env=let_me_in +</Directory> +</pre> + </blockquote> + + <p>この豺隋纈艱銓ぢの文字列が <tt>KnockKnock/2.0</tt> + で始まるブラウ瘢雹ザのみがアクセスを許可され、 + 側苳擦里發里魯▲札垢魑馮櫃気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹■粤銷▽苳残緕踉晒瓲苳錆踉氏鱚羹■闥粤鬆粤鬢踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖黼鉚蜀譯黼鉚蜀▽苳屍續梼网踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブも参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就粤銷釶辣就粤銷▽苳残緕踉晒瓲苳蜆就粤銷胙闕緕鹿粡寂蝟赱齠洲痲筵娼釶辣就粤銷胙闕緕ディレクティブ</a></h2> + + <p> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> Deny from + all|<em>host</em>|env=<em>variablename</em> + [<em>host</em>|env=<em>variablename</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> ディレクトリ、 + .htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蜊蜚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉窿纉鵙踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このディレクティブはホスト巳苳察賓鹿粡寂蝟赱齠洲痲筵娼アドレス、環境変数に基づいてサ・踉札个悗離▲札垢鮴造靴泙后鹿粡寂蝟赱齠洲痲筵娼竢粤偵銷閼絋苳ディレクティブの引数は <a href="#allow">Allow</a> + ディレクティブとまったく同じです。</p> + + <p><a href="#allow">Allow</a>, <a href="#order">Order</a>, + <a href="mod_setenvif.html#setenvif">SetEnvIf</a> + も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就闥粤鬆瘢綵鰾纈▽苳始鰾纈ぢディレクティブ</a></h2> + + <p> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> Order + <em>ordering</em><br /> + <a href="directive-dict.html#default" + rel="help"><strong>デフォルト:</strong></a> <code>Order + Deny,Allow</code><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> ディレクトリ、 + .htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蜊蜚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉窿纉鵙踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢粤粤鬢踉晒竢粤ぢディレクティブはデフォルトのアクセスの屬鹿粡寂蝟赱齠洲痲筵娼蓿繙就a跛阯▽苳餐跛阯ぢディレクティブと <a href="#deny">Deny</a> + ディレクティブが髭苳参舛気譴觸臠屬鮴罎靴泙后鹿粡寂蝟赱齠洲痲筵娼纃粤鱸鈑蹙苳は以王踉擦里匹譴任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘偵銷跛阯熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉祉閼絋苳残緕踉晒竢粤ぢディレクティブが <code>Allow</code> + ディレクティブの前に髭苳参舛気譴泙后鹿粡寂蝟赱齠洲痲筵娼アクセスはデフォルトで許可されます。<code>Deny</code> + ディレクティブに合わないか、<code>Allow</code> + ディレクティブに合う瘢雹クライアントはアクセスを許可されます。</dd> + + <dt>Allow,Deny</dt> + + <dd><code>Allow</code> ディレクティブが <code>Deny</code> + ディレクティブの前に髭苳参舛気譴泙后鹿粡寂蝟赱齠洲痲筵娼アクセスはデフォルトで拒否されます。<code>Allow</code> + ディレクティブに合わないか、<code>Deny</code> + ディレクティブに合う瘢雹クライアントはアクセスを拒否されます。 + </dd> + + <dt>Mutual-failure</dt> + + <dd><code>Allow</code> のリストに現れて、<code>Deny</code> + のリストに現れないホストのみがアクセスを許可されます。 + この順番付けは <code>Order Allow,Deny</code> と同じ効果を持ち、 + その設定の方が好ましいために非推箸覆辰討い泙后筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢキ・踉札錙ドはコンマで分離することだけが可能です。 + 間に空白があってはいけません。どの豺腓任癲竢粤糟跫踉晒竢粤ぢと + <code>Deny</code> 文は全て髭苳参舛気譴襪箸い逅擦海箸肪躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ以王踉擦領磴任蓮瘰痺蒹鱧鹿粡寂蝟赱齠洲痲筵娼ドメインのすべてのホストはアクセスを許可されます。 + 側苳擦里垢戮討離曠好箸魯▲札垢魑馮櫃気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤粤偵銷跛阯碣鹿粡寂蝟赱齠洲痲筵娼緕胙闕跛碣鹿粡寂蝟赱齠洲痲筵娼跛阯鳫瘰痺蒹鱧碣鹿粡寂蝟赱齠洲痲筵娼閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ,領磴任蓮肬鎬瘰痺蒹鱧ぢサブドメインにあるホスト以外の、 + apache.org ドメインのすべてのホストがアクセスを許可されます。 + apache.org + ドメインでないホストは、デフォルトの屬▲札控馮櫃里燭瓠鹿粡寂蝟赱齠洲痲筵娼サ・踉札个悗離▲札垢魑馮櫃気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤粤糟跫偵銷碣鹿粡寂蝟赱齠洲痲筵娼跛阯鳫瘰痺蒹鱧碣鹿粡寂蝟赱齠洲痲筵娼緕胙闕闖鞜竏絎闥胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮一方、紊領磴踉祉閼絋苳始鰾纈閼絋苳が <code>Deny,Allow</code> + に変わっていれば、すべのホストにアクセスが許可されます。 + これは、設定ファイル中の尊櫃僚臠屬亡悗錣蕕此鹿粡寂蝟赱齠洲痲筵娼竢粤糟跫胙闕鞜竏絎闥胼踉晒竢粤ぢが最後に髭苳参舛気譴董鹿粡寂蝟赱齠洲痲筵娼竢粤偵銷鳫肬鎬瘰痺蒹鱧閼絋苳を綵颪垢襪蕕任后鹿粡寂蝟赱齠洲痲筵娼竢粤瘰痺蒹鱧閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢドメインにないホストも、デフォルトの屬踉糸蹙苳氏跛阯蹙苳纂蝟昭粡竚癈鷭п粐Ьぢに変化するために、アクセスを許可されます。 + </p> + + <p><code>Order</code> + ディレクティブはデフォルトのアクセスの屬鳳洞舛鰺燭┐襪里如鹿粡寂蝟赱齠洲痲筵娼竢粤糟跫踉晒竢粤ぢディレクティブと <code>Deny</code> + ディレクティブが無くても、サ・踉札个離▲札垢鳳洞舛鰺燭┐襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼たとえば、</p> + + <blockquote> + <code><Directory /www><br /> + Order Allow,Deny<br /> + </Directory></code> + </blockquote> + + <p>はデフォルトのアクセス屬踉糸蹙苳私緕踉晒纃ぢになるため、 + <code>/www</code> ディレクトリへのすべてのアクセスを拒否します。 + </p> + + <p><code>Order</code> + ディレクティブはサ・踉札个寮瀋蟒萢粒特奮任世鹿粡寂蝟赱齠洲痲筵娼アクセスディレクティブの処理の順番を変更します。これは、たとえば、 + <code>Order</code> ディレクティブの設定に関わらず、 + <Location> セクションの <code>Allow</code> ディレクティブや + <code>Deny</code> ディレクティブは、<Directory> セクションや + <code>.htaccess</code> ファイルの <code>Allow</code> + ディレクティブや <code>Deny</code> + ディレクティブよりも錣妨紊防価されるという瘢雹ことを意味します。 + 設定セクションのマ・踉札犬陸苳施細については、 + <a href="../sections.html">Directory,Location, Files + セクションの動作方法</a> を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹■粤銷▽苳残緕踉晒瓲苳と <a href="#allow">Allow</a> + も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焉笏蜿銖谺緕閭鶩轣銛瘡閼閼焉笏蜿銖谺緕錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭矚盒禧涯聰錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖痺闔鶤蔗迪鄂莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼焉笏蜿銖谺緕鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐騎声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂酪糒跂閼焉笏蜿銖蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬酪糒跂閼焉笏蜿銖右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼頏阮蜆纉闥笊鈑派竰蜷癈繖郤蝟昭粡竚癈鷭п粐Ь繖蛛闥繿齡續蓖筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯囂竇鍋跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍阨鱆鍋跂墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖痺闔鶤礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪M閼緝粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂粤銓蜀蜈鮑闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь笏蜿釼迴糒跂碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳走瘟赱碎蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹鈔癆纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳屍轣鴒王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼葹粡鱚笏蝟纉壽巣闔蜥繝續鷦蝟昭粡竚癈鷭п粐Ь阨派竰蜷蒹鈬肅跂竇鶯瘟鞳鷦蝟昭粡竚癈鷭п粐Ь繿齡繖壽噬鱸頸蜥繝續鴣断黹鱸頸鷦蝟昭粡竚癈鷭п粐Ь蒹鈬鞜鶯蜒癇續蓖蜩黼蜴繿齡壽蜩瘠纉鹿粡寂蝟赱齠洲痲筵娼蜚縺皷纈纔繝黹鱸頸癆鳫竇齠蛹纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳残蜥繝鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就a笏蜿遐巣闔薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黹鱸頸▽苳屍竰蜷熙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡笏蜿遐瘢綵≡笏蜿遐巣闔蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳巣闔踉糸蹙苳氏笏蜿遶鞳鹿粡寂蝟赱齠洲痲筵娼竍薛黹鱸頸蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉笏蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑笏蜿蜩鉤蝟昭粡竚癈鷭п粐Ь蛹痰跂草痺蒹鈔癆纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍粡鱚笏蝟痲糂痺闔蜒跛笏蝟癆綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳祉芍竰蜷熙踉晒纃蒹纃痺闔絋踉晒纃蜃艱鱚磔蒹鹿粡寂蝟赱齠洲痲筵娼鱚髟纉壽薤苳祉芍竰蜷熙踉晒薤苳蜩蒹厂癆纉阨鱆癆鹿粡寂蝟赱齠洲痲筵娼葹矼緕闔肅苺鱚癈派竰蜷蜴竢粤噬鱸頸糟蛛鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼闥踉祉閼絋苳餐粐悲鈔跂鬢踉晒竢粤壽纃痺闔絋踉晒纃瘤繪纈鹿粡寂蝟赱齠洲痲筵娼蓿繙就瘤粲纈譬葹鈔跂鬢踉晒瓲苳闥浜竢銓緕鞳部鹿粡寂蝟赱齠洲痲筵娼黼鈔孀瘤肅跂癆閹蒹繿齡繖閭緕蜴綣蝟昭粡竚癈鷭п粐Ь鈔癇断仭堡濾瞭瘤仭堡灣卅林盟堙緕鳫鉈緕蝟昭粡竚癈鷭п粐Ь癇蛛碎纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮祷瘢韭纉墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼吶髟纉闥蛹纉鞜鶯蜒癇綺鹿粡寂蝟赱齠洲痲筵娼巣闔轣艱蜀竍薛砠遲蜊瘍纉芍鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鍋跂閹癇笊赱肅跂緕皷闔鹿粡寂蝟赱齠洲痲筵娼槍簇瘤粲纈肅跂鹿粡寂蝟赱齠洲痲筵娼巣闔肅跂芍蜴鳫苒瘢芍鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺肅鴦纔瘢韭絳繿齡肬肅跂浜竢銓緕蝟昭粡竚癈鷭п粐Ь閹踉祉閼絋苳脂轣艱蜀閼絋苳跛銖痲葹鈔跂磔蒹鹿粡寂蝟赱齠洲痲筵娼齔繝蜀蜈竍黹鱸頸踉祉閼絋苳晒竍薛砠遲蜊瘍纉芍閼絋苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺黼竢鈔逅跂鱚髟纉闥蛹纉蜚肅跂緕皷闔羲蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳皿踉晒竢粤鱚瘤粲繖銖痲齔繝蜀蜈竍黹鱸頸蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳晒竍薛砠遲頏閾鱇蹼竍薤踉晒竢粤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑嚆瘡齒闔胼苳産踉氏蝟昭粡竚癈鷭п粐Ь鱚羹閼熏蜊絎蔗迪a粐葹鈔跂鬆槍簇瘤粲纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黹鱸頸釶辣就黹鱸頸▽苳屍竰蜷粡鱚笏蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑竰蜷纃辣閼鹿粡寂蝟赱齠洲痲筵娼竍薛黹鱸頸蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉笏蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑竰蜷蜩鉤蝟昭粡竚癈鷭п粐Ь蛹痰跂草痺蒹鈔癆纈癇砠癇辣閼黼闔踟鹿粡寂蝟赱齠洲痲筵娼癘瘟赱碎瘤赱鬢踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩蜥繝粐瘤笏蜿遯蓍竏蛹痺鹿粡寂蝟赱齠洲痲筵娼薤苳祉芍竰蜷熙踉晒薤苳緕蛹蜩繿齡繖皷鈑蒹續蓖閹鹿粡寂蝟赱齠洲痲筵娼薤苳詩續蓖筅踉晒薤苳皿蒹踉脂竍薛黹鱸頸孀稔鞜鱚齒竇鹿粡寂蝟赱齠洲痲筵娼癆癈繞竢鈕蜃繖断黹鱸頸皷鈑鹿粡寂蝟赱齠洲痲筵娼竢粤噬鱸頸糟蛛鵙踉晒竢粤竢粤槍簇瘤粲纈閼絋苳皿壽孀瘤篌蝟昭粡竚癈鷭п粐Ь蛹鞜鱚髟纉粹笊辣銓黼銓皷鈑蒹鈔癇断票蝟昭粡竚癈鷭п粐Ь壮庇瀕届鈔壮庇墟僧嗅壮田鉚蜥闔辣銓癇蛛碎纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь鱸闥草痺蒹穐踉脂辣閼瘤鉤矼鈬羲蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳伺都閼絋苳錆踉祉閼絋苳姉腕圖踉晒竢粤竢粤侖圖踉晒竢粤闥鹿粡寂蝟赱齠洲痲筵娼竢粤津姪堙閼絋苳皿閹穐銷鰲蜚鱇鴒續蓖釶辣鹿粡寂蝟赱齠洲痲筵娼轣矼黼筮踉獅羅閼瘢纉鱚癈絖黼銖蜚蝟絋踉晒皃苳錆鐚蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍竰蜷熙瘢雹鈞齔姉孕閼絋苳瘤竢粤噬鱸頸逅試碵雹頤熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼葹銓蜥繻粡聿纈緕繙聽笏鶤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗葹噬鱸頸闕轣鈔繙蜴纉繙癜踉笏蜿銖鉤鹿粡寂蝟赱齠洲痲筵娼膚派竰蜷蜩瘡跂筱齒辣纈纉阨鱆癆鷦蝟昭粡竚癈鷭п粐Ь瘰痰跂葹鈔跚鈑蒹繿齡繖續蓖蜴鴈瘡踟蜚蛹粹鹿粡寂蝟赱齠洲痲筵娼齒糟齒阡癆竰蜷續蓖閹踉祉閼絋苳伺都閼絋苳纂蝟昭粡竚癈鷭п粐Ь蛹闔踟竅跛繖纈癇髟纈癇苺辣銓頏纉緕蝟昭粡竚癈鷭п粐Ь纃絎膊蹙苳錆闖貎蓍纈黼鱚髟纉跛鹿粡寂蝟赱齠洲痲筵娼頏閭繞鈿鴉瘡踟踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮祷瘢韭纉墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼楠逅詞瓶瀕津悧瘢雹苳鮫齡黼癇竏蜴膽蝟昭粡竚癈鷭п粐Ь竰蜷播芍蜴縺鱆莠蝟昭粡竚癈鷭п粐Ь派孕瘤粲纈鹿粡寂蝟赱齠洲痲筵娼噬鱸頸孕閧芍鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焉笏蜿銖谺蔗迪閭鶩轣銛瘡閼閼焉笏蜿銖谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭羝祕汲係害錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖痺闔鶤蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼焉笏蜿銖谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就迴籖痺闔鶤蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖痺闔鶤蔗迪甌裼皴蔗粹笂瘤豁迴箝迴籖痺闔鶤蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握邃遺掩齋禺碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼焉笏蜿銖谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖痺闔鶤蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯欝誓鹿粡寂蝟赱齠洲痲筵娼据迪纈皷闔就窺唖釿閼蜴臀∫齒芦沖褓⊃鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪貂赱鈑就裃赱鈑就裃▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂酪糒跂閼焉笏蜿銖蜚跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察鈑跚鼈纐蜩蜿邵鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■聿聿聿就0旭旭唖蜴觸■旭旭聿⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就f羂旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳詩閼焉笏蜿銖ぢモジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪魯瓮妊▲織ぅ廚筌螢┘好肇瓮愁奪匹鳳犬鹿粡寂蝟赱齠洲痲筵娼断スクリプトを孫圓垢覽’修鯆鷆,靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪s阨鱆繙蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖痺闔鶤礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪m閼繪粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + action_module<br /> + <a href="module-dict.html#Compatibility" + rel="help"><strong>互換性:</strong></a> + Apache 1.1 以降でのみ使用可能。</p> + + <h2>概要</h2> + + <p>このモジュ・踉札襪砲脇鵑弔離妊譽謄屬△蠅泙后巣闔鹿粡寂蝟赱齠洲痲筵娼ディレクティブは特定のタイプのファイルをリクエストされた豺腓鹿粡寂蝟赱齠洲痲筵娼断スクリプトが孫圓気譴襪茲逅擦砲靴泙后噬鱸頸鹿粡寂蝟赱齠洲痲筵娼ディレクティブはリクエストで特定のメソッドが使用されたときに CGI + スクリプトが孫圓気譴襪茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼これはファイルを処理するスクリプトの孫圓鬚困辰抜蔽韻砲靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢ディレクティブ</h2> + + <ul> + <li><a href="#action">Action</a></li> + <li><a href="#script">Script</a></li> + </ul> + <hr /> + + <h2><a id="action" name="action">Action ディレクティブ</a></h2> + + <p><a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> Action <em>action-type + cgi-script</em><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、 ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉笏蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> + Apache 1.1 以降でのみ使用可能。</p> + + <p>このディレクティブは <em>action-type</em> + がリクエストされたときに <em>cgi-script</em> + が孫圓気譴襪箸い逅仔虻遒鯆媛辰靴泙后薤苳祉芍竰蜷熙踉晒薤苳は + <code>ScriptAlias</code> や <code>AddHandler</code> によって + CGI スクリプトに設定されたリソ・踉札垢悗厂癆です。 + <em>Action-type</em> には + <a href="../handler.html">handler</a> か MIME + コンテントタイプを指定できます。リクエストされたドキュメントの URL + とファイルのパスは標準 CGI 環境変数 PATH_INFO と PATH_TRANSLATED + を使って伝えられます。</p> + + <p>例:</p> + <pre> + # Requests for files of a particular type: + Action image/gif /cgi-bin/images.cgi + + # Files of a particular file extension + AddHandler my-file-type .xyz + Action my-file-type /cgi-bin/program.cgi + </pre> + + <p>最初の例では、MIME コンテントタイプが <code>image/gif</code> + のファイルへのリクエストは、そのファイルの代わりに指定されたスクリプト + <code>/cgi-bin/images.cgi</code> が呼ばれます。</p> + + <p>2 番目の例では、拡張子が <code>.xyz</code> のファイルへのリクエストは、 + そのファイルの代わりに指定されたスクリプト + <code>/cgi-bin/program.cgi</code> が呼ばれます。</p> + + <p><a href="mod_mime.html#addhandler">AddHandler</a> + も<strong>参闔胼苳ぢしてください</p> + + <hr /> + + <h2><a id="script" name="script">Script ディレクティブ</a></h2> + + <p><a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> Script <em>method + cgi-script</em><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、 ディレクトリ<br /> + <a href="directive-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉笏蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Script は Apache 1.1 + 以降でのみ使用可能。任意のメソッドの使用は 1.3.10 + 以降でのみ使用可能。</p> + + <p>このディレクティブは <i>method</i> + という瘢雹メソッドを使ってリクエストが行なわれたときに + <i>cgi-script</i> を孫圓垢襪箸い逅仔虻遒鯆媛辰靴泙后鹿粡寂蝟赱齠洲痲筵娼薤苳祉芍竰蜷熙踉晒薤苳は + <code>ScriptAlias</code> や <code>AddHandler</code> によって + CGI スクリプトに設定されたリソ・踉札垢悗厂癆です。 + リクエストされたドキュメントの URL とファイルのパスは標準 CGI + 環境変数 PATH_INFO と PATH_TRANSLATED を使って伝えられます。</p> + + <blockquote> + Apache 1.3.10 より前では、<i>method</i> は <code>GET</code>, + <code>POST</code>, <code>PUT</code>, <code>DELETE</code> + だけが指定可能でした。1.3.10 + では、任意のメソッド巳苳擦鮖藩僂垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼皃苳ぢメソッド巳苳擦和臺源苳皿文字を区別します</b>。ですから、 + <code>Script PUT</code> と <code>Script put</code> + はまったく違った効果になります。 + </blockquote> + + <p>Script コマンドはデフォルトの動作を追加するだけであることに + 注意してください。もし CGI スクリプトが呼ばれたり、リクエストされた + メソッドを内部で扱う瘢雹ことのできる側苳擦離螢宗スがあれば、それが行なわれます。 + <code>GET</code> メソッドの Script は問合せ引数がある豺腓砲里鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳ぢたとえば</em>、foo.html?hi) 呼ばれるという瘢雹ことにも注意してください。 + そう瘢雹でない豺腓蓮▲螢┘好箸歪巳苳誌通り処理されます。</p> + + <p>例:</p> +<pre> + # For <ISINDEX>-style searching + Script GET /cgi-bin/search + # A CGI PUT handler + Script PUT /~bob/put.cgi +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/mod_alias.html.en b/htdocs/manual/mod/mod_alias.html.en new file mode 100644 index 0000000000..f285c69911 --- /dev/null +++ b/htdocs/manual/mod/mod_alias.html.en @@ -0,0 +1,385 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_alias</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_alias</h1> + + <p>This module provides for mapping different parts of the host + filesystem in the document tree, and for URL redirection.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_alias.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + alias_module</p> + + <h2>Summary</h2> + + <p>The directives contained in this module allow for + manipulation and control of URLs as requests arrive at the + server. The <code>Alias</code> and <code>ScriptAlias</code> + directives are used to map between URLs and filesystem paths. + This allows for content which is not directly under the <a + href="core.html#documentroot"><code>DocumentRoot</code></a> to + be served as part of the web document tree. The + <code>ScriptAlias</code> directive has the additional effect of + marking the target directory as containing only CGI + scripts.</p> + + <p>The <code>Redirect</code> directives are used to instruct + clients to make a new request with a different URL. They are + often used when a resource has moved to a new location.</p> + + <p>A more powerful and flexible set of directives for + manipulating URLs is contained in the <a + href="mod_rewrite.html"><code>mod_rewrite</code></a> + module.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#alias">Alias</a></li> + + <li><a href="#aliasmatch">AliasMatch</a></li> + + <li><a href="#redirect">Redirect</a></li> + + <li><a href="#redirectmatch">RedirectMatch</a></li> + + <li><a href="#redirecttemp">RedirectTemp</a></li> + + <li><a href="#redirectperm">RedirectPermanent</a></li> + + <li><a href="#scriptalias">ScriptAlias</a></li> + + <li><a href="#scriptaliasmatch">ScriptAliasMatch</a></li> + </ul> + <hr /> + + <h2><a id="alias" name="alias">Alias directive</a></h2> + + <p> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Alias <em>URL-path + file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_alias</p> + + <p>The Alias directive allows documents to be stored in the + local filesystem other than under the <a + href="core.html#documentroot">DocumentRoot</a>. URLs with a + (%-decoded) path beginning with <em>url-path</em> will be + mapped to local files beginning with + <em>directory-filename</em>.</p> + + <p>Example:</p> + + <blockquote> + <code>Alias /image /ftp/pub/image</code> + </blockquote> + + <p>A request for http://myserver/image/foo.gif would cause the + server to return the file /ftp/pub/image/foo.gif.</p> + + <p>Note that if you include a trailing / on the + <em>url-path</em> then the server will require a trailing / in + order to expand the alias. That is, if you use <code>Alias + /icons/ /usr/local/apache/icons/</code> then the url + <code>/icons</code> will not be aliased.</p> + + <p>Note that you may need to specify additional <a + href="core.html#directory"><code><Directory></code></a> + sections which cover the <em>destination</em> of aliases. + Aliasing occurs before <code><Directory></code> sections + are checked, so only the destination of aliases are affected. + (Note however <a + href="core.html#location"><code><Location></code></a> + sections are run through once before aliases are performed, so + they will apply.)</p> + + <p>See also <a href="#scriptalias">ScriptAlias</a>.</p> + <hr /> + + <h2><a id="aliasmatch" name="aliasmatch">AliasMatch</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AliasMatch <em>regex + file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_alias<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later</p> + + <p>This directive is equivalent to <a href="#alias">Alias</a>, + but makes use of standard regular expressions, instead of + simple prefix matching. The supplied regular expression is + matched against the URL-path, and if it matches, the server + will substitute any parenthesized matches into the given string + and use it as a filename. For example, to activate the + <code>/icons</code> directory, one might use:</p> +<pre> + AliasMatch ^/icons(.*) /usr/local/apache/icons$1 +</pre> + <hr /> + + <h2><a id="redirect" name="redirect">Redirect + directive</a></h2> + + <p> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Redirect + [<em>status</em>] <em>URL-path URL</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_alias<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> The directory + and .htaccess context's are only available in versions 1.1 and + later. The <em>status</em> argument is only available in Apache + 1.2 or later.</p> + + <p>The Redirect directive maps an old URL into a new one. The + new URL is returned to the client which attempts to fetch it + again with the new address. <em>URL-path</em> a (%-decoded) + path; any requests for documents beginning with this path will + be returned a redirect error to a new (%-encoded) URL beginning + with <em>URL</em>.</p> + + <p>Example:</p> + + <blockquote> + <code>Redirect /service http://foo2.bar.com/service</code> + </blockquote> + + <p>If the client requests http://myserver/service/foo.txt, it + will be told to access http://foo2.bar.com/service/foo.txt + instead.</p> + + <p><strong>Note:</strong> Redirect directives take precedence + over Alias and ScriptAlias directives, irrespective of their + ordering in the configuration file. Also, <em>URL-path</em> + must be a fully qualified URL, not a relative path, even when used + with .htaccess files or inside of <Directory> + sections.</p> + + <p>If no <em>status</em> argument is given, the redirect will + be "temporary" (HTTP status 302). This indicates to the client + that the resource has moved temporarily. The <em>status</em> + argument can be used to return other HTTP status codes:</p> + + <dl> + <dt>permanent</dt> + + <dd>Returns a permanent redirect status (301) indicating that + the resource has moved permanently.</dd> + + <dt>temp</dt> + + <dd>Returns a temporary redirect status (302). This is the + default.</dd> + + <dt>seeother</dt> + + <dd>Returns a "See Other" status (303) indicating that the + resource has been replaced.</dd> + + <dt>gone</dt> + + <dd>Returns a "Gone" status (410) indicating that the + resource has been permanently removed. When this status is + used the <em>url</em> argument should be omitted.</dd> + </dl> + + <p>Other status codes can be returned by giving the numeric + status code as the value of <em>status</em>. If the status is + between 300 and 399, the <em>url</em> argument must be present, + otherwise it must be omitted. Note that the status must be + known to the Apache code (see the function + <code>send_error_response</code> in http_protocol.c).</p> + + <p>Example:</p> + + <pre> + Redirect permanent /one http://example.com/two<br /> + Redirect 303 /two http://example.com/other + </pre> + <hr /> + + <h2><a id="redirectmatch" + name="redirectmatch">RedirectMatch</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RedirectMatch + [<em>status</em>] <em>regex URL</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_alias<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later</p> + + <p>This directive is equivalent to <a + href="#redirect">Redirect</a>, but makes use of standard + regular expressions, instead of simple prefix matching. The + supplied regular expression is matched against the URL-path, + and if it matches, the server will substitute any parenthesized + matches into the given string and use it as a filename. For + example, to redirect all GIF files to like-named JPEG files on + another server, one might use:</p> +<pre> + RedirectMatch (.*)\.gif$ http://www.anotherserver.com$1.jpg +</pre> + <hr /> + + <h2><a id="redirecttemp" name="redirecttemp">RedirectTemp + directive</a></h2> + + <p> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RedirectTemp + <em>URL-path URL</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_alias<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> This directive + is only available in Apache 1.2 and later</p> + + <p>This directive makes the client know that the Redirect is + only temporary (status 302). Exactly equivalent to + <code>Redirect temp</code>.</p> + <hr /> + + <h2><a id="redirectperm" name="redirectperm">RedirectPermanent + directive</a></h2> + + <p> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RedirectPermanent + <em>URL-path URL</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_alias<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> This directive + is only available in Apache 1.2 and later</p> + + <p>This directive makes the client know that the Redirect is + permanent (status 301). Exactly equivalent to <code>Redirect + permanent</code>.</p> + <hr /> + + <h2><a id="scriptalias" name="scriptalias">ScriptAlias + directive</a></h2> + + <p> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ScriptAlias + <em>URL-path file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_alias</p> + + <p>The ScriptAlias directive has the same behavior as the <a + href="#alias">Alias</a> directive, except that in addition it + marks the target directory as containing CGI scripts that will be + processed by <a href="mod_cgi.html">mod_cgi</a>'s cgi-script + handler. URLs with a (%-decoded) path beginning with + <em>URL-path</em> will be mapped to scripts beginning with the + second argument which is a full pathname in the local + filesystem.</p> + + <p>Example:</p> + + <blockquote> + <code>ScriptAlias /cgi-bin/ /web/cgi-bin/</code> + </blockquote> + + <p>A request for http://myserver/cgi-bin/foo would cause the + server to run the script /web/cgi-bin/foo.</p> + <hr /> + + <h2><a id="scriptaliasmatch" + name="scriptaliasmatch">ScriptAliasMatch</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ScriptAliasMatch + <em>regex file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_alias<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later</p> + + <p>This directive is equivalent to <a + href="#scriptalias">ScriptAlias</a>, but makes use of standard + regular expressions, instead of simple prefix matching. The + supplied regular expression is matched against the URL-path, + and if it matches, the server will substitute any parenthesized + matches into the given string and use it as a filename. For + example, to activate the standard <code>/cgi-bin</code>, one + might use:</p> +<pre> + ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1 +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_alias.html.html b/htdocs/manual/mod/mod_alias.html.html new file mode 100644 index 0000000000..ce0cc1e675 --- /dev/null +++ b/htdocs/manual/mod/mod_alias.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_alias.html.en" --> + diff --git a/htdocs/manual/mod/mod_alias.html.ja.jis b/htdocs/manual/mod/mod_alias.html.ja.jis new file mode 100644 index 0000000000..1ceac6d44a --- /dev/null +++ b/htdocs/manual/mod/mod_alias.html.ja.jis @@ -0,0 +1,387 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache module mod_alias</title> + + </head> + <!-- English revision: 1.37 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_alias モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪蓮▲曠好肇侫.ぅ襯轡好謄爨苳糸のいろいろな違う瘢雹貊蠅鹿粡寂蝟赱齠洲痲筵娼ドキュメントツリ・踉擦縫泪奪廚垢覽’修函鹿粡寂蝟赱齠洲痲筵娼孀のリダイレクトを行なう瘢雹機能を提供します。</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪S阨鱆綟蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑閼焉跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯酪糒跂符緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札襴踉傘別子:</strong></a> + alias_module</p> + + <h2>概要</h2> + + <p>このモジュ・踉札襪離妊譽謄屬魯機バにリクエストが到着したときに + URL の操作や制御をすることを可能にします。<code>Alias</code> + ディレクティブと <code>ScriptAlias</code> ディレクティブは + URL とファイルシステムのパスをマップするために使用されます。これは + <a href="core.html#documentroot"><code>DocumentRoot</code></a> + の王踉擦砲覆ぅ疋絅瓮鵐箸鬟逅札Д屬離疋絅瓮鵐肇張蝓の一部として + 送られるよう瘢雹にします。<code>ScriptAlias</code> + ディレクティブにはマップ先のディレクトリが CGI + スクリプトのみであることを┐垢箸い逅残媛辰慮未△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳子繖蜥繝熙踉晒竢粤ぢディレクティブはクライアントに違った + URL に新しいリクエストを送るよう瘢雹に指┐靴泙后海譴蓮鹿粡寂蝟赱齠洲痲筵娼リソ・踉札垢靴靴う苳詞所に移動したときによく使用されます。</p> + + <p>URL を操作するためのより強力で柔軟なディレクティブ群は <a + href="mod_rewrite.html"><code>mod_rewrite</code></a> + モジュ・踉札襪砲△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢ディレクティブ</h2> + + <ul> + <li><a href="#alias">Alias</a></li> + + <li><a href="#aliasmatch">AliasMatch</a></li> + + <li><a href="#redirect">Redirect</a></li> + + <li><a href="#redirectmatch">RedirectMatch</a></li> + + <li><a href="#redirecttemp">RedirectTemp</a></li> + + <li><a href="#redirectperm">RedirectPermanent</a></li> + + <li><a href="#scriptalias">ScriptAlias</a></li> + + <li><a href="#scriptaliasmatch">ScriptAliasMatch</a></li> + </ul> + <hr /> + + <h2><a id="alias" name="alias">Alias ディレクティブ</a></h2> + + <p> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> Alias <em>URL-path + file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉跚癈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐跚癈ぢディレクティブはドキュメントをロ・踉札襯侫.ぅ襯轡好謄爐鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯粹笊辣銓鳫阡▽苳残閭緕闖熙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢ以外の貊蠅吠欖匹垢襪海箸魏椎修砲靴泙后纃將讚鞜蹙苳纂蝟昭粡竚癈鷭п粐Ьが復号された) で始まるパスの URL は + <em>directory-filename</em> + で始まるロ・踉札襯侫.ぅ襪縫泪奪廚気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> + + <blockquote> + <code>Alias /image /ftp/pub/image</code> + </blockquote> + + <p>http://myserver/image/foo.gif へのリクエストに対して、サ・踉札个鹿粡寂蝟赱齠洲痲筵娼ファイル /ftp/pub/image/foo.gif を返します。</p> + + <p>もし <em>url-path</em> の最後に / + を書いたなら、サ・踉札个魯┘ぅ螢▲垢鯏験垢襪燭瓩忘埜紊鹿粡寂蝟赱齠洲痲筵娼を要求するという瘢雹ことに注意してください。すなわち、<code>Alias /icons/ + /usr/local/apache/icons/</code> という瘢雹ものを使用していると、 + <code>/icons</code> という瘢雹 url はエイリアスされません。</p> + + <p>エイリアスの<em>行き先</em>を含んでいる <a + href="core.html#directory"><code><Directory></code></a> + セクションを追加する必要があるかもしれないことに注意してください。 + エイリアスの展開は <code><Directory></code> + セクションを調べる前に行なわれますので、 + エイリアスの行き先の <code><Directory></code> セクションのみ + 効果があります。 + (しかし、<a + href="core.html#location"><code><Location></code></a> + セクションはエイリアスが処理される前に孫圓気譴泙垢里如鹿粡寂蝟赱齠洲痲筵娼こちらは適用されます。)</p> + + <p><a href="#scriptalias">ScriptAlias</a> + も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就瘡蛛鼾癆竏釶辣就瘡蛛鼾癆竏▽苳餐跚癈浴荀踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑構文:</strong></a> AliasMatch <em>regex + file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache 1.3 + 以降で使用可能</p> + <p>このディレクティブは <a href="#alias">Alias</a> + とほとんど同じですが、簡単な先頭からのマッチを行なう瘢雹のではなく、 + 標準正規表現を利用します。ここで指定された正規表現と URL-path + が合う瘢雹かどう瘢雹かを調べ、合う瘢雹豺腓漏膰未念呂泙譴織泪奪舛鹿粡寂蝟赱齠洲痲筵娼与えられた文字列で置き換え、それをファイル巳苳擦箸靴道藩僂靴泙后N磴┐弌鹿粡寂蝟赱齠洲痲筵娼竢粤竢銖閼絋苳ディレクトリを使用するよう瘢雹にする + ためには以王踉擦里茲逅擦覆發里藩僂任泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼糟蛛麝癆竏竢銖┏鬲跫竅豁瘰痺蒹竢銖け鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鱚粡鱚笏釶辣就鱚粡鱚笏▽苳子繖蜥繝蝟昭粡竚癈鷭п粐Ьぢディレクティブ</a></h2> + + <p> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> Redirect [<em>status</em>] + <em>URL-path URL</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、 + ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> ディレクトリと + .htaccess のコンテキストは 1.1 以降のみ。<em>Status</em> + 引数は Apache 1.2 以降。</p> + + <p>Redirect ディレクティブは古い URL を新しいものへマップします。 + 新しい URL がクライアントに返されます。そして、 + クライアントは新しいアドレスをもう瘢雹一回萋世靴茲逅擦箸靴泙后鹿粡寂蝟赱齠洲痲筵娼纃孀稔鞜蹙苳┘ぢが復号された) パスで始まるドキュメントへの + すべてのリクエストは <em>URL</em> で始まる新しい + (% が符号化された) URL へのリダイレクトエラ・踉擦屬気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> + + <blockquote> + <code>Redirect /service http://foo2.bar.com/service</code> + </blockquote> + + <p>クライアントは http://myserver/service/foo.txt + へのリクエストを行なう瘢雹と、代わりに http://foo2.bar.com/service/foo.txt + をアクセスするよう瘢雹に告げられます。</p> + + <p><strong>注意:</strong> + 設定ファイル中の順番に関わらず、Redirect ディレクティブは Alias + ディレクティブと ScriptAlias ディレクティブよりも優先されます。 + また、.htaccess ファイルや <Directory> + セクションの中で使われていたとしても、<em>URL-path</em> + は相対パスではなく、完全な URL でなければなりません。</p> + + <p>もし <em>status</em> 引数が与えられていなければ、リダイレクトは + "temporary" (HTTP ステ・踉札織芦になります。これはクライアントに + リソ・踉札垢貉飽榮阿靴燭箸い逅擦海箸鬢踉雑します。<em>Status</em> + 引数は 側苳擦墺のステ・踉札織好魁ドを返すために使用することができます:</p> + + <dl> + <dt>permanent</dt> + + <dd>永久にリダイレクトをするステ・踉札織外羽ぢを返します。 + これはリソ・踉札垢糞廚飽榮阿靴燭箸い逅擦海箸魄嫐靴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳飼纃隍踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐一時的なリダイレクトステ・踉札織外鴬鹿粡寂蝟赱齠洲痲筵娼を返します。これがデフォルトです。</dd> + + <dt>seeother</dt> + + <dd>"See Other" ステ・踉札織外芥ぢを返します。 + これはリソ・踉札垢のもので置き換えられたことを意味します。</dd> + + <dt>gone</dt> + + <dd>"Gone" ステ・踉札織官逢ぢを返します。これはリソ・踉札垢糞廚鹿粡寂蝟赱齠洲痲筵娼削除されたことを意味します。このステ・踉札織垢藩僂気譴職苳詞合、 + <em>url</em> 引数は蔑気譴覆韻譴个覆蠅泙擦鵝筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉糸蹙苳屍鵙踉晒纃ぢの値にステ・踉札織好魁ドを数値で与えることで + 側苳擦離好董タスコ・踉札匹睚屬垢海箸任泙后好董タスが 300 と 399 + の間にある豺隋纃讀踉晒纃ぢ引数は存在していなければいけません。 + その側苳擦陸苳詞合は蔑気譴討い覆韻譴个覆蠅泙擦鵝燭世掘鹿粡寂蝟赱齠洲痲筵娼ステ・踉札織垢鞜竏のコ・踉札匹里辰討い襪發里任△詆廚△蠅泙鹿粡寂蝟赱齠洲痲筵娼鞏頏阡閭闌ぢの関数 <code>send_error_response</code> + を見てください)。</p> + <p>例:</p> + + <pre> + Redirect permanent /one http://example.com/two<br /> + Redirect 303 /two http://example.com/other + </pre> + <hr /> + + <h2><a id="redirectmatch" + name="redirectmatch">RedirectMatch</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> RedirectMatch + [<em>status</em>] <em>regex URL</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache 1.3 + 以降で使用可能。</p> + + <p>このディレクティブは <a href="#redirect">Redirect</a> + とほとんど同じですが、簡単な先頭からのマッチを行なう瘢雹のではなく、 + 標準正規表現を利用します。ここで指定された正規表現と URL-path + が合う瘢雹かどう瘢雹かを調べ、合う瘢雹豺腓漏膰未燃腓蕕譴織泪奪舛鹿粡寂蝟赱齠洲痲筵娼与えられた文字列で置き換え、それをファイル巳苳擦箸靴道藩僂靴泙后鹿粡寂蝟赱齠洲痲筵娼たとえば、すべての GIF ファイルを別サ・踉札个瞭瑛佑別前の JPEG + ファイルにリダイレクトするには、以王踉擦里茲逅擦覆發里鮖箸い泙瑳蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼吶粡鱚笏浴┏椪芍罎雕瘤阡蒹鴦纈鬯竢蹐窺褓膽蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏Å繖蜥繝纃陟瘢綵Å繖蜥繝纃陟吶粡鱚笏壹逅鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</a></h2> + + <p> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> RedirectTemp <em>URL-path + URL</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> + このディレクティブは Apache 1.2 以降でのみ使用可能</p> + + <p>このディレクティブはクライアントに Redirect + が一時的なものである (ステ・踉札織芦ことを知らせます。 + <code>Redirect temp</code> とまったく同じです。</p> + <hr /> + + <h2><a id="redirectperm" name="redirectperm">RedirectPermanent + ディレクティブ</a></h2> + + <p> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> RedirectPermanent + <em>URL-path URL</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> + このディレクティブは Apache 1.2 以降でのみ使用可能。</p> + + <p>このディレクティブはクライアントに Redirect が永久的なもの + (ステ・踉札織葦であることを知らせます。 + <code>Redirect premanent</code> と全く同じです。</p> + <hr /> + + <h2><a id="scriptalias" name="scriptalias">ScriptAlias + ディレクティブ</a></h2> + + <p> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ScriptAlias <em>URL-path + file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉跚癈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍竰蜷跚癈ぢディレクティブは、対櫂妊譽肇蠅鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼焜芍譬迴籖竍薤踉晒瓲苳の cgi-script + ハンドラで処理される CGI + スクリプトがあることを┐弘奮阿鹿粡寂蝟赱齠洲痲筵娼蓿繙就a跚癈▽苳餐跚癈鹿粡寂蝟赱齠洲痲筵娼ディレクティブと同じ振る舞いをします。<em>URL-path</em> + (% が復号された) パスで 始まる URL はロ・踉札襪離侫.ぅ襯轡好謄爐鹿粡寂蝟赱齠洲痲筵娼フルパスである二番目の引数にマップされます。</p> + + <p>例:</p> + + <blockquote> + <code>ScriptAlias /cgi-bin/ /web/cgi-bin/</code> + </blockquote> + + <p>http://myserver/cgi-bin/foo へのリクエストに対してサ・踉札个魯好螢廛鹿粡寂蝟赱齠洲痲筵娼繧芍蜴闖ぢを孫圓靴泙后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黹鱸頸瘡蛛鼾癆竏⊆蝟昭粡竚癈鷭п粐Ь瘢綵‰竰蜷跚癈轣茴噬鱸頸糟蛛麝癆竏王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ構文:</strong></a> ScriptAliasMatch <em>regex + file-path</em>|<em>directory-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache 1.3 + 以降で使用可能</p> + + <p>このディレクティブは <a href="#scriptalias">ScriptAlias</a> + とほとんど同じですが、簡単な先頭からのマッチを行なう瘢雹のではなく、 + 標準正規表現を利用します。ここで指定された正規表現と URL-path + が合う瘢雹かどう瘢雹かを調べ、合う瘢雹豺腓漏膰未念呂泙譴織泪奪舛鹿粡寂蝟赱齠洲痲筵娼与えられた文字列で置き換え、それをファイル巳苳擦箸靴道藩僂靴泙后鹿粡寂蝟赱齠洲痲筵娼例えば、標準の <code>/cgi-bin</code> + を使用するよう瘢雹にするためには、以王踉擦里茲逅擦覆發里鮖箸い泙瑳蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼噬鱸頸糟蛛麝癆竏芍蜴┏鬲跫竅豁瘰痺蒹芍蜴け鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焉皷鶤蔗迪皴蔗粹笂瘤豁迴箝迴籖癈蜩谺緕錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭齋怨齋乙祓錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖癈蜩谺緕粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖癈蜩谺緕鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏迴糒跂閼焉皷鵙踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳四閼迴籖癈蜩右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼頏阮蜆纉闥緕粡鈑蛹纉蓍竏闔蜴蒹蜥鹿粡寂蝟赱齠洲痲筵娼阯挽墅縺粤鴦踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就迴糒跂蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪S阨鱆綟蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囂竇蛹綺闔胼苳殺踉晒瓲苳迴籖癈蜩碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯酪糒跂符緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼符緕肅纈墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼癈蜩熏閼絋踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳屍轣鴒王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼頏阮蜆纉蒹瘤粲纈踉祉閼絋苳雌緕筬癈鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼蜒竅纉鞜竏緕粹笊辣銓蜚蓖粐蜴迴齡羲蝟昭粡竚癈鷭п粐Ь蒹齦瘡墺蒹痲纈鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍竅矼黼緕瘤謇鈔籬鳫黼鴟纈蝟昭粡竚癈鷭п粐Ь釿跿粡鈑繖蜥繝鈔纈鞳竕瘡墺鱚齔闔黼鵺蜚蓖鹿粡寂蝟赱齠洲痲筵娼鱚髟蜥蜴竍薛黹鱸頸瘤韆竰蜷鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥蜩鱸竅鱚癈闔鵺蓍迴糒跂蛹瘡齒鳫竇齠銷鹿粡寂蝟赱齠洲痲筵娼肅跂蜚迚辣竢粤蔗箝黼鈔鶚蜩閼絋苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢堤鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼頏阮蜆纉粡鱚笏蝟纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳師黶艱王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮蒹纈竢鈕蜃癆蜿肅跂癈齒竕癆肅跂蒹鹿粡寂蝟赱齠洲痲筵娼竢粤黼鈔鶚蜩閼絋苳葹鈔跂纃絎膊蹙苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐粐悲鈔跂黼鈔鶚蜩皷鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蒹闔銓閹銷蛹踉祉閼絋苳皿癈蜩閼絋苳纔銖蜿郤蝟昭粡竚癈鷭п粐Ь蛹緕黼銓草痺蒹竚蜈銓蜚瘡迴齡鐚蝟昭粡竚癈鷭п粐Ь葹鈑纉柱蜈銓跛繞挽墅縺粤鴦矼痺蒹筱粹鹿粡寂蝟赱齠洲痲筵娼鈿肬鱧續蒹蹼鷓縺粤蜩踈鱚髟蜥繖籬鹿粡寂蝟赱齠洲痲筵娼鼈阨趙貝粡芍挽墅纉竟銖竢粤肬跛阯繖貅蝟昭粡竚癈鷭п粐Ь纉黶艱鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳使纈紮瘤逅跂肅跂蓖黼闔銓癇黼銓踉糸蹙苳氏鷦蝟昭粡竚癈鷭п粐Ь鵙踉晒纃癈跛蒹跚緕癆蛹葹鷦蝟昭粡竚癈鷭п粐Ь繖蜥繝筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤囈癆外麗纈粡跂癘癆厂碣鹿粡寂蝟赱齠洲痲筵娼閭癆蜿邵雕痰祟竢躁肬鎭矚鬯蔗迪碣鹿粡寂蝟赱齠洲痲筵娼闔銓綺纔蔗迪碣鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼瘢雹踉使塒巳瘢雹苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь逅詞氾祖逅紫碣鹿粡寂蝟赱齠洲痲筵娼瘢雹踉市不姪逅紫戻辣纉б鵙瘢雹踉晒塢毀摘瘢雹苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь逅詞伝彫瘢雹苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь逅詞堆潰逅紫碣鹿粡寂蝟赱齠洲痲筵娼瘢雹踉使右瘢雹苳仔鱚筵纔竇頸蜿釶跛鈔纈胚鞜艱癈阮繖鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼瘢雹踉餐鹿粡寂蝟赱齠洲痲筵娼頒兎就蔗痕矣闕闖癇譬逅紫倣紮鵙瘢雹踉晒薦瘢雹苳纂蝟昭粡竚癈鷭п粐Ь蜚絎碣鹿粡寂蝟赱齠洲痲筵娼瘢雹踉晒髪逅紫碣鹿粡寂蝟赱齠洲痲筵娼瘢雹踉晒堆潰逅紫碣鹿粡寂蝟赱齠洲痲筵娼瘢雹踉晒挽楊逅紫閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳士阡纉黼鴟纈踞癨痲糂癆綺鈔纈鮑縺粤鹿粡寂蝟赱齠洲痲筵娼籬續鈬蒹跚緕纉鼈阨趙阡綣蝟昭粡竚癈鷭п粐Ь釿跿粤蜴蒹蛹絎蒹纈粹纉踉糸蹙苳試阡蹙苳痲畆蝟昭粡竚癈鷭п粐Ь癈酪粡肅繖縺粤鮖頏閧痰踟蓖筮蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖癈蜩谺蔗迪閭鶩轣銛瘡閼閼焉皷鶤蔗迪貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握求甞鯵憾下碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼焉皷鶤蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼焉皷鶤蔗迪貅昭蝟昭粡竚癈鷭ц襷樟卯誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺囈鱸笏杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈蜒糘笄鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊閼焉皷鶤蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖癈蜩谺裃蜩閭鶩轣銛瘡閼閼焉皷鶤蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握霞皸繝盡梗碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼焉皷鶤蔗迪甌裼鷽莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼焉皷鶤蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯慌声蝟昭粡竚癈鷭п粐Ь踉賛鴦蜿扈緕竢粡鈑就蜩鎰屋臆陟職苳纂蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬迪碕瘤臀∬瓣瘤臀∬瓣鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏迴糒跂閼焉皷鵙踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩吶皷闔窺臼苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆迴籖癈蜩ぢモジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪櫓踉捌分用の HTTP + ヘッダがあるファイルを送信する機能を提供します。</p> + + <p><a href="module-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪s阨鱆繙蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑閼焉皷鶤礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪m閼繪粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + asis_module</p> + + <h2>概要</h2> + + <p>このモジュ・踉札襪魯魯鵐疋踉祉閼絋苳雌緕筬癈鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を提供します。このハンドラは通錣墺仄蝟昭粡竚癈鷭п粐Ьぢヘッダをほとんど追加することなくドキュメントを送信します。</p> + + <p>これはサ・踉札个蕕匹鵑弗踉誌類のデ・踉札燭鯀襪箸砲盪藩僂任泙后鹿粡寂蝟赱齠洲痲筵娼仲スクリプトや nph スクリプトが無くてもリダイレクトや側苳擦瞭段未鹿粡寂蝟赱齠洲痲筵娼挽墅ぢ応答を送ることができます。</p> + + <p>歴史的な理由により、このモジュ・踉札襪蜊タイプ + <code>httpd/send-as-is</code> のファイルも処理します。</p> + + <h2>ディレクティブ</h2> + + <p>このモジュ・踉札襪砲魯妊譽謄屬呂△蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢使用法</h2> + + <p>サ・踉札仞瀋螢侫.ぅ襪如▲侫.ぅ襪踉祉閼絋苳雌緕筬癈鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ハンドラを例えば以王踉擦里茲逅擦亡慙佞韻討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤槍簇瘤粲纈緕筬癈皷鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮拡張子が <code>.asis</code> のすべてのファイルの内容は Apache + からクライアントへほとんど変更無く送られます。クライアントには + HTTP ヘッダが必要ですので、ファイルに書くことを忘れないでください。 + Status: ヘッダも必要です。デ・踉札燭ぢ桁の HTTP + 応答コ・踉札匹函△修慮紊縫謄好肇瓮奪察ジが続いたものでなければなりません。 + + これはクライアントにファイルが移動したことを知らせるために + <em>as is</em> (そのまま) で送られるファイルの内容の例です。 + </p> + + <blockquote> + <code>Status: 301 Now where did I leave that URL<br /> + Location: http://xyz.abc.com/foo/bar.html<br /> + Content-type: text/html<br /> + <br /> + <HTML><br /> + <HEAD><br /> + <TITLE>Lame excuses'R'us</TITLE><br /> + </HEAD><br /> + <BODY><br /> + <H1>Fred's exceptionally wonderful page has moved + to<br /> + <A + HREF="http://xyz.abc.com/foo/bar.html">Joe's</A> + site.<br /> + </H1><br /> + </BODY><br /> + </HTML></code> + </blockquote> + + <p>注意: サ・踉札个魯薀ぅ▲鵐箸吠屬気譴襯如タに錣癆綺ぢと Server: + ヘッダを追加しますので、それらがファイルに書かれていてはいけません。 + サ・踉札个癈酪粡肅繖ぢヘッダを追加<em>しません</em>。 + おそらくはそう瘢雹すべきでしょう瘢雹けれど。 + </p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/mod_auth.html.en b/htdocs/manual/mod/mod_auth.html.en new file mode 100644 index 0000000000..0cf1e66ef9 --- /dev/null +++ b/htdocs/manual/mod/mod_auth.html.en @@ -0,0 +1,312 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_auth</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_auth</h1> + + <p>This module provides for user authentication using text + files.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_auth.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + auth_module</p> + + <h2>Summary</h2> + + <p>This module allows the use of HTTP Basic Authentication to + restrict access by looking up users in plain text password and + group files. Similar functionality and greater scalability is + provided by <a href="mod_auth_dbm.html">mod_auth_dbm</a> and <a + href="mod_auth_db.html">mod_auth_db</a>. HTTP Digest + Authentication is provided by <a + href="mod_auth_digest.html">mod_auth_digest</a>.</p> + + <p><b>Note that these credential-based security mechanisms are + only as strong as your Web server's security. As a rule, they + are <i>not</i> as strong as the operating system's own security + system.</b></p> + + <h2>Directives</h2> + + <ul> + <li><a href="#authgroupfile">AuthGroupFile</a></li> + + <li><a href="#authuserfile">AuthUserFile</a></li> + + <li><a href="#authauthoritative">AuthAuthoritative</a></li> + </ul> + + <p>See also: <a href="core.html#require">require</a>, <a + href="core.html#satisfy">satisfy</a>, and <a + href="#require">mod_auth require keywords</a>.</p> + <hr /> + + <h2><a id="require" name="require"><code>mod_auth</code> + Require Keywords</a></h2> + + <p>The <code>mod_auth</code> module supports the following + keywords that can be given to the <a + href="core.html#require">Require</a> directive:</p> + + <dl compact="compact"> + <dt><code>user <i>username</i> [...]</code></dt> + + <dd>The supplied username and password must be in the <a + href="#authuserfile">AuthUserFile</a> database, and the + username must also be one of those listed on the Require + directive.</dd> + + <dt><code>group <i>groupname</i> [...]</code></dt> + + <dd>The supplied username and password must be in the <a + href="#authuserfile">AuthUserFile</a> database, and the + username must also be a member of one of the named groups in + the <a href="#authgroupfile">AuthGroupFile</a> database.</dd> + + <dt><code>valid-user</code></dt> + + <dd>The supplied username and password must be in the <a + href="#authuserfile">AuthUserFile</a> database. Any valid + username from that file will be allowed.</dd> + + <dt><code>file-owner</code></dt> + + <dd>[Available after Apache 1.3.20] The supplied username and + password must be in the <a + href="#authuserfile">AuthUserFile</a> database, and the + username must also match the system's name for the owner of + the file being requested. That is, if the operating system + say the requested file is owned by <code>jones</code>, then + the username used to access it through the Web must be + <code>jones</code> as well.</dd> + + <dt><code>file-group</code></dt> + + <dd>[Available after Apache 1.3.20] The supplied username and + password must be in the <a + href="#authuserfile">AuthUserFile</a> database, the name of + the group that owns the file must be in the <a + href="#authgroupfile">AuthGroupFile</a> database, and the + username must be a member of that group. For example, if the + operating system says the requested file is owned by group + <code>accounts</code>, the group <code>accounts</code> must + be in the AuthGroupFile database and the username used in the + request must be a member of that group.</dd> + </dl> + <hr /> + + <h2><a id="example" name="example">Example of <code>Require + file-owner</code></a></h2> + + <p>Consider a multi-user system running the Apache Web server, + with each user having his or her own files in + <code>~/public_html/private</code>. Assuming that there is a + single AuthUserFile database that lists all of their usernames, + and that their Web usernames match the ones that actually own + the files on the server, then the following stanza would allow + only the user himself access to his own files. User + <code>jones</code> would not be allowed to access files in + <code>/home/smith/public_html/private</code> unless they were + owned by <code>jones</code> instead of <code>smith</code>.</p> +<pre> + <Directory /home/*/public_html/private> + AuthType Basic + AuthName MyPrivateFile + AuthUserFile /usr/local/apache/etc/.htpasswd-allusers + Satisfy All + Require file-owner + </Directory> +</pre> + <hr /> + + <h2><a id="authgroupfile" + name="authgroupfile">AuthGroupFile</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthGroupFile + <em>file-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_auth + + <p>The AuthGroupFile directive sets the name of a textual file + containing the list of user groups for user authentication. + <em>File-path</em> is the path to the group file. If it is not + absolute (<em>i.e.</em>, if it doesn't begin with a slash), it + is treated as relative to the ServerRoot.</p> + + <p>Each line of the group file contains a groupname followed by + a colon, followed by the member usernames separated by spaces. + Example:</p> + + <blockquote> + <code>mygroup: bob joe anne</code> + </blockquote> + Note that searching large text files is <em>very</em> + inefficient; <a + href="mod_auth_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a> + should be used instead. + + <p>Security: make sure that the AuthGroupFile is stored outside + the document tree of the web-server; do <em>not</em> put it in + the directory that it protects. Otherwise, clients will be able + to download the AuthGroupFile.</p> + + <p>See also <a href="core.html#authname">AuthName</a>, <a + href="core.html#authtype">AuthType</a> and <a + href="#authuserfile">AuthUserFile</a>.</p> + <hr /> + + <h2><a id="authuserfile" name="authuserfile">AuthUserFile</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthUserFile + <em>file-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_auth + + <p>The AuthUserFile directive sets the name of a textual file + containing the list of users and passwords for user + authentication. <em>File-path</em> is the path to the user + file. If it is not absolute (<em>i.e.</em>, if it doesn't begin + with a slash), it is treated as relative to the ServerRoot.</p> + + <p>Each line of the user file contains a username followed by a + colon, followed by the <code>crypt()</code> encrypted password. + The behavior of multiple occurrences of the same user is + undefined.</p> + + <p>The utility <a href="../programs/htpasswd.html">htpasswd</a> + which is installed as part of the binary distribution, or which + can be found in <code>src/support</code>, is used to maintain + this password file. See the <code>man</code> page for more + details. In short</p> + + <blockquote> + <code>htpasswd -c Filename username</code><br /> + Create a password file 'Filename' with 'username' as the + initial ID. It will prompt for the password. <code>htpasswd + Filename username2</code><br /> + Adds or modifies in password file 'Filename' the 'username'. + </blockquote> + + <p>Note that searching large text files is <em>very</em> + inefficient; <a + href="mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a> + should be used instead.</p> + + <dl> + <dt><b>Security:</b></dt> + + <dd>Make sure that the AuthUserFile is stored outside the + document tree of the web-server; do <em>not</em> put it in + the directory that it protects. Otherwise, clients may be + able to download the AuthUserFile.</dd> + + <dd>Also be aware that null usernames are permitted, and null + passwords as well (through Apache 1.3.20). If your + AuthUserFile includes a line containing only a colon (':'), a + '<code>Require valid-user</code>' will allow access if both + the username and password in the credentials are + omitted.</dd> + </dl> + See also <a href="core.html#authname">AuthName</a>, <a + href="core.html#authtype">AuthType</a> and <a + href="#authgroupfile">AuthGroupFile</a>. + <hr /> + + <h2><a id="authauthoritative" + name="authauthoritative">AuthAuthoritative</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthAuthoritative + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>AuthAuthoritative on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_auth + + <p>Setting the AuthAuthoritative directive explicitly to + <strong>'off'</strong> allows for both authentication and + authorization to be passed on to lower level modules (as + defined in the <code>Configuration</code> and + <code>modules.c</code> files) if there is <strong>no + userID</strong> or <strong>rule</strong> matching the supplied + userID. If there is a userID and/or rule specified; the usual + password and access checks will be applied and a failure will + give an Authorization Required reply.</p> + + <p>So if a userID appears in the database of more than one + module; or if a valid <code>Require</code> directive applies to + more than one module; then the first module will verify the + credentials; and no access is passed on; regardless of the + AuthAuthoritative setting.</p> + + <p>A common use for this is in conjunction with one of the + database modules; such as <a + href="mod_auth_db.html"><code>mod_auth_db.c</code></a>, <a + href="mod_auth_dbm.html"><code>mod_auth_dbm.c</code></a>, + <code>mod_auth_msql.c</code>, and <a + href="mod_auth_anon.html"><code>mod_auth_anon.c</code></a>. + These modules supply the bulk of the user credential checking; + but a few (administrator) related accesses fall through to a + lower level with a well protected AuthUserFile.</p> + + <p><a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> By default; control is + not passed on; and an unknown userID or rule will result in an + Authorization Required reply. Not setting it thus keeps the + system secure; and forces an NCSA compliant behavior.</p> + + <p>Security: Do consider the implications of allowing a user to + allow fall-through in his .htaccess file; and verify that this + is really what you want; Generally it is easier to just secure + a single .htpasswd file, than it is to secure a database such + as mSQL. Make sure that the AuthUserFile is stored outside the + document tree of the web-server; do <em>not</em> put it in the + directory that it protects. Otherwise, clients will be able to + download the AuthUserFile.</p> + + <p>See also <a href="core.html#authname">AuthName</a>, <a + href="core.html#authtype">AuthType</a> and <a + href="#authgroupfile">AuthGroupFile</a>.</p> + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_auth.html.html b/htdocs/manual/mod/mod_auth.html.html new file mode 100644 index 0000000000..a1bd808ee7 --- /dev/null +++ b/htdocs/manual/mod/mod_auth.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_auth.html.en" --> + diff --git a/htdocs/manual/mod/mod_auth.html.ja.jis b/htdocs/manual/mod/mod_auth.html.ja.jis new file mode 100644 index 0000000000..bb5edf89c2 --- /dev/null +++ b/htdocs/manual/mod/mod_auth.html.ja.jis @@ -0,0 +1,325 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + <title>Apache module mod_auth</title> + </head> + <!-- English revision: 1.29 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#000080" + alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_auth モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鹿粡寂蝟赱齠洲痲筵娼このモジュ・踉札襪魯謄好肇侫.ぅ襪鮖箸辰謄罅ザの認擇鮃圓覆逅撒’修鹿粡寂蝟赱齠洲痲筵娼提供します。</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹閼絖粡笏譯囂竇鍋跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖癜碣鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴糒跂蜒蔗迪M閼緝粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + auth_module</p> + + <h2>概要</h2> + + <p> + このモジュ・踉札襪魯罅ザをプレ・踉札鵐謄好箸離僖好錙ドとグル・踉札鹿粡寂蝟赱齠洲痲筵娼ファイルで調べることにより、HTTP + 基本認擇妊▲札垢鮴造垢襪海箸鹿粡寂蝟赱齠洲痲筵娼可能にします。同様の機能でスケ・踉札薀咼螢謄里△襪發里踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖癜焙硴譬迴籖癜焙硴ぢと <a + href="mod_auth_db.html">mod_auth_db</a> により提供されます。 + HTTP ダイジェスト認擇踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖癜焙蜃纉蔗迪▽苳詩閼焉萬粡艱齡鹿粡寂蝟赱齠洲痲筵娼により提供されています。</p> + + <p> + <b>これらの認擇亡陲鼎い織札絅螢謄竜々修呂擦いいウ瘢雹ェブサ・踉札个鹿粡寂蝟赱齠洲痲筵娼セキュリティと同程度の強度であることに注意してください。 + 一般に、オペレ・踉札謄鵐哀轡好謄爐離札絅螢謄轡好謄爐曚匹鹿粡寂蝟赱齠洲痲筵娼強く<i>ありません</i>。</b></p> + + <h2>ディレクティブ</h2> + + <ul> + <li><a href="#authgroupfile">AuthGroupFile</a></li> + + <li><a href="#authuserfile">AuthUserFile</a></li> + + <li><a href="#authauthoritative">AuthAuthoritative</a></li> + </ul> + + <p>参蓿繙就竢鱚譯鱚髟蜥紜鱚髟蜥絋踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯黶黽黶黽踉晒瓲苳錆踉氏鱚羹■鱚髟蜥紜迴籖癜鹿粡寂蝟赱齠洲痲筵娼鱚髟蜥キ・踉札錙ド</a>。</p> + <hr /> + + <h2><a id="require" name="require"><code>mod_auth</code> Require + キ・踉札錙ド</a></h2> + + <p><code>mod_auth</code> モジュ・踉札襪踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯鱚髟蜥紜吶髟蜥絋踉晒瓲苳ディレクティブに対する + 以王踉擦離ワ・踉札匹鬟汽檗トします:</p> + + <dl compact="compact"> + <dt><code>user <i>username</i> [...]</code></dt> + + <dd>与えられたユ・踉札玉とパスワ・踉札匹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a蔘黼鱠蛹紜装專纈鍋跂鹿粡寂蝟赱齠洲痲筵娼デ・踉札織戞スに存在する 必要があり、さらにユ・踉札玉が + Require ディレクティブにリスト + されている必要があります。</dd> + + <dt><code>group <i>groupname</i> [...]</code></dt> + + <dd>与えられたユ・踉札玉とパスワ・踉札匹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a蔘黼鱠蛹紜装專纈鍋跂鹿粡寂蝟赱齠洲痲筵娼デ・踉札織戞スに存在する 必要があり、さらにユ・踉札玉が + <a href="#authgroupfile">AuthGroupFile</a> + デ・踉札織戞スにある + 指定されたグル・踉札廚離瓮鵐个任△詆廚△蠅泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳事瘡蜆黼鬢踉晒竢粤熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢ与えられたユ・踉札玉とパスワ・踉札匹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a蔘黼鱠蛹紜装專纈鍋跂鹿粡寂蝟赱齠洲痲筵娼デ・踉札織戞スに存在する + 必要があります。そのファイルにある有効なユ・踉札玉はアクセスが許可 + されます。</dd> + + <dt><code>file-owner</code></dt> + + <dd>[Apache 1.3.20 から] + 与えられたユ・踉札玉とパスワ・踉札匹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a蔘黼鱠蛹紜装專纈鍋跂鹿粡寂蝟赱齠洲痲筵娼デ・踉札織戞スに存在する + 必要があり、さらにユ・踉札玉がリクエストされたファイルの + システムの所有圓量前と一致する必要があります。つまり、 + オペレ・踉札謄鵐哀轡好謄爐螢┘好箸気譴織侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼竢粤褊鈬鵙踉晒竢粤ぢである、と言った豺腓蓮怛蘯蝟昭粡竚癈鷭п粐Ьぢを通して アクセスするユ・踉札玉も <code>jones</code> + である必要である、 という瘢雹ことです。</dd> + + <dt><code>file-group</code></dt> + + <dd>[Apache 1.3.20 から] + 与えられたユ・踉札玉とパスワ・踉札匹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a蔘黼鱠蛹紜装專纈鍋跂鹿粡寂蝟赱齠洲痲筵娼デ・踉札織戞スに存在する + 必要があり、ファイルを所有するグル・踉札很が <a + href="#authgroupfile">AuthGroupFile</a> デ・踉札織戞スに + ある必要があり、ユ・踉札玉がそのグル・踉札廚離瓮鵐个任△詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼例えば、オペレ・踉札謄鵐哀轡好謄爐螢┘好箸気譴織侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼グル・踉札踉祉閼絋苳氏窿阨銓鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼により所有されていると言った 豺隋▲哀襦プ + <code>accounts</code> が AuthGroupFile デ・踉札織戞スに + 属している必要があり、リクエストに使用されたユ・踉札玉も + そのグル・踉札廚離瓮鵐个任△詆廚△蠅泙后筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就癜苒阨鞴蛹紜瘢綵≡蒟鳫肅跂▽苳餐菁鳫鍋跂鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AuthGroupFile + <em>filename</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼焉鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐菁鳫鍋跂ぢディレクティブはユ・踉札暁Е苳孜のための + ユ・踉札競哀襦プのリストが書かれたテキストファイルの巳苳餐阿鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃鍋跂釶辣蹙苳纂蝟昭粡竚癈鷭п粐Ьぢはグル・踉札廛侫.ぅ襪離僖垢任后簑丱僖垢任覆い箸鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳ぢすなわち</em>、スラッシュで始まらないときは)、ServerRoot + からの相対パスとして扱われます。</p> + + <p> + グル・踉札廛侫.ぅ襪里修譴れの行は、グル・踉札很、コロン、空白で + 区切られたグル・踉札廚紡阿垢襯罅ザ巳苳察△蕕覆蠅泙后N墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳詩鳫硼褊瘤鈬閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳纂蝟昭粡竚癈鷭п粐Ьぢ大きなテキストファイルを探すのは<em>非蹙苳ぢに効率が悪いという瘢雹ことに + 注意してください。そのよう瘢雹な豺腓蓮紊錣蠅踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖癜焙硴譯癜籵辯鳫肅跂▽苳餐萃騨白阨霪蛹絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢを 使ってください。</p> + + <p>セキュリティ: AuthGroupFile + は必ずウ瘢雹ェブサ・踉札个離疋絅瓮鵐肇張蝓の外に + 保管してください。それが保護しているディレクトリには置か<em>ない</em>で + ください。そう瘢雹でないと、クライアントが AuthGroupFile + をダウ瘢雹ンロ・踉札ぢできてしまいます。</p> + + <p><a href="core.html#authname">AuthName</a>, <a + href="core.html#authtype">AuthType</a>, <a + href="#authuserfile">AuthUserFile</a> + も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就癜纈肅跂釶辣就癜纈肅跂▽苳餐萼黼鯑蛹絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブ</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AuthUserFile + <em>file-path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼焉荀踉獅苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐萼黼鯑蛹綣蝟昭粡竚癈鷭п粐Ьぢディレクティブはユ・踉札暁Е苳孜のためのユ・踉札兇肇僖好錙ドの + リストが書かれたテキストファイルを巳苳餐阿鮴瀋蠅靴泙后纃鍋跂癆荀踉晒纃鹿粡寂蝟赱齠洲痲筵娼は ユ・踉札競侫.ぅ襪悗離僖垢任后簑丱僖垢任覆い箸鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳ぢすなわち</em>、 + スラッシュで始まらないときは)、ServerRoot + からの相対パスとして扱われます。</p> + + <p> + ユ・踉札競侫.ぅ襪里修譴れの行は、ユ・踉札玉、コロン、<code>crypt()</code> + により暗号化された + パスワ・踉札鼻△蕕覆蠅泙后F韻献罅ザが複数回現れたときの動作は + 不定です。</p> + + <p> + バイナリ配布の一部としてインスト・踉札襪気譴討い襪竢粤齟祚齦韶闥熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼にある <a href="../programs/htpasswd.html">htpasswd</a> + ユ・踉札謄螢謄蓮鹿粡寂蝟赱齠洲痲筵娼このパスワ・踉札疋侫.ぅ襪魄飮垢襪燭瓩忙藩僂気譴泙后苳施細は + <code>man</code> + ペ・踉札犬鮖王苳使してください。蠱擦棒睫世垢襪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤蔗鞜齠鍋跂釶辣黼鴈瘢絋踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼ぢは 'username' を初期 ID としてパスワ・踉札疋侫.ぅ鹿粡寂蝟赱齠洲痲筵娼蛹緕瘢紮ぢを + 作成します。これはパスワ・踉札匹瞭呂鯊イ靴泙后踉祉閼絋苳肢癈齬篌蝟昭粡竚癈鷭п粐Ь蛹緕瘢纈釶辣王踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼はパスワ・踉札疋侫.ぅ鍋跂釶辣に 'username' を + 追加するか、既にある 'username' を修正します。 + </blockquote> + + <p> + 大きなテキストファイルを探すのは<em>非蹙苳ぢに効率が悪いという瘢雹ことに + 注意してください。そのよう瘢雹な豺腓蓮紊錣蠅踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖癜焙硴譯癜籵逡黼鱠蛹紜装賃葉黼鯑蛹絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢを 使ってください。</p> + + <p>セキュリティ: AuthUserFile + は必ずウ瘢雹ェブサ・踉札个離疋絅瓮鵐肇張蝓の外に + 保管してください。それが保護している + ディレクトリには置かないでください。 + そう瘢雹でないと、クライアントが AuthUserFile + をダウ瘢雹ンロ・踉札匹任討靴泙い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹≪闥絎蔗迪a蓆瘢紜装令辣畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪a蔗紜装奘鞳畆蝟昭粡竚癈鷭п粐Ь鱚羹■癜苒阨鞴蛹紜装白阨霪蛹絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢも参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就癜癜闥蜚癆蝟紜鹿粡寂蝟赱齠洲痲筵娼釶辣就癜癜闥蜚癆蝟紜装装闥蜚癆蝟絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブ</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AuthAuthoritative + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> + <code>AuthAuthoritative on</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼焉鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐菫蓖鱸ぢディレクティブを明鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑э聿Е踉晒齡鳫鈑ぢに 設定すると、userID + に合う瘢雹 <strong>userID が無い</strong> ときと、 + それに合う瘢雹<strong>ル・踉札闔胼苳ぢが無いときに、認擇噺造良嬪燭領方を + (<code>設定</code> や <code>modules.c</code> + で定義されている 方法で) + 王踉三未離皀献紂ルに渡すことを可能にします。 userID + かル・踉札襪慊蠅気譴討い襪箸砲蓮巳苳誌と同じパスワ・踉札匹鹿粡寂蝟赱齠洲痲筵娼アクセスのチェックが行なわれ、成功しなかった豺腓鹿粡寂蝟赱齠洲痲筵娼装闥蝴癆蜿吶髟蜥繖ぢ応答が返されます。</p> + + <p>ですから、userID + が複数のモジュ・踉札襪離如タベ・踉札垢妨修譴燭蝓ぢ正しい + <code>Require</code> + ディレクティブが複数のモジュ・踉札襪謀僂気譴燭鹿粡寂蝟赱齠洲痲筵娼するときは、最初のモジュ・踉札襪餝覆鯆敢困靴泙后装装闥蜚癆蝟綣蝟昭粡竚癈鷭п粐Ьぢの + 設定に関わらず、アクセスの調査は別のモジュ・踉札襪砲賄呂気譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのディレクティブの普通の利用方法は、<a + href="mod_auth_db.html"><code>mod_auth_db.c</code></a>, <a + href="mod_auth_dbm.html"><code>mod_auth_dbm.c</code></a>, + <code>mod_auth_msql.c</code>, <a + href="mod_auth_anon.html"><code>mod_auth_anon.c</code></a> + のよう瘢雹なデ・踉札織戞スモジュ・踉札襪醗貊錣忙箸逅擦發里任后鹿粡寂蝟赱齠洲痲筵娼これらのモジュ・踉札襪和臧離罅ザの資格調査を行なう瘢雹機能を提供します。 + しかし、瑤管理坿慙△アクセスは良く保護されている AuthUserFile + に渡されます。</p> + + <p><a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> + デフォルトでは制御は渡されません。 知らない userID + やル・踉札襪侶覯未蓖鱸闔繿鱚ぢ応答になります。 + ですから、このディレクティブを設定しないとシステムを安全に保つことができ、 + NCSA と同じ動作をするよう瘢雹にできます。</p> + + <dl> + <dt><b>セキュリティ:</b></dt> + + <dd>AuthUserFile + は必ずウ瘢雹ェブサ・踉札个離疋絅瓮鵐肇張蝓の外に保管してください。 + それが保護している + ディレクトリには置か<em>ない</em>でください。 + そう瘢雹でないと、クライアントが AuthUserFile + をダウ瘢雹ンロ・踉札匹任討靴泙い泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳纂蝟昭粡竚癈鷭п粐Ьぢまた、空のユ・踉札玉や、空のパスワ・踉札匹弔気譴襪海箸肪躇佞靴討世気鹿粡寂蝟赱齠洲痲筵娼鞜竏窺凱屋ぢから)。 AuthUserFile にコロン + (':') のみの行があれば、 + 認攣縫罅ザ巳苳擦肇僖好錙ドが陸苳司逅殺苳司略されたときに + '<code>Require valid-user</code>' + はアクセスを許可します。</dd> + </dl> + + <p><a href="core.html#authname">AuthName</a>, <a + href="core.html#authtype">AuthType</a>, <a + href="#authgroupfile">AuthGroupFile</a> + も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焉萬瘤闔皴蔗粹笂瘤豁迴箝迴籖癜焉鈿隨蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭亀甓斡痰外錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖癜焉鈿隨蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖癜焉鈿隨蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐原声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖癜焉鈿隨礒踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳四閼迴籖癜焉鈿遉踉晒莟鹿粡寂蝟赱齠洲痲筵娼壽蜩閼瘡跫瘤闔阨鵞黼痺竇齠癜緕竅篌蝟昭粡竚癈鷭п粐Ь鱚癈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷銖蜿遉踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪S阨鱆綟蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囂竇蛹綺闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь閼焉萬瘤闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯酪糒跂符緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼符緕肅纈墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼瘤闔焉萬迴糒跂碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳走瘟赱碎蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹鈔癆纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳屍轣鴒王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼粹纉窿纉竢銓鳫蜴瘤鈬皷迚赱鹿粡寂蝟赱齠洲痲筵娼瘤闔阨鶚胄皷鷸踉糸蹙苳脂踉晒纃癘ы瘍蜒纈篌蝟昭粡竚癈鷭п粐Ь瘤闔阨鵲鈔蒹轣蛹粐鱚齠鞜齠鰾壽纉纃瘟貅蝟昭粡竚癈鷭п粐Ь粐鱚齠纉瘤跫艸繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮衷轤蜴繖蜚阡蒹癆痰癈紿窿纉竢銓鳫辣閼鵺蓍鷦蝟昭粡竚癈鷭п粐Ь跛阯肬繙聽笏蝟纈鱇站蜴瘤笊齡闕蝴癆蜿痺竢鰾蜴膽蝟昭粡竚癈鷭п粐Ь纈鳫肅跂蓍跂跛繞韈鈑蒹蜚關緕闥鹿粡寂蝟赱齠洲痲筵娼銜繚蜩鱚筵黼鴦痲銓瘍閹皷鈑茘矚黼纈鹿粡寂蝟赱齠洲痲筵娼痺謇鈑癆跚諷瘍蜒闖謇纉鈔銷厂鹿粡寂蝟赱齠洲痲筵娼頏絲竟齡肅鵺蜩闕韭續繻碣阯黼蜴粤鞳鈔緕瘤蜚鹿粡寂蝟赱齠洲痲筵娼瘡跫黼鴦鼈癇孀約踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏蜥繝鵞瘢綵蜥繝鵞堤鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■瘤闔阨鵞綜闔阨鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就A蓖鱸▽苳餐鈿銷迴濮蓖鱸薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■弥臈轣蛹▽苳餐鈿銷迴潴閾桃瘟讀踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就M蝟綸轣蛹▽苳餐鈿銷迴瀝蝟綸轣蛹薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■麗專纈苗▽苳餐鈿銷迴瀘鑼黼鯢彫踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就V纈蜀轣蛹▽苳餐鈿銷迴炒纈蜀轣蛹薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就祷瘢韭紜瘢綵逅跂▽苳仕逅跂王苳纂蝟昭粡竚癈鷭п粐Ь蒹逅跂繻阯緕闕砠鈬蒹粡鱚笏蝟纉畆蝟昭粡竚癈鷭п粐Ь癈齬筬肅跂癈繖闥塚輦冖踉糸蹙苳糸踉晒纃矚黼窿纉鷦蝟昭粡竚癈鷭п粐Ь闔闌瘡跫黼鴦癈苺纉蒹闌跫鈑鹿粡寂蝟赱齠洲痲筵娼頏關纈纉鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚部銖蜩葹纈銓纈纈符蝟昭粡竚癈鷭п粐Ь竢粤綜闔阨黯麗專纈符閼絋苳皐薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳刺蜴皷齡癆蒹黼緕鴦癈齬闥筮鹿粡寂蝟赱齠洲痲筵娼└踉祉閼絋苳餐鈿銷迴瀝蝟綸轣蛹閼絋苳皐薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳市蒹癈齬闥緕鱚逡齡跚纃瘟痲糅纉鵺絎鹿粡寂蝟赱齠洲痲筵娼竢銓瘟癆縺齡鈬是鈔蝟昭粡竚癈鷭п粐Ь竢粤綜闔阨黯帙鱸胱桃瘟讀踉晒竢粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽纈苗矼鈬竢粤瘤闔阨苺纉齡鹿粡寂蝟赱齠洲痲筵娼趁闕絋踉晒竢粤鈔闕鞜鱸齒蜩踉雌闔胼苳試阡闔胼苳竅黼鹿粡寂蝟赱齠洲痲筵娼黼銖蜚蝟絎薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳餐鈔蒹轣蛹粐鱚齠纉銓纈繖鞜齠蜈趙鱚鹿粡寂蝟赱齠洲痲筵娼跫艸繖纈鳫跫肅跂鹿粡寂蝟赱齠洲痲筵娼└踉祉閼絋苳餐鈿銷迴潴閾桃瘟讀踉晒竢粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮祷竇鴃閹鞣闔羣鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鈿銷迴瀘鑼黼鯢聿鹿粡寂蝟赱齠洲痲筵娼綜闔阨黯藍齡秤桃瘟闔鹿粡寂蝟赱齠洲痲筵娼綜闔阨黯帙鱸胱桃瘟郤蝟昭粡竚癈鷭п粐Ь鈿銷迴潴閾桃瘟郤蝟昭粡竚癈鷭п粐Ь鈿銷迴瘤闔阨苺纉齡繻竢辣鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼装令辣黼瘤闔阨鵲瘢雹瘢雹轣蛹粐鱚齠闥齡銓鴒⊆蝟昭粡竚癈鷭п粐Ь萪癈蜒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼綜萼黼鯑蛹絲装賃專纈鍋跂萃騨專纈鍋跂鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟逡齡齔繝蜀蜈筱綣蝟昭粡竚癈鷭п粐Ь鈿銷迴濮蓖鱸闥跚痺竇齠蝟昭粡竚癈鷭п粐Ь窿纉肬頤碎蜒蜥繝鴒痲篋鹿粡寂蝟赱齠洲痲筵娼逅詞鍋跂瘢雹苳纂蝟昭粡竚癈鷭п粐Ь鰾纈緕糟跫蝟昭粡竚癈鷭п粐Ь跛阯鳫瘡蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь繿鱚瘡蜆黼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒鍋跂鵙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就瘤闔阨鵞瘢綵≡鈿銷迴▽苳餐鈿銷迴鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳綜闔阨纃纈蹙苳纂蝟昭粡竚癈鷭п粐Ь纃纈蹙苳旨碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑闔絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳装衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉萬瘤闔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚齡闔闥闥ы瘍蜒纈苗蜒癇瘡跫篌蝟昭粡竚癈鷭п粐Ь窿纉阨鞜齠鰾纈蜀蜒癆蜿隨蒹黼鯢提鱚鞜竇鹿粡寂蝟赱齠洲痲筵娼黼鞜鱇筮蜩闢皷碎黼蒹鈔跛阯鹿粡寂蝟赱齠洲痲筵娼齔痺蜴黼鯢癈繻癈蒹黹瘰竏癇痺鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳姉跂癈鈿葹竢逅癇蜩闔鷦蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳祉癈絖瀕緕皷闔胼苳皿碣鹿粡寂蝟赱齠洲痲筵娼闔芟齦艸纉癆蒹瘍蜒黼鴈瘢綣蝟昭粡竚癈鷭п粐Ь竢粤瘤闔阨鵙踉晒竢粤蜩踞癨闔閹蒹跛阯繖鹿粡寂蝟赱齠洲痲筵娼纈苗鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕逅跂墾踉獅苳纂蝟昭粡竚癈鷭п粐Ь竢粤綜闔阨瘤闔阨⇔阡繚蜩鱚笄粹釟鹿粡寂蝟赱齠洲痲筵娼謗阯Е踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍瘡跫纈緕阨鞜齠鰾鹿粡寂蝟赱齠洲痲筵娼鱸肅竅闔蜴纈符瘤闔阨鵲蝟昭粡竚癈鷭п粐Ь綜闔阨鵲麗吶芍齡纈繖瘤闔鈿踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏∩蓖鱸⊆蝟昭粡竚癈鷭п粐Ь瘢綵∩蓖鱸▽苳餐鈿銷迴濮蓖鱸蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑鈿銷迴濮蓖鱸鹿粡寂蝟赱齠洲痲筵娼闔聿碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼竢粤綜闔阨黯装闥蜚癆蝟閹网踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷銖蜿遉踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焉鈿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蒹黼э逾纈蜩聲跛蓿阨艾阡蒹鮗蝟昭粡竚癈鷭п粐Ь蓖鱸闔續蓖糂囂纈苗閻鈿轣跿纉鹿粡寂蝟赱齠洲痲筵娼齔繝蜀蜈蜴蒹踉祉閼絋苳餐鈿銷迴閼絋苳粡鱚笏蝟絳窿纉蜩鹿粡寂蝟赱齠洲痲筵娼粤鉗繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮代謗阯葹癇粹蜴緕阨繝蜆鹿粡寂蝟赱齠洲痲筵娼齬蜚竏闔綜鱚辣轤纈葹蜚跚鉉蜴闥粤閹蒹鹿粡寂蝟赱齠洲痲筵娼迴糒跂衷鈕蜃癆蜿浴諷蛹紿蓍竏續瘟踈蒹鹿粡寂蝟赱齠洲痲筵娼闥粤蜴蓍竏蒹蓖鱸闔閼纉鱚鱸繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏¬閾桃瘟譬瘢綵¬閾桃瘟譬綜闔阨黯弥臈轣蛹鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳綜闔阨黯弥臈轣蛹鹿粡寂蝟赱齠洲痲筵娼闔聿碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼竢粤綜闔阨黯弥臈轣蛹遉踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷銖蜿遉踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焉鈿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蒹黼э逾粤聲蒹鞜齠鰾緕鱚蓍竏鹿粡寂蝟赱齠洲痲筵娼蓖鞳胚跛竢銓瘟銖緕皷碎纃瘟痲糅纉鶇跫艸繖綣蝟昭粡竚癈鷭п粐Ь鴪闥閾壽辣齠瘍蜩閾艱癆纐繻竢粤蜴肬閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼瘤齒阨葹踉氏鱚羹≪闥絎蔗迪l閾跂譬弥臾纐繻續鹿粡寂蝟赱齠洲痲筵娼跂癈竢粤蜴肬閼絋苳蜴鰾纈黼蜩纉黶艱踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮弥緕蜈跛闖跚諷蒹闌跫鈑逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼枡鱸頏唄佐杭軌旭課蜴肬档跚緕厩荻蔚軒窺碓弓鈿銷迴倚齠踉歯黼鮴纔瘢韭絎竢蹙苳巣竇頸繖鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就藍齡秤桃瘟譬鹿粡寂蝟赱齠洲痲筵娼釶辣就藍齡秤桃瘟譬綜闔阨黯藍齡秤桃瘟粡鱚笏蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳綜闔阨黯藍齡秤桃瘟貅蝟昭粡竚癈鷭п粐Ь鋺閹网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐鈿銷迴瀝蝟綸轣蛹遉踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷銖蜿遉踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焉鈿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍鞳竕肅纉蒹纈蒹黼逡齡鞳竕胱纃瘟痲糅纉癈鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾壽蜩鳫蓍砠赱鉉癈齬闥糂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏⇔鑼黼鯢帳瘢綵⇔鑼黼鯢帳綜闔阨黯麗專纈苗鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳綜闔阨黯麗專纈苗鹿粡寂蝟赱齠洲痲筵娼闔聿碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼竢粤綜闔阨黯麗專纈苗聿閼絋苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳装衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉萬瘤闔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦緕續闔К黼鴦瘤縺蒹黼鯢鈔纈葹頌蒹鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾蜈趙纃頸蓍竅矼纈竢鉚緕蜈銓闥鹿粡寂蝟赱齠洲痲筵娼羊跫鱚纈竅褫齡蜚續闥跚站蜥繝闔鹿粡寂蝟赱齠洲痲筵娼亘郢蓍竏繞逑癆瘡縺笏蜿隨鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就帙鱸胱桃瘟譬鹿粡寂蝟赱齠洲痲筵娼釶辣就帙鱸胱桃瘟譬綜闔阨黯帙鱸胱桃瘟粡鱚笏蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳綜闔阨黯帙鱸胱桃瘟貅蝟昭粡竚癈鷭п粐Ь鋺閹网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐鈿銷迴炒纈蜀轣蛹聿閼絋苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳装衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉萬瘤闔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦緕續闔ю癈齬闥筵銓纈繖竏繝諷肬癆縺齡鹿粡寂蝟赱齠洲痲筵娼闔Ю瘤М釿阨鱇艱黼鴦緕跚纃瘟貅蝟昭粡竚癈鷭п粐Ь粐鱚齠纉黼痰阮竢粤装潴閾桃瘟讀踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖癜焙皰蔗迪閭鶩轣銛瘡閼閼焉萬籵貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握汲痺娯禪羲碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼焉萬籵貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼焉萬籵貅昭蝟昭粡竚癈鷭ц襷樟卯桶誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏迴糒跂閼焉萬籵蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬酪糒跂閼焉萬籵右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼頏阮蜆纉闥黼癜緕竅闔皷鈑纈諷跂蝟昭粡竚癈鷭п粐Ь肅跂鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷銖蜿遉踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪S阨鱆綟蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囂竇蛹綺闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь閼焉萬籵碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯酪糒跂符緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼符緕肅纈墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼籵焉萬迴糒跂碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳走瘟赱碎蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹鈔癆纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳屍轣鴒王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼頏阮蜆纉瘡鴈癆蝟踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖癜焙硴譬賃勇踉晒瓲苳肅跂肬闢齷齡纃蜒莠蝟昭粡竚癈鷭п粐Ь竟鶯瘤鈿賃柚蜩鉤癘瘟赱碎蜴鞜竏窺瘤篌蝟昭粡竚癈鷭п粐Ь癆纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮闕帯齷齡纃└踉糸蹙苳糸踉晒纃汝繞帯瘤励喞籵躰蝟昭粡竚癈鷭п粐Ь癜轣竅跛轣韶繖代鳬繻纖速阨瘤黼蜚蒹畆蝟昭粡竚癈鷭п粐Ь鱚羹閼焉萬籵蹼蔗迪▽苳詩閼焉萬籵蹙踉晒瓲苳闥閼焉萬籵壽綣蝟昭粡竚癈鷭п粐Ь癆轣諷蜚闥閧阨癆代鳬繻纖速阡蒹鮗蝟昭粡竚癈鷭п粐Ь赱闥逑蒹鱚阨瘤黼蒹跚碣癇跛葹鹿粡寂蝟赱齠洲痲筵娼銖跛肅鴦繞踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕跂辮癆闕蔗痕跂辮癆闕踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь闥蒹蜩蛯蜿隨蒹銓纈聲竇蓍迴糒跂黼蜩蒹鈬鹿粡寂蝟赱齠洲痲筵娼胙闕鴦蜿窺元鈔喬鴦蜿荻竅瘡齒綣蝟昭粡竚癈鷭п粐Ь黼緕闕鞜砠跚閼蜩釶碎繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳残蜥繝鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就a葢砒鳫肅跂▽苳餐萃打鳫鍋跂薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■癜籵纈肅跂▽苳餐萃怠黼鯑蛹絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚畆蝟昭粡竚癈鷭п粐Ь鱚羹■癜籵癜闥蜚癆蝟紜装賃装闥蜚癆蝟絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆瘡齒蓿繙就竢鱚譯黶黽黶黽踉晒瓲苳瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪r繿鱚▽苳賜繿鱚踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡葢砒鳫肅跂⊆蝟昭粡竚癈鷭п粐Ь瘢綵≡葢砒鳫肅跂▽苳餐萃打鳫鍋跂蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑萃打鳫鍋跂鹿粡寂蝟赱齠洲痲筵娼纃肅跂癆荀踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷銖蜿遉踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焙鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹萃打鳫鍋跂蜥繝續釶辣賃蛹綣蝟昭粡竚癈鷭п粐Ь闔蜴蜴跚齡纈鳫肬纈蒹銓蜒癆蜿隨鹿粡寂蝟赱齠洲痲筵娼纃鍋跂癆荀踉晒纃痰齒跿癆蒹鳫蛹絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鳫蛹蜩纖繖纈釶辣壽跿肬畆蝟昭粡竚癈鷭п粐Ь黼蜩闕轣辮癇癆繖蜩閹蒹鳫蓍竏蒹黼鴦鹿粡寂蝟赱齠洲痲筵娼矼跫鈑鶤蒹鱚矼蜚纉鞜竇蜚蓍跿絳鈔蝟昭粡竚癈鷭п粐Ь鈬竢銓瘟瘤竢跫銖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆笊鱸轣諷癆蒹萃打鳫鍋跂齡闥繖鹿粡寂蝟赱齠洲痲筵娼阨蜆粹笊辣銓鱚閹蒹繧纈鮖纃鈿熙踉晒纃鹿粡寂蝟赱齠洲痲筵娼頤蜚粡鱚笏闥癆頏阡繝蒹鵄蜩絳跚緕鹿粡寂蝟赱齠洲痲筵娼跛痰跂粹跫痲蒹萃打鳫鍋跂鉤纉阡蒹鵄蜩綣蝟昭粡竚癈鷭п粐Ь鳫笏繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮衷轤蜴蜴白阨瘤倚齠鰾肅跂鷓齒辣癈纉蜩鹿粡寂蝟赱齠洲痲筵娼縺皷纈轣釶艱蜴芟籬矚黼蓍竏闔蜴硼蒹鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾鈔鳫續瘟踈闥痺纈壽蜩蜊韭蜀蜈瘤蝟昭粡竚癈鷭п粐Ь竟鶯鳫苒瘢癆繞蜚邵蒹鈿闔踟癘鹿粡寂蝟赱齠洲痲筵娼粤瘡蜚蜚蜴鈔閭謇鈑蜴芟賃肅跂壽蜩瘤綣蝟昭粡竚癈鷭п粐Ь窿闕韭蜩蒹磔蜥齡續鈑蒹鳫鈔癈齬闥肅跂鹿粡寂蝟赱齠洲痲筵娼竟蜴蒹瘢賃蛹綺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤装賃白阨霪蛹黼鰲癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь装賃專纈鍋跂纈矚黼閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼壽諷肬皷鈑跂鱚竢鰾纈釶辣壽跿綣蝟昭粡竚癈鷭п粐Ь闔皷齡閹蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳師鉗鋳繖癈齬闥也齡白阨頌蜃鈿鱚筴鹿粡寂蝟赱齠洲痲筵娼檸踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蒹癈齬闥黼笏蜿竢銓瘟銖蒹鉗竰鞜齠鰾鷦蝟昭粡竚癈鷭п粐Ь繙闥絎蓍蜩闌跫磔闌闔鈔蒹闕轣辮癇癆繖鹿粡寂蝟赱齠洲痲筵娼跚齡苒阨頌蒹籬癨頸蜿釶跛矼繙蜴蒹村蝟昭粡竚癈鷭п粐Ь蛹瘋瘤阡蒹竢跫郢蜩芬闥繖癜緕竅闔鹿粡寂蝟赱齠洲痲筵娼迴糒跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍繞踈蓿繙就竢鱚譯癜釶辣▽苳餐萠瘢絋踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯癜鞳▽苳餐萪絋踉晒瓲苳瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹■癜籵纈肅跂▽苳餐萃怠黼鯑蛹絋踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就癜籵纈肅跂⊆蝟昭粡竚癈鷭п粐Ь瘢綵≡葢碯黼鱠蛹紜装賃專纈鍋跂蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑萃怠黼鯑蛹綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳紙蛹絖鞜蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳装衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉萬籵蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽装賃專纈鍋跂蜥繝續釶辣賃蛹綣蝟昭粡竚癈鷭п粐Ь闔蜴蜴跚齡纈瘤鞜齠鰾肬纈鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔纃鍋跂癆荀踉晒纃痰齒跿癆蒹鹿粡寂蝟赱齠洲痲筵娼纈蛹絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹黼肅跂諷闔蒹黼鴈瘢絎蒹瘡闥黼鮗蝟昭粡竚癈鷭п粐Ь竰緕竰鞜齠鰾關闔瘡踟闌跫磔鹿粡寂蝟赱齠洲痲筵娼竢跫瘤癇砠癇籬壽竢跫瘤籬闌跫鈑蝟昭粡竚癈鷭п粐Ь蛹矼芬闥繖黼鴟纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆笊鱸轣諷癆蒹萃怠黼鯑蛹蜩鱚篌蝟昭粡竚癈鷭п粐Ь皷粤蒹閭緕繞皚黼鴟纈粹踉糸蹙苳試阡蹙苳纂蝟昭粡竚癈鷭п粐Ь蜴蒹蜥繝鴒葹蜚鳫笏鶤纈黼竚蜈銓鷦蝟昭粡竚癈鷭п粐Ь蛹矼碎阯鉤閨装賃專纈鍋跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮附竟鶯瘤竢逅癆蛯蛹蜚鈿壽蜊韭纃緕闔羲蝟昭粡竚癈鷭п粐Ь籵迴鞳遐瘰痺蒹閼纉縺糂蒹蜴跂鈑綣蝟昭粡竚癈鷭п粐Ь癈蒹跿纉鳫賃癆齡鴣笏纉鱇纈葹鱚踟蜴膽蝟昭粡竚癈鷭п粐Ь竟齡鱸鈑繪鈑嫐稔瘰鞳鈔繖囂辣韶跚竅闔鵺癈鹿粡寂蝟赱齠洲痲筵娼励竅鞳繧纈鬪繻闔蒹蜴矼蜴膽蝟昭粡竚癈鷭п粐Ь嫐稔瘰鞳鈔繖齒癇葹鈑鳫跂皷鈑肅跂鷦蝟昭粡竚癈鷭п粐Ь銓纈竏瘤艱痰踟續緕韶跚竅闔蜩癨鞜鶯綣蝟昭粡竚癈鷭п粐Ь鳫碎纃踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鞳鳰竰蜷竅跛繖鹿粡寂蝟赱齠洲痲筵娼蓿繙就鳫苒瘢鶩籵迯瘤瘍絎蔗迪▽瘢雹苳私硴轣釶艱蜴竚繖蜚莠蝟昭粡竚癈鷭п粐Ь鞜竏絎蓍頏閾鱇竅矼黼鱚癆瘤籬肬鴉癆鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾蛹纉闥黼蜚蜩閼絎鹿粡寂蝟赱齠洲痲筵娼嚆瘡齒踉氏鱚羹≪闥絎蔗迪a蓆瘢紜装令辣畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪a蔗紜装奘鞳鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a葢砒鳫肅跂▽苳餐萃打鳫鍋跂鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就癜籵癜闥蜚癆蝟紜鹿粡寂蝟赱齠洲痲筵娼釶辣就癜籵癜闥蜚癆蝟紜装賃装闥蜚癆蝟絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑萃汰蓖鱸鹿粡寂蝟赱齠洲痲筵娼闔聿碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼竢粤装賃装闥蜚癆蝟闔閼絋苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳装衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆蜴装賃装闥蜚癆蝟粡鱚笏蝟纔韭蜒蜚踟鐚蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳薩閹罕闔胼苳瘡跫闥阡癜緕竅闔鈔鹿粡寂蝟赱齠洲痲筵娼癜闥蝴癆蜿鞜齠繖阯纈纐繻閼纉癈鹿粡寂蝟赱齠洲痲筵娼粤肅鈬蜴蒹踉祉閼絋苳暫闔肅苺鱇闔閼絋苳瘤篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳詩閼纉閼絋苳肅跂纈蜩踉雌闔胼苳試鐚蝟昭粡竚癈鷭п粐Ь黼鯢彫踉晒齡鳫鈑齡鳫鈑鴣跂闔胼苳轣蓍鈑蒹韭蜈篌蝟昭粡竚癈鷭п粐Ь黼鯢町纈蜩黼鯢瘤箝闥齔繝蜀蜈篁蒹齦瘡鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾鈔窿纉竏繝謫蛹矼韶跚繖鈔瘟跿鱚蛹貅蝟昭粡竚癈鷭п粐Ь蝟瘤蓖鱸闔繿鱚鱚韭鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍蜀黼鯢瘰鞳癇蜴蒹癆痰癈閹闥瘤鈬鹿粡寂蝟赱齠洲痲筵娼迴糒跂闥跚竢粤吶髟蜥絋踉晒竢粤蜥繝韶跚纉鐚蝟昭粡竚癈鷭п粐Ь闥瘤鈬閼綮蒹肅鴦迴糒跂蛹鱸胱蒹鹿粡寂蝟赱齠洲痲筵娼竰繖緕瘡鷸鈔痺竇齠鞜齠繖郢繚癇粲纉閹蒹鹿粡寂蝟赱齠洲痲筵娼装装闥蜚癆蝟黼蜴膊鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐闕迴肬蜩蜴闔褫釿闔蜚闔閹蒹鹿粡寂蝟赱齠洲痲筵娼矚皷癜閼纉齦竏畆蝟昭粡竚癈鷭п粐Ь鱚羹閼焉莅蔗迪▽苳殺踉祉閼絋苳詩閼焉莅礒踉晒竢粤怦纈縺蜩鹿粡寂蝟赱齠洲痲筵娼賃閼齦韶跚纉蒹閹蒹黼竰繖緕瘡蒹站蜴膸鹿粡寂蝟赱齠洲痲筵娼聽粱蜴蜩癆闥鱚赱痺竇齠纉瘡鳫阯纈鹿粡寂蝟赱齠洲痲筵娼跂繻頏阡繝癈齬肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮濁繙癜踉竢銓鳫蜩阡癈黼闔鈔謗阯纈苗鹿粡寂蝟赱齠洲痲筵娼闥跛纉蜴装闥蝴癆蜿吶髟蜥繖辮踟麗蝟昭粡竚癈鷭п粐Ь續鈑繞頌蒹黼笊鱚鈔闥竇瘤池措蝟昭粡竚癈鷭п粐Ь闕韭蛛銓繹癘蜿鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍繝蜚竢銖蜆纈蒹逅跚竅闔閹跛阯蜴纈鐚蝟昭粡竚癈鷭п粐Ь跛阯瘡讚鳫蜴蜩蔗痺竇齠蛹綮鈔纈蜀癆蓍鷦蝟昭粡竚癈鷭п粐Ь鱚瘡踟葹銓賠鈬鱇跛蜚縺皷纈褫齡繝綣蝟昭粡竚癈鷭п粐Ь蜴芟癈齬肅跂瘤蜩黼笊鱚癆痰癈蜒莠蝟昭粡竚癈鷭п粐Ь蜃蔗癘迴鱚窿纉蜴鱠痺纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆瘡齒踉氏鱚羹≪闥絎蔗迪a蓆瘢紜装令辣畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪a蔗紜装奘鞳鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a葢砒鳫肅跂▽苳餐萃打鳫鍋跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焉萬籵蹼蔗迪閭鶩轣銛瘡閼閼焉萬籵蹼蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭霞呉求痰羈錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖癜焙硴貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼焉萬籵蹼蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐乙声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖癜焙硴蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬酪糒跂閼焉萬籵蹙踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍迴糒跂鳫粤肬纈蒹銓蜒癆蜿蜴賃夕蝟昭粡竚癈鷭п粐Ь蛹纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就迴糒跂蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯囂竇鍋跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍阨鱆鍋跂墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖癜焙硴碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯酪糒跂符緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼符緕肅纈墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼籵轜癜熏閼絋踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳屍轣鴒王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼頏阮蜆纉闥墺逮皷装緕竅闔纈綣蝟昭粡竚癈鷭п粐Ь蒹黼鴈瘢纉鈔癈齬闥糂鱚鱚蜴騨籬矚黼鹿粡寂蝟赱齠洲痲筵娼肅跂鶤蜩瘡鴈癆蝟蒹赱蜴纔鞜齠鰾蛹纉鹿粡寂蝟赱齠洲痲筵娼頏阮蜆繖蓿繙就迴籖癜譬迴籖癜鈔蒹鹿粡寂蝟赱齠洲痲筵娼代鳬繻賃癈齬闥肅跂頏阮蜆繖畆蝟昭粡竚癈鷭п粐Ь鱚羹閼焉萬籵譬迴籖癜焙皃踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢堤鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■癜籵辯鳫肅跂▽苳餐萃騨白阨霪蛹絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就a葢硴纈肅跂▽苳餐萃騨專纈鍋跂薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a葢硴癜闥蜚癆蝟紜装賃輿蓖鱸薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍繞踈鏈踉氏鱚羹≪闥絎蔗迪s癆蜩胱▽苳屍癆蜩胱鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯鱚髟蜥紜吶髟蜥絋踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就癜籵辯鳫肅跂⊆蝟昭粡竚癈鷭п粐Ь瘢綵≡葢硴苒阨鞴蛹紜装賃庸鳫鍋跂王苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑萃騨白阨霪蛹綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳紙蛹絖鞜蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳装衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉萬籵鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹萃騨白阨霪蛹粡鱚笏蝟黼蒹瘢閹騨蛹綣蝟昭粡竚癈鷭п粐Ь闔蜴蜴跚齡纈鳫肬纈蒹銓蜒癆蜿隨鹿粡寂蝟赱齠洲痲筵娼纃鍋跂癆荀踉晒纃痰齒跿癆蒹鳫蛹絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鳫蛹蜩纖繖纈釶辣壽跿肬畆蝟昭粡竚癈鷭п粐Ь黼蜩闕轣辮癇癆繖蜩閹蒹鳫蓍竏蒹黼鴦鹿粡寂蝟赱齠洲痲筵娼矼跫鈑鶤蒹鱚矼蜚纉鞜竇蜚蓍跿絳鈔蝟昭粡竚癈鷭п粐Ь鈬竢銓瘟瘤竢跫銖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆笊鱸轣諷癆蒹萃騨白阨霪蛹蜩鱚篌蝟昭粡竚癈鷭п粐Ь皷粤蒹閭緕繞皚黼鴟纈粹踉糸蹙苳試阡蹙苳纂蝟昭粡竚癈鷭п粐Ь蜴蒹蜥繝鴒葹蜚鳫笏鶤纈黼竚蜈銓鷦蝟昭粡竚癈鷭п粐Ь蛹矼碎阯鉤閨装賃庸鳫鍋跂鉤纉阡蒹鵄蜩綣蝟昭粡竚癈鷭п粐Ь鳫笏繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮衷轤蜴蜴白阨瘤倚齠鰾騨蛹纉侮闕竅黼蜚鷦蝟昭粡竚癈鷭п粐Ь癈蜈瘤瘍皷鈑跂癆痰癈蜒竢銓瘟銖阡綣蝟昭粡竚癈鷭п粐Ь癈齬闥瘤苒阨粤蛹肬縺竏黼鬯蓍皷逅跚肅纉銷鹿粡寂蝟赱齠洲痲筵娼齦韶闥頏閾鱇逑葹鈬繖矼鱸緕纖阯鉤葹鐚蝟昭粡竚癈鷭п粐Ь縺鱸鈑瘤跫站蜴皷鈑跂騨蛹絎蓍竅矼鹿粡寂蝟赱齠洲痲筵娼痺竢逅跚鼈繖肅鴦黼蜴苒阨瘤鞜齠鰾蛹纉鐚蝟昭粡竚癈鷭п粐Ь濶銓黶辣騨墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐萃騨白阨霪蛹黼鰲癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь装賃葉黼鯑蛹黼鰲癈絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蒹纖闥蒹蜴芟賃蜩蒹黼鴈瘢絎蒹瘡闔皷齡鷦蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤寰蝌鴒頸倚齠鰾蜩閹鳫芬闥繖蝟昭粡竚癈鷭п粐Ь閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼壽鞜齠鰾繝闔闔蜴寰蝌鴒頸┤癈齬闥癈鹿粡寂蝟赱齠洲痲筵娼矼肬鱚壽蜩肬跛阯繖竢跫瘤竢迯黼鞜鱇篌蝟昭粡竚癈鷭п粐Ь蜩閹鳫鶤纈癆轣關闔瘡踟跂胄賃夕蝟昭粡竚癈鷭п粐Ь蛹瘋瘤阡蒹竢跫郢蜩芬闥繖癜緕竅闔鹿粡寂蝟赱齠洲痲筵娼迴糒跂壽蜩癆繻纉竢鞳鱧黼肬蜚竢轤蜴繖鹿粡寂蝟赱齠洲痲筵娼鞜齠鰾鈔鳫癆痰癈絎蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆瘡齒踉氏鱚羹≪闥絎蔗迪a蓆瘢紜装令辣畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪a蔗紜装奘鞳鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a葢硴纈肅跂▽苳餐萃騨專纈鍋跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡葢硴纈肅跂⊆蝟昭粡竚癈鷭п粐Ь瘢綵≡葢硴纈肅跂▽苳餐萃騨專纈鍋跂王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑萃騨專纈鍋跂鹿粡寂蝟赱齠洲痲筵娼纃肅跂癆荀踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷銖蜿遉踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焙硴蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽装賃葉黼鯑蛹粡鱚笏蝟黼蒹瘢閹騨蛹綣蝟昭粡竚癈鷭п粐Ь闔蜴蜴跚齡纈瘤鞜齠鰾肬纈鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔纃鍋跂癆荀踉晒纃痰齒跿癆蒹鹿粡寂蝟赱齠洲痲筵娼纈蛹絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹黼肅跂諷闔蒹黼鴈瘢絎蒹瘡闥黼鮗蝟昭粡竚癈鷭п粐Ь竰緕竰鞜齠鰾關闔瘡踟闌跫磔鹿粡寂蝟赱齠洲痲筵娼竢跫瘤癇砠癇籬壽竢跫瘤籬闌跫鈑蝟昭粡竚癈鷭п粐Ь蛹矼芬闥繖黼鴟纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆笊鱸轣諷癆蒹萃騨專纈鍋跂齡闥繖鹿粡寂蝟赱齠洲痲筵娼阨蜆粹笊辣銓鱚閹蒹繧纈鮖纃鈿熙踉晒纃鹿粡寂蝟赱齠洲痲筵娼頤蜚粡鱚笏闥癆頏阡繝蒹鵄蜩絳跚緕鹿粡寂蝟赱齠洲痲筵娼跛痰跂粹跫痲蒹萃騨專纈鍋跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮附竟鶯瘤竢逅癆蛯蛹蜚鈿壽蜊韭纃緕闔羲蝟昭粡竚癈鷭п粐Ь籵迴鞳遐瘰痺蒹閼纉縺糂蒹蜴跂鈑綣蝟昭粡竚癈鷭п粐Ь癈蒹跿纉鳫賃籬鱚鵺癆蒹瘤繻鈑鹿粡寂蝟赱齠洲痲筵娼闔蒹蜴矼蜴燐面韶緕粤筮闕瘰韭蜒癆蜿銖齦竏鷦蝟昭粡竚癈鷭п粐Ь蒹續黹瘰黼鴟纈鱚踟竟齡鱸鈑繪鈑鹿粡寂蝟赱齠洲痲筵娼燐面韶緕粤筱蜀阨鱚癘蜴阨碎蜴賃肅跂鷦蝟昭粡竚癈鷭п粐Ь銓纈竏瘤艱痰踟續緕韶跚竅闔蜩癨鞜鶯綣蝟昭粡竚癈鷭п粐Ь鳫碎纃踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鞳鳰竰蜷竅跛繖踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就鳫苒瘢鶩籵迯瘤瘍絎蔗迪▽苳私硴轣釶艱蜴竚繖鹿粡寂蝟赱齠洲痲筵娼鞜竏絎蓍頏閾鱇竅矼黼鱚癆瘤籬騨鹿粡寂蝟赱齠洲痲筵娼肬鴉癆癈齬闥肅跂肬蓍迴糒跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь繞踈蓿繙就竢鱚譯癜釶辣▽苳餐萠瘢絋踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯癜鞳▽苳餐萪絋踉晒瓲苳瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹■癜籵辯鳫肅跂▽苳餐萃騨白阨霪蛹絋踉晒瓲苳皿蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡葢硴癜闥蜚癆蝟紜鹿粡寂蝟赱齠洲痲筵娼釶辣就癜籵轣蓖鱸▽苳餐萃騨装闥蜚癆蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳装賃輿蓖鱸鹿粡寂蝟赱齠洲痲筵娼闔聿碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼竢粤装賃輿蓖鱸遉踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷銖蜿遉踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焙硴蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆蜴装賃輿蓖鱸蜥繝跚竕鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑э聿Е踉晒齡鳫鈑跛阯肬硼蒹銓蜒癆蜿瘤篌蝟昭粡竚癈鷭п粐Ь蓖鱸闔矼癈黼闔跫跂迴糒跂鷦蝟昭粡竚癈鷭п粐Ь繙蜴繖竢粤衷鈕蜃癆蜿遉踉晒竢粤鈔鹿粡寂蝟赱齠洲痲筵娼竢粤迴糒跂鶤礒踉晒竢粤蛹蜀蒹鱚齡鳫鈑鈿鹿粡寂蝟赱齠洲痲筵娼纈苗闔胼苳闥踉雌闔胼苳賜絋踉晒齡鳫鈑癆竏蜴齦韶跚繖鹿粡寂蝟赱齠洲痲筵娼纈苗膚蒹鱚纈苗鈔鴣跂鞳竕肅繖貅蝟昭粡竚癈鷭п粐Ь癈齬闥瘤痺竇齠蒹站跛瘰韭蜈瘤聲蛹跛鹿粡寂蝟赱齠洲痲筵娼芍装闥蝴癆蜿吶髟蜥繖辮踟踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮囂纈苗韶縺鴦籬矚黼迴鱚葹闔綣蝟昭粡竚癈鷭п粐Ь閼綮蜀瘡蜆踉祉閼絋苳子繿鱚閼絋苳粡鱚笏蝟瘰韭蜈鹿粡寂蝟赱齠洲痲筵娼迴鱚葹闔迴糒跂緕蒹蜥齡閼跛纈蜀綣蝟昭粡竚癈鷭п粐Ь鱚粤銓蛛踈瘤鈿窿纉蜩癈黼闔鱚艨鰾跂齠綣蝟昭粡竚癈鷭п粐Ь菫蓖鱸續鈑踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢迯闔黼闥蓍蜩竢鉅笏蜿鈬綣蝟昭粡竚癈鷭п粐Ь癈蜒迴糒跂鷸癈踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖癜譬竢粤迴籖癜閼絋苳殺踉晒瓲苳皿蒹鱚癈蓍鷦蝟昭粡竚癈鷭п粐Ь騨閼齦韶跚纉蒹閹蒹黼竰繖緕瘡蒹站蜴膸鹿粡寂蝟赱齠洲痲筵娼聽粱蜴蜩癆闥鱚赱痺竇齠纉瘡鳫阯纈鹿粡寂蝟赱齠洲痲筵娼跂繻頏阡繝癈齬肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮濁繙癜踉竢銓鳫蜩阡癈黼闔鈔謗阯纈苗鹿粡寂蝟赱齠洲痲筵娼闥跛纉蜴装闥蝴癆蜿吶髟蜥繖辮踟麗蝟昭粡竚癈鷭п粐Ь續鈑繞頌蒹黼笊鱚鈔闥竇瘤池措蝟昭粡竚癈鷭п粐Ь闕韭蛛銓繹癘蜿鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍繝蜚竢銖蜆纈蒹逅跚竅闔閹跛阯蜴纈鐚蝟昭粡竚癈鷭п粐Ь跛阯瘡讚鳫蜴蜩蔗痺竇齠蛹綮鈔纈蜀癆蓍鷦蝟昭粡竚癈鷭п粐Ь鱚瘡踟葹銓賠鈬鱇跛蜚縺皷纈褫齡繝綣蝟昭粡竚癈鷭п粐Ь蜴芟癈齬肅跂瘤蜩黼笊鱚癆痰癈蜒莠蝟昭粡竚癈鷭п粐Ь蜃蔗癘迴鱚窿纉蜴鱠痺纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆瘡齒踉氏鱚羹≪闥絎蔗迪a蓆瘢紜装令辣畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪a蔗紜装奘鞳鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a葢硴苒阨鞴蛹紜装賃庸鳫鍋跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焉萬粡艱齡皴蔗粹笂瘤豁迴箝迴籖癜焙蜃纉蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭箋拘街痺井錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖癜焙蜃纉蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖癜焙蜃纉蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐芦声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖癜焙蜃纉熙踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳四閼迴籖癜焙蜃纉熙踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍迴糒跂鳫粤肬纈蒹銓蜒癆蜿蜴幼擬蝟昭粡竚癈鷭п粐Ь蜃纉装緕竅闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就迴糒跂蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑纈蜊緕讀踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪S阨鱆綟蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囂竇蛹綺闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь閼焉萬粡艱齡碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯酪糒跂符緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼符緕肅纈墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼粡艱齡焉萬迴糒跂碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳走瘟赱碎蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹鈔癆纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳屍轣鴒王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩瘤鞣癆繖纈皷闔畆蝟昭粡竚癈鷭п粐Ь鱚羹閼焙蜃纉蔗迪▽苳詩閼焙蜃纉熙踉晒瓲苳皿阯纐纈蜚癈阡繞郤蝟昭粡竚癈鷭п粐Ь緕皷踟纉瘤蜩蒹鱚肬鱚癇諷纔鞳鱸辣銓瘡膚阨鹿粡寂蝟赱齠洲痲筵娼蜩閼絳阨轣諷踉糸蹙苳試阡蹙苳綣蝟昭粡竚癈鷭п粐Ь閼焙蜃纉繝癜黼蒹鼈癇齒辣黶辣闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳残蜃纉癜緕竅闔粤黹鱸矼蜴踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕笂竕糒續罸蔗聶俺鰻▽苳子特蝟昭粡竚癈鷭п粐Ь怯勲鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉肢王苳残蜥繝鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就a葢蜃纉蛹紜装堤艱齡鍋跂薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a葢蜃纉鳫肅跂▽苳餐萃蜃纉鳫鍋跂薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■癜粡艱齡髀陟装堤艱齡剌隍踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚畆蝟昭粡竚癈鷭п粐Ь鱚羹■癜粡艱齡鈿釿繻蜀續蜊紜装堤艱齡麗釿緻蜀續蜊絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚畆蝟昭粡竚癈鷭п粐Ь鱚羹■癜粡艱齡鈿釿繙闥轣槇装堤艱齡麗釿綟闥轣熙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就a葢蜃纉窿蒹站▽苳餐萃蜃纉稈蒹站薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a葢蜃纉趺闥蜚蓁▽苳餐萃蜃纉趺闥蜚蓁薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■癜粡艱齡粹轣蜴▽苳餐萃蜃纉闕瘟遉踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆瘡齒蓿繙就竢鱚譯鱚髟蜥紜吶髟蜥絋踉晒瓲苳瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪s癆蜩胱▽苳屍癆蜩胱踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏♭皷鈑粡艱齡釶辣就蜴舮蜃纉槇專蜴堤艱齡鹿粡寂蝟赱齠洲痲筵娼装緕竅闔界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮專蜴幼堤艱齡蒹銓蜒癆蜿蜩纈皷逅跂嚔逅踟續鹿粡寂蝟赱齠洲痲筵娼蒹銓蜒癆蜿鈿鴉瘡踟蜴∩萪堤艱齡瘤篌蝟昭粡竚癈鷭п粐Ь装堤艱齡鍋跂蜴齡縺閹蒹闥轣∩萪逮皷磚鈔鹿粡寂蝟赱齠洲痲筵娼∩萼黼鯑蛹紜瘡齒鱚韭痺瘤∩菁鳫鍋跂鹿粡寂蝟赱齠洲痲筵娼∩萃蜃纉鳫鍋跂〓蒹痲∩萃蜃纉闕瘟遐蜥繝鹿粡寂蝟赱齠洲痲筵娼竢銓瘟鉗鈑跂癈鳫阡夘肬蜩鳫笏蜿齔痺絎鹿粡寂蝟赱齠洲痲筵娼祷瘢韭綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉嗣閭癆蜿鱸瘢雹苳纂蝟昭粡竚癈鷭п粐Ь萪堤艱齡鹿粡寂蝟赱齠洲痲筵娼装令辣頏蝟癆癇縺⊆蝟昭粡竚癈鷭п粐Ь萃蜃纉闕瘟鱸蔗痕蜥鳫鬯逋闕鱸億鹿粡寂蝟赱齠洲痲筵娼装堤艱齡鍋跂皴癜粡艱齡熕蝟昭粡竚癈鷭п粐Ь繿鱚瘡蜆黼鮗蝟昭粡竚癈鷭п粐Ь瘢雹踉晒弥竅闔逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳士阡綺闔胼苳堤艱齡蒹銓蜒癆蜿蜩闥黼笊鱚葹郤蝟昭粡竚癈鷭п粐Ь癈蜒蒹銓蜒癆蜿遯鉤鳬竟鶯蜴碣阯黼鴦蒼羲蝟昭粡竚癈鷭п粐Ь辮轤纈旭巻瘧闥鳫纈癆竟鶯蜃纉癜緕竅闔鹿粡寂蝟赱齠洲痲筵娼蜴竚蓿繙就蔗痕凱闥膀総癨甎▽苳餐轣畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕謠鉐鳫鬯諢絎闥膀▽苳史闔髟纈闥畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕迚竰闢閹竢躁鈔阯鶩蜈羊銓纈鈬祷韭闥纈鹿粡寂蝟赱齠洲痲筵娼肬浴腕鈔蜴粹瘡阨艾蒹蜴粹纈皷闔瘟踈蒹郤蝟昭粡竚癈鷭п粐Ь黼鴒蜴繞蓿繙就m皷紜苳思闥謇鈑蜚羊鹿粡寂蝟赱齠洲痲筵娼侮鴈續跫鱚鬢踉晒瓲苳拶繻阯闥闥諱鳫筴畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕迴跛甌闥腆酪跛瓲踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕葹銕繻鶤鈬竅鞳闕鶩碣阯黼鴦阯鉤閨筮褥陟鹿粡寂蝟赱齠洲痲筵娼励竅鞳蓿繙就蔗痕鞳鱇闕纈瓲踉晒瓲苳錆鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕韶跂闕瘋癇薇▽苳屍瘋癇薤踉晒瓲苳皿踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕蜩祟闥膀▽苳詞踉晒瓲苳粹纉踉雌闔胼苳試阡闔胼苳纂蝟昭粡竚癈鷭п粐Ь竟鶯蜃纉癜緕竅闔嚔釿粡艱齡蒹銓蜒癆蜿蜩阡鷦蝟昭粡竚癈鷭п粐Ь蜆繻蜊韭纃緕癈癈蜒蒹銓蜒癆蜿遯阨蓖蜚鉤蝟昭粡竚癈鷭п粐Ь緕鳫鉈緕蒹鱚跛黼鴦蛹葹竟鶯蜴碣阯黼鴦踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡葢蜃纉蛹紜鹿粡寂蝟赱齠洲痲筵娼釶辣就癜粡艱齡肅跂▽苳餐萃蜃纉蛹絋踉晒瓲苳粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳装堤艱齡鍋跂鹿粡寂蝟赱齠洲痲筵娼纃肅跂癆荀踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷鞳鱸辣銓瘡碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉萬粡艱齡碣鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽装堤艱齡鍋跂蜥繝續釶辣肅跂鹿粡寂蝟赱齠洲痲筵娼竢銓瘟鉗鈑蒹蜩閹黼鴦鈔釿閼繖癈齬闥糂闥蜃纉蝟昭粡竚癈鷭п粐Ь蒹銓蜒癆蜿隨踉糸蹙苳仔蛹絖鞜蹙苳蜩蒹碵闌鞜綣蝟昭粡竚癈鷭п粐Ь黼肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽粡艱齡蛹纉鞳竕瘡闥轣蛹纉蜩闥轣蝟昭粡竚癈鷭п粐Ь瘤竰縺蜴畆蝟昭粡竚癈鷭п粐Ь鱚羹〓頏閾鱇逑蜃纉蔗迪▽苳肢蜃纉熙踉晒瓲苳蛹蜚肬蜴鹿粡寂蝟赱齠洲痲筵娼齦韶闥粡鱚笏闥閹蒹鞜竏粡齡鱸碯闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡葢蜃纉鳫肅跂⊆蝟昭粡竚癈鷭п粐Ь瘢綵≡葢蜃纉鳫肅跂▽苳餐萃蜃纉鳫鍋跂鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳装堤艱齡白阨霪蛹綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳紙蛹絖鞜蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳装衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑纈蜊緕讀踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焙蜃纉熙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳走瘟赱碎蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹鈔癆纈蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽装堤艱齡白阨霪蛹粡鱚笏蝟黼蒹瘢閹纔瘡鹿粡寂蝟赱齠洲痲筵娼肅跂闔蜴蜴跚齡苒阨頌鈔蒹蜥纃矼鴦纈鹿粡寂蝟赱齠洲痲筵娼釶辣鶇纃鍋跂癆荀踉晒纃痰齒跿癆蒹鳫鹿粡寂蝟赱齠洲痲筵娼肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮刀竏蜴閹蒹鳫蛹竢銓瘟銖鳫釶辣闌跫磔鹿粡寂蝟赱齠洲痲筵娼竢跫遯闌跫磔蒹纃矼纈釶辣黼鞜鱇磔鞜竇鶤鹿粡寂蝟赱齠洲痲筵娼祷瘢韭綺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤逋苒阨雕閧閻銕絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь阡癆縺鱆蓍鈑癇艱纔肅跂蜩踉糸蹙苳事纈踉晒纃鹿粡寂蝟赱齠洲痲筵娼蜴繙肅竕緕蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆笊鱸轣諷癆蒹菁鳫鍋跂齡闥繖皷粤鹿粡寂蝟赱齠洲痲筵娼粹笊辣銓鱚閹蒹繧纈鮖纃鈿熙踉晒纃蜴鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥癆頏阡繝蒹鵄蜩絳跚緕蛹矼碎綣蝟昭粡竚癈鷭п粐Ь粹跫痲蒹菁鳫鍋跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡葢蜃纉關⊆蝟昭粡竚癈鷭п粐Ь瘢綵≡葢蜃纉關▽苳餐萃蜃纉關蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑萃蜃纉關鹿粡寂蝟赱齠洲痲筵娼鈿鈬蕣癜銓癜茘蜴碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑踉祉閼絋苳餐萃蜃纉關鹿粡寂蝟赱齠洲痲筵娼癜閼絋苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳装衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑纈蜊緕讀踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焙蜃纉熙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳走瘟赱碎蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹鈔癆纈蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽装堤艱齡剌粡鱚笏蝟粤鴉蜴纉蒹鹿粡寂蝟赱齠洲痲筵娼髟瘡蜚閹鳫笏蜿黼纃癜蹙苳跛鉤粹鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔纈釶辣癈齬闥筴纃癜銓蹙苳蜩鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔跿蜴苒蜚竏繝謇鈑瘤諜癈閹蒹鹿粡寂蝟赱齠洲痲筵娼緕瘡齒闕頤瘤竏繝諷筴纃鈿鈬蹙苳跛癜黼鹿粡寂蝟赱齠洲痲筵娼迴糒跂闌卞鱈屋狭蜃纉瘡苡鱸蓍竏閻鷦蝟昭粡竚癈鷭п粐Ь阡釿跿粤銓繚鱸蒹站蜴腥啄踉糸蹙苳氏荀踉晒纃鈔鹿粡寂蝟赱齠洲痲筵娼纃癜銓蹙苳轣矼鞳竕肅繖蜴蓍竏蒹癈綣蝟昭粡竚癈鷭п粐Ь鳫纈蛹竏闖黼蓍竏纉黼纃鈿鈬蹙苳鼈阨趙鹿粡寂蝟赱齠洲痲筵娼闔踟繖碣阯黼肬齒辣縺齒粹纉阡蜍綣蝟昭粡竚癈鷭п粐Ь葹跛緕艱鱚竇蝟纉纈黼踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑纃癜銓蹙苳蜩阡逅跂辣銓繖鹿粡寂蝟赱齠洲痲筵娼熙踉晒齡鳫鈑踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡葢蜃纉闔竇跚聽辣⊆蝟昭粡竚癈鷭п粐Ь瘢綵≡葢蜃纉闔竇跚聽辣▽苳餐萃蜃纉闔竇也聽辣鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳装堤艱齡麗釿緻蜀續蜊綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳雌繝闔糂蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐萃蜃纉闔竇也聽辣旭閼絋苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳装衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑纈蜊緕讀踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焙蜃纉熙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳走瘟赱碎蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹鈔癆纈蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽装堤艱齡麗釿緻蜀續蜊粡鱚笏蝟竢銓鳫踈阯闔綣蝟昭粡竚癈鷭п粐Ь纈鈿釿蜩瘡蜆怦緕蒹跚緕竢銓痺蒹纈鮗蝟昭粡竚癈鷭п粐Ь皷鈑纔韈鱚鈿釿黼鴟纈蛹黼鈔痺完鹿粡寂蝟赱齠洲痲筵娼竢粤齡瘡綵閼絋苳皿纃黼竢鈔鵙踉晒纃苒縺瘤鹿粡寂蝟赱齠洲痲筵娼緕齔繝蜀蜈瘢阨銓辣闥蓍竏蒹闔竇鷦蝟昭粡竚癈鷭п粐Ь瘡蜆蜩蓖頏閧痰踟纐纈黼纉瘤絢蝟昭粡竚癈鷭п粐Ь繝闔糂膚踉糸蹙苳雌繝闔糂蹙苳蜩纉瘤蒹鈿釿綣蝟昭粡竚癈鷭п粐Ь纐纈蜥纉´麗蜊韭纃緕蝟昭粡竚癈鷭п粐Ь斗黼竢鈔鵙踉晒斗緕蒹闔竇癨繖笏踟釿綣蝟昭粡竚癈鷭п粐Ь竚蜈銓麗葹蛹闔絖辣闔竇頏阮蜆蓍艾纈繝蜚蝟昭粡竚癈鷭п粐Ь艨蜴齡辮赱癆站鵺蒹瘡齒癘皷芬蜀蜒瘤鞳鱠闥轣釿綣蝟昭粡竚癈鷭п粐Ь逅跚竅闔鵺碣阯黼竅銕阡蜷繻蜴闥韭竢銕繝闔鷦蝟昭粡竚癈鷭п粐Ь闥蒹繿齡鶤繝癜黼鳫纈竅銕阡癈蛹粤笏葹蝟昭粡竚癈鷭п粐Ь鈬蜊絖鈿釿纉鱚繪鈑黼筱蓍轣跂痲碣阯黼鴦鴒蜴鹿粡寂蝟赱齠洲痲筵娼韈鞳跚鈬繿齡瘤鱚竇蝟蜴完鱚齔闔黼肬瘡碯肅鴦蝟昭粡竚癈鷭п粐Ь繿齡鱚髟蜥蜴碣阯黼纉緕鱚髟纉麗踈癆鹿粡寂蝟赱齠洲痲筵娼頏阡繝闔艨蜴齡辮踟痺謫鉤轣諷黼銖肬糯釶迚竅跛蝟昭粡竚癈鷭п粐Ь緕纈癆繖闔銓鈔蓍鈑跚諷腕鱚髟纉肬齡癆蜒闔銓鹿粡寂蝟赱齠洲痲筵娼癆站纈癨跼縺糯癘竢逅跂纉竟銖絳闔絖辣闔竇鷦蝟昭粡竚癈鷭п粐Ь鈿轣諷緕黼纈絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就癜粡艱齡鈿釿繙闥轣槇鹿粡寂蝟赱齠洲痲筵娼釶辣就癜粡艱齡鈿釿繙闥轣槇装堤艱齡麗釿綟闥轣熙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑萃蜃纉闔竇楠鴉癆鹿粡寂蝟赱齠洲痲筵娼纃真職踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼竢粤装堤艱齡麗釿綟闥轣真職踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷鞳鱸辣銓瘡碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉萬粡艱齡碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑蛹痰跂郤蝟昭粡竚癈鷭п粐Ь鞜竏窺凱瘤赱鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳士阡逅跂辣銓繖續踉晒齡鳫鈑踉察鹿粡寂蝟赱齠洲痲筵娼丶苳市蒹萃蜃纉闔竇楠鴉癆蜥繝續纈迚鈬蓖鈿釿蜩鹿粡寂蝟赱齠洲痲筵娼艱鈬鱇筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就癜粡艱齡釿竏繝襤鹿粡寂蝟赱齠洲痲筵娼釶辣就癜粡艱齡釿竏繝襤装堤艱齡例宙繝襴踉晒瓲苳粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳装堤艱齡例宙繝觴蝟昭粡竚癈鷭п粐Ь鋺网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐萃蜃纉稈蒹站聿閼絋苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳纃麗蝟昭粡竚癈鷭п粐Ь韶跚竅碎絋踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑纈蜊緕讀踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焙蜃纉熙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳走瘟赱碎蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹鈔癆纈蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑麗蜊韭纃緕闔胼苳´蝟昭粡竚癈鷭п粐Ь踉姉壽装堤艱齡例宙繝粡鱚笏蝟緕痰跂闥蜩痰跂竏繝謇鈑綣蝟昭粡竚癈鷭п粐Ь闔竇阨銓緕磔蒹纈鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼丶苳思蓍跂繝闕辣鈔繖鳫黼笊鱸鈔竟蜴鉗鈑蓍粡鱚笏蝟綣蝟昭粡竚癈鷭п粐Ь葹闔蜊竟鶯瘤鞳鱠闥轣釿蜊韭蜒癆蜿隨竏繝鈿釿絖竢蝟昭粡竚癈鷭п粐Ь瘡讓繿齡蓍竏癘瘤蓖鱸闔縺粤鬪鴪纉鞳笏蝟閹鹿粡寂蝟赱齠洲痲筵娼續蒹纖繿鱚蜃纉癜緕竅闔逡齡黼鱸瘡蝴繖蓿阨艾鹿粡寂蝟赱齠洲痲筵娼竰蜚蜒瘡繝闔膚蒹纈蜩瘤粲蜴赱鱧銛轤纈羲蝟昭粡竚癈鷭п粐Ь繿齡蜒竢銓瘟装闥蝴癆蜿蒹痲纈蒹蜩癨阡蜒縺碎蝟昭粡竚癈鷭п粐Ь逅痺鞳鱠闥轣釿絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就癜粡艱齡瘡苡鱸蹉鹿粡寂蝟赱齠洲痲筵娼釶辣就癜粡艱齡瘡苡鱸蹉装堤艱齡糟苡鱸蹙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑萃蜃纉趺闥蜚蓁鹿粡寂蝟赱齠洲痲筵娼幼亨幼記黼齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼竢粤装堤艱齡糟苡鱸幼畿踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑蜥繝鴒蝟昭粡竚癈鷭п粐Ь蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑菽闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷鞳鱸辣銓瘡碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉萬粡艱齡碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑蛹痰跂郤蝟昭粡竚癈鷭п粐Ь鞜竏窺凱瘤赱鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹萃蜃纉趺闥蜚蓁蜥繝繻繝蒹趺闥蜚蓁黼篌蝟昭粡竚癈鷭п粐Ь竅趁癆竏瘡跂鈑瘤鱚齔闔黼癈蒹鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳殺踉糸蹙苳四諜纉鵙踉晒纃鈿竢鴪繝蜊韭纃緕篌蝟昭粡竚癈鷭п粐Ь續闔胼苳皿踉察鹿粡寂蝟赱齠洲痲筵娼丶苳市斗幼記黼齠勇苳逡齡蜥齡閼蒹鹿粡寂蝟赱齠洲痲筵娼崛勁苳紫續熾黼鴃葹鼈┤倉笏蜿蜴踉志倉迴籖癜焙蜃纉礒踉晒崛勁苳蝟昭粡竚癈鷭п粐Ь苳纂蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡葢蜃纉闕瘟遐鹿粡寂蝟赱齠洲痲筵娼釶辣就癜粡艱齡粹轣蜴▽苳餐萃蜃纉闕瘟遉踉晒瓲苳粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳装堤艱齡弟轣蜴鹿粡寂蝟赱齠洲痲筵娼纃孀髭踉晒纃纃孀髭踉晒纃踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳装衷鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑纈蜊緕讀踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜焙蜃纉熙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳走瘟赱碎蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹鈔癆纈蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽装堤艱齡弟轣蜴蜥繝跛阯鞳竕胱鈬鮗蝟昭粡竚癈鷭п粐Ь闥孀蕪蓍竏鱚黶辣鳫笏蜿齔痺綣蝟昭粡竚癈鷭п粐Ь瘢鱚瘡瘤纈釶辣癈齬闥蜴肬蒹鞳竕肅繖夘癇綣蝟昭粡竚癈鷭п粐Ь鱚肅鵺竚蜈銓蛹癈齦辣葹瘡孀蕪矼跫鹿粡寂蝟赱齠洲痲筵娼纉癇瘡齒鳫笏繖黶辣黼鴈瘢絲鞜齠鰾壽綣蝟昭粡竚癈鷭п粐Ь夘轣矼蜚蒹痰齒跿夘蜴跿粡鈑竏纃絳闢鹿粡寂蝟赱齠洲痲筵娼竟鶯續礬鱚赱夘鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍粡鱚笏蝟纃鼈阨趙蹙苳瘡齔繝蜀蜈瘤篌蝟昭粡竚癈鷭п粐Ь闔蜴跂癈續罘闖孀膝鶇闥蓍齔痺絎鹿粡寂蝟赱齠洲痲筵娼蜚鈑粹跛癜黼蒹跚緕緕綣蝟昭粡竚癈鷭п粐Ь蓖鱸闔縺粤肬纃纐纈鱚髟纉熙踉晒纃緕蓍鷦蝟昭粡竚癈鷭п粐Ь纈鬯鞜鶯鳫蜴竰縺皷鈑蒹蝴閹蒹繿齡蜚癨鹿粡寂蝟赱齠洲痲筵娼瘡齒癘粤蜊緕繙聽笏鞳鱠闥轣釿蜀鹿粡寂蝟赱齠洲痲筵娼∩萃蜃纉稈蒹站蜩隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹夘齔繝蜀蜈竅瘡齒濶銓粡聿纈緕黼鴟纈鵺郤蝟昭粡竚癈鷭п粐Ь蓍竏癈竚蜈銓蓍竏鈔纈齡瘤蜩跛蒹鼈癇綣蝟昭粡竚癈鷭п粐Ь黼鴈瘢絲鞜齠鰾鈕痺鳫齠韭黼鴟纈阨蝟昭粡竚癈鷭п粐Ь鳫逅鈑蒹黼縺竏蜊絎蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖癜蜴粤蔗迪皴蔗粹笂瘤豁迴箝迴籖癜蜴粤蔗迪郤碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握痺邃羔更閏碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼焉濶鈔纔谺緕粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖癜蜴粤蔗迪郤昭蝟昭粡竚癈鷭ц襷樟卯拘誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏迴糒跂閼焉濶鈔纔蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬酪糒跂閼焉濶鈔纔右苳纂蝟昭粡竚癈鷭п粐Ь蓍迴糒跂鳫粤肬癜轣粡鱚笏闥蜴粤鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯囂竇鍋跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍阨鱆鍋跂墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖癜蜴粤礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪M閼緝粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂粤銓蜀蜈鮑闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь濶鈔纔熏閼絋踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳屍轣鴒王苳纂蝟昭粡竚癈鷭п粐Ь蒹鈔纔粡鱚笏闥竅竢辣鳫闔閹阨鱆纉鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚肅跂鱸緕纈韈竅跛竅跛繖鹿粡寂蝟赱齠洲痲筵娼竢粤蜴粤蔗迪閼絋苳皿蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖粡鬯蔗迪d蜥繝鴒蜴粤堤鱚笏闥鈔纔鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟黼蒹瘢閹蓍肅跂壽蜩竢銓鳫跛繖蝟昭粡竚癈鷭п粐Ь踉氏鱚羹閼焙蜥譬竢粤迴籖粡鬢踉晒竢粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蒹鵄蜩絳蜩鈑緕纈癆繖黼鴟纈壽阡蒹鮗蝟昭粡竚癈鷭п粐Ь蜥繝竢銓鳫肬鴉癆蜩蜩鈑壽畆蝟昭粡竚癈鷭п粐Ь鱚羹■痲粡竢遐槍簓竢遉踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a粐蜒闔磔緕竢粡鈑▽苳餐粐父闔濁梼竢粡鈑鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a粐蜒闔磔鞳▽苳餐粐父闔濁奘鞳鱚黼續鹿粡寂蝟赱齠洲痲筵娼跚齡蜒闔蜩韭癨闥癇蜿蛹鞳鷸闥痺莠蝟昭粡竚癈鷭п粐Ь蛹跚齡繖肅鴦蜒闔蜩癆癆竏纉蒹蛹蜩鹿粡寂蝟赱齠洲痲筵娼粡齔赱筮蒹黼鱚闔闌跂磔鹿粡寂蝟赱齠洲痲筵娼竢粤迴籖癜蜴粤踉晒竢粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蒹笏蜿銖鱚辮癇癆繖癆阨瘤闕韭續繻蝟昭粡竚癈鷭п粐Ь纃阮鱚韭痺紿闕癆蜒鈔纔緕纈癆蜿鼈阨趙阨瘤蝟昭粡竚癈鷭п粐Ь鎬蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮装轣蜴粤艱鈬鱇闔緕痰跂皷鈑鹿粡寂蝟赱齠洲痲筵娼竢粤闔鈔纔纉閼絋苳皿繞蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯關闔鵞竢粤闔鵙踉晒竢粤蜥繝闥鹿粡寂蝟赱齠洲痲筵娼迴鱚續瘟踈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚踉氏鱚羹■聲釿鈔纔蜴腆黶逅那釿鈔纔蜴胼踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼蜩釶碎繖闥蒹踉雌瘢隍苳仔瘤笙侮粤鈑瘢隍苳諷闥蜩鹿粡寂蝟赱齠洲痲筵娼頏纉緕闔蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就i鈔纔關闔鵞黶逅侮粤頸蜿銖瘢隍苳殺踉晒瓲苳粡鱚笏蝟絳鹿粡寂蝟赱齠洲痲筵娼竢跿邇縺粤鴦鱚蜴謫葹竢銓鳫闥粤閹蒹鹿粡寂蝟赱齠洲痲筵娼粡齔赱黼跂笏縺粤跚鉉跚齡蜴跛綣蝟昭粡竚癈鷭п粐Ь繚緕纈癆繖齒鶯繖跿纉癆闌隨繻繝鈑蒹鹿粡寂蝟赱齠洲痲筵娼黶辣縺粤鱚鞳癆繖踟閾芟纉續緕黹緕粡鈑鈔纉竇鈔蜴膽蝟昭粡竚癈鷭п粐Ь鰾纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗葹緕蒹蜩韭癨齒鶯繖蝴紜蜚蒹鹿粡寂蝟赱齠洲痲筵娼纃痺瘡蹙苳皷肅跂癆黼筱阡蒹鹿粡寂蝟赱齠洲痲筵娼粡齔赱跿齒葦悪磔蛹跛踞癨矼蜩韭癨繖鹿粡寂蝟赱齠洲痲筵娼矼肬鱚葦鵜磔蛹蜴黹緕粡鈑鰾纈纐緕蓖莠蝟昭粡竚癈鷭п粐Ь蒹硼鱚蓖泡踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳残蜥繝鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就a粐瘡槇槍篩踉薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■痲籬踉磔緕竢粡鈑▽苳餐粐糟釿閼蜴胼踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就a粐瘡紜槍篩踉濁奘鞳薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■痲粐纉竰蜷闔▽苳餐粐偵黹鱸頸蜿遉踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就a粐蜒闔▽苳餐粐父闔薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■痲粡竢鈞釿閼蜴腆槍簓竢鄲釿閼蜴胼踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就a粐蜒闔磔鞳▽苳餐粐父闔濁奘鞳薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■粤聲竢遐偵聲竢遉踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就f瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蒹痲纈釶辣▽苳使縺粤鯲瘢絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就i鈔纔蜃鈿鱚▽苳刺鈔纔芙鈿鱚薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蜴粤頸蜿銖▽苳刺鈔纔闔鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就i鈔纔闥粤鰾繙癜踉▽苳刺鈔纔粤鯆繙癜踉薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■鱚痲辣釶辣▽苳子縺粱緡瘢絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆瘡齒蓿繙就竢鱚譯關闔鵞闔鵙踉晒瓲苳瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹閼焙蜥譯粡鱚笏闥鈔纔▽苳残蜥繝鴒侮粤踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢装蜴粤吶髟纉剳纈葬苺辣銓鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹闌齒鶯蜴蒹痲纈纃黼踝纉鱚繻罩鱚聽鱚釿蜴膽蝟昭粡竚癈鷭п粐Ь纈跚鉉癆粐蒹闥髟纈關闔繽鰾纈蒹鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥跚齡蜴膊蒹鴒頸蜿銖鱚肬鴉鹿粡寂蝟赱齠洲痲筵娼黶逅惱戲踉晒黶逅纈黶逅悧踉晒黶逅闔閹踉雌瘢隍苳士瘢隍苳纂蝟昭粡竚癈鷭п粐Ь肅跂踉糸蹙苳士蹙苳氏辣踉雌瘢隍苳四瘢隍苳蛹赱齡鹿粡寂蝟赱齠洲痲筵娼纃勇踉晒纃閼蜀蜈籬踉雌瘢隍苳屍瘢隍苳蛹纃哘踉晒纃蝴紿闥鹿粡寂蝟赱齠洲痲筵娼黶逅彫踉晒黶逅肅跂踉糸蹙苳残蹙苳糸黹鱸頸蜿遘瘤黶逅戲踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼蜩鈬黶逅薦踉晒黶逅纃薦踉晒纃黹緕粡鈑闥踉雌瘢隍苳残瘢隍苳纂蝟昭粡竚癈鷭п粐Ь纃彫踉晒纃纉竇鈔蜴腥踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦緕頸蜿銖纈葹肅跂瘢癇繖綣蝟昭粡竚癈鷭п粐Ь闥鈑纖黼竢鈔癇諷蜩踞癨肅跂瘢絎怦緕鹿粡寂蝟赱齠洲痲筵娼肅跂瘢蜩黼闥磔纈蜩鈬繖畆蝟昭粡竚癈鷭п粐Ь繝闔籬鴒闥諷蜴竇蛹釶辣癇苺癇瘤繖矼鹿粡寂蝟赱齠洲痲筵娼蜻瘤齒蒹闥闥粤蜩釶轤蜃鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚蒹厂踉雌瘢隍苳肢雕纈鬯釶辣闖踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼頏閼纉蜥繝鴒鈔纔緕蒹闌跫鈑厂跛鹿粡寂蝟赱齠洲痲筵娼頏閼粡聿纈緕齒鶯鰾纈鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚黶逅蔗痕阨鬯黼鴟纈瘢絲肬鎭人縦瘢隍苳齒鶯綣蝟昭粡竚癈鷭п粐Ь蜥繝鴒赱齡閼蜀蜈籬粤黹緕粡鈑踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚黶逅蔗痕阨鬯黼鴟纈瘢絲肬鎭芯汁瘢隍苳齒鶯綣蝟昭粡竚癈鷭п粐Ь蜥繝鴒肅跂纉竰蜷闔癈竇鈔蜴膊薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌瘢隍苳肢雕纈鬯釶辣闖喀薦踉晒黶逅闥蒹鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥磔蛹皷癈竇鈔蜴膊薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍繞踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就i鈔纔闥粤鰾繙癜踉▽苳殺踉雌瘢隍苳刺鈔纔粤鯆繙癜踉瘢隍苳殺踉晒瓲苳鹿粡寂蝟赱齠洲痲筵娼黼粤聲粡鱚笏闥闥粤鱸鈑踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗踈癆蒹粡鱚笏闥跚齡蜴蜩鰾纈繖闔綣蝟昭粡竚癈鷭п粐Ь蜥繝闔癈竇鈔蜴闥纉竇鈔蜴腥鞜鶯蜒癇闌遯蒹鹿粡寂蝟赱齠洲痲筵娼跚鉉閹葹竢跿邇蒹鱚鴦纉跛阯闥鈑鹿粡寂蝟赱齠洲痲筵娼蜴蒹韶闢蜚粡鱚笏蜿磔葹黶辣闌隨鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痲籬踉釶辣就痲籬踉▽苳餐粐糟熙踉晒瓲苳粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳槍篩踉踉糸蹙苳雌蜴膽蝟昭粡竚癈鷭п粐Ь蛹絋踉晒纃纃肅跂蹙苳旨碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃鶯貅蝟昭粡竚癈鷭п粐Ь闢蜥繝鴒窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳侮粤鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩續瘡鴈癆粡齔赱肬肅跂蜴齡縺篌蝟昭粡竚癈鷭п粐Ь瘤竢遯闥踉氏鱚羹■聲釿鈔纔蜴腆那釿鈔纔蜴胼踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼纃鍋跂蹙苳蜩蛹纔銖蜿遯癇瘡蛹緕瘢絳蛹筬竅鰾鹿粡寂蝟赱齠洲痲筵娼纔頏纉皷闔胚跛蛹緕瘢肬肅跂纉竰蛯絎鹿粡寂蝟赱齠洲痲筵娼纃囈鱸鈑蹙苳蜩釿跫黼蜴阨碎髟阡纉竢粤▽踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼壽蜩踉纈釶纔蜩蜩韭癨繖竚蜈銓鷦蝟昭粡竚癈鷭п粐Ь轣艱釿瘰痰跂葹蜊瘍跫痲蜴粡黶碎繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮祷瘢韭纉墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼槍篩踉伉蕩粭鹿粡寂蝟赱齠洲痲筵娼槍篩踉衷逅鱚齠繖苞蜷鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痲籬踉磔緕竢粡鈑⊆蝟昭粡竚癈鷭п粐Ь瘢綵≡粐瘡釿閼蜴腆槍篩踉濁梼竢粡鈑蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑粐糟釿閼蜴膽蝟昭粡竚癈鷭п粐Ь踉糸蹙苳雌蜴揺妖釿閼蜴胼踉晒纃纃揺妖釿閼蜴胼踉晒纃歇蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃鶯貅蝟昭粡竚癈鷭п粐Ь闢蜥繝鴒窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳侮粤鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩續瘡鴈癆粡齔赱肬肅跂蜴齡縺篌蝟昭粡竚癈鷭п粐Ь瘤竢遯闥踉氏鱚羹■聲釿鈔纔蜴腆那釿鈔纔蜴胼踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼纃揺妖釿閼蜴胼踉晒纃跚竢銓緕緕竢粡鈑齦竏鷦蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳侍闕頏纉鵙踉晒黶逅纃囈鱸鈑蹙苳蜩釿跫黼蜴阨碎綣蝟昭粡竚癈鷭п粐Ь└踉祉閼絋苳拶閼絋苳皐壽蜩踉纈釶纔蜩蜩韭癨繖羲蝟昭粡竚癈鷭п粐Ь蒹跚緕蜩轣艱釿瘰痰跂葹蜊瘍跫痲蜴膽蝟昭粡竚癈鷭п粐Ь蜩痰跂筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼槍篩踉濁梼竢粡鈑苞蜷苞蜷鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痲籬踉磔鞳釶辣就痲籬踉磔鞳▽苳餐粐糟絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑粐糟纃齡鱸鈑鹿粡寂蝟赱齠洲痲筵娼揺妖絋踉晒纃纃揺妖絋踉晒纃踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜蜴粤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍黼蒹踉纈釶纔蜩韭癨闥蛹絳銖痲鹿粡寂蝟赱齠洲痲筵娼閹蜒闔肬蓿繙就f瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑蝟昭粡竚癈鷭п粐Ь踉糸蹙苳四浜鏑鞳蹙苳蜩瘡蜆闔銓絳癈鹿粡寂蝟赱齠洲痲筵娼黶逅讀踉晒黶逅纃囈鱸鈑蹙苳蜩釿跫黼蜴阨碎綣蝟昭粡竚癈鷭п粐Ь└踉祉閼絋苳拶閼絋苳皐壽蜩踉纈釶纔蜩蜩韭癨繖羲蝟昭粡竚癈鷭п粐Ь蒹跚緕蜩轣艱釿瘰痰跂葹蜊瘍跫痲蜴膽蝟昭粡竚癈鷭п粐Ь蜩痰跂筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼槍篩踉濁奘鞳墮國纔韭瘟郤蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡粐粤黹鱸頸蜿遐鹿粡寂蝟赱齠洲痲筵娼釶辣就痲粐纉竰蜷闔▽苳餐粐偵黹鱸頸蜿遉踉晒瓲苳粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳槍篦纉竰蜷闔鹿粡寂蝟赱齠洲痲筵娼纃‰蜴腆蛹纜粡鱚笏闥踉晒纃纃肅跂蜥繝鴒蹙苳旨碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃鶯貅蝟昭粡竚癈鷭п粐Ь闢蜥繝鴒窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳侮粤鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩續粤黹鱸頸蜿蜩韭癨闥蛹闥蜥繝鴒肬畆蝟昭粡竚癈鷭п粐Ь鱚羹■蜴粤頸蜿銖▽苳刺鈔纔闔那釿鈔纔蜴胼踉晒瓲苳皿蝟昭粡竚癈鷭п粐Ь踉糸蹙苳紙蛹纜粡鱚笏闥踉晒纃肅跂緕皷闔鞜鶯蛛肅跂釶辣鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥釶辣趙癇纔頏纉皷闔胚跛蛹緕瘢闥蜥繝鴒瘢絳蝟昭粡竚癈鷭п粐Ь闥蛹纉粡鱚笏闥蜈纉竰蛯絎踉糸蹙苳屍蜴胼踉晒纃緕竚闢繖鹿粡寂蝟赱齠洲痲筵娼粹跂└踉祉閼絋苳拶閼絋苳皐祷瘢韭綺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤槍篦纉竰蜷闔壽韭瘤續癇鵞鹿粡寂蝟赱齠洲痲筵娼繧蜒鶩轣鴦蜀閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹纉竰蜷闔蜈趙桶纉蜆絎闥磔轣矼鹿粡寂蝟赱齠洲痲筵娼痲粤蜀蒹蜥繝鴒竢鱚磔郤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳刺鈔纔闔鵙瘢雹鈞齔屍頏纉靡蝴絋踉晒竢粤瘤厩纉癨鹿粡寂蝟赱齠洲痲筵娼矼粐繖竢粤侮粤頸蜿銖逅試碵雹囎韶鱚齠戻齡酪粡肅繖閼絋苳纂蝟昭粡竚癈鷭п粐Ь蜴聿繝蒹蜆纉蜩闌竅矼纈繙闥換鹿粡寂蝟赱齠洲痲筵娼磔鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼蒼草痺蒹穐蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就i鈔纔關闔鷓粤黹鱸頸蜿鋏蜆▽苳残纉竰蜷闔怏糘荀踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳刺鈔纔闔鵙踉晒黶逅纖鰾跛阯粨蜩鹿粡寂蝟赱齠洲痲筵娼糘銷鰲蜚鱇鴒蝴絎鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉獅秩蜿邵纉竰蜷纔粤肅鈬鹿粡寂蝟赱齠洲痲筵娼黶逅槍篦纉竰蜷闔瘢隍苳轣竢銓瘟挽楊癇謨隱癈鹿粡寂蝟赱齠洲痲筵娼苴鈔葹鱇笏纈銓蜚蜈鶤糘閹蒹纉竰蜷闔鹿粡寂蝟赱齠洲痲筵娼竢跿邇蓖葹韶緕竅瘍艱繻纃緕癈鹿粡寂蝟赱齠洲痲筵娼笊蜴閹緕閹闌粤韆鱇黼蒹纉癨聿繝蝟昭粡竚癈鷭п粐Ь蒹纉閹蒹蜥繝鴒蜩鈑鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痲粡竢遐瘢綵≡粐蜒闔▽苳餐粐父闔蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑粐父闔踉糸蹙苳脂竢郤蝟昭粡竚癈鷭п粐Ь瘢絋踉晒纃纃釶辣蹙苳旨碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃鶯貅蝟昭粡竚癈鷭п粐Ь闢蜥繝鴒窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳侮粤鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩續蜒闔粡齔赱鈬肅跂鈔蜴蜴鹿粡寂蝟赱齠洲痲筵娼纃釶辣蹙苳肬蓿繙就f瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑蝟昭粡竚癈鷭п粐Ь踉糸蹙苳刺竢遉踉晒纃繪纈キ纉竅鞳筴繻癆蝟孀蒹竢遯鹿粡寂蝟赱齠洲痲筵娼闥肬鴉癆纃瘡纔熙踉晒纃踉糸蹙苳歯鳰蹙苳皐蒹鱚鹿粡寂蝟赱齠洲痲筵娼纃瘡纔熙踉晒纃瘍蝟緕闥蜒闔闥鹿粡寂蝟赱齠洲痲筵娼鈿遶苒瘰蓍竅碣阯黼鴦踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮纃令辣蹙苳蜩蜚蒹湎追凖痴碗掵肬粡鱚笏闥蜈鵺鹿粡寂蝟赱齠洲痲筵娼湎駄僧防地涙肬碎瘤跚鈬肬鴉癆蒹蜩竢鴪繝畆蝟昭粡竚癈鷭п粐Ь蛹纔銖蜿遯蛹粃癇纔頏纉皷闔鞜鶯蛛肅跂釶辣畆蝟昭粡竚癈鷭п粐Ь闕韭續肅跂釶辣祷瘢韭纉墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐粐父闔浜葱竢銖轣艱荻芍罘芍韃韲胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь槍簓竢竢銖蜥蜀淞敏澱塹燮湎碣鹿粡寂蝟赱齠洲痲筵娼粐父闔蜒闔鶩矚站蜀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹■痲粡竢鈞紜槍簓竢鄲絋踉晒瓲苳鼈阨趙繖郤蝟昭粡竚癈鷭п粐Ь鱚聽鱚釿粐父闔緕闢皷碎絎蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≡粐蜒闔磔緕竢粡鈑⊆蝟昭粡竚癈鷭п粐Ь瘢綵≡粐蜒闔磔緕竢粡鈑▽苳餐粐父闔濁梼竢粡鈑蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑粐父闔濁梼竢粡鈑鹿粡寂蝟赱齠洲痲筵娼纃蜒闔浜鏑緕竢粡鈑蹙苳昿踉糸蹙苳四浜鏑緕竢粡鈑蹙苳旨碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃鶯貅蝟昭粡竚癈鷭п粐Ь闢蜥繝鴒窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳侮粤鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩續蜒闔粡齔赱鈬肅跂鹿粡寂蝟赱齠洲痲筵娼纃揺妖釿閼蜴胼踉晒纃闥踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就f瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑纃父闔蹙苳蜩鹿粡寂蝟赱齠洲痲筵娼繪纈キ纉竅鞳筴繻癆蝟孀蒹竢遯閹蒹闥轣蝟昭粡竚癈鷭п粐Ь纃瘡纔熙踉晒纃踉糸蹙苳歯鳰蹙苳皐蒹鱚踉糸蹙苳氏踉蹙苳蜩蒹鹿粡寂蝟赱齠洲痲筵娼瘍蝟緕闥蜒闔闥闔鱇韆蜒瘡鳫纈鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉糸蹙苳四蜊絖緕竢粡鈑蹙苳蜩蛹粃癇纔頏纉皷闔癆竏蜴膽蝟昭粡竚癈鷭п粐Ь繿鱚竢銓緕緕竢粡鈑祷瘢韭纉墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐粐父闔濁梼竢粡鈑蜒闔鶩竢逅鱚齠繖蜀鹿粡寂蝟赱齠洲痲筵娼竢逅鱚齠閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痲粡竢鈞紜鹿粡寂蝟赱齠洲痲筵娼釶辣就痲粡竢鈞紜槍簓竢鄲絋踉晒瓲苳粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳槍簓竢鄲纃蜒闔鹿粡寂蝟赱齠洲痲筵娼揺妖絋踉晒纃纃揺妖絋踉晒纃踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜蜴粤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍黼蒹竢蜩韭癨纔蛹纉鞳鹿粡寂蝟赱齠洲痲筵娼纃揺妖絋踉晒纃闥踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就f瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑纃父闔蹙苳蜩鹿粡寂蝟赱齠洲痲筵娼繪纈キ纉竅鞳筴繻癆蝟孀蒹竢遯閹蒹闥轣蝟昭粡竚癈鷭п粐Ь纃瘡纔熙踉晒纃踉糸蹙苳歯鳰蹙苳皐蒹鱚踉糸蹙苳氏踉蹙苳蜩蒹鹿粡寂蝟赱齠洲痲筵娼瘍蝟緕闥蜒闔闥闔鱇韆蜒瘡鳫纈鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉糸蹙苳四蜊絖鞳蹙苳蜩蛹粃癇纔頏纉皷闔癆竏蜴膽蝟昭粡竚癈鷭п粐Ь繿鱚迚辣纉祷瘢韭纉墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐粐父闔濁奘鞳浜葱竢銖轣艱凱芍罘轣艱閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就粤聲竢遐瘢綵≫繙癜踉蜒闔▽苳残繙癜踉父闔鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳偵聲竢郤蝟昭粡竚癈鷭п粐Ь踉糸蹙苳歯鳰蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜蜴粤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹繙癜踉父闔蜥繝續蜒闔粡齔赱肬肅跂鷦蝟昭粡竚癈鷭п粐Ь蒹鈿鞳竕肅蜒闔謗阯遯闥踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就f瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑纃將讀踉晒纃畆蝟昭粡竚癈鷭п粐Ьキ纉竅鞳筴繻癆蝟孀蒹竢隨逅跂鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤偵聲竢竢遲謗阯隨蹙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏∽瘤笙蜴粤鈑⊆蝟昭粡竚癈鷭п粐Ь瘢綵∽瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑瘤笙侮粤鈑鹿粡寂蝟赱齠洲痲筵娼闔聿碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃鶯貅蝟昭粡竚癈鷭п粐Ь闢蜥繝鴒窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳侮粤鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽那釿鈔纔蜴粡鱚笏蝟黼蒹瘤笙侮粤鈑頸蜿郤蝟昭粡竚癈鷭п粐Ь闥蜥繝鴒壽蓿繙就i鈔纔關闔鵞侮粤頸蜿銖鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟鼈阨趙繖頏繙纈緕竇踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳士阡癆鴦蜿銖草痺蒹鱸闥窺凱岡蒹鹿粡寂蝟赱齠洲痲筵娼黶逅那釿鈔纔蜴胼踉晒黶逅鈔踉雌瘢隍苳刺鈔纔闔鵙踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉蛹阮纈鱸粤痺阡蒹鬯阨蓖綣蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳刺鈔纔闔鵙瘢雹鈞齔仔瘤笙侮粤鈑瘢隍苳蜴鱚聽鱚釿鹿粡寂蝟赱齠洲痲筵娼齡瘤籬跫鈬踉雌瘢隍苳仔瘤笙侮粤鈑瘢隍苳粡鱚笏蝟絎閹鹿粡寂蝟赱齠洲痲筵娼草痺蒹齡瘤籬跫鈬踉雌瘢隍苳仔瘤笙侮粤鈑瘢隍苳纂蝟昭粡竚癈鷭п粐Ь蜥繝竢轤蜴繖蜚瘤黶逅侮粤頸蜿銖瘢隍苳纂蝟昭粡竚癈鷭п粐Ь蜥繝跼縺糯鞳竕肅繖闥蒹鱚銓竢鞳踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏∵縺粤鴈瘢紜瘢綵∵縺粤鴈瘢紜斐痲纈令辣鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳斐痲纈令辣鹿粡寂蝟赱齠洲痲筵娼纃肅跂釶辣蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜蜴粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑闕聽癆纉鹿粡寂蝟赱齠洲痲筵娼闔踟蛹痰跂胄纈黼蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽斐痲纈令辣蜥繝續釶辣肅跂葹跛鹿粡寂蝟赱齠洲痲筵娼矼銖纈癆蒹關蜴粤跚齡蜴膊踉糸蹙苳仔蛹緕瘢絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼蜩蒹瘢閹蒹蛹釿跿粤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鹿粡寂蝟赱齠洲痲筵娼纃鍋跂釶辣蹙苳蜩鱚癆繖孀鞜繻癆蝟蒹鹿粡寂蝟赱齠洲痲筵娼闔繖痺竇齠蒹蜥繝鴒繪鈑鈔纔繖麗葹蜩鹿粡寂蝟赱齠洲痲筵娼辣瘤癆纃鍋跂釶辣蹙苳齡癇蜚鼬癈茗跛綣蝟昭粡竚癈鷭п粐Ь瘠緕矼繻癆蝟蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯粹笊辣銓鳫阡▽苳残閭緕闖熙踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉糸蹙苳仔蛹緕瘢絋踉晒纃蝟昭粡竚癈鷭п粐Ь纉闌粹笊辣銓蜚轣褊竢銓緕鞳羲蝟昭粡竚癈鷭п粐Ь黶逅瘢隍苳拶纃絎膊蹙苳錆踉雌瘢隍苳飼纔蔗迪瘢隍苳錆鹿粡寂蝟赱齠洲痲筵娼黶逅赱蜴瘢隍苳錆踉糸蹙苳糸踉晒纃蓍辣瘤癆鹿粡寂蝟赱齠洲痲筵娼纃肅跂釶辣蹙苳轣鱚聽派竰蜷蜀蒹竰蜷鷦蝟昭粡竚癈鷭п粐Ь笏肅跂關竟黼頤轣鳬繖鷦蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳飼纔蔗迪瘢隍苳齦竏蜥繝蜍綺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼槍簫芍鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼蓿繙就闔銓繚阡蛛闔譬衷銓緕鈬苡癆蜿遉踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蛹矼纈肬鴉繖黶逅藍踉蛄蜈瘢隍苳畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪o頸蜿銖▽苳誌頸蜿遉踉晒瓲苳蜩釶碎繖膚鹿粡寂蝟赱齠洲痲筵娼纃肅跂釶辣蹙苳鱚齒踝纉齡癆蜒踉雌瘢隍苳飼纔蔗迪瘢隍苳纂蝟昭粡竚癈鷭п粐Ь閭緕阡派竰蜷鈔蒹踉雌瘢隍苳刺釿跿粤鵙踉晒黶逅踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯關闔鵞關闔緕痰跂筱蒹蛹跛鹿粡寂蝟赱齠洲痲筵娼矼鳫竇齠繖闥纈鬮皷粤釿跿粤繞蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖蜴竚絎蔗迪▽苳殺踉雌瘢隍苳詩閼煢釿跿粤瘢隍苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь閭緕闔鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺肅跂鞳竕肅繖黶逅斐痲纈令辣瘢隍苳竢銓瘟銖鹿粡寂蝟赱齠洲痲筵娼矼芍銕蜴苴瘤塒粹笊辣銓逅詞挽楊逅紫逅詞氾祖逅紫蝟昭粡竚癈鷭п粐Ь緕阨蛹頏閧痰踟瘤續踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就i鈔纔關闔鷓齦韶鱚齠蔗迪頏縺轤跂▽苳殺踉雌瘢隍苳刺鈔纔闔鷦蝟昭粡竚癈鷭п粐Ь囎韶鱚齠挽楊會縺轤跂瘢隍苳殺踉晒瓲苳錆癆蒹黼瘍癇鈿蝟昭粡竚癈鷭п粐Ь辮縺筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑草痺蒹鈔癇跚纈墾踉晒齡鳫鈑蒹閼肅鴦蝟昭粡竚癈鷭п粐Ь纃頸釿跿粤踉糸蹙苳紙蛹緕瘢絋踉晒纃竢粤讀踉晒竢粤瘤鹿粡寂蝟赱齠洲痲筵娼挽楊閭緕纈黼跛鴒蜴竚綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳紙蛹緕瘢絋踉晒纃韭瘟纃鍋跂釶辣蹙苳蜩鱚癆繖鹿粡寂蝟赱齠洲痲筵娼癈蛹纉鞜繻癆蝟蒹蜥繝鴒繪鈑鈔纔繖蝟昭粡竚癈鷭п粐Ь鈿癈蜩喇鳫竇齠蜴粹鈬祷瘢韭綺蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳使縺粤鯲瘢氾祖賭閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼緕鈔纔蜴粡鱚笏闥竢粤繧閼絋苳錆蒹纈鮗蝟昭粡竚癈鷭п粐Ь蛹肅鴦跫闍闥蒹塒肅跂鹿粡寂蝟赱齠洲痲筵娼竢粤繧伝津勳蔗迪閼絋苳瘤蜴竚蜚肬筱鹿粡寂蝟赱齠洲痲筵娼阡蒹鵄蜩蜚蛹蜴竚韭瘟蛹綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳晒皴氾祖賭閼絋苳錆蜚齡鶤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆瘡齒踉氏鱚羹■鱚痲辣釶辣▽苳子縺粱緡瘢絋踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蜴粤芬闥紜瘢綵∫鈔纔蜃鈿鱚▽苳刺鈔纔芙鈿鱚鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳侮粤芬闥綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳紙蛹絋踉晒纃纃肅跂蹙苳旨碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃鶯貅蝟昭粡竚癈鷭п粐Ь闢蜥繝鴒窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳侮粤鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽侮粤芬闥粡鱚笏蝟痲糂跚齡肅跂蜆綣蝟昭粡竚癈鷭п粐Ь蒹跚齡蜴粡鱚笏闥踉糸蹙苳仔蛹絋踉晒纃肅跂緕皷闔蝟昭粡竚癈鷭п粐Ь癇瘡蛹緕瘢絳蛹粃癇纔頏纉皷闔胚跛蛹緕瘢肬鮗蝟昭粡竚癈鷭п粐Ь蛹纉蜃鈿鱚藍踉蜷跂鈔纔芙鈿鱚蜥繝痲蒹鹿粡寂蝟赱齠洲痲筵娼跚齡鱇纈葹鱚韭痺蜴跚齡蜃鈿鱚肅跂鶤蝟昭粡竚癈鷭п粐Ь繙癜踉跚齡闔蜴爨踉祉閼絋苳皿閼絋苳薩祷瘢韭綺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤侮粤芬闥凖祖妖蔗痺竇齠踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏∫鈔纔關闔鵞瘢綵∫鈔纔關闔鵞侮粤頸蜿銖鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳侮粤頸蜿銖鹿粡寂蝟赱齠洲痲筵娼纃關闔蹙苳昿踉糸蹙苳誌頸蜿遉踉晒纃鞜竏窺凱瘤篌蝟昭粡竚癈鷭п粐Ь癇跚纈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑鈔纔闔鷦蝟昭粡竚癈鷭п粐Ь纃關闔蹙苳栩纃關闔蹙苳旨草痺蒹鹿粡寂蝟赱齠洲痲筵娼瘤赱鬧踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜蜴粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑瘤篌蝟昭粡竚癈鷭п粐Ь纈芍鈑逡踉蜷跂踉雌瘢隍苳刺鈔纔闔鵙踉晒黶逅蜥繝蜩鹿粡寂蝟赱齠洲痲筵娼闔踟蛹痰跂蜚草痺蒹鈔癆纈綣蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳仔闌粤鴦鍋鴦熙踉晒黶逅鈔踉雌瘢隍苳残纉竰蜷闔怏糘荀踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼關闔癇闔踟蛹痰跂蜚草痺蒹瘤赱鮖蒹鹿粡寂蝟赱齠洲痲筵娼黶逅夸痺詬閼蜀蜈筅踉晒黶逅頸蜿蜩鉤癘瘟赱碎鞜竏綣蝟昭粡竚癈鷭п粐Ь瘤赱鮖蒹踉雌瘢隍苳刺芬闥綯癈絋踉晒黶逅頸蜿蜩鉤蝟昭粡竚癈鷭п粐Ь蛹痰跂蜚草痺蒹瘤赱鮗蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽侮粤頸蜿銖蜥繝鞳竕肅纉蒹繹癘蜿閹蒹鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥蜴粤鈑纃闔蹙苳竅矼鈬网踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓粤黹鱸頸蜿鋏蜆⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓粤黹鱸頸蜿鋏蜆▽苳残纉竰蜷闔怏糘莉昿踉糸蹙苳試蹙苳纂蝟昭粡竚癈鷭п粐Ь└踉糸蹙苳餐鞜竏窺凱碓鈔癆纈蹙苳皐熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳市蒹踉雌瘢隍苳残纉竰蜷闔怏糘荀踉晒黶逅纖鰾跛阯鹿粡寂蝟赱齠洲痲筵娼齔繝蜀糘閹蒹纉竰蜷闔闌蜴葹鱇笏纈鶤羲蝟昭粡竚癈鷭п粐Ь蒹纖鰾瘡Е踉雌瘢隍苳鯖瘢隍苳薩緕蒹闌蜩鹿粡寂蝟赱齠洲痲筵娼癜轣竅跛皷蒹緕苳閹蒹闔艱齡蛹緕瘢蜴鹿粡寂蝟赱齠洲痲筵娼粡齔赱踉獅嚆黼笏蜿闔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a粐粤黹鱸頸蜿遐黶逅槍篦纉竰蜷闔瘢隍苳殺踉晒瓲苳肬鮗蝟昭粡竚癈鷭п粐Ь瘤艱鴦鉞纈緕蜴鴣釿癆蜴粤黹鱸頸蜿銖踉晒皃苳殺踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蜆就蜴粤頸蜿銖堺瘤笙蜴粤鈑⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓聲釿鈔纔蜴腆那釿鈔纔蜴胼踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼壽蜩銖聲釿蜴粤鈑粡鱚笏闥蜈鶤蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳士阡癆鴦蜿銖草痺蒹鱸闥窺凱岡鹿粡寂蝟赱齠洲痲筵娼黶逅那釿鈔纔蜴胼踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅侮粤頸蜿銖瘢隍苳粡鱚笏蝟纉蛹阮纈鱸粤痺莠蝟昭粡竚癈鷭п粐Ь纈搶鼈阨趙黼鹿粡寂蝟赱齠洲痲筵娼黶逅侮粤頸蜿銖逅試碵雹那釿鈔纔蜴胼踉晒黶逅郤蝟昭粡竚癈鷭п粐Ь鱚聽鱚釿蒹鈔瘡闔黶逅那釿鈔纔蜴胼踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絎閹鞜竏窺凱岡鈔瘡闔綣蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳仔瘤笙侮粤鈑瘢隍苳粡鱚笏蝟蜩闕砠鈬銷鹿粡寂蝟赱齠洲痲筵娼黶逅侮粤頸蜿銖瘢隍苳粡鱚笏蝟瘡鱚痲齔繝蜀蜈肬鮗蝟昭粡竚癈鷭п粐Ь蒹鱚銓竢鞳踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蜆就蜴粤頸蜿銖堺闌粤鴦肅鴦槇鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤頸蜿銖堺闌粤鴦肅鴦槇楠趙纈麁蜥齡薤苳餐鞜竏綣蝟昭粡竚癈鷭п粐Ь瘤赱鬢踉晒薤苳皐熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳刺蜩頸蜿蜩釶碎繖齦矮蜥繝鱸纉畆蝟昭粡竚癈鷭п粐Ь瘤笙侮粤跚齡蜴跛踉脂瘡韶縺肅鴦鹿粡寂蝟赱齠洲痲筵娼肬跛阯繖鈿鴉瘡蛹纉粡鱚笏闥蒹蜩鈑鷦蝟昭粡竚癈鷭п粐Ь癈蜒瘡踟鳫諷蜴闕竟鈬銓鵺蒹蛹纉鈔蒹鹿粡寂蝟赱齠洲痲筵娼齦矮蜥繝鱸纉瘤縺竏齒鶯繖辮癇癆繻瘤緕鹿粡寂蝟赱齠洲痲筵娼粡齔赱齦矮蜥繝鱸纉蜥齡楠蜴齡瘤竇蜀蒹闥蝟昭粡竚癈鷭п粐Ь鰾纈粤黹緕粡鈑釶辣瘤黶逅楠趙纈麁蜥齡瘢隍苳蜩鹿粡寂蝟赱齠洲痲筵娼緕痰跂筱粡鱚笏闥黶逅昴筅踉晒黶逅蛹矼蜩矼肬鱚鹿粡寂蝟赱齠洲痲筵娼齦矮蜥繝鴒踉雌瘢隍苳斬續瓲踉晒黶逅蜒跛跚齡繖繙闥綣蝟昭粡竚癈鷭п粐Ь闥轣肅跂黶逅煤迯瓲踉晒黶逅鈔踉雌瘢隍苳餐跟葹瘢隍苳皿鹿粡寂蝟赱齠洲痲筵娼皃苳市蓍關闔鉤葹瘤聿繝蜀踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就i鈔纔關闔鷓聲釿鈔纔蜴腆黶逅那釿鈔纔蜴胼踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼蜩踈緕痰跂筮筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓蜒闔蒹蜃蔗⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓蜒闔蒹蜃蔗▽苳刺竢酥繪艾署蝌繻黥鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳餐鞜竏窺瘤赱鬢踉晒纃踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼會纉緕竇蜩頸蜿遯蒹繖蜚父闔怏糘茗蛹竅綣蝟昭粡竚癈鷭п粐Ь蒹纈釿跿粤踉雌瘢隍苳使塗波圖踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅徂辻筈踉晒黶逅鱸碯蜴蒹踉雌瘢隍苳刺庸瘢隍苳肬鮗蝟昭粡竚癈鷭п粐Ь蒹蛹蜒闔壽蜩跛阯碣阯黼鱚竅趁癆鞜艱鹿粡寂蝟赱齠洲痲筵娼赱蜚蓖癘蜴瘟瘡蜊瘍纉癘矼緕鹿粡寂蝟赱齠洲痲筵娼跫痲繖膚跿蜩蝟緕闥蒹頸蜿遯粤聲鐚蝟昭粡竚癈鷭п粐Ь蒹鈔癇蒹蜃蔗蜒闔齦韶跚繖蜚草痺蒹鹿粡寂蝟赱齠洲痲筵娼齒胄鱚踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蜆就蜴粤頸蜿銖咲竢銖癇繻蜴謫⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓蜒闔黶鱚跚鉉鵞父闔鸛鱚也鉉鵙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼壽蜩瘠纉蒹竢銖癇閹蒹釿蓖肬肅跂釶辣肬鮗蝟昭粡竚癈鷭п粐Ь瘤笙鈔纔蜴膊筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓蜒闔糘茴鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤頸蜿銖咲竢鋏蜆▽苳刺竢釁蜆杤韈踈└踉糸蹙苳餐鞜竏綣蝟昭粡竚癈鷭п粐Ь鈔癆纈蹙苳皐熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鱚黼釿閹蓍關闔緕黼竢酥繪艾蛹貅蝟昭粡竚癈鷭п粐Ь癜黼蒹纈釿跿粤踉雌瘢隍苳使塗波圖踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅徂辻筈踉晒黶逅鱸碯蜴蒹踉雌瘢隍苳刺庸瘢隍苳肬鮗蝟昭粡竚癈鷭п粐Ь蒹蛹蜒闔壽蜩跛阯碣阯黼鱚竅趁癆鞜艱鹿粡寂蝟赱齠洲痲筵娼赱蜚蓖癘蜴瘟瘡蜊瘍纉癘矼緕鹿粡寂蝟赱齠洲痲筵娼跫痲繖膚跿蜩蝟緕闥蒹頸蜿遯粤聲鐚蝟昭粡竚癈鷭п粐Ь蒹鈔癇糘閹蒹竢銖韭蜈蒹鞜竏綣蝟昭粡竚癈鷭п粐Ь閹癇絎筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓蜃鈿鱚竅黼⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓蜃鈿鱚竅黼▽苳刺芬闥綯癈絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь纃草痺蒹瘤赱鬢踉晒纃踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐鹿粡寂蝟赱齠洲痲筵娼膚蓍關闔緕痰跂筱瘢纉鱚闥蜴癈絖蜴黼銖蜚蝟綣蝟昭粡竚癈鷭п粐Ь瘤鈬鬯楠蜴齡瘤竇蜀蒹闥闥粤蜩黹緕粡鈑釶辣蝟昭粡竚癈鷭п粐Ь鈔踉雌瘢隍苳刺芬闥綯癈絋踉晒黶逅緕痰跂筱蛹黶逅昴瘢隍苳纂蝟昭粡竚癈鷭п粐Ь蛹矼蜩瘋肅跂踉雌瘢隍苳氏趾瓲踉晒黶逅麗肅跂鹿粡寂蝟赱齠洲痲筵娼黶逅覗様薦踉晒黶逅蛹瘡跚齡繖繙闥肅跂鹿粡寂蝟赱齠洲痲筵娼黶逅艨迯瓲踉晒黶逅踉獅壽蜩頸蜿闔踟癈繙聽笏畆蝟昭粡竚癈鷭п粐Ь鱚羹■蜴粤頸蜿銖堺瘤笙蜴粤鈑▽苳殺踉雌瘢隍苳仔瘤笙侮粤鈑瘢隍苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь瘡齒釶碎繖踉晒皃苳殺踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蜆就蜴粤頸蜿銖作瘢纓蜆⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓釶辣糘茴令辣怏糘莉昿踉糸蹙苳試蹙苳鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳餐鞜竏窺凱瘤赱鬢踉晒纃踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐壽令辣怏糘諷闥瘡跫阨齔繝蜀糘閹鹿粡寂蝟赱齠洲痲筵娼肅跂釶辣闌蜴纉膚蒹纖鰾瘡鷦蝟昭粡竚癈鷭п粐Ь黶逅踉晒黶逅К蒹竢跿邇癜轣竅跛皷鹿粡寂蝟赱齠洲痲筵娼跂鈑跫鈑纉肅跂釶辣粡齔赱筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓黹瘤蔗迪纉⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓黹瘤蔗迪纉▽苳屍竅酥塒猛蜚跂鵙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼壽蜩釶碎纉蒹鱇笏蜿閹蒹蜚跂鳫挽楊閭緕鹿粡寂蝟赱齠洲痲筵娼肬聲釿蜴粤鈑膚蒹蛹粹纉阡癘粤黹鱸頸蜿郤蝟昭粡竚癈鷭п粐Ь蝟緕蓿繙就a粐粤黹鱸頸蜿遐槍篦纉竰蜷闔蒹郤蝟昭粡竚癈鷭п粐Ь鞣蛹鱚痲蒹閭緕肬跿閹蒹不姪瘍蝟昭粡竚癈鷭п粐Ь蓍蜩侖鈔蜩蜴銖蝟絎筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓齦韶鱚齠竢跿邇齒鶯蜴腆鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤頸蜿銖朔頏纉黹闌銖闥鈑▽苳屍頏纉鹵闌醵闥鈑熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь齔繝蜀蜈筱鞜竏跛阡瘠竢跿邇縺粡鈑蜴鹿粡寂蝟赱齠洲痲筵娼那釿鈔纔繖蜥繝鴒蜩鈑銓跚鉉肬齒鶯蜴膊蒹鹿粡寂蝟赱齠洲痲筵娼粤聲矼葹闥肬纃矼蜴謫黼跂笏蜴綣蝟昭粡竚癈鷭п粐Ь闌蒹痲蜴跛闥粡鱚笏闥跚齡蜴磔蒹瘡鷦蝟昭粡竚癈鷭п粐Ь癆闌隨踉雌闔胼苳始鉤癘瘟赱碎蜴鞜竏窺瘤篌蝟昭粡竚癈鷭п粐Ь癆纈踉晒齡鳫鈑筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓齦韶鱚齠粤黹鱸頸蜿遐鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤頸蜿銖朔頏纉黻纉竰蜷闔▽苳屍頏纉鹹纉竰蜷闔熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蓍跛頏纉肅跂纉竰蜷闔聲釿蜴粤鈑鹿粡寂蝟赱齠洲痲筵娼跚齡蜴苴濁繙癜踉鈿蛹粤黹鱸頸蜿銖鱚繙蜴繖瘤篌蝟昭粡竚癈鷭п粐Ь閹蓍關闔蛹鱚艨蜴竏癇痺鴦黹鱚緕鹿粡寂蝟赱齠洲痲筵娼齔痺黼闥闕續蓍鈑踈絎繞踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a粐粤黹鱸頸蜿遐黶逅槍篦纉竰蜷闔瘢隍苳殺踉晒瓲苳肬鮗蝟昭粡竚癈鷭п粐Ь鈕闥轣闔硼續鈑蒹蛹粤黹鱸頸蜿隨繞踈綣蝟昭粡竚癈鷭п粐Ь踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就i鈔纔關闔鷓粤黹鱸頸蜿鋏蜆▽苳殺踉雌瘢隍苳残纉竰蜷闔怏糘荀踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼蜴粤關闔跚迚皷粤黹鱸頸蜿郤蝟昭粡竚癈鷭п粐Ь闌隨筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓齦韶鱚齠蔗迪頏縺轤跂⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓齦韶鱚齠蔗迪頏縺轤跂▽苳屍頏纉麋塒茂鱚瘢碎絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь纃草痺蒹鈔癆纈蹙苳皐熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь粡鱚笏闥痺瘡踟闔蜴肅跂鞳竕肅繖畆蝟昭粡竚癈鷭п粐Ь鱚羹■蒹痲纈釶辣▽苳使縺粤鯲瘢絋踉晒瓲苳粡鱚笏蝟絳蒹閼綣蝟昭粡竚癈鷭п粐Ь齦瘡踟釿跿粤竢銓緕肅跂胄纈鈔癇篌蝟昭粡竚癈鷭п粐Ь塒頏縺轤跂逅詞挽楊逅紫逅詞氾祖逅紫纃續鹿粡寂蝟赱齠洲痲筵娼竇鱇蹙苳皐壽囎韶鱚齠挽楊會縺轤跂頸蜿粡黶碎纉蓍鷦蝟昭粡竚癈鷭п粐Ь繹癘蜿鬪癜皷鈑蒹閼鶯蒹蜩韭癨蜚綣蝟昭粡竚癈鷭п粐Ь縺粤肅跂闔銓鶤蒹縺粤肅跂竢銓瘟郤蝟昭粡竚癈鷭п粐Ь韶鳫頏蛛塒蜴齡鴣笏蜿銖蜩癈絎纈蜩鐚蝟昭粡竚癈鷭п粐Ь縺粤肅跂頏縺轤跂艱鈬鱇癈齦瘡踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蜆就蜴粤頸蜿銖朔頏纉鼬癈閼蜀蜈笄鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤頸蜿銖朔頏纉鼬癈閼蜀蜈笄囎韶鱚齠戻齡酪粡肅繖熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蓍跛頏纉粡齔赱閹蒹癈迴粡肅竅闔癆絳鹿粡寂蝟赱齠洲痲筵娼蜴瘤笙鈔纔蜴跚齡蜴苴踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘蜆就蜴粤頸蜿銖朔頏纉齠蝴紜鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤頸蜿銖朔頏纉齠蝴紜囎韶鱚齠嚔熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蓍跛頏纉肅跂蝴蜴瘤笙鈔纔蜴膽蝟昭粡竚癈鷭п粐Ь蜩鈑鶤筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓痺謐閼蜀蜈笄鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤頸蜿銖柵鱇站迴粡肅繖▽苳市鱇站酪粡肅繖纃草痺蒹鹿粡寂蝟赱齠洲痲筵娼窺凱欝鈔癆纈蹙苳皐熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蓍鱚鴈戻齡閼蜀蜈瘤都瘍瘡肬跚齡繖鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥蜴蒹墺蒹痲纈部闔踟瘡蜆綣蝟昭粡竚癈鷭п粐Ь鞳鱇鈑瘤肅跂鱚鴈繚蜚蜊癆齡癆┤鹿粡寂蝟赱齠洲痲筵娼鱚齦踉鶤闢寰蝌逑齒癈腕翁米瘤怏邀翁鷦蝟昭粡竚癈鷭п粐Ь堝跿辣鶤啣鈔蜴害壮闌纉肬纔瘢韭絳鈿鹿粡寂蝟赱齠洲痲筵娼竇蓍聽癆蜩釶碎繖竚蜈銓頏陂竅痺觴蝟昭粡竚癈鷭п粐Ь葹鈑纉跚齡肅跂緕蒹鞳鱠闥氾祖鹿粡寂蝟赱齠洲痲筵娼鱚髟纉阡齒辣鞳鱇鈑逑闥鱚笏踟鱇站纓鈔鹿粡寂蝟赱齠洲痲筵娼鱚迴肅跂鵺鈿痺竏瘤艱肬皷闥癆纉羲蝟昭粡竚癈鷭п粐Ь蒹蛹纉蜚蓍粡鱚笏闥筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鱚鱚闕鈿竇痰跂蜀聽鱚釿纉矼葹闥羲蝟昭粡竚癈鷭п粐Ь蓍粡鱚笏蝟蜴繝緕闢窺凱逢纈皷闔閹鞜竏絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粲鹿粡寂蝟赱齠洲痲筵娼糘草痺蒹鈔癇跚纈墾踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹繙癜踉癆關闔癇緕痰跂筮逡踉蜷跂鹿粡寂蝟赱齠洲痲筵娼侮粤頸蜿銖阨趙韶踟粡鱚笏闥蒹迴齡鹿粡寂蝟赱齠洲痲筵娼齔繝蜀蜒鈬諷竢逅跂關闔癇鈿辣鱧繖蝟昭粡竚癈鷭п粐Ь闥逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼逅詞堤鱚笏闥繧閭鵙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь鈔纔闔那釿鈔纔蜴膽蝟昭粡竚癈鷭п粐Ь瘢雹踉晒堤鱚笏闥瘢雹苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉残蜥繝鴒皴粹笂鞳礒瘢雹苳纂蝟昭粡竚癈鷭п粐Ь鈔纔闔噬瘤挽楊夂纉鹿粡寂蝟赱齠洲痲筵娼逅詞蜥繝鴒逅紫鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蒹闔踟踉祉閼絋苳屍竅酥塒猛蜚跂鵙踉晒竢粤蛹矼續闥蒹鹿粡寂蝟赱齠洲痲筵娼繧閭鶩齔繝蜥繝鴒蝟昭粡竚癈鷭п粐Ь踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘草痺蒹鈔癆纈墾踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏窺凱蜴閼繖闕皷芬蜀蜒瘤竏瘤艱蜴蒹鹿粡寂蝟赱齠洲痲筵娼葹鈔跚鈑黶逅侮粤頸蜿銖瘢隍苳粡鱚笏蝟纉侮鹿粡寂蝟赱齠洲痲筵娼鞜鶯蜒癇踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳四韭黶逅侮粤頸蜿銖瘢隍苳粡鱚笏蝟纉闥鹿粡寂蝟赱齠洲痲筵娼皷鈑跂蜥繝鴒鱚阯纈艱艱纈壽鱚齦踉羲蝟昭粡竚癈鷭п粐Ь蒹逅跂硼蛹鈿矼蒹髟蝟瘡緕閹鹿粡寂蝟赱齠洲痲筵娼竢粤侮粤頸蜿銖逅試碵雹那釿鈔纔蜴胼瘢雹鈞齔屍竅酥塒猛蜚跂鵙踉晒竢粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽痲粡闔蜴竰纃緕齷銓癢鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳脂踉晒纃頏繙蝌蜴諷闥糂蜚Й闥薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蒹鈬Й闥鱚肅諷闥蜩釿阨銓纈繖蝟昭粡竚癈鷭п粐Ь蜩韶跚繖笊鴪緕黶逅侮粤頸蜿銖瘢隍苳纂蝟昭粡竚癈鷭п粐Ь續鈑蓍竏癨癘矼緕鉞纈蜚繖鳫瘤韶纈纐繻鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥被鬪蒹鈬瘤鉋鱚肅諷闥蜩鹿粡寂蝟赱齠洲痲筵娼頏閭纉黼筱竚縺鴦跛鉞纈蜚繖頸蜿銖鈔銷鹿粡寂蝟赱齠洲痲筵娼蜴竰纃緕黼蜴苴釿阨銓纈繖聲鬯闔皷粤綣蝟昭粡竚癈鷭п粐Ь闌跫鈑逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳刺鈔纔闔竅酥塒猛蜚跂竢銖葬緻蜴謫鹿粡寂蝟赱齠洲痲筵娼那釿鈔纔蜴胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь侮粤頸蜿銖囎韶鱚齠嚔碣鹿粡寂蝟赱齠洲痲筵娼閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹續聿繝蜩髟蝟瘡緕鹿粡寂蝟赱齠洲痲筵娼竢粤侮粤頸蜿銖逅試碵雹那釿鈔纔蜴胼瘢雹鈞齔捌囎韶鱚齠嚔閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼矼竅頏繙蝌繖踉祉閼絋苳仔瘤笙侮粤鈑閼絋苳粡黹癇粤篌蝟昭粡竚癈鷭п粐Ь蒹釿鱚辣銓瘡纖鰾矼肬鱚跛阯繖蒹鹿粡寂蝟赱齠洲痲筵娼齡癇痺笊逡赱鈑艨蜴胄纈鰾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮夬釿闔粡闔瘡踟續蒹踉祉閼絋苳刺鈔纔闔鵙踉晒竢粤闥鹿粡寂蝟赱齠洲痲筵娼鞜鶯蜒癇蜥繝鴒竚縺鱸鈑蒹鉞纈蜚繖續鈑鵺鹿粡寂蝟赱齠洲痲筵娼齔繝蜀諷闥糂蜚蓖蜚蒹Й闥鱚肅鶤鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蜴粤鰾纈粤聲槇鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤鰾纈粤聲槇侮粤鰾纈偵聲熙踉晒瓲苳粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳侮粤鰾纈偵聲蝟昭粡竚癈鷭п粐Ь黹緕粡鈑纉竇鈔蜴令辣癆纜嚔纉竰蜷闔踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳侮粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼焉濶鈔纔踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь鈔纔粤鯆繙癜踉闔踟蛹痰跂草痺蒹鈔癆纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉雌瘢隍苳刺鈔纔粤鯆繙癜踉瘢隍苳粡鱚笏蝟蜩黼蜴鹿粡寂蝟赱齠洲痲筵娼竢轤蜴癆蜿蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就i鈔纔關闔鷓聲釿鈔纔蜴腆黶逅那釿鈔纔蜴胼踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼蜴粤關闔濁繙癜踉聲釿鈔纔繖蜥繝鴒蜩鈑癇綣蝟昭粡竚癈鷭п粐Ь蜩韭癨繖癈竇鈔蜴闥粤磔蛹緕瘢綮蒹鹿粡寂蝟赱齠洲痲筵娼黶逅侮粤鰾纈偵聲熙踉晒黶逅跛阯葹鈑蜩鹿粡寂蝟赱齠洲痲筵娼蜴蜚蛛粡齔赱闥粤鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌瘢隍苳刺鈔纔粤鯆繙癜踉瘢隍苳諷癇苺辣銓鶤蒹鹿粡寂蝟赱齠洲痲筵娼肅鴦逡齡繪纈踉雌瘢隍苳餐黹緕粡鈑瘢隍苳闥鹿粡寂蝟赱齠洲痲筵娼黶逅偵黹緕粡鈑瘢隍苳錆鈔蜒癆蜴粡鱚笏蜿閹蒹闥鹿粡寂蝟赱齠洲痲筵娼壽黼竢鈔鱧緕逡齡闔閹蒹纖鰾鷦蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳士瘢絋踉晒黶逅黶逅鶴瘢隍苳錆踉雌瘢隍苳屍蝴絋踉晒黶逅闥鹿粡寂蝟赱齠洲痲筵娼黶逅偵黹鱸頸蜿遉踉晒黶逅瘤蜆緕肅纉蒹鱸轣鴒纖壽綣蝟昭粡竚癈鷭п粐Ь繝闔籬鴒纖纃瘡蹙苳癈竇鈔蜴肅跂釶辣踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮搶竅肬鱆粡鱚笏闥跚齡蜴鉤矼蜩韭癨繖畆蝟昭粡竚癈鷭п粐Ь癇笊赱闥粤磔闕砠鉗鈑蓍粡鱚笏蝟蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就i鈔纔關闔鷓齦韶鱚齠竢跿邇齒鶯蜴腆黶逅囎韶鱚齠衷跿邇囂鶯蜴胼踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼蜴粤關闔蜩蛹頏纐緕竚蜈銓鳫鱚髟纉鈑蒹鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥跚齡蜴蜴蜀聽鱚銓鰾纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏Å縺粱緕瘢紜瘢綵Å縺粱緕瘢紜吶痲辣令辣鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳吶痲辣令辣鹿粡寂蝟赱齠洲痲筵娼纃肅跂釶辣蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖癜蜴粤碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑闕聽癆纉鹿粡寂蝟赱齠洲痲筵娼闔踟蛹痰跂胄纈黼蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽吶痲辣令辣蜥繝續釶辣肅跂葹跛鹿粡寂蝟赱齠洲痲筵娼矼韶緕粤蒹鈔蜴粤跚齡蜴膊踉糸蹙苳仔蛹緕瘢絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼蜩蒹瘢閹蒹蛹釿跿粤瘤蜩瘠緕矼繻癆蝟綣蝟昭粡竚癈鷭п粐Ь跫竅闔繪鈑鈔纔繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳市蒹踉糸蹙苳紙蛹緕瘢絋踉晒纃鱧緕蜩鱚癆繖齡鹿粡寂蝟赱齠洲痲筵娼肅跂釶辣草痺蒹鈔癇跚纈瘤癈繻癆蝟孀票蝟昭粡竚癈鷭п粐Ь赱鴦蜿銖偵蛹閹阯蜩瘤粲繖癨肬篌蝟昭粡竚癈鷭п粐Ь鈔纈蒹纉竰蜷闔畆蝟昭粡竚癈鷭п粐Ь鱚羹■蒹痲纈釶辣▽苳使縺粤鯲瘢絋踉晒瓲苳粡鱚笏蝟絳蓍竏黼綣蝟昭粡竚癈鷭п粐Ь瘢辣竏瘤蜩瘤竏瘤艱癆蒹瘢辣鷦蝟昭粡竚癈鷭п粐Ь縺粱緡瘢絎闔胼苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍繞踈蓿繙就h縺粤鴈瘢紜斐痲纈令辣踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焉濶鈔纔谺蔗迪閭鶩轣銛瘡閼閼焉濶鈔纔谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭慌眼繝粤鯵錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖癜蜴粤蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼焉濶鈔纔谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就迴籖癜蜴粤蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖癜蜴粤蔗迪甌裼皴蔗粹笂瘤豁迴箝迴籖癜蜴粤蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握邃延恒過下碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼焉濶鈔纔谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖癜蜴粤蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯拘誓鹿粡寂蝟赱齠洲痲筵娼据迪纈皷闔就窺唖釿閼蜴臀∫齒芦沖褓⊃鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖癜蜴粤踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩鱚皷闔窺亀苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬酪糒跂閼焉濶鈔纔右苳纂蝟昭粡竚癈鷭п粐Ьぢ暗縫妊譽肇蠅離ぅ鵐妊奪垢鮑遒覽’修鯆鷆,垢襯皀献紂ル。 + + <p><a href="module-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪S阨鱆綟蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖癜蜴粤礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪M閼緝粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + autoindex_module</p> + + <h2>概要</h2> + + <p>ディレクトリのインデックスは二つの霾鷂擦里逅擦舛鹿粡寂蝟赱齠洲痲筵娼一つから生成できます:</p> + + <ul> + <li>普通は <code>index.html</code> と呼ばれる + ユ・踉札兇砲茲辰峠颪譴織侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖粡鬯蔗迪d蜥繝鴒蜴粤堤鱚笏闥鈔纔鹿粡寂蝟赱齠洲痲筵娼ディレクティブでこのファイル巳苳擦鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼これは <a href="../mod/mod_dir.html"><code>mod_dir</code></a>で + 制御されます。</li> + + <li>もしくは、サ・踉札个砲茲辰得言気譴唇賤鹿粡寂蝟赱齠洲痲筵娼その側苳擦離妊譽謄屬任海琉賤僚颱踉三を制御します。 + <a href="#addicon">AddIcon</a>, <a href="#addiconbyencoding">AddIconByEncoding</a> と + <a href="#addiconbytype">AddIconByType</a> + を使う瘢雹ことで、様々なファイルタイプに対してアイコン一覧を + セットします。つまり、リストされたファイル毎に、 + ファイルにマッチした一番最初のアイコンが表┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼これらは <a href="../mod/mod_autoindex.html">mod_autoindex</a> で制御されます。</li> + </ul> + <p>胞苳擦爐覆蕕弌▽踉捌動インデックス生成を完全に除去 (あるいは置換) + できるよう瘢雹に、この二つの機能は分離されています。</p> + + <p>哀ぅ鵐妊奪浩言踉祉閼絋苳始頸蜿銖侮粤鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を使う瘢雹ことで有効になります。楮戮砲弔い討蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪o頸蜿銖▽苳始頸蜿銖鹿粡寂蝟赱齠洲痲筵娼ディレクティブをご覧王踉擦気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢもし <a href="fancyindexing"><samp>FancyIndexing</samp></a> オプションが + 有効になっているか、 + <a href="../mod/autoindex.html#indexoptions"><samp>IndexOptions</samp></a> + ディレクティブに <samp>FancyIndexing</samp> が与えられているならば、 + 列の先頭は表┐僚臠屬鮴罎垢襯螢鵐砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼先頭のリンクを選択すると、一覧は再生成されて + その列の値でソ・踉札箸気譴泙后鹿粡寂蝟赱齠洲痲筵娼同じ先頭を続けて選択すると、交互に砂腓塙濬腓箸砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳拶嚔でソ・踉札箸靴職苳詞合は、用いられるのは + <em>尊櫃蹙苳ぢファイルのサイズであって、 + 表┐涼佑任呂覆い海箸肪躇佞靴討世気鹿粡寂蝟赱齠洲痲筵娼たとえ陸苳司箸發泳と表┐気譴討い燭箸靴討癲鹿粡寂蝟赱齠洲痲筵娼碓碓ぢバイトのファイルは必ず 1011 + バイトのファイルよりも前 (砂腓陸苳詞合) に表┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢ディレクティブ</h2> + + <ul> + <li><a href="#addalt">AddAlt</a></li> + + <li><a href="#addaltbyencoding">AddAltByEncoding</a></li> + + <li><a href="#addaltbytype">AddAltByType</a></li> + + <li><a href="#adddescription">AddDescription</a></li> + + <li><a href="#addicon">AddIcon</a></li> + + <li><a href="#addiconbyencoding">AddIconByEncoding</a></li> + + <li><a href="#addiconbytype">AddIconByType</a></li> + + <li><a href="#defaulticon">DefaultIcon</a></li> + + <li><a href="#fancyindexing">FancyIndexing</a></li> + + <li><a href="#headername">HeaderName</a></li> + + <li><a href="#indexignore">IndexIgnore</a></li> + + <li><a href="#indexoptions">IndexOptions</a></li> + + <li><a href="#indexorderdefault">IndexOrderDefault</a></li> + + <li><a href="#readmename">ReadmeName</a></li> + </ul> + + <p>参蓿繙就竢鱚譯關闔鵞闔鵙踉晒瓲苳と <a + href="mod_dir.html#directoryindex">DirectoryIndex</a>。</p> + + <h2>Autoindex リクエストクエリ・踉三王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮コラムソ・踉札箸離悒奪畝踉捌体が、ディレクトリのリストの順番を変更する + 踉捌身を参箸垢襯螢鵐任后┘蝓オプションは <samp>X=Y</samp> + の形阿如黶逅悧踉晒黶逅ぢには <samp>N</samp> (file <em>N</em>ame), + <samp>M</samp> (file last <em>M</em>odified date), <samp>S</samp> + (file <em>S</em>ize), <samp>D</samp> (file <em>D</em>escription) + の中から一つ、<samp>Y</samp> には <samp>A</samp> (<em>A</em>scending) + または <samp>D</samp> (<em>D</em>escending) のどちらかが入ります。</p> + + <p>ファイル巳苳三奮阿宗トのキ・踉擦箸靴道箸錣譴職苳詞合は、 + ファイル巳苳擦苳誌に二つ目のキ・踉擦箸覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼ぢソ・踉札箸縫侫.ぅ詭が使われた豺腓脇鵑通椶離は必要ありません。 + ファイル巳苳擦楼谿佞任△襪海箸檸苳孜されているので、ソ・踉札判腓鹿粡寂蝟赱齠洲痲筵娼確定するからです。)</p> + + <p>例:</p> + + <p>URL <samp>http://your.server.name/foo/</samp> + がディレクトリインデクスを生成する豺隋焚の URL + では異なるソ・踉札判腓言気譴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌瘢隍苳肢雕纈鬯釶辣闖予彫踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼はディレクトリを last modified date の降順でソ・踉札箸靴泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌瘢隍苳肢雕纈鬯釶辣闖捗薦踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼はディレクトリを file description の砂腓妊宗トします。</li> + + <li><samp>http://your.server.name/foo/?S=A</samp> + はディレクトリを file size の砂腓妊宗トします。</li> + </ul> + + <p>ディレクトリのデフォルトの順序の設定は <a + href="#indexorderdefault"><samp>IndexOrderDefault</samp></a> + を見てください。</p> + + <p>ディレクトリのリストが、あるコラムのどちらかの方向(砂腓泙燭蝋濬蝟昭粡竚癈鷭п粐Ьぢを指定された豺隋△修離灰薀爐陸苳糸部にあるリンクは逆順になり、 + 同じコラムの逆方向でのソ・踉札箸魏椎修砲靴泙后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痲籬踉釶辣就痲籬踉▽苳餐粐糟熙踉晒瓲苳ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AddAlt <em>string + file</em> [<em>file</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これは <a href="#fancyindexing">FancyIndexing</a> + において、アイコンの代わりに表┐垢訛綢悒謄好箸鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃鍋跂蹙苳は、説明するファイルのファイル拡張子、 + ファイル巳苳擦琉貮堯▲錺ぅ襯疋ド表現、完全なファイル巳苳擦鹿粡寂蝟赱齠洲痲筵娼どれかになります。 + <em>String</em> は二重引用符 (<code>"</code>) + で囲みます。 + この文字列は、クライアントが画像を表┐任覆う苳詞合や + 画像のロ・踉札匹鯡妓砲靴討い襴苳詞合に表┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> + <pre> + AddAlt "PDF" *.pdf + AddAlt "Compressed" *.gz *.zip *.Z + </pre> + + <hr /> + + <h2><a id="addaltbyencoding" + name="addaltbyencoding">AddAltByEncoding</a> ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AddAltByEncoding + <em>string MIME-encoding</em> [<em>MIME-encoding</em>] + ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これは、 + <a href="#fancyindexing">FancyIndexing</a> + において、アイコンの代わりに表┐垢訛綢慂源鵑鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃揺妖釿閼蜴胼踉晒纃ぢは有効な符号化、例えば + <samp>x-compress</samp> + です。 + <em>String</em> は、二重引用符 (<code>"</code>) で囲みます。 + この文字列は、クライアントが画像を表┐任覆う苳詞合や + 画像のロ・踉札匹鯡妓砲靴討い襴苳詞合に表┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> + <pre> + AddAltByEncoding "gzip" x-gzip + </pre> + + <hr /> + + <h2><a id="addaltbytype" name="addaltbytype">AddAltByType</a> + ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AddAltByType <em>string + MIME-type</em> [<em>MIME-type</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これは、 + <a href="#fancyindexing">FancyIndexing</a> + において、アイコンの代わりに表┐垢訛綢慂源鵑鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃揺妖絋踉晒纃ぢは有効なタイプ、例えば + <samp>text/html</samp> + です。 + <em>String</em> は、二重引用符 (<code>"</code>) で囲みます。 + この文字列は、クライアントが画像を表┐任覆う苳詞合や + 画像のロ・踉札匹鯡妓砲靴討い襴苳詞合に表┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> + <pre> + AddAltByType "TXT" text/plain + </pre> + <hr /> + + <h2><a id="adddescription" + name="adddescription">AddDescription</a> ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AddDescription + <em>"string" file|directory</em> [<em>file|directory</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就i鈔纔關闔鵞侮粤闔麁瘤笙侮粤鈑鹿粡寂蝟赱齠洲痲筵娼において、ファイルとディレクトリに対して表┐垢訐睫世鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃肅跂蜥繝鴒蹙苳は説明するファイルやディレクトリのファイル拡張子、 + ファイル巳苳擦琉貮堯▲妊譽肇衞、ワイルドカ・踉札鰭集宗袷瓦淵侫.ぅ詭か + ディレクトリ巳苳擦里匹譴砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼纃囈鱸鈑蹙苳は二重引用符 (<code>"</code>) で囲みます。</p> + + <blockquote> + <code>AddDescription "The planet Mars" + /web/pics/mars.gif</code> + </blockquote> + + <p>説明領域は 23 バイトの幅です。ディレクトリに対して + <code>IndexOptions SuppressSize</code> + オプションが有効になっていれば 7 バイト追加、 + <code>IndexOptions SuppressLastModified</code> + オプションが有効になっていれば 19 バイト追加されます。 + ですから、デフォルトの説明コラムの最大幅は + 49 バイトになります。</p> + + <blockquote> + Apache 1.3.10 から、<a + href="#indexoptions:descriptionwidth">DescriptionWidth</a> + <samp>IndexOptions</samp> キ・踉札錙ドを使う瘢雹ことで、この幅を + 任意の大きさに調整することができます。 + </blockquote> + + <b>警告:</b> + <p><samp>AddDescription</samp> + で定義された説明テキストは、タグや文字列といった + HTML マ・踉札▲奪廚魎泙爐海箸任泙后鹿粡寂蝟赱齠洲痲筵娼もし、説明コラムの幅によってタグ付けされた要素が丸め込まれた + (太字の語句の最後が切れるといった) 豺隋鹿粡寂蝟赱齠洲痲筵娼出力結果は、ディレクトリ一覧の残りの部分に影響を与えるでしょう瘢雹。</p> + <hr /> + + <h2><a id="addicon" name="addicon">AddIcon</a> ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AddIcon <em>icon + name</em> [<em>name</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就f瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑鹿粡寂蝟赱齠洲痲筵娼において、 + <em>name</em> で終わるファイルの隣に表┐垢襯▲ぅ灰鵑鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃蜒闔蹙苳は、(% でエスケ・踉札廚気譴アイコンへの相対 URL + か、側苳擦僚颱踉三 (<em>alttext</em>, <em>url</em>) です。 + ここで <em>alttext</em> + は、非グラフィカルブラウ瘢雹ザ向けにアイコンに付けられたテキストタグです。 + </p> + + <p><em>name</em> は、ディレクトリに対応する ^^DIRECTORY^^ + か、空白行に対応する ^^BLANKICON^^ (一覧が正しく表┐気譴襪燭瓩か、 + ファイル拡張子か、ワイルドカ・踉札鰭集修▲侫.ぅ詭の一部か + 完全なファイル巳苳擦任后N墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐粐父闔浜葱竢銖轣艱荻芍罘芍韃韲胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь槍簓竢竢銖蜥蜀淞敏澱塹燮湎碣鹿粡寂蝟赱齠洲痲筵娼粐父闔蜒闔鶩矚站蜀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮もし可能なら、AddIcon より + <a href="#addiconbytype">AddIconByType</a> + を優先的に使う瘢雹べきでしょう瘢雹。</p> + <hr /> + + <h2><a id="addiconbyencoding" + name="addiconbyencoding">AddIconByEncoding</a> ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AddIconByEncoding + <em>icon MIME-encoding</em> [<em>MIME-encoding</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就f瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑鹿粡寂蝟赱齠洲痲筵娼において、<em>MIME-encoding</em> のファイルの隣に表┐垢襯▲ぅ灰鵑鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃蜒闔蹙苳は、(% でエスケ・踉札廚気譴アイコンへの相対 URL + か、側苳擦僚颱踉三 (<em>alttext</em>, <em>url</em>) です。 + ここで <em>alttext</em> + は、非グラフィカルブラウ瘢雹ザ向けにアイコンに付けられたテキストタグです。 + </p> + + <p><em>MIME-encoding</em> は、要求されたエンコ・踉札匹乏催垢鹿粡寂蝟赱齠洲痲筵娼ワイルドカ・踉札鰭集修任后N墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐粐父闔濁梼竢粡鈑蜒闔鶩竢逅鱚齠繖蜀鹿粡寂蝟赱齠洲痲筵娼竢逅鱚齠閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痲粡竢鈞紜鹿粡寂蝟赱齠洲痲筵娼釶辣就痲粡竢鈞紜槍簓竢鄲絋踉晒瓲苳ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> AddIconByType <em>icon + MIME-type</em> [<em>MIME-type</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就f瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑鹿粡寂蝟赱齠洲痲筵娼において、ファイルの隣に表┐垢襯▲ぅ灰鵑鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃蜒闔蹙苳は、(% でエスケ・踉札廚気譴アイコンへの相対 URL + か、側苳擦僚颱踉三 (<em>alttext</em>, <em>url</em>) です。 + ここで <em>alttext</em> + は、非グラフィカルブラウ瘢雹ザ向けにアイコンに付けられたテキストタグです。 + </p> + + <p><em>MIME-type</em> は、要求されたタイプに該当する + ワイルドカ・踉札鰭集修任后N墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐粐父闔濁奘鞳浜葱竢銖轣艱凱芍罘轣艱閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就粤聲竢遐瘢綵≫繙癜踉蜒闔▽苳残繙癜踉父闔鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> DefaultIcon + <em>url</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮偵聲竢ディレクティブは <a + href="#fancyindexing">FancyIndexing</a> において、 + 特定のアイコンがない豺腓離侫.ぅ襪防拾踉雑するアイコンを設定します。 + <em>url</em> は、(% でエスケ・踉札廚気譴アイコンへの相対 URL + です。例:</p> + + <blockquote> + <code>DefaultIcon /icon/unknown.xbm</code> + </blockquote> + <hr /> + + <h2><a id="fancyindexing" + name="fancyindexing">FancyIndexing</a> ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> FancyIndexing + on|off<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮那釿鈔纔蜴ディレクティブはディレクトリの FancyIndexing + オプションを設定します。The <a href="#indexoptions">IndexOptions</a> + directive should be used in preference.</p> + + <blockquote> + <strong>1.3.2 以前のバ・踉札献腑鵑鞜竏では、 + <samp>FancyIndexing</samp> 及び <samp>IndexOptions</samp> + ディレクティブは互いに綵颪靴討靴討い燭海箸肪躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼単独の <samp>FancyIndexing</samp> ディレクティブよりも + <samp>IndexOptions FancyIndexing</samp> を使う瘢雹べきです。 + Apache 1.3.2 では単独 <samp>FancyIndexing</samp> + ディレクティブは現在の範囲に対して既に指定された + <samp>IndexOptions</samp> ディレクティブと組み合わされます。</strong> + </blockquote> + <hr /> + + <h2><a id="headername" name="headername">HeaderName</a> + ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> HeaderName + <em>filename</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> いくつかの機能は + 1.3.6 以降でのみ使用可能 + + <p>HeaderName ディレクティブは、 + インデックス一覧の先頭に挿入するファイルの巳苳餐阿鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼纃鍋跂釶辣蹙苳は茲蟾爛侫.ぅ襪量前です。</p> + + <p> + <em>Filename</em> はインデックスされているディレクトリに用いられた URI + に対する相対 URI パスとして扱われます。 + これは、<em>filename</em> がスラッシュで始まる豺腓蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪d閭緕闖槇弟笊辣銓呰阡鹿粡寂蝟赱齠洲痲筵娼からの相対パスとなるという瘢雹ことです。</p> + + <p><em>Filename</em> はメジャ・踉札灰鵐謄鵐肇織ぅ廚鹿粡寂蝟赱齠洲痲筵娼▽踉雌瘢隍苳飼纔熙踉晒黶逅└踉糸蹙苳ぢ例えば</em>、<samp>text/html</samp>, + <samp>text/plain</samp> 等です。) + のドキュメントとして解決されなければなりません。これはつまり、 + もし CGI スクリプトの尊櫃離侫.ぅ襯織ぅ廚鹿粡寂蝟赱齠洲痲筵娼,離妊譽謄屬里茲逅擦砲靴豆踉斬際の出力とは異なって + <samp>text/html</samp> としてマ・踉札気譴討い襴苳詞合、 + <em>filename</em> + は CGI スクリプトを参箸垢襪眞里譴覆ぁ鹿粡寂蝟赱齠洲痲筵娼という瘢雹ことを意味します:</p> + +<pre> + AddType text/html .cgi +</pre> + + <p><samp>MultiViews</samp> <a + href="core.html#options">option</a> が有効になっている豺腓蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就闔銓繚阡蛛闔譬コンテントネゴシエ・踉札轡腑鹿粡寂蝟赱齠洲痲筵娼が行なわれます。 + もし <em>filename</em> が (CGI スクリプトでない) 静的な + <samp>text/html</samp> ドキュメントで解決され、 + <samp>Includes</samp> <a href="../mod/core.html#options">option</a> + が有効になっている豺腓蓮鹿粡寂蝟赱齠洲痲筵娼ファイルはサ・踉札丱汽ぅ疋ぅ鵐襦ドで処理されます + (<a href="../mod/mod_include.html"><samp>mod_include</samp></a> + ドキュメントを参箸靴堂さい)。</p> + + <p>もし <samp>HeaderName</samp> で指定されたファイルが + HTML ドキュメントの開始部分 (<HTML>, <HEAD>, + 等) を含んでいたら、 + <a href="#indexoptions:suppresshtmlpreamble"><samp>IndexOptions + +SuppressHTMLPreamble</samp></a> + を設定して、これらのタグが繰り返されないよう瘢雹にしたいと思う瘢雹でしょう瘢雹。</p> + + <blockquote> + <strong>Apache 1.3.6 以前:</strong> モジュ・踉札襪郎能蕕鹿粡寂蝟赱齠洲痲筵娼纃肅跂釶辣蹙苳殺踉祉閼絋苳皿蔗迪閼絋苳を HTML 文書として include + を試みます。それから <em>filename</em> をプレ・踉札鵐謄好箸箸靴鹿粡寂蝟赱齠洲痲筵娼蜴竚しよう瘢雹とします。<em>Filename</em> はインデクスされる + ディレクトリからのファイルシステムの相対パスとして扱われます。 + SSI 処理は絶対に行なわれません。例: + + <blockquote> + <code>HeaderName HEADER</code> + </blockquote> + ディレクトリ <code>/web</code> がインデクスされるとき、サ・踉札个郎能蕕鹿粡寂蝟赱齠洲痲筵娼竢粤繧伝津勳蔗迪閼絋苳という瘢雹 HTML + ファイルを探し見つかればそれを include します。それから + <code>/web/HEADER</code> という瘢雹プレ・踉札鵐謄好箸離侫.ぅ襪髻鹿粡寂蝟赱齠洲痲筵娼存在すれば include します。 + </blockquote> + + <p>参踉氏鱚羹■鱚痲辣釶辣▽苳子縺粱緡瘢絋踉晒瓲苳ぢ。</p> + <hr /> + + <h2><a id="indexignore" name="indexignore">IndexIgnore</a> + ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> IndexIgnore + <em>file</em> [<em>file</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮粤芬闥ディレクティブは、 + ディレクトリの一覧を行なう瘢雹際に無視すべきファイルリストに追加します。 + <em>file</em> は、無視するファイル巳苳擦離侫.ぅ覲板セ劼▲侫.ぅ詭の一部か、 + ワイルドカ・踉札鰭集修袷瓦淵侫.ぅ詭です。 + IndexIgnore が複数ある豺腓蓮¬技襪垢襯螢好箸膨媛辰圓覆錣譟鹿粡寂蝟赱齠洲痲筵娼置換は行なわれません。デフォルトではリストには `<code>.</code>' + が含まれています。例:</p> + + <blockquote> + <code>IndexIgnore README .htaccess *~</code> + </blockquote> + <hr /> + + <h2><a id="indexoptions" name="indexoptions">IndexOptions</a> + ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> IndexOptions + <em>option</em> [<em>option</em>] ... (Apache 1.3.2 以前) <br /> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> IndexOptions + [+|-]<em>option</em> [[+|-]<em>option</em>] ... (Apache 1.3.3 + 以降) <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> '+/-' 構文と + 複数の <samp>IndexOptions</samp> ディレクティブのマ・踉札犬鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢ以降でのみ使用可能。<samp>FoldersFirst</samp> と + <samp>DescriptionWidth</samp> オプションは Apache 1.3.10 以降でのみ + 使用可能。<samp>TrackModified</samp> オプションは Apache 1.3.15 以降 + でのみ使用可能。<samp>IgnoreCase</samp> オプションは Apache 1.3.24 + 以降でのみ使用可能 + + <p>IndexOptions は、ディレクトリインデックスの挙動を指定します。 + <em>option</em> は,里匹譴任墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓粤黹鱸頸蜿鋏蜆⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓粤黹鱸頸蜿鋏蜆▽苳残纉竰蜷闔怏糘莉昿踉糸蹙苳試蹙苳纂蝟昭粡竚癈鷭п粐Ь└踉糸蹙苳餐鞜竏窺凱碓ぢ以降</em>)</a></dt> + + <dd><samp>DescriptionWidth</samp> + キ・踉札錙ドは説明コラムの幅を文字数で指定することができます。 + キ・踉札錙ドの値が '<samp>*</samp>' の豺腓離灰薀爐良蓮鹿粡寂蝟赱齠洲痲筵娼表┐気譴訝罎悩任眥垢ぅ侫.ぅ詭の長さに暗帽腓錣気譴泙后鹿粡寂蝟赱齠洲痲筵娼皃苳ぢ説明が丸め込まれた豺腓傍海蠅逅擦覺躙韻砲弔い討鹿粡寂蝟赱齠洲痲筵娼蓿繙就a粐粤黹鱸頸蜿遐槍篦纉竰蜷闔鹿粡寂蝟赱齠洲痲筵娼セクションをお読み王踉擦気ぁ筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓聲釿鈔纔蜴腆鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤頸蜿銖堺瘤笙蜴粤鈑▽苳仔瘤笙侮粤鈑熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢ衂佞ぅ鵐妊奪垢鬟鵑砲靴泙后鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑窺凱以前のバ・踉札献腑鵑鞜竏では、 + <samp>FancyIndexing</samp> 及び <samp>IndexOptions</samp> + ディレクティブは互いに綵颪靴討靴討い燭海箸肪躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼単独の <samp>FancyIndexing</samp> ディレクティブよりも + <samp>IndexOptions FancyIndexing</samp> を使う瘢雹べきです。 + Apache 1.3.2 では単独 <samp>FancyIndexing</samp> + ディレクティブは現在の範囲に対して既に指定された + <samp>IndexOptions</samp> ディレクティブと組み合わされます。</strong> + </blockquote> + </dd> + + <dt><a id="indexoptions:foldersfirst" + name="indexoptions:foldersfirst">FoldersFirst (<i>Apache + 1.3.10 以降</i>)</a></dt> + + <dd>このオプションが有効になると FancyIndex + されたリストは<i>錣サブディレクトリが最初に、 + 続いて通錣離侫.ぅ襪拾踉雑されます。 + リストは基本的に二つの部分、ファイルとサブディレクトリに分けられ、 + それう苳擦譴漫垢縫宗トされてまずサブディレクトリから表┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼たとえば、ソ・踉札箸前の降順で <samp>FoldersFirst</samp> + が有効であれば、サブディレクトリ <samp>Zed</samp> + がサブディレクトリ <samp>Beta</samp> より前に、またこれらは + 通錣離侫.ぅ踉雌瘢隍苳伺瘢轣瘢隍苳や <samp>Alpha</samp> + より前に表┐気譴泙后皃苳ぢこのオプションは <a + href="#indexoptions:fancyindexing"><samp>FancyIndexing</samp></a> + も有効である豺腓妨造蠍未△蠅泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓蜒闔蒹蜃蔗⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓蜒闔蒹蜃蔗▽苳刺竢酥繪艾署蝌繻黥鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳餐鞜竏窺以降</em>)</a></dt> + + <dd>このオプションが、IconWidth とともに使われている豺腓蓮鹿粡寂蝟赱齠洲痲筵娼サ・踉札个魯侫.ぅ襯▲ぅ灰鵑里燭瓩踉祉閼絋苳脂辯閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢタグに <code>height</code> と <code>width</code> + 属性を茲蟾爐茲逅擦砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼これによって、イメ・踉札諺瓦討鬟蹇ドし終わるまで待たなくても、 + ブラウ瘢雹ザはペ・踉札献譽ぅ▲逅札箸鬚△蕕犬畄彁擦垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼このオプションに何も値が与えられなければ、Apache + ソフトウ瘢雹ェアで提供されているアイコンの標準の高さが + デフォルトとなります。</dd> + + <dt><a id="indexoptions:iconsarelinks" + name="indexoptions:iconsarelinks">IconsAreLinks</a></dt> + + <dd>これは、FancyIndexing において、 + アイコンもファイル巳苳擦悗離螢鵐琉貮瑤砲靴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓蜒闔糘茴鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤頸蜿銖咲竢鋏蜆▽苳刺竢釁蜆杤韈踈└踉糸蹙苳餐鞜竏綣蝟昭粡竚癈鷭п粐Ьぢ以降</em>)</a></dt> + + <dd>このオプションが、IconHeight とともに使われている豺腓蓮鹿粡寂蝟赱齠洲痲筵娼サ・踉札个魯侫.ぅ襯▲ぅ灰鵑里燭瓩踉雌瘢隍苳刺庸瘢隍苳纂蝟昭粡竚癈鷭п粐Ьぢタグに <samp>HEIGHT</samp> と <samp>WIDTH</samp> + 属性を茲蟾爐茲逅擦砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼これによって、イメ・踉札諺瓦討鬟蹇ドし終わるまで待たなくても、 + ブラウ瘢雹ザはペ・踉札献譽ぅ▲逅札箸鬚△蕕犬畄彁擦垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼このオプションに何も値が与えられなければ、Apache + ソフトウ瘢雹ェアで提供されているアイコンの標準の高さが + デフォルトとなります。</dd> + + <dt><a id="indexoptions:ignorecase" + name="indexoptions:ignorecase">IgnoreCase</a> + (<em>Apache 1.3.24 以降</em>)</dt> + + <dd>このオプションが有効であると、 + ファイル巳苳擦和臺源苳皿文字を区別せずにソ・踉札箸気譴泙后鹿粡寂蝟赱齠洲痲筵娼例えばファイル巳苳擦苳産順でソ・踉札箸気譟黶逅芙鈿鱚秩黼瘢隍苳纂蝟昭粡竚癈鷭п粐Ьぢが有効であれば、<samp>Zeta</samp> は <samp>alfa</samp> + の後にリストされます(注意: <samp>GAMMA</samp> は錣鹿粡寂蝟赱齠洲痲筵娼黶逅艨迯瓲踉晒黶逅ぢの前になります)。<b>このオプションは <a + href="#indexoptions:fancyindexing"><samp>FancyIndexing</samp></a> + も有効である豺腓妨造蠍未△蠅泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓釶辣糘茴鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴粤頸蜿銖作瘢纓蜆▽苳士瘢縋蜆循纃遉踉晒纃歇蝟昭粡竚癈鷭п粐Ь纃草痺蒹ぢ以降</em>)</a></dt> + + <dd><code>NameWidth</code> キ・踉札錙ドでファイル巳苳札灰薀爐良鬟丱ぅ反瑤鹿粡寂蝟赱齠洲痲筵娼指定できます。キ・踉札錙ドの値が '<samp>*</samp>' の豺腓離灰薀爐良蓮鹿粡寂蝟赱齠洲痲筵娼表┐気譴訝罎悩任眥垢ぅ侫.ぅ詭の長さに暗帽腓錣気譴泙后鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓黹瘤蔗迪纉⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓黹瘤蔗迪纉▽苳屍竅酥塒猛蜚跂鵙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐那釿鈔纔蜴のために、 + HTML ドキュメントからタイトルを茲蟒个垢海箸魏椎修砲靴泙后鹿粡寂蝟赱齠洲痲筵娼もしファイルに + <a href="#adddescription">AddDescription</a> + で説明が与えられていなければ、 + httpd は TITLE タグの値を読むためにドキュメントを読み始めます。 + これは CPU や disk に負荷をかけます。</dd> + + <dt><a id="indexoptions:suppresscolumnsorting" + name="indexoptions:suppresscolumnsorting">SuppressColumnSorting</a></dt> + + <dd>もし指定されていれば、Apache は FancyIndexing + で表┐気譴討い襯妊譽肇螳賤任離灰薀爐慮个靴髻鹿粡寂蝟赱齠洲痲筵娼ソ・踉札箸里燭瓩離螢鵐砲靴覆覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼デフォルトの挙動は、リンクとします。 + コラムの見出しを選ぶとコラムの値に拾苳擦辰謄妊譽肇螢螢好箸鹿粡寂蝟赱齠洲痲筵娼ソ・踉札箸靴泙后齡鳫鈑草痺蒹ぢ以降でのみ使用可能。</strong></dd> + + <dt><a id="indexoptions:suppressdescription" + name="indexoptions:suppressdescription">SuppressDescription</a></dt> + + <dd>これは FancyIndexing におけるファイルの説明を探遒靴泙后鹿粡寂蝟赱齠洲痲筵娼デフォルトでは、説明は定義されておらず、 + このオプションを使う瘢雹と側苳擦里燭瓩骸蝟昭粡竚癈鷭п粐Ьぢ文字の空白を稼ぐことができます。 ファイルの説明に関する霾鵑蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就a粐粤黹鱸頸蜿遐黶逅槍篦纉竰蜷闔瘢隍苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢをご覧王踉擦気ぁ泙拭∪睫世離灰薀爛汽ぅ困鮴造垢鹿粡寂蝟赱齠洲痲筵娼蓿繙就i鈔纔關闔鷓粤黹鱸頸蜿鋏蜆▽苳殺踉雌瘢隍苳残纉竰蜷闔怏糘荀踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼インデックスオプションもご覧王踉擦気ぁ筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏篏∫鈔纔關闔鷓齦韶鱚齠蔗迪頏縺轤跂⊆蝟昭粡竚癈鷭п粐Ь瘢綵∫鈔纔關闔鷓齦韶鱚齠蔗迪頏縺轤跂▽苳屍頏纉麋塒茂鱚瘢碎絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь纃草痺蒹ぢ以降</em>)</dt> + + <dd>通錙鹿粡寂蝟赱齠洲痲筵娼蓿繙就h縺粤鴈瘢紜斐痲纈令辣鹿粡寂蝟赱齠洲痲筵娼ディレクティブで指定したファイルを + ディレクトリが尊櫃亡泙鵑任い譴弌現狹塒プリアンブル + (<HTML>, <HEAD> <em>等</em>) の後に、 + モジュ・踉札襪魯侫.ぅ襪涼羶箸鬟ぅ鵐襦ドします。 + SuppressHTMLPreamble オプションはこの挙動を無効にし、 + モジュ・踉札襪悒奪瀬侫.ぅ襪涼羶箸乕拾踉雑を始めます。 + この豺隋▲悒奪瀬侫.ぅ襪論気靴塒娘蝟昭粡竚癈鷭п粐Ьぢ命令を含んでいなければなりません。 + ヘッダファイルが存在しない豺腓蓮▲廛螢▲鵐屮襪歪巳苳誌通り + 生成されます。</dd> + + <dt><a id="indexoptions:suppresslastmodified" + name="indexoptions:suppresslastmodified">SuppressLastModified</a></dt> + + <dd>FancyIndexing 一覧において最終更新日時の表┐鬢苳暫去します。</dd> + + <dt><a id="indexoptions:suppresssize" + name="indexoptions:suppresssize">SuppressSize</a></dt> + + <dd>FancyIndexing 一覧においてファイルサイズの表┐鬢苳暫去します。</dd> + + <dt><a id="indexoptions:trackmodified" + name="indexoptions:trackmodified">TrackModified (<em>Apache + 1.3.15 以降</em>)</a></dt> + + <dd>これは HTTP ヘッダ中に、 + リストされたディレクトリの最終更新日や ETag 値を含めます。 + これは、オペレ・踉札謄鵐哀轡好謄爐筌侫.ぅ襯轡好謄爐鹿粡寂蝟赱齠洲痲筵娼適切な stat() の返り値を返す豺腓砲里瀝任后鹿粡寂蝟赱齠洲痲筵娼たいていの UNIX システム、OS2 の JFS や Win32 の NTFS + ボリュ・踉札爐呂修逅擦覆辰討い泙后鹿粡寂蝟赱齠洲痲筵娼例えば、OS2 と Win32 FAT ボリュ・踉札爐呂修逅擦任呂△蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼この機能が有効になると、クライアントやプロキシは + HEAD リクエストを行なう瘢雹ことによって、 + ファイル一覧の変化を追跡することができるよう瘢雹になります。 + いくつかのオペレ・踉札謄鵐哀轡好謄爐蓮⊃卦侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼移動ファイルは正しく追跡するけれども、 + ディレクトリ中のファイルのサイズや日付は追跡しないという瘢雹ことに + 注意してください。</dd> + </dl> + + <p>最近の (1.3.0 より後の) バ・踉札献腑鵑鞜竏綣蝟昭粡竚癈鷭п粐Ьぢはこのディレクティブの挙動に重要な違いがあります。</p> + + <dl> + <dt>Apache 1.3.2 以前:</dt> + + <dd> + <p>デフォルトではどのオプションも有効ではありません。複数の + IndexOptions を適用することができ、もっとも楮戮覆發里陵僂気譴泙纂蝟昭粡竚癈鷭п粐Ь頸蜿銖ぢはマ・踉札犬気譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼例:</p> + + <blockquote> +<pre> +<Directory /web/docs> + IndexOptions FancyIndexing +</Directory> +<Directory /web/docs/spec> + IndexOptions ScanHTMLTitles +</Directory> +</pre> + </blockquote> + /web/docs/spec に対して <code>ScanHTMLTitles</code> + だけが設定されます。 + </dd> + + <dt>Apache 1.3.3 以降:</dt> + + <dd> + <p>Apache 1.3.3 introduced some significant changes in the + handling of <samp>IndexOptions</samp> directives. In + particular,</p> + + <ul> + <li>単一のディレクトリに対する複数の <samp>IndexOptions</samp> + ディレクティブは現在では互いにマ・踉札犬気譴泙后鹿粡寂蝟赱齠洲痲筵娼紊領磴侶覯未聾什澆鹿粡寂蝟赱齠洲痲筵娼竢粤侮粤頸蜿銖逅試碵雹那釿鈔纔蜴胼瘢雹鈞齔屍竅酥塒猛蜚跂鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼と同等になります。</li> + + <li>増減構文 + (<em>すなわち</em>、'+' または '-' が頭につくキ・踉札錙ド)</li> + </ul> + + <p>'+' または '-' が頭につくキ・踉札錙ドを見つけると、現在の + <samp>IndexOptions</samp> + の設定(絨魅妊譽肇蠅薜僂い任い襪海箸發△蠅泙蝟昭粡竚癈鷭п粐Ьぢに対して適用します。しかし、頭につかないキ・踉札錙ドが処理されると + それまでに引き継いだ options や増減の設定をクリアしてしまいます。 + 以王踉擦領磴鮃佑┐討世気墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳刺鈔纔闔竅酥塒猛蜚跂竢銖葬緻蜴謫鹿粡寂蝟赱齠洲痲筵娼那釿鈔纔蜴胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь侮粤頸蜿銖囎韶鱚齠嚔碣鹿粡寂蝟赱齠洲痲筵娼閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ正味の結果は + <code>IndexOptions FancyIndexing +SuppressSize</code> + と同等になります。頭に付かない <code>FancyIndexing</code> + はそれ以前の増減キ・踉札錙ドを無効にしますが、 + その後から再び設定を追加していくことができます。</p> + + <p>あるディレクトリに対して、無魴錣踉祉閼絋苳刺鈔纔闔鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を設定するにはキ・踉札錙ドの頭に '+' 及び '-' + のどちらもつけないことにより引き継がれた設定をクリアします。</p> + </dd> + </dl> + <hr /> + + <h2><a id="indexorderdefault" + name="indexorderdefault">IndexOrderDefault</a> ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> IndexOrderDefault + Ascending|Descending Name|Date|Size|Description <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑綵颪墾踉晒齡鳫鈑鈔纔纉踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> + IndexOrderDefault は Apache 1.3.4 以降でのみ使用可能。 + + <p><samp>IndexOrderDefault</samp> ディレクティブは + <a href="#indexoptions:fancyindexing"><samp>FancyIndexing</samp></a> + インデックスオプションと併せて用いれます。 + デフォルトでは、FancyIndexing + のディレクトリ一覧はファイル巳苳擦陸苳産順で表┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼黶逅侮粤鰾纈偵聲熙踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼で、初期屬良拾踉雑順番を変えることができます。</p> + + <p><samp>IndexOrderDefault</samp> + は二つの引数をとります。一つ目はソ・踉札箸諒鮖悧踉雑する + <samp>Ascending</samp> か <samp>Descending</samp> のいずれかです。 + 二つ目の引数は <samp>Name</samp>, <samp>Date</samp>, + <samp>Size</samp> か <samp>Description</samp> + のいずれか一つのキ・踉札錙ドであって、プライマリキ・踉擦鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼二つ目のキ・踉擦纃錣蹙苳ぢファイル巳苳擦陸苳産順になります。</p> + + <p>このディレクティブと <a + href="#indexoptions:suppresscolumnsorting"><samp>SuppressColumnSorting</samp></a> + インデックスオプションとを組み合わせることで、 + ディレクトリ一覧をある特定の順番でのみ表┐垢襪茲逅擦砲任泙后鹿粡寂蝟赱齠洲痲筵娼これは、 + クライアントが別の順番でディレクトリ一覧をリクエストすることを防ぎます。</p> + + <h2><a id="readmename" name="readmename">ReadmeName</a> + ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ReadmeName + <em>filename</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焉濶鈔纔踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> いくつかの機能は 1.3.6 以降でのみ + 使用可能 + + <p>ReadmeName ディレクティブは、 + インデックスの終わりに付け加えられるファイルの巳苳餐阿鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼黶逅肅跂釶辣瘢隍苳は挿入するファイルの巳苳餐阿如鹿粡寂蝟赱齠洲痲筵娼一覧の行なわれている位置から相対的なものとして解瓩気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑纃肅跂釶辣蹙苳引数は Apache 1.3.6 以前ではファイル巳苳擦琉貮堯鹿粡寂蝟赱齠洲痲筵娼後のバ・踉札献腑鵑任倭蠡夘ぢとして扱われます。 + これがどのよう瘢雹に処理されるのかという瘢雹ことについての楮戮鹿粡寂蝟赱齠洲痲筵娼蓿繙就h縺粤鴈瘢紜斐痲纈令辣ぢディレクティブの説明に見つけられます。 + これは同じ機構を使い、ReadmeNameと同時に変更することができます。</strong> + </blockquote> + + <p>参踉氏鱚羹■蒹痲纈釶辣▽苳使縺粤鯲瘢絋踉晒瓲苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼烽鳫纈皴蔗粹笂瘤豁迴箝迴籖碣阯黼鬯蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭盒聹顕宛飢錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖碣阯黼鬯蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖碣阯黼鬯蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐斡声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖碣阯黼鬢踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳四閼迴籖碣阯黼鬢踉晒莟鹿粡寂蝟赱齠洲痲筵娼壽蜩閼蜩闔蜴繖竢粤迴籖碣阯黼鬯礒踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼肅跂瘤蜩闕韈跂蜴粤聲頏阮蜆纉闥續鈑鹿粡寂蝟赱齠洲痲筵娼緕鳫鉈緕鱸痰跂矚黼闔蒹鳫纈壽蜩閼蜩癇蝟昭粡竚癈鷭п粐Ь草痺蒹鉤鳫草痺蒹鋏癇糂踉祉閼絋苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖黼鉚蜀譬迴籖黼鉚蜀閼絋苳頏阮蜆纉蒹鹿粡寂蝟赱齠洲痲筵娼胚釿闔瘡蜚閹蓍迴糒跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢囎迯癇踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍迴糒跂跛阯續鉚蜥闔辣銓癇蛛碎纉癈繖郤蝟昭粡竚癈鷭п粐Ь蒹瘢閹蒹鳫纈窿纉皷鈑阨粹笊辣銓矚黼闔蒹鹿粡寂蝟赱齠洲痲筵娼竢粤專纈艱銓閼絋苳蒹痲纈蜈趙壽蜩纉鞳竕瘡踟黼胚貅蝟昭粡竚癈鷭п粐Ь蒹竢轤蜴繖蜚竢鈔蜚蜿釶挽楊瘤苺瘍齦竏畆蝟昭粡竚癈鷭п粐Ь鱚羹閼煢釿跿粤譬慯喇佝亂鈔瘤鳫粤闥鹿粡寂蝟赱齠洲痲筵娼皷逅跂鳫纈癈繖繚阡蛛闔挽楊縺鱚鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢堤鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■碣阯黼鴉癆竏▽苳斬鳫纈浴荀踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就b鳫纈轣蓆閭癈紜択阯黼鰺癆竏麗秩黼薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就碣阯黼鴉癆竏⊆蝟昭粡竚癈鷭п粐Ь瘢綵≒鳫纈轣茴択阯黼鰺癆竏王苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑鳫纈浴纃鱚艱蝟昭粡竚癈鷭п粐Ь魃魏踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖碣阯黼鬢踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼痰阮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鳫纈浴粡鱚笏蝟粤肅鈬緕鳫鉈緕鱸痰跂鷦蝟昭粡竚癈鷭п粐Ь癈繖專纈艱銓縺粤鬯蒹蜥齡鱧緕鼈阨趙畆蝟昭粡竚癈鷭п粐Ь腕婦緕粤鱚苺赱纔頏纉皷闔皷迚赱繚鱚隲齡綣蝟昭粡竚癈鷭п粐Ь繚纔蒹纉閹蒹鱧緕蝟釶辣閹癇蛛碎纉鐚蝟昭粡竚癈鷭п粐Ь續壽纉諷蒹闥閹蜚蒹▽踉祉閼絋苳事癇釶辣閼絋苳拶蝟昭粡竚癈鷭п粐Ь竢粤*癇釶辣閼絋苳拶▽踉祉閼絋苳事癇釶辣叙瘡閼絋苳拶侮蒹鹿粡寂蝟赱齠洲痲筵娼肅鴦肬鴉跿跛黼陰壽黼竢鈔蛹貅蝟昭粡竚癈鷭п粐Ь纃阮芍鱸痰跂瘡鱚痲粤肅鈬筱鈔蒹蓍鰾鹿粡寂蝟赱齠洲痲筵娼跛續蒹癇蛛碎蒹瘡蝟緕竢粤跿絋踉晒竢粤蝟昭粡竚癈鷭п粐Ь專纈艱銓蜴轣蒹迴鱚葹闔緕蒹跛鹿粡寂蝟赱齠洲痲筵娼矼纈艱筮銓鱸纉鱚鳫竇齠繖闥粤纖韶縺鬪鈔鹿粡寂蝟赱齠洲痲筵娼赱緕蜈竅阮纈鱸粤癇跚纈鈬鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏酪跛肬鴉褓繚徐纉鳫纈庶續黹瘰綣蝟昭粡竚癈鷭п粐Ь鳫纈浴⌒酪跛甎朮蘗痰跂瘍蜀鱇辣裃黹鱸頸鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏喇♀癘癈竰蜷蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≒鳫纈轣蓆閭癈紜鹿粡寂蝟赱齠洲痲筵娼釶辣就碣阯黼鴉癆竏鈿竅黼▽苳斬鳫纈浴萠鐫癈絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳択阯黼鰺癆竏麗秩黼鹿粡寂蝟赱齠洲痲筵娼纃鱚艱癆癆荻蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳矚黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼烽鳫纈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑鞜竏窺瘤篌蝟昭粡竚癈鷭п粐Ь硼蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽竢粤択阯黼鰺癆竏麗秩黼閼絋苳粡鱚笏蝟蜩鹿粡寂蝟赱齠洲痲筵娼黼轣銓蜒瘡踟粤銓蜒瘡畆蝟昭粡竚癈鷭п粐Ь鱚羹■碣阯黼鴉癆竏▽苳殺踉祉閼絋苳斬鳫纈浴荀踉晒竢粤蜥繝蝟昭粡竚癈鷭п粐Ь阯纐纈蜚鳫粤肬竅黼銖緕皷癆竏蜴膊闥鹿粡寂蝟赱齠洲痲筵娼纔瘢韭綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鳫纈浴萠鐫癈轣韭癆肬鴉渚痺蜴鼈鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏麗秩黼蜴赱闥軆鈔阯鷦蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焜纈釼辣皴蔗粹笂瘤豁迴箝迴籖竇鴈熏續甌蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭粐宴嘘繖甕錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖竇鴈熏續甌蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖竇鴈熏續甌蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐概声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂酪糒跂閼焜纈釼辣蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆草痺蒹閼迴籖竇鴈熏續瓲踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍迴糒跂鳫粤肬壇厠鞣續瘋蛹黼轣銓蜒鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳祷銖蜿遉踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪S阨鱆綟蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囂竇蛹綺闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь閼焜纈釼辣碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯酪糒跂符緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼符緕肅纈墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼竇鴈熏續痿迴糒跂碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳走瘟赱碎蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹鈔癆纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳屍轣鴒王苳纂蝟昭粡竚癈鷭п粐Ь踉察慓嚠阨趙緕闔纈闢皷砠跚纉草痺蒹迴籖蒹痲纈苳纂蝟昭粡竚癈鷭п粐Ь逡赱蒹賭挽墅羅蛹黼轣銓蜒鶤續肅跂癇挽墅鹿粡寂蝟赱齠洲痲筵娼蒹痲纈癆瘤阨痲粡闔鈿鴉瘡瘤艱羲蝟昭粡竚癈鷭п粐Ь縺粤鴦闥痺肅跂窿纉黼筮蒹瘰鞳癇癆蒹跚諷蒹鹿粡寂蝟赱齠洲痲筵娼草痺蒹癈蜩蛹纉瘤癇痰跂頏阮蜆竰閹鹿粡寂蝟赱齠洲痲筵娼蜴肚釿蜴祷韈鱚鷓縺粤鬪跛頏阮蜆蜴阡蒹鮗蝟昭粡竚癈鷭п粐Ь蜿皷纉壽纈癇轣銷癨瘤瘍辣鈕闥轣闔蝟昭粡竚癈鷭п粐Ь蓍闔竏闢緕繝癜黼蒹鱚瘡鱚痲赱鱧銛轤纈羲蝟昭粡竚癈鷭п粐Ь賭纈竅纔韭濶蜩閼絎蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮酪鱚鈕闥轣闔畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕鱧痳迴遲專纈闔肅膀賠鈬鱇谺蔗迪M續當蜥▽苳纂蝟昭粡竚癈鷭п粐Ь賭辣肅跂纃瘤笂癘瘟赱碎絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢堤鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■辣肅跂鵞羅鍋跂鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就m續痲蜥▽苳四續當蜥薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■辣齦聿蝌▽苳四續疵肅踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏續瘋蛹纉釶辣就辣肅跂鵞羅鍋跂鵙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑續疇蛹纉鋺閹网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳竢粤羅鍋跂鷦蝟昭粡竚癈鷭п粐Ь聿閼絋苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳私蜥繝鴒碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖竇鴈熏續瓲踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳羅鍋跂蜩鹿粡寂蝟赱齠洲痲筵娼闔踟蛹痰跂草痺蒹鈔癆纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市銖遲閹羅蛹頏閭纉皷鈑鞳鬮粡鱚笏闥矚皷鶤鹿粡寂蝟赱齠洲痲筵娼壽蜩頸蜿蜴閼繖草痺蒹踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏續痲蜥釶辣就辣粡鬆羅堤鬢踉晒瓲苳粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳羅堤鮗蝟昭粡竚癈鷭п粐Ь踉糸蹙苳私蜥繝鴒蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳竢粤羅堤鮗蝟昭粡竚癈鷭п粐Ь皃踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳暫闔鞜竏頏蜿踉晒齡鳫鈑纈鮗蝟昭粡竚癈鷭п粐Ь闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑衷銓纔草痺蒹踉晒齡鳫鈑蜥繝鴒碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖竇鴈熏續瓲踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳羅堤蜩鉤蝟昭粡竚癈鷭п粐Ь蛹痰跂草痺蒹鈔癆纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍鞳竕肅纉蒹瘢閹蒹蜥繝鴒蜒草痺蒹瘤蜴篌蝟昭粡竚癈鷭п粐Ь續蜴肬鴉癆蜿肅跂鶤蒹蜥繝鴒跛ц蜆粤逾鹿粡寂蝟赱齠洲痲筵娼齦矮蜥繝鴒粡鱚笏闥癆闔蜴肅跂繪鈑鹿粡寂蝟赱齠洲痲筵娼痺竇齠繖嚆竢粤踉晒竢粤闖蜴蒹瘢粡鱚笏闥蝟昭粡竚癈鷭п粐Ь肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏續癈肅瘢綵續癈肅羅囎聿蝌鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳羅囎聿蝌鹿粡寂蝟赱齠洲痲筵娼纃齦聿蝌蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳竢粤羅囎聿蝌鹿粡寂蝟赱齠洲痲筵娼續瓲踉晒竢粤碣鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳暫闔鞜竏頏蜿踉晒齡鳫鈑纈鮗蝟昭粡竚癈鷭п粐Ь闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑衷銓纔草痺蒹踉晒齡鳫鈑蜥繝鴒碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖竇鴈熏續瓲踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳羅囎聿蝌鷦蝟昭粡竚癈鷭п粐Ь鉤癘瘟赱碎蜴鞜竏窺瘤赱鬯蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚼繝蜀蜈肅跂瘢齦聿蝌闥蒹蛹竢銓瘟鉗鈑蒹鹿粡寂蝟赱齠洲痲筵娼辣鈕闥轣闔楠纔瘢韭絳蒹繙癜踉瘡肬鐚蝟昭粡竚癈鷭п粐Ь蜥繝跛癜黼繿齡鐚蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳残話嬪杜壥厦闕繖蜥鈔纔讀踉晒竢粤跫闍郤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳残話嬪杜壥厦闕繖蜥皴蜴粤蔗迪續瓲踉晒竢粤鈔鹿粡寂蝟赱齠洲痲筵娼跛黼闔銓緕纈癆痲粡闔瘡浜蒹痲纈鹿粡寂蝟赱齠洲痲筵娼蜴肬鴉癆蜿隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖竍藪蔗迪皴蔗粹笂瘤豁迴箝迴籖竍藪蔗迪郤碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握厳祿況汲骸碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼焜芍谺緕粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖竍藪蔗迪郤昭蝟昭粡竚癈鷭ц襷樟卯憶誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏迴糒跂閼焜芍蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬酪糒跂閼焜芍右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼頏阮蜆纉闥笊闔断黹鱸頸鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯囂竇鍋跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍阨鱆鍋跂墾踉晒齡鳫鈑閼焜芍碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯酪糒跂符緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼符緕肅纈墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼竍蛬迴糒跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢囎迯癇踉晒莢鹿粡寂蝟赱齠洲痲筵娼´慓愃蓖葹繙纈緕竇派繙蜴蜚蜿遲卞鹿粡寂蝟赱齠洲痲筵娼綜肅跂葹葹迚辣綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳氏韶跚竅闔鞣芍閼絋苳闥瘤粲纈鹿粡寂蝟赱齠洲痲筵娼竢粤竍薛黹鱸頸閼絋苳鞜竏窺闥癆纈跛縺篌蝟昭粡竚癈鷭п粐Ь断黹鱸頸瘤鴣磔蒹纈鬪蜚蜚阨繪鈑鹿粡寂蝟赱齠洲痲筵娼鱚鴈繖竚蜈銓鍋跂痺髟蜥蜩繪纈蝟昭粡竚癈鷭п粐Ь癘蜴釶辣闔蜴蜴瘤緕皷闔繙蜴繖畆蝟昭粡竚癈鷭п粐Ь鱚羹閼熏蜊絎蔗迪a粐鞳▽苳餐粐奘鞳蜥繝闥矼蜴膽蝟昭粡竚癈鷭п粐Ь蓿繙就迴籖瘡蛛鶤蔗迪s竰蜷跚癈▽苳屍竰蜷跚癈鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥蛹纉葹癇鈿蜴踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖瘡蛛鶤蔗迪s竰蜷跚癈▽苳屍竰蜷跚癈蜥繝鴒蝟昭粡竚癈鷭п粐Ь蓍竏鱚鞳踉祉閼絋苳氏韶跚竅闔鞣芍閼絋苳磔鹿粡寂蝟赱齠洲痲筵娼鶯瘤踉祉閼絋苳餐粐奘鞳閼絋苳粡鱚笏蝟絳蛹齡蛹鈿矼鹿粡寂蝟赱齠洲痲筵娼纔繝繖黼鴟纈鉤纉竢粤闔祷繝断髭踉晒竢粤鷦蝟昭粡竚癈鷭п粐Ь釶碎繖嚆畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪o頸蜿銖▽苳殺踉祉閼絋苳始頸蜿銖閼絋苳殺踉晒瓲苳粡鱚笏蝟肬鮗蝟昭粡竚癈鷭п粐Ь闥粤蛹鶤蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦緕蒹纈蜴諷断黹鱸頸蜚蛹痲鱸痰跂鹿粡寂蝟赱齠洲痲筵娼竅跛繖踉祉閼絋苳残話嬪杜壥厦閼絋苳蒹鉚蜥闔辣銓壽蜩鹿粡寂蝟赱齠洲痲筵娼鱸痰跂蛹竢銓瘟跿閹蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯粹笊辣銓鳫阡▽苳残閭緕闖熙踉晒瓲苳竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь癇蛛碎絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥蜴閼闔蜴断黹鱸頸鞜竏絳繞鹿粡寂蝟赱齠洲痲筵娼阨鱸瘡蓿繙就阯芍譬締釶迚衷銓緕蝟昭粡竚癈鷭п粐Ь蜚断髭踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢堤鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黹鱸頸跫腆噬鱸頸弥胼踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就s竰蜷閾跂鈑▽苳屍竰蜷閾悶鈑薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黹鱸頸跫艪聽鬆噬鱸頸弥臑聽鬢踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆瘡齒蓿繙就竢鱚譯關闔鵞闔鵙踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖瘡蛛鶤蔗迪s竰蜷跚癈▽苳屍竰蜷跚癈畆蝟昭粡竚癈鷭п粐Ь鱚羹閼熏蜊絎蔗迪a粐鞳▽苳餐粐奘鞳鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖迚辣譯痲粫瘤粲纈▽苳餐粐悲鈔跂鬢踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢断梼鳫鉈緕鱸痰跂鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼壽黼鴟纈蛹黼断緕鳫鉈緕鱸痰跂癈纉竰蛯繖鹿粡寂蝟赱齠洲痲筵娼蜴蒹踉氏鱚羹∵雕蓖闊闖笂甌糒芍断票蝟昭粡竚癈鷭п粐Ь鞳竕肅竅闔蒹闌跫鈑鳫皷闔鷓蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳子斗冬範嘖熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳市蓍跛鉤矼續畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪h闢瘢繻闖謨頌▽苳殺踉祉閼絋苳使闢瘢緻闖謨頌閼絋苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь黼踉祉閼絋苳誌遉踉晒竢粤蜚閹磔繙癜踉鈔畆蝟昭粡竚癈鷭п粐Ь纐纈黼林闖謨閹蒹窿纉皷鈑闢痲糅纉蜴粤繖鹿粡寂蝟赱齠洲痲筵娼肅鈔蓖齡瘢絎筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳子斗冬苗杜圖踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐壽蜩蛹闔踟黼蜀踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯蜆緕竏繝襤符緕宙繝襴踉晒瓲苳蜩續鐚蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳誌遉踉晒竢粤鈔蒹窿纉皷鈑闢齦韶闥蒹粤銓鹿粡寂蝟赱齠洲痲筵娼頏阡閭闌麗葹竢銓緕蜩癇蛛碎竅銕阡綣蝟昭粡竚癈鷭п粐Ь繻蜈闔繝癜黼竅縺皷踟聲諷筱鈔纈蜩鹿粡寂蝟赱齠洲痲筵娼頏陂矼繞竚蜈銓鈔蒹纈鬪蜩齦瘡踟鹿粡寂蝟赱齠洲痲筵娼跛繻纉鶤筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳子斗冬孑賭熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳市蓍跛鉤矼續断黹鱸頸齦礪繝鹿粡寂蝟赱齠洲痲筵娼癜緕竅闔踉晒粐鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≪芍焙繧釶辣就竍蛬粤碯腆断偵碯艸蜴胼踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼偵碯艸蜴断黹鱸頸葹痲蜚蜿釶跛矼緕蜀肅笊踉轣蜴踟鹿粡寂蝟赱齠洲痲筵娼矼竅蜚癈阡繞竟齠蛯跂齡阨齡瘤籬鰾鹿粡寂蝟赱齠洲痲筵娼阨鈔鴪闥肬黹鱸頸蜒癇聲蛹蜴鹿粡寂蝟赱齠洲痲筵娼頏關纈踟壽纉粡鱚笏蝟纉蜴竚繖草痺蒹鈔癆纈蝟昭粡竚癈鷭п粐Ь鳫粤闥粤蛹繖閾芍鈑纈鳫鴦蒹纖窿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢断弥艷蛹楠鴉癆王苳纂蝟昭粡竚癈鷭п粐Ь蒹竢鈕蜃繖断纈鳫跫跫苴銷派蓍竏閻鈿蝟昭粡竚癈鷭п粐Ь笊鳫鞳鳰痺断黹鱸頸蓍竏瘟踈關纈癆竅纉鹿粡寂蝟赱齠洲痲筵娼黼鱇跚鈬閹鈕闥轣闔矼閾艱筮蒹蜥齡蜴纉鹿粡寂蝟赱齠洲痲筵娼癇瘡肬鴉癆鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь昿踉糸蹙苳飼蜊絋踉晒纃纃鱚髟纉跚鈬蹙苳纂蝟昭粡竚癈鷭п粐Ь纃挽墅鵙踉晒纃踉糸蹙苳暫派竰蜷肅跂釶辣蹙苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь纈鳫蜩葹断黹鱸頸瘤鈿矼跫肅跂鹿粡寂蝟赱齠洲痲筵娼跛闔蜴纔跚鈬鷓蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼ゥ纈鳫鮗蝟昭粡竚癈鷭п粐Ь踉糸蹙苳糸鴪闥纉黶艱蹙苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉纈釶踟蜀蒹鴪闥鱚齦踉黹鱸頸鹿粡寂蝟赱齠洲痲筵娼鱚鴈蜴蜴竢鴪繝蒹痲纈鈕闥轣闔閹糒郤蝟昭粡竚癈鷭п粐Ь蒹竰蜷肬跛阯蜴蜴肬鴉癆蜿蜩閾艱篋蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼ヲ繿齡鹿粡寂蝟赱齠洲痲筵娼纃糟挽墅繿齡縺粤鴦繝繪筅踉晒纃鹿粡寂蝟赱齠洲痲筵娼纃佻嘖侖緕蜀銷踉晒纃鹿粡寂蝟赱齠洲痲筵娼ヲ纉竟銖綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳餐跛縺粤鴦頤磔蒹派竰蜷熙踉晒纃鹿粡寂蝟赱齠洲痲筵娼ン阨蝟昭粡竚癈鷭п粐Ь踉糸蹙苳暫派鈔癇阨蹙苳纂蝟昭粡竚癈鷭п粐Ь齡粤鴪鹿粡寂蝟赱齠洲痲筵娼纃断齡瘤籬鰾鴪闥蹙苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь壽ン阨瘤ン纈鞜鶯轣矼蜩皷鈑黹鱸頸蜆鹿粡寂蝟赱齠洲痲筵娼鈿阨銷蜴闔鈔癇阨齡瘤籬鰾鴪闥蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏‰竰蜷閾釶辣就黹鱸頸跫腆噬鱸頸弥胼踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝界苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑竰蜷閾鹿粡寂蝟赱齠洲痲筵娼纃肅跂釶辣蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳鈿鈬碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑閼焜芍蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽噬鱸頸弥胼踉晒蜥繝續断黹鱸頸鴪闥鹿粡寂蝟赱齠洲痲筵娼跫艷蛹絎鈿竰蜷閾芍遯纈鳫跫蜩鱚癆繖膚鹿粡寂蝟赱齠洲痲筵娼芍遯銷派鴪闥癇跫艸繖銓肅跂釶辣蝟緕鷦蝟昭粡竚癈鷭п粐Ь鱧緕蜩鱚赱蛹闥癆蜚諷郤蝟昭粡竚癈鷭п粐Ь繻癆蝟蒹纈鳫阡踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閾蛹矼鞳鈬癈蒹黼竏蛹頏閭纉黼鴣郤蝟昭粡竚癈鷭п粐Ь鵺絎蒹黼齔繝蜀蜈蜴蒹瘟畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪u黼鬆專纈蜥繝壽蜩縺銖葹蝟昭粡竚癈鷭п粐Ь蜚蒹粡鱚笏闥黹鱸頸閾蜴繞糂矼鱸碎綣蝟昭粡竚癈鷭п粐Ь癆黼闥蒹蛹鈬繖轣銛瘡踟鱚癆繖鈔續鹿粡寂蝟赱齠洲痲筵娼蜚痰跂癆黼鬯韭痺黹鱸頸閾郤蝟昭粡竚癈鷭п粐Ь阨轣蜴閾粡鱚笏闥齡鳫鈑力圖踉晒齡鳫鈑葹鈑綣蝟昭粡竚癈鷭п粐Ь蜥繝鴒纈迚齠蜿銖轣諷蜚痰跂纈蒹蓍趙鹿粡寂蝟赱齠洲痲筵娼頏閭纉黼鴣癈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗葹黹鱸頸閾芍鈑辣瘤粤碯艸蜴聽癆綣蝟昭粡竚癈鷭п粐Ь蒹蜚蜴断黹鱸頸鵺鈔鈿辣瘤痺篌蝟昭粡竚癈鷭п粐Ь闔銛阨鼬闔鉗鈑纈鴦部鈿關迚肬齔繞篌蝟昭粡竚癈鷭п粐Ь繙肅竕緕笙瘤轣葹繝蜚頏閧跂逑繖畆蝟昭粡竚癈鷭п粐Ь瘤鈬阡蒹瘤葹肬蜒蜚癈纉蜃鈬筮鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就黹鱸頸跫芟緕苳茴鹿粡寂蝟赱齠洲痲筵娼釶辣就黹鱸頸跫芟緕苳茴噬鱸頸弥臾緕苳荀踉晒瓲苳粡鱚笏蝟絋踉晒莖鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳噬鱸頸弥臾緕苳莠蝟昭粡竚癈鷭п粐Ь踉糸蹙苳獅纉蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳碓蓋儀彊碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑閼焜芍蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮噬鱸頸弥臾緕苳荀踉晒瘤繖跚迚皷羲蝟昭粡竚癈鷭п粐Ь蒹派竰蜷跫艷蛹絎蜴竇蒹閾肅跂閾跫閹鹿粡寂蝟赱齠洲痲筵娼蜴肬鴉癆蜿鞳断纈鳫跛繿齡縺粤鴦瘡黹鱸頸鹿粡寂蝟赱齠洲痲筵娼阨蜚瘤鳫砠肅跂夬鱚銓鳫碎纃糒綣蝟昭粡竚癈鷭п粐Ь硼粤苒阯蜩蜥繝瘤繖黼瘤鹿粡寂蝟赱齠洲痲筵娼轣逡肅跂蝴肬断跫艷蛹絎肅跂繞糂蓍鷦蝟昭粡竚癈鷭п粐Ь蝴絳迴鱚鈕闥轣闔蛹矼鱸緕蜚踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏‰竰蜷閾碯聿纈⊆蝟昭粡竚癈鷭п粐Ь瘢綵‰竰蜷閾碯聿纈▽苳屍竰蜷閾濯聿纈界苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑竰蜷閾濯聿纈鹿粡寂蝟赱齠洲痲筵娼纃磔鵙踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑芦侃踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅胼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳迴籖竍鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蝴閹銷孕佻嘖銓蜚硼糯葹蜩閾艱鹿粡寂蝟赱齠洲痲筵娼肅跂跚迚筱頏纐緕跫肅跂鳫鈑闖蜃鹿粡寂蝟赱齠洲痲筵娼髟蜒謖蜀癇艱閼蜈癇矼蜴鱚竇蝟繖濁繙癜踉鹿粡寂蝟赱齠洲痲筵娼芦磔癇跫艸繖碯蜩瘤竏瘤艱蓍鷦蝟昭粡竚癈鷭п粐Ь蜥繝´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焜芍谺蔗迪閭鶩轣銛瘡閼閼焜芍谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭蓋傾傑瘋宜錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖竍藪蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼焜芍谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就迴籖竍藪蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖竍藪蔗迪甌裼皴蔗粹笂瘤豁迴箝迴籖竍藪蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握高割絣抗擬碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼焜芍谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖竍藪蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯憶誓鹿粡寂蝟赱齠洲痲筵娼据迪纈皷闔就窺唖釿閼蜴臀∫齒芦沖褓⊃鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪貂赱鈑就裃赱鈑就裃▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖竍薤踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩鱚皷闔窺乙苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆迴籖竍モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪派ぢスクリプトを孫圓垢覽’修鯆鷆,靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪S阨鱆綟蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑閼焜芍碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯酪糒跂符緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢモジュ・踉札襴踉傘別子:</strong></a> cgi_module + </p> + + <h2>概要</h2> + <!-- XXX: Should have references to CGI definition/RFC --> + <p>Mime タイプが <code>application/x-httpd-cgi</code> + であるか、ハンドラ <code>cgi-script</code> (Apache 1.1 以降) + が指定されているファイルは CGI スクリプトとして扱われ、 + サ・踉札个砲茲螟踉斬行され、その出力がクライアントに返されます。 + ファイルは、<a href="mod_mime.html#addtype">AddType</a> + ディレクティブに指定された 拡張子を巳苳餐阿亡泙爐鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖瘡蛛鶤蔗迪s竰蜷跚癈▽苳屍竰蜷跚癈鹿粡寂蝟赱齠洲痲筵娼ディレクトリに存在することによりこのタイプになります。 + <a href="mod_alias.html#scriptalias">ScriptAlias</a> + ディレクトリになく、<code>AddType</code> + ディレクティブにより <code>application/x-httpd-cgi</code> + のタイプを持つファイルは、<code>Options ExecCGI</code> + が指定されていなければサ・踉札个砲茲螟踉斬行されることはありません。 + 楮戮踉氏鱚羹≪闥絎蔗迪o頸蜿銖▽苳殺踉祉閼絋苳始頸蜿銖閼絋苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブを 参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢサ・踉札个派ぢスクリプトを孫圓垢襪箸砲蓮鹿粡寂蝟赱齠洲痲筵娼竢粤掴稚妖淋瀲蕨圖踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼と呼ばれる変数を環境に追加します。この変数は + <a href="core.html#documentroot">DocumentRoot</a> + の値を保持します。</p> + + <p>Apache で CGI スクリプトを使用するためのイントロダクションは、 + <a href="../howto/cgi.html">CGI による動的コンテンツ</a> + を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢ディレクティブ</h2> + + <ul> + <li><a href="#scriptlog">ScriptLog</a></li> + + <li><a href="#scriptloglength">ScriptLogLength</a></li> + + <li><a href="#scriptlogbuffer">ScriptLogBuffer</a></li> + </ul> + + <p><a href="core.html#options">Options</a>, <a + href="mod_alias.html#scriptalias">ScriptAlias</a>, <a + href="mod_mime.html#addtype">AddType</a>, <a + href="mod_mime.html#addhandler">AddHandler</a> + も参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼莢断環境変数</h2> + <p>サ・踉札个踉氏鱚羹∵雕蓖闊闖笂甌糒芍断票蝟昭粡竚癈鷭п粐Ьぢ規格</a> で決められている CGI + 環境変数を設定します。以王踉擦里發里蓮▽苳賜件付きで設定されます。</p> + + <dl> + <dt>REMOTE_HOST</dt> + + <dd><a + href="core.html#hostnamelookups"><code>HostnameLookups</code></a> + が <code>on</code> (デフォルトでは off です) + で、アクセスしているホストのアドレスの DNS + の逆引きが尊櫃縫曠好般を見つけたときにのみ設定されます。</dd> + + <dt>REMOTE_IDENT</dt> + + <dd><a href="core.html#identitycheck">IdentityCheck</a> + が <code>on</code> に設定されていて、アクセスしているホストが + ident プロトコルをサポ・踉札箸靴討い襪箸砲里濱瀋蠅気譴泙后鹿粡寂蝟赱齠洲痲筵娼これは簡単に偽ることができ、クライアントとサ・踉札个隆屬鹿粡寂蝟赱齠洲痲筵娼プロキシがあればまったく役に立たないので、 + この変数の値は信用できないという瘢雹ことに注意してください。 + </dd> + + <dt>REMOTE_USER</dt> + + <dd>CGI + スクリプトに認擇廚覆箸砲里濱瀋蠅気譴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就竍蛬粤碯腆瘢綵≪芍焙繧▽苳暫派ぢのデバッグ</a></h2> + <p>CGI スクリプトのデバッグは、正しく動作していないスクリプトの出力 + (標準出力とエラ・踉蝟昭粡竚癈鷭п粐Ьぢを調べることができないために、難しい屬海い討い泙靴拭鹿粡寂蝟赱齠洲痲筵娼これらの Apache 1.2 以降にある + ディレクティブはより楮戮淵┘蕁のログ犬鯆鷆,靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢断ログファイルの書王苳纂蝟昭粡竚癈鷭п粐Ь踉諮設定されているときには、CGI エラ・踉札蹈阿賄擇貌虻遒靴覆い垢戮討鹿粡寂蝟赱齠洲痲筵娼断をログ犬靴泙后修譴れの正しく動作しない CGI + スクリプトは 複数の行にわたる霾鵑蹈愛踉持集されます。最初の + 2 行は錣飽焚の書阿任墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼ゥ纃辣蹙苳旨踉糸蹙苳賜繿齡蜴絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼ゥ踉糸蹙苳使墺亅齡癆蹙苳纃断畢黹鱸頸蛹緕瘢絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼隍苳ぢエラ・踉擦断スクリプトが孫圓任覆い箸い逅擦發里任△襴苳詞合は、 + ログファイルはさらにもう瘢雹 2 行書かれます:</p> +<pre> + %%error + <em>error-message</em> +</pre> + <p>そう瘢雹ではなく、エラ・踉擦気靴覆ぅ悒奪畝苳諮報を返す結果である豺鹿粡寂蝟赱齠洲痲筵娼ぢスクリプトのバグであることがよくあります)、 + 以王踉擦陸苳諮報がログ犬気譴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼ヲ繿齡鹿粡寂蝟赱齠洲痲筵娼纃糟挽墅繿齡縺粤鴦繝繪筅踉晒纃鹿粡寂蝟赱齠洲痲筵娼纃佻嘖侖緕蜀銷踉晒纃鹿粡寂蝟赱齠洲痲筵娼ヲ纉竟銖綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳餐跛縺粤鴦頤磔蒹派竰蜷熙踉晒纃鹿粡寂蝟赱齠洲痲筵娼ン阨蝟昭粡竚癈鷭п粐Ь踉糸蹙苳暫派鈔癇阨蹙苳纂蝟昭粡竚癈鷭п粐Ь齡粤鴪鹿粡寂蝟赱齠洲痲筵娼纃断齡瘤籬鰾鴪闥蹙苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮ぢスクリプトが標準出力や標準エラ・踉擦鵬燭盻侘呂靴覆辰職苳詞合は、 + %stdout や %stderr はありません)。</p> + <hr /> + + <h3><a id="scriptlog" name="scriptlog">ScriptLog</a> + ディレクティブ</h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ScriptLog + <em>filename</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> none<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑閼焜芍蝟昭粡竚癈鷭п粐Ь踉諮噬鱸頸弥胼踉晒ぢディレクティブは CGI スクリプトの + エラ・踉札蹈哀侫.ぅ襪鮴瀋蠅靴泙后噬鱸頸弥が設定されていないときは、 + エラ・踉札蹈阿郎鄒気譴泙擦鵝瀋蠅気譴討い襪箸蓮断票蝟昭粡竚癈鷭п粐Ьぢのエラ・踉擦呂垢戮動瑤箸靴突燭┐蕕譴討い襯侫.ぅ詭にログされます。 + 相対パスで指定されているときは、 + サ・踉札丱襦トからの相対パスとして扱われます。</p> + + <p>このログは子プロセスが孫圓気譴討い襯罅ザとしてオ・踉札廛鵑気譴泙后鹿粡寂蝟赱齠洲痲筵娼すなわち、<a href="core.html#user">User</a> ディレクティブで指定された + ユ・踉札兇任后海譴蓮▲好螢廛肇蹈阿颪譴襯妊譽肇蠅修離罅ザで + 書き込み可能か、スクリプトファイルが蠧阿悩鄒気譟△修離罅ザで + 書き込み可能になっている必要があるという瘢雹ことです。スクリプトログを + アクセスログなどのためのログディレクトリに書かれるよう瘢雹にしたときは、 + そのディレクトリを子プロセスを孫圓靴討い襯罅ザの権限で + 書き込み可能には<strong>しない</strong>よう瘢雹にしてください。</p> + + <p>スクリプトのログ犬派ぢスクリプトを書くときの + デバッグ用の機能として意図されていて、通錣離機バで + 錣忙藩僂気譴襪茲逅擦砲楼嫂泙気譴討い覆い箸い逅擦海箸肪躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼速度や効率は最適化されておらず、設計された以外の方法で使用されると + セキュリティの問題があるかもしれません。</p> + <hr /> + + <h3><a id="scriptloglength" name="scriptloglength">ScriptLogLength</a> + ディレクティブ</h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ScriptLogLength + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> 10385760<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑閼焜芍蝟昭粡竚癈鷭п粐Ь踉諮噬鱸頸弥臾緕苳荀踉晒ぢは CGI スクリプトのログファイル + の大きさを制限するために使用することができます。ログファイルは + CGI のエラ・踉史茲紡舂未陸苳諮報 (リクエストのすべてのヘッダ、 + すべての出力)をログしますので、すぐに大きなファイルになります。 + この大きさの制限がないことによる問題を防ぐために、 + このディレクティブを使って CGI のログファイルの + 最大のファイルサイズを設定することができます。 + ファイルがこの大きさを超えた豺腓蓮△修谿弗苳糸は書き込まれません。</p> + <hr /> + <h3><a id="scriptlogbuffer" + name="scriptlogbuffer">ScriptLogBuffer</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> ScriptLogBuffer + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> 1024<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑閼焜芍蝟昭粡竚癈鷭п粐Ь踉諮大きな本体を右踉肢ったときにログファイルがすぐに大きくなりすぎる + 問題を避けるために、ファイルにログ犬気譴孕ぢと POST + の本体の大きさは制限されています。デフォルトでは、1024 + バイトまでがログ犬気譴泙垢鹿粡寂蝟赱齠洲痲筵娼このディレクティブはそれを変更することができます。 + </p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_cookies.html b/htdocs/manual/mod/mod_cookies.html new file mode 100644 index 0000000000..f5f23d5943 --- /dev/null +++ b/htdocs/manual/mod/mod_cookies.html @@ -0,0 +1,52 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_cookies</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_cookies</h1> + <strong><font color="red">This module is obsolete. As of + version 1.2 of Apache, it has been replaced with <a + href="mod_usertrack.html">mod_usertrack</a>.</font></strong> + + <p>This module is contained in the <code>mod_cookies.c</code> + file, and is not compiled in by default. It provides for + Netscape(TM) cookies. There is no documentation available for + this module.</p> + + <ul> + <li><a href="#cookielog">CookieLog</a></li> + </ul> + <hr /> + + <h2><a id="cookielog" name="cookielog">CookieLog</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CookieLog + <em>filename</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Experimental<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_cookies + + <p>The CookieLog directive sets the filename for logging of + cookies. The filename is relative to the <a + href="core.html#serverroot">ServerRoot</a>.</p> + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_digest.html b/htdocs/manual/mod/mod_digest.html new file mode 100644 index 0000000000..67a4bbe629 --- /dev/null +++ b/htdocs/manual/mod/mod_digest.html @@ -0,0 +1,124 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_digest</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_digest</h1> + + <p>This module provides for user authentication using MD5 + Digest Authentication.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_digest.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + digest_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.1 and later.</p> + + <h2>Summary</h2> + + <p>This module implements an older version of the MD5 Digest + Authentication specification. While suitable for most modern + browsers, mod_digest is known to not work with Microsoft + Internet Explorer. Please see <a + href="mod_auth_digest.html">mod_auth_digest</a> for a module + which implements the most recent version of the standard + and does not suffer from the same limitations as mod_digest.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#authdigestfile">AuthDigestFile</a></li> + </ul> + + <h2>Using Digest Authentication</h2> + + <p>Using MD5 Digest authentication is very simple. Simply set + up authentication normally. However, use "AuthType Digest" and + "AuthDigestFile" instead of the normal "AuthType Basic" and + "AuthUserFile".</p> + + <p>As to make sure that replay is not possible across + sections of the site, or across sites (assuming a realm, + userid and password are valid in that wider context) a + secret nonce prefix can be configured with the + core directive <a href="core.html#AuthDigestRealmSeed">AuthDigestRealmSeed</a>. + </p> + <p>If none if configured a sensible, but not particular + secure, default is used. When used in load balancing + situations the prefix should be shared across servers. + </p> + <p>The experimental <a href="mod_auth_digest.html">mod_auth_digest</a> + module offers a number of additinal protections against replay. + </p> + + <p>Everything else should remain the same.</p> + + <p>MD5 authentication provides a more secure password system, + but only works with supporting browsers. As of this writing + (December 2003) most major browsers, including + <a href="http://www.microsoft.com/windows/ie/">MS Internet Explorer</a>, + <a href="http://www.opera.com/">Opera</a>, + <a href="http://www.netscape.com/">Netscape</a>, + <a href="http://www.mozilla.org/">Mozilla</a>, and + <a href="http://www.w3.org/Amaya/">Amaya</a>, + support the Digest authentication scheme. However, of this list + MS Internet Explorer is known to be incompatable with the + older digest authentication format supported by this module. + Therefore, we do not recommend using this module on a large + Internet site. However, for personal and intra-net use, where + browser users can be controlled, it is ideal.</p> + + <p>See also <a href="mod_auth_digest.html">mod_auth_digest</a>, + which is an updated version of this module, in order to determine + whether you want to use that module instead. In either case, if + you are using one, you should not use the other, as they share + some of the same configuration directives.</p> + <hr /> + + <h2><a id="authdigestfile" + name="authdigestfile">AuthDigestFile</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AuthDigestFile + <em>filename</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> AuthConfig<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_digest + + <p>The AuthDigestFile directive sets the name of a textual file + containing the list of users and encoded passwords for digest + authentication. <em>Filename</em> is the absolute path to the + user file.</p> + + <p>Example</p> + + <code>AuthDigestFile /usr/local/apache/passwords/passwords.digest</code> + + <p>The digest file uses a special format. Files in this format + can be created using the "<a href="../programs/htdigest.html">htdigest</a>" + utility found in the support/ subdirectory of the Apache distribution.</p> + + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_dir.html.en b/htdocs/manual/mod/mod_dir.html.en new file mode 100644 index 0000000000..d1573a6674 --- /dev/null +++ b/htdocs/manual/mod/mod_dir.html.en @@ -0,0 +1,115 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_dir</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_dir</h1> + + <p>This module provides for "trailing slash" redirects and + serving directory index files.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_dir.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + dir_module</p> + + <h2>Summary</h2> + The index of a directory can come from one of two sources: + + <ul> + <li>A file written by the user, typically called + <code>index.html</code>. The <a + href="#directoryindex">DirectoryIndex</a> directive sets the + name of this file. This is controlled by + <code>mod_dir</code>.</li> + + <li>Otherwise, a listing generated by the server. This is + provided by <a + href="mod_autoindex.html"><code>mod_autoindex</code></a>.</li> + </ul> + The two functions are separated so that you can completely + remove (or replace) automatic index generation should you want + to. + + <p>A "trailing slash" redirect is issued when the server + receives a request for a URL + <samp>http://servername/foo/dirname</samp> where + <samp>dirname</samp> is a directory. Directories require a + trailing slash, so <code>mod_dir</code> issues a redirect to + <samp>http://servername/foo/dirname/</samp>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#directoryindex">DirectoryIndex</a></li> + </ul> + <hr /> + + <h2><a id="directoryindex" + name="directoryindex">DirectoryIndex</a> directive</h2> + <!--%plaintext <?INDEX {\tt DirectoryIndex} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DirectoryIndex + <em>local-url</em> [<em>local-url</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>DirectoryIndex + index.html</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Indexes<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_dir + + <p>The DirectoryIndex directive sets the list of resources to + look for, when the client requests an index of the directory by + specifying a / at the end of the a directory name. + <em>Local-url</em> is the (%-encoded) URL of a document on the + server relative to the requested directory; it is usually the + name of a file in the directory. Several URLs may be given, in + which case the server will return the first one that it finds. + If none of the resources exist and the <code>Indexes</code> + option is set, the server will generate its own listing of the + directory.</p> + + <p>Example:</p> + + <blockquote> + <code>DirectoryIndex index.html</code> + </blockquote> + then a request for <code>http://myserver/docs/</code> would + return <code>http://myserver/docs/index.html</code> if it + exists, or would list the directory if it did not. + + <p>Note that the documents do not need to be relative to the + directory;</p> + + <blockquote> + <code>DirectoryIndex index.html index.txt + /cgi-bin/index.pl</code> + </blockquote> + would cause the CGI script <code>/cgi-bin/index.pl</code> to be + executed if neither <code>index.html</code> or + <code>index.txt</code> existed in a directory. + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_dir.html.html b/htdocs/manual/mod/mod_dir.html.html new file mode 100644 index 0000000000..51a9afa0e2 --- /dev/null +++ b/htdocs/manual/mod/mod_dir.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_dir.html.en" --> + diff --git a/htdocs/manual/mod/mod_dir.html.ja.jis b/htdocs/manual/mod/mod_dir.html.ja.jis new file mode 100644 index 0000000000..2ccbeae4a3 --- /dev/null +++ b/htdocs/manual/mod/mod_dir.html.ja.jis @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache module mod_dir</title> + + </head> + <!-- English revision: 1.16 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_dir モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪蓮▲好薀奪轡紊能錣厂ぢへのリクエストがあった際に、 + ディレクトリインデックスファイルへリダイレクトして提供します。</p> + + <p><a href="module-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪s阨鱆繙蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑閼焙蜥碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯迴糒跂蜆緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札襴踉傘別子:</strong></a> + dir_module</p> + + <h2>概要</h2> + <p>ディレクトリインデックスは、,瞭鵑弔里逅擦舛匹舛蕕僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚一つ目は、ユ・踉札兇鄒靴織侫.ぅ襪鰺僂い襪發里如巳苳誌 + <code>index.html</code> という瘢雹ファイル巳苳擦鮖箸い泙后海離侫.ぅ詭は、 + <a href="#directoryindex">DirectoryIndex</a> ディレクティブで + 指定することができます。この機能は <code>mod_dir</code> + モジュ・踉札襪把鷆,気譴泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢもう瘢雹一つの方法は、 + サ・踉札个砲茲辰豆踉捌動的に生成されるディレクトリリストを用いる豺腓任后鹿粡寂蝟赱齠洲痲筵娼この機能は、<a href="mod_autoindex.html"><code>mod_autoindex</code></a> + モジュ・踉札襪砲茲蠶鷆,気譴泙后薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼暗淵ぅ鵐妊奪浩言’修鮑鐔もしくは交換) + できるよう瘢雹に、この二つの機能は分離されています。 + + <p>なお <samp>http://servername/foo/dirname</samp> という瘢雹 URL + へのリクエストがあった際に、<samp>dirname</samp> + という瘢雹ディレクトリがあれば、「最後にスラッシュをつけた形」の URL + へのリダイレクトを送出します。 + ディレクトリへのアクセスはスラッシュで終わっている必要があり、 + <code>mod_dir</code> は、<samp>http://servername/foo/dirname/</samp> + へのリダイレクトを送出することになります。</p> + + <h2>ディレクティブ</h2> + <ul> + <li><a href="#directoryindex">DirectoryIndex</a></li> + </ul> + <hr /> + + <h2><a name="directoryindex" id="directoryindex">DirectoryIndex</a> + ディレクティブ</h2> + <!--%plaintext <?INDEX {\tt DirectoryIndex} directive> --> + <p><a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> DirectoryIndex + <em>local-url</em> [<em>local-url</em>] ...<br /> + <a href="directive-dict.html#default" + rel="help"><strong>デフォルト:</strong></a> <code>DirectoryIndex + index.html</code><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑鈔纔纉碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼焙蜥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳纂蝟昭粡竚癈鷭п粐Ьぢクライアントが、ディレクトリ巳苳擦虜埜紊法ぢ」 + を指定してディレクトリインデックスを要求する豺腓肪気好螢宗スのリストを + DirectoryIndex ディレクティブで設定します。<em>Local-url</em> + は、リクエストされたディレクトリに対応する、サ・踉札丶苳糸のドキュメントの + (% エンコ・踉札匹気譴孀で、普通はディレクトリ中のファイルの巳苳餐阿任后鹿粡寂蝟赱齠洲痲筵娼複数の URL が設定された豺腓砲蓮∈能蕕妨弔辰燭發里鯤屬靴泙后鹿粡寂蝟赱齠洲痲筵娼それらが見つからず、<code>Indexes</code> + オプションがセットされている豺隋▲妊譽肇蠅離螢好箸鮴言靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> + <blockquote> + <code>DirectoryIndex index.html</code> + </blockquote> + <code>http://myserver/docs/</code> へのアクセスがあり、 + <code>http://myserver/docs/index.html</code> + が存在すれば、この URL が返されます。 + もし存在しなければ、ディレクトリのリストが返されます。 + + <p>注: ドキュメントは同じディレクトリ内に存在する必要ありません。 + </p> + + <blockquote> + <code>DirectoryIndex index.html index.txt + /cgi-bin/index.pl</code> + </blockquote> + とした豺隋竢粤蜴粤蔗迪閼絋苳と <code>index.txt</code> + のどちらもディレクトリ内で存在しない豺隋断スクリプト + <code>/cgi-bin/index.pl</code> が孫圓気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼焙趙皴蔗粹笂瘤豁迴箝迴籖粲筮蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭俄傑鴻延粐錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖粲筮蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖粲筮蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐旭声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖粲筅踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳四閼迴籖粲筅踉晒莟鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑肬銓闌闥就鱚笄壽蜩閼蜩碵闌續絎閹鹿粡寂蝟赱齠洲痲筵娼鴦蜿窺閹鞜竏絳葹矼緕辮赱竇踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖齒譬迴籖齒踉晒肬銓闔胼苳壽蜩閼蜩鹿粡寂蝟赱齠洲痲筵娼竢銓瘟鈬蜴蒹踉祉閼絋苳詩閼焙趙閼絋苳肅跂瘤蜩阡鹿粡寂蝟赱齠洲痲筵娼竢逅蛹繖磔繙癜踉部鳫粤肬跫痲蜴閹笊碎綣蝟昭粡竚癈鷭п粐Ь閼瘤迴糒跂蜴蒹纈癆鶯辣蜴綣蝟昭粡竚癈鷭п粐Ь燐趙蛯鱇鴒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢囎迯癇踉晒莢鹿粡寂蝟赱齠洲痲筵娼壽關闔瘡趙閼蜩鳫閹罩竢釿辮韈繝閹閼綣蝟昭粡竚癈鷭п粐Ь蓍竏閨糂纈閼纉銓黼鴟纈蜚竢鈕蜃蜴膽蝟昭粡竚癈鷭п粐Ь繻蒹蜥齡蜊闔踟肬鈿纈縺粡鈑蒹闔肅膽蝟昭粡竚癈鷭п粐Ь蛹纉瘤鈿瘋聽笏蒹跫痲繖閼纉皷鈑蒹燐鹿粡寂蝟赱齠洲痲筵娼糯釶迚跚鉉蜴跚碣癇鳴部齊闕韈跂蜴蒹纈鮗蝟昭粡竚癈鷭п粐Ь粤聲蜴竇阡鴒闔葹通潮鳬緕鴒鹿粡寂蝟赱齠洲痲筵娼蜚瘢阨赱齡闥糂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗葹肬齒辣縺齒遯踉祉閼絋苳嗣閨籠蛹蛯蛯祟瓲踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼黼纃鱚髟蜥繖闥痰阨纐纈蓍鈑踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗癆鳴繞糂鱚痲蒹硼碎阨閹蒹鹿粡寂蝟赱齠洲痲筵娼黼鴟纈蜴癇緕鶯蜴纉竢迯瘤糂蛹聲蛹綣蝟昭粡竚癈鷭п粐Ь纈竅逾肅鈔蜴癇緕齡癇隱蜀葹蝟昭粡竚癈鷭п粐Ь蜴癇蜩蜷鞳筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢堤鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■跫痲肅跂▽苳嗣閨籠蛹絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就l閨粱閼紜弥痲酪糒跂薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就跫痲肅跂釶辣就跫痲肅跂▽苳嗣閨籠蛹絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳弥痲鍋跂踉糸蹙苳紙蛹緕瘢綣蝟昭粡竚癈鷭п粐Ь蛹緕瘢踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑纈蜊緕讀踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹閨籠蛹粡鱚笏蝟跚鉉蜴蒹瘢繖礪繝肅跂闥鹿粡寂蝟赱齠洲痲筵娼跚碣癇蜈緕蒹纈蜩鶯繖蜩繖跫痲鹿粡寂蝟赱齠洲痲筵娼痲粡闔瘡閼蜒轣矼繿鱚肬齒辣閼闥覡鹿粡寂蝟赱齠洲痲筵娼纃鍋跂釶辣蹙苳蜩繻癆蝟踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯黼鴟纈鳫阡▽苳屍纈鰔闖熙踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就跫痲迴糒跂釶辣就跫痲迴糒跂▽苳嗣閨簍閼絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳弥痲酪糒跂踉糸蹙苳詩閼綣蝟昭粡竚癈鷭п粐Ь蛹緕瘢絋踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑纈蜊緕讀踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹閨簍閼粡鱚笏蝟跚鉉蜴蒹礪繝肅跂跚碣癇蝟昭粡竚癈鷭п粐Ь踉糸蹙苳紙蛹緕瘢絋踉晒纃鈔粐迴糒跂鱚瘢繖鹿粡寂蝟赱齠洲痲筵娼纃迴糒跂蹙苳蒹蜩閹笏蝟迴糒跂鶤踉糸蹙苳四閼絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼蜩蒹瘢閹蒹纈釶鱸痰跂鞳鹿粡寂蝟赱齠洲痲筵娼竢粤迴糒跂閼絋苳蜴蒹蛹絎逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳嗣閨簍閼瘟烽痺諠闕鞜迴糒跂鹿粡寂蝟赱齠洲痲筵娼迴糒跂鶩迴籖瘟烽痺諠闕鞜錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь弥痲鍋跂跚皴跚矣閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼跫痲迴糒跂迴糒跂齦矮蜥繝鴒嚆鴟纈呰阡蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼煥鉚谺緕閭鶩轣銛瘡閼閼煥鉚谺緕錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭蔚吾御衣甍錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖緕蔗迪鄂莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼煥鉚谺緕鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐害声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖緕踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳餐鞜竏迴糒跂閼煥鉚右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼頏阮蜆纉闥閼蜀鈑蒹鉚蜥闔辣銓蓍竏鷦蝟昭粡竚癈鷭п粐Ь癈黼派竰蜷鈔喇瘍纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就迴糒跂蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪S阨鱆綟蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囂竇蛹綺闔胼苳殺踉晒瓲苳迴籖緕礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪M閼緝粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂粤銓蜀蜈鮑闔胼苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь鉚熏閼絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑蛹痰跂郤蝟昭粡竚癈鷭п粐Ь鞜竏窺瘤赱鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢囎迯癇踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍迴糒跂跛阯肬竢銓鳫閹蒹鉚蜥闔辣銓葹跛鹿粡寂蝟赱齠洲痲筵娼矼鳫粤派竰蜷鈔喇瘍纉梼鳫鉈緕鱸痰跂鷦蝟昭粡竚癈鷭п粐Ь癨鞜齠繖鳫鼈繻蜒蜴諷蔗頏閭纉鶤鹿粡寂蝟赱齠洲痲筵娼糟鴈癆蝟繻鉚蜥闔辣銓癇蛛碎纉癨黼闥銖續蜚蓍郤蝟昭粡竚癈鷭п粐Ь蒹闔肅苺鱇闔鳫竇齠踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮楠痲粡闔瘡鈕闥轣闔鳫粤閭緕闔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就鉚譬梼鳫鉈緕已鱸痰跂蜴鞜竏絋踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢堤鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■鞜齠緕倚齠梼踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就s續緕嚆鉚薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黼鉚▽苳師銖續梼踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏癈黼鉚釶辣就鞜齠緕倚齠梼踉晒瓲苳粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳倚齠梼蝟昭粡竚癈鷭п粐Ь踉糸蹙苳糸鉚癇蛛碎絋踉晒纃纃緕鱸痰跂蹙苳旨碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃鶯貅蝟昭粡竚癈鷭п粐Ь闢蜥繝鴒窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳鍋跂侮肬碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖緕踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳倚齠梼蜩鉤蝟昭粡竚癈鷭п粐Ь蛹痰跂草痺蒹鈔癆纈蜥繝鴒鈔蔗痺竇齠闔鹿粡寂蝟赱齠洲痲筵娼蜩蛹痰跂草痺蒹鈔癆纈蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚼繝蜀蜈闔闥闥緕鳫鉈緕鱸痰跂癈派鹿粡寂蝟赱齠洲痲筵娼黹鱸頸瘤嗷鞜艱胙闕蒹鉚蜥闔辣銓鼈繻蜒莠蝟昭粡竚癈鷭п粐Ь鉚闍繖蒹鞣鳫竇齠祷瘢韭綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь癈鹽鉚吊棉岱倉捫仭堡鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黼鉚釶辣就黼鉚▽苳屍續梼踉晒瓲苳粡鱚笏蝟絋踉晒莢鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳嚆鉚踉糸蹙苳糸鉚癇蛛碎綣蝟昭粡竚癈鷭п粐Ь瘡蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼煥鉚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑續梼蜩鉤蝟昭粡竚癈鷭п粐Ь蛹痰跂草痺蒹鈔癆纈蜥繝鴒鈔蔗痺竇齠闔鹿粡寂蝟赱齠洲痲筵娼蜩蛹痰跂草痺蒹鈔癆纈蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚆緕鳫鉈緕鱸痰跂蜒蜩蒹鞜齠繖派鹿粡寂蝟赱齠洲痲筵娼黹鱸頸瘤嗷鞜艱鶤逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼嚆鉚佚檀遡瀰壮闖蜴鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黼鉚釶辣就黼鉚▽苳師銖續梼踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑銖續梼蝟昭粡竚癈鷭п粐Ь踉糸蹙苳糸鉚癇蛛碎絋踉晒纃纃緕鱸痰跂蹙苳旨碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃鶯貅蝟昭粡竚癈鷭п粐Ь闢蜥繝鴒窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳鍋跂侮肬碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖緕踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳寰黼鉚闔踟鹿粡寂蝟赱齠洲痲筵娼癘瘟赱碎蜴鞜竏窺瘤赱鬯堤鱚笏闥瘤窿纉竢銓纔蝟昭粡竚癈鷭п粐Ь癘瘟赱碎蜴鞜竏窺凱瘤赱鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳子纃阮纉鈬迴鱚鉚蜥闔辣銓癇蛛碎纉鳫闢鞜齠繖鹿粡寂蝟赱齠洲痲筵娼闔断黹鱸頸瘤嗷鞜艱鶤逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼寰黼鉚吊棉岱倉捫仭堡鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡閼閼煥鉚谺蔗迪閭鶩轣銛瘡閼閼煥鉚谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭箚宜箒屋鯵錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁迴箝迴籖緕蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼煥鉚谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就迴籖緕蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖緕蔗迪甌裼皴蔗粹笂瘤豁迴箝迴籖緕蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握俄皸桁恐骸碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼煥鉚谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁迴箝迴籖緕蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯嘘誓鹿粡寂蝟赱齠洲痲筵娼据迪纈皷闔就窺唖釿閼蜴臀∫齒芦沖褓⊃鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪貂赱鈑就裃赱鈑就裃▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖緕踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩鱚皷闔窺臆苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆迴籖緕モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪派ぢスクリプト及び SSI + ペ・踉札犬謀呂気譴覺超竸瑤鯤儿垢垢覽’修鯆鷆,靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪s阨鱆繙蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑閼煥鉚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯迴糒跂蜆緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札襴踉傘別子:</strong></a> + env_module<br /> + <a href="module-dict.html#Compatibility" + rel="help"><strong>互換性:</strong></a> + Apache 1.1 以降で使用可能。</p> + + <h2>概要</h2> + + <p>このモジュ・踉札襪砲茲派ぢスクリプトと SSI + ペ・踉札犬謀僂気譴覺超竸瑤鮴罎垢襪海箸任襪茲逅擦砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼環境変数は httpd プロセスを起動したシェルから渡されます。また、 + 設定ファイルで環境変数を設定したり、削除したりすることができます。 + </p> + + <p>楮戮蓮蓿繙就鉚譬草痺蒹鹿粡寂蝟赱齠洲痲筵娼の環境変数</a>を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢ディレクティブ</h2> + + <ul> + <li><a href="#passenv">PassEnv</a></li> + + <li><a href="#setenv">SetEnv</a></li> + + <li><a href="#unsetenv">UnsetEnv</a></li> + </ul> + <hr /> + + <h2><a id="passenv" name="passenv">PassEnv</a> ディレクティブ</h2> + + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> PassEnv + <em>env-variable</em> [<em>env-variable</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a>サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼煥鉚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> PassEnv は Apache 1.1 + 以降でのみ使用可能。ディレクトリ、.htaccess での使用は + Apache 1.3.7 以降で使用可能。<br /> + + <p>httpd プロセスを起動したシェルの環境から CGI スクリプトと + SSI ペ・踉札犬謀呂拘超竸瑤魄譴聴弗苳糸指定します。例: + </p> +<pre> + PassEnv LD_LIBRARY_PATH +</pre> + <hr /> + + <h2><a id="setenv" name="setenv">SetEnv</a> ディレクティブ</h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> SetEnv <em>variable + value</em><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a>サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼煥鉚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> SetEnv は Apache 1.1 + 以降でのみ使用可能。ディレクトリ、.htaccess での使用は + Apache 1.3.7 以降で使用可能。<br /> + + <p>環境変数を設定し、それを CGI スクリプトと SSI + ペ・踉札犬謀呂垢茲逅擦砲靴泙后N墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼嚆鉚佚檀遡瀰壮闖蜴鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就黼鉚釶辣就黼鉚▽苳師銖續梼踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブ</h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> UnsetEnv + <em>env-variable</em> [<em>env-variable</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a>サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼煥鉚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> UnsetEnv は Apache 1.1 + 以降でのみ使用可能。ディレクトリ、.htaccess での使用は + Apache 1.3.7 以降で使用可能。<br /> + + <p>CGI スクリプトと SSI + ペ・踉札犬謀呂気譴覺超竸瑤藥慊蠅気譴心超竸瑤鬢踉肢り除きます。例:</p> +<pre> + UnsetEnv LD_LIBRARY_PATH +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/mod_example.html b/htdocs/manual/mod/mod_example.html new file mode 100644 index 0000000000..2a3322fc82 --- /dev/null +++ b/htdocs/manual/mod/mod_example.html @@ -0,0 +1,155 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_example</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_example</h1> + + <p>This module illustrates many of the aspects of the <a + href="../misc/API.html" rel="Help">Apache 1.2 API</a> and, when + used, demonstrates the manner in which module callbacks are + triggered by the server.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_example.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + example_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.2 and later.</p> + + <h2>Summary</h2> + + <p>The files in the <code>src/modules/example directory</code> + under the Apache distribution directory tree are provided as an + example to those that wish to write modules that use the Apache + API.</p> + + <p>The main file is <code>mod_example.c</code>, which + illustrates all the different callback mechanisms and call + syntaxes. By no means does an add-on module need to include + routines for all of the callbacks - quite the contrary!</p> + + <p>The example module is an actual working module. If you link + it into your server, enable the "example-handler" handler for a + location, and then browse to that location, you will see a + display of some of the tracing the example module did as the + various callbacks were made.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#example">Example</a></li> + </ul> + + <h2>Compiling the example module</h2> + + <p>To include the example module in your server, follow the + steps below:</p> + + <ol> + <li> + Uncomment the "AddModule modules/example/mod_example" line + near the bottom of the <code>src/Configuration</code> file. + If there isn't one, add it; it should look like this: +<pre> + AddModule modules/example/mod_example.o + +</pre> + </li> + + <li>Run the <code>src/Configure</code> script + ("<samp>cd src; ./Configure</samp>"). This will + build the Makefile for the server itself, and update the + <code>src/modules/Makefile</code> for any additional modules + you have requested from beneath that subdirectory.</li> + + <li>Make the server (run "<samp>make</samp>" in the + <code>src</code> directory).</li> + </ol> + + <p>To add another module of your own:</p> + + <ol type="A"> + <li><samp>mkdir src/modules/<em>mymodule</em></samp></li> + + <li><samp>cp src/modules/example/* + src/modules/<em>mymodule</em></samp></li> + + <li>Modify the files in the new directory.</li> + + <li>Follow steps [1] through [3] above, with appropriate + changes.</li> + </ol> + + <h2>Using the <samp>mod_example</samp> Module</h2> + + <p>To activate the example module, include a block similar to + the following in your <samp>srm.conf</samp> file:</p> +<pre> + <Location /example-info> + SetHandler example-handler + </Location> + +</pre> + + <p>As an alternative, you can put the following into a <a + href="core.html#accessfilename"><samp>.htaccess</samp></a> file + and then request the file "test.example" from that + location:</p> +<pre> + AddHandler example-handler .example + +</pre> + + <p>After reloading/restarting your server, you should be able + to browse to this location and see the brief display mentioned + earlier.</p> + <hr /> + + <h2><a id="example" name="example">Example directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Example<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_example<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + <samp>Example</samp> is only available in Apache 1.2 and + later.</p> + + <p>The <samp>Example</samp> directive just sets a demonstration + flag which the example module's content handler displays. It + takes no arguments. If you browse to an URL to which the + example content-handler applies, you will get a display of the + routines within the module and how and in what order they were + called to service the document request. The effect of this + directive one can observe under the point "<samp>Example + directive declared here: YES/NO</samp>".</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_expires.html b/htdocs/manual/mod/mod_expires.html new file mode 100644 index 0000000000..ce131544c9 --- /dev/null +++ b/htdocs/manual/mod/mod_expires.html @@ -0,0 +1,254 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_expires</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_expires</h1> + + <p>This module provides for the generation of + <code>Expires</code> HTTP headers according to user-specified + criteria.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_expires.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + expires_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.2 and later.</p> + + <h2>Summary</h2> + + <p>This module controls the setting of the <code>Expires</code> + HTTP header in server responses. The expiration date can set to + be relative to either the time the source file was last + modified, or to the time of the client access.</p> + + <p>The <code>Expires</code> HTTP header is an instruction to + the client about the document's validity and persistence. If + cached, the document may be fetched from the cache rather than + from the source until this time has passed. After that, the + cache copy is considered "expired" and invalid, and a new copy + must be obtained from the source.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#expiresactive">ExpiresActive</a></li> + + <li><a href="#expiresbytype">ExpiresByType</a></li> + + <li><a href="#expiresdefault">ExpiresDefault</a></li> + </ul> + + <h2><a id="AltSyn" name="AltSyn">Alternate Interval + Syntax</a></h2> + + <p>The <a + href="#expiresdefault"><samp>ExpiresDefault</samp></a> and <a + href="#expiresbytype"><samp>ExpiresByType</samp></a> directives + can also be defined in a more readable syntax of the form:</p> + + <dl> + <dd><code>ExpiresDefault "<base> [plus] {<num> + <type>}*"<br /> + ExpiresByType type/encoding "<base> [plus] + {<num> <type>}*"</code></dd> + </dl> + + <p>where <base> is one of:</p> + + <ul> + <li><samp>access</samp></li> + + <li><samp>now</samp> (equivalent to + '<samp>access</samp>')</li> + + <li><samp>modification</samp></li> + </ul> + + <p>The '<samp>plus</samp>' keyword is optional. <num> + should be an integer value [acceptable to <samp>atoi()</samp>], + and <type> is one of:</p> + + <ul> + <li><samp>years</samp></li> + + <li><samp>months</samp></li> + + <li><samp>weeks</samp></li> + + <li><samp>days</samp></li> + + <li><samp>hours</samp></li> + + <li><samp>minutes</samp></li> + + <li><samp>seconds</samp></li> + </ul> + + <p>For example, any of the following directives can be used to + make documents expire 1 month after being accessed, by + default:</p> + + <dl> + <dd><code>ExpiresDefault "access plus 1 month"<br /> + ExpiresDefault "access plus 4 weeks"<br /> + ExpiresDefault "access plus 30 days"</code></dd> + </dl> + + <p>The expiry time can be fine-tuned by adding several + '<num> <type>' clauses:</p> + + <dl> + <dd><code>ExpiresByType text/html "access plus 1 month 15 + days 2 hours"<br /> + ExpiresByType image/gif "modification plus 5 hours 3 + minutes"</code></dd> + </dl> + + <p>Note that if you use a modification date based setting, the + Expires header will <strong>not</strong> be added to content + that does not come from a file on disk. This is due to the fact + that there is no modification time for such content.</p> + <hr /> + + <h2><a id="expiresactive" name="expiresactive">ExpiresActive + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ExpiresActive + on|off<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Indexes<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_expires</p> + + <p>This directive enables or disables the generation of the + <code>Expires</code> header for the document realm in question. + (That is, if found in an <code>.htaccess</code> file, for + instance, it applies only to documents generated from that + directory.) If set to <em><code>Off</code></em>, no + <code>Expires</code> header will be generated for any document + in the realm (unless overridden at a lower level, such as an + <code>.htaccess</code> file overriding a server config file). + If set to <em><code>On</code></em>, the header will be added to + served documents according to the criteria defined by the <a + href="#expiresbytype">ExpiresByType</a> and <a + href="#expiresdefault">ExpiresDefault</a> directives + (<em>q.v.</em>).</p> + + <p>Note that this directive does not guarantee that an + <code>Expires</code> header will be generated. If the criteria + aren't met, no header will be sent, and the effect will be as + though this directive wasn't even specified.</p> + <hr /> + + <h2><a id="expiresbytype" name="expiresbytype">ExpiresByType + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ExpiresByType + <em>mime-type <code>seconds</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Indexes<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_expires</p> + + <p>This directive defines the value of the <code>Expires</code> + header generated for documents of the specified type + (<em>e.g.</em>, <code>text/html</code>). The second argument + sets the number of seconds that will be added to a base time to + construct the expiration date.</p> + + <p>The base time is either the last modification time of the + file, or the time of the client's access to the document. Which + should be used is specified by the + <code><em><code></em></code> field; <strong>M</strong> + means that the file's last modification time should be used as + the base time, and <strong>A</strong> means the client's access + time should be used.</p> + + <p>The difference in effect is subtle. If <em>M</em> is used, + all current copies of the document in all caches will expire at + the same time, which can be good for something like a weekly + notice that's always found at the same URL. If <em>A</em> is + used, the date of expiration is different for each client; this + can be good for image files that don't change very often, + particularly for a set of related documents that all refer to + the same images (<em>i.e.</em>, the images will be accessed + repeatedly within a relatively short timespan).</p> + + <p><strong>Example:</strong></p> +<pre> + ExpiresActive On # enable expirations + ExpiresByType image/gif A2592000 # expire GIF images after a month + # in the client's cache + ExpiresByType text/html M604800 # HTML documents are good for a + # week from the time they were + # changed, period + +</pre> + + <p>Note that this directive only has effect if + <code>ExpiresActive On</code> has been specified. It overrides, + for the specified MIME type <em>only</em>, any expiration date + set by the <a href="#expiresdefault">ExpiresDefault</a> + directive.</p> + + <p>You can also specify the expiration time calculation using + an <a href="#AltSyn">alternate syntax</a>, described later in + this document.</p> + <hr /> + + <h2><a id="expiresdefault" name="expiresdefault">ExpiresDefault + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ExpiresDefault + <em><code>seconds</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Indexes<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_expires</p> + + <p>This directive sets the default algorithm for calculating + the expiration time for all documents in the affected realm. It + can be overridden on a type-by-type basis by the <a + href="#expiresbytype">ExpiresByType</a> directive. See the + description of that directive for details about the syntax of + the argument, and the <a href="#AltSyn">alternate syntax</a> + description as well.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_headers.html b/htdocs/manual/mod/mod_headers.html new file mode 100644 index 0000000000..e8bfb9a3b1 --- /dev/null +++ b/htdocs/manual/mod/mod_headers.html @@ -0,0 +1,166 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_headers</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_headers</h1> + + <p>This module provides for the customization of HTTP response + headers.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_headers.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + headers_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.2 and later.</p> + + <h2>Summary</h2> + This module provides a directive to control the sending of HTTP + headers. Headers can be merged, replaced or removed. + + <h2>Directives</h2> + + <ul> + <li><a href="#header">Header</a></li> + <li><a href="#errorheader">ErrorHeader</a></li> + </ul> + <hr /> + + <h2><a id="header" name="header">Header</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Header set|append|add + <em>header</em> <em>value</em><br /> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Header unset + <em>header</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, access.conf, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_headers + + <p>This directive can replace, merge or remove HTTP response + headers during 1xx and 2xx series replies. For 3xx, 4xx and 5xx + use the ErrorHeader directive. + </p> + <p> + The action it performs is determined by the first + argument. This can be one of the following values:</p> + + <ul> + <li><strong>set</strong><br /> + The response header is set, replacing any previous header + with this name</li> + + <li><strong>append</strong><br /> + The response header is appended to any existing header of + the same name. When a new value is merged onto an existing + header it is separated from the existing header with a comma. + This is the HTTP standard way of giving a header multiple + values.</li> + + <li><strong>add</strong><br /> + The response header is added to the existing set of headers, + even if this header already exists. This can result in two + (or more) headers having the same name. This can lead to + unforeseen consequences, and in general "append" should be + used instead.</li> + + <li><strong>unset</strong><br /> + The response header of this name is removed, if it exists. + If there are multiple headers of the same name, all will be + removed.</li> + </ul> + This argument is followed by a header name, which can include + the final colon, but it is not required. Case is ignored. For + add, append and set a value is given as the third argument. If + this value contains spaces, it should be surrounded by double + quotes. For unset, no value should be given. + + <h3>Order of Processing</h3> + The Header directive can occur almost anywhere within the + server configuration. It is valid in the main server config and + virtual host sections, inside <Directory>, + <Location> and <Files> sections, and within + .htaccess files. + + <p>The Header directives are processed in the following + order:</p> + + <ol> + <li>main server</li> + + <li>virtual host</li> + + <li><Directory> sections and .htaccess</li> + + <li><Location></li> + + <li><Files></li> + </ol> + Order is important. These two headers have a different effect + if reversed: +<pre> +Header append Author "John P. Doe" +Header unset Author +</pre> + This way round, the Author header is not set. If reversed, the + Author header is set to "John P. Doe". + + <p>The Header directives are processed just before the response + is sent by its handler. These means that some headers that are + added just before the response is sent cannot be unset or + overridden. This includes headers such as "Date" and + "Server".</p> + + <h2><a id="errorheader" name="errorheader">ErrorHeader</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ErrorHeader set|append|add + <em>header</em> <em>value</em><br /> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ErrorHeader unset + <em>header</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, access.conf, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_headers + + <p>This directive can replace, merge or remove HTTP response + headers during 3xx, 4xx and 5xx replies. For normal replies + use the Header directive. + </p> + <p>This directive is identical to the <a href="#header">Header</a> + directive in all other respects. Consult this directive for + more information on the syntax. + </P> + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_imap.html b/htdocs/manual/mod/mod_imap.html new file mode 100644 index 0000000000..31a63ed447 --- /dev/null +++ b/htdocs/manual/mod/mod_imap.html @@ -0,0 +1,363 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_imap</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_imap</h1> + + <p>This module provides for server-side imagemap + processing.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_imap.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + imap_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.1 and later.</p> + + <h2>Summary</h2> + + <p>This module processes <code>.map</code> files, thereby + replacing the functionality of the <code>imagemap</code> CGI + program. Any directory or document type configured to use the + handler <code>imap-file</code> (using either <code><a + href="mod_mime.html#addhandler">AddHandler</a></code> or + <code><a href="mod_mime.html#sethandler">SetHandler</a></code>) + will be processed by this module.</p> + + <p>The following directive will activate files ending with + <code>.map</code> as imagemap files:</p> + + <blockquote> + <code>AddHandler imap-file map</code> + </blockquote> + Note that the following is still supported: + + <blockquote> + <code>AddType application/x-httpd-imap map</code> + </blockquote> + However, we are trying to phase out "magic MIME types" so we + are deprecating this method. + + <h2>Directives</h2> + + <ul> + <li><a href="#imapmenu">ImapMenu</a></li> + + <li><a href="#imapdefault">ImapDefault</a></li> + + <li><a href="#imapbase">ImapBase</a></li> + </ul> + + <h2>New Features</h2> + The imagemap module adds some new features that were not + possible with previously distributed imagemap programs. + + <ul> + <li>URL references relative to the Referer: information.</li> + + <li>Default <BASE> assignment through a new map + directive <code>base</code>.</li> + + <li>No need for <code>imagemap.conf</code> file.</li> + + <li>Point references.</li> + + <li>Configurable generation of imagemap menus.</li> + </ul> + + <h2>Imagemap File</h2> + The lines in the imagemap files can have one of several + formats: + + <blockquote> + <code>directive value [x,y ...]</code><br /> + <code>directive value "Menu text" [x,y ...]</code><br /> + <code>directive value x,y ... "Menu text"</code><br /> + </blockquote> + The directive is one of <code>base</code>, + <code>default</code>, <code>poly</code>, <code>circle</code>, + <code>rect</code>, or <code>point</code>. The value is an + absolute or relative URL, or one of the special values listed + below. The coordinates are <code>x,y</code> pairs separated by + whitespace. The quoted text is used as the text of the link if + a imagemap menu is generated. Lines beginning with '#' are + comments. + + <h3>Imagemap File Directives</h3> + There are six directives allowed in the imagemap file. The + directives can come in any order, but are processed in the + order they are found in the imagemap file. + + <dl> + <dt><code>base</code> Directive</dt> + + <dd>Has the effect of <code><BASE HREF="value"></code>. + The non-absolute URLs of the map-file are taken relative to + this value. The <code>base</code> directive overrides + ImapBase as set in a .htaccess file or in the server + configuration files. In the absence of an ImapBase + configuration directive, <code>base</code> defaults to + <code>http://server_name/</code>.<br /> + <code>base_uri</code> is synonymous with <code>base</code>. + Note that a trailing slash on the URL is significant.</dd> + + <dt><code>default</code> Directive</dt> + + <dd>The action taken if the coordinates given do not fit any + of the <code>poly</code>, <code>circle</code> or + <code>rect</code> directives, and there are no + <code>point</code> directives. Defaults to + <code>nocontent</code> in the absence of an ImapDefault + configuration setting, causing a status code of <code>204 No + Content</code> to be returned. The client should keep the + same page displayed.</dd> + + <dt><code>poly</code> Directive</dt> + + <dd>Takes three to one-hundred points, and is obeyed if the + user selected coordinates fall within the polygon defined by + these points.</dd> + + <dt><code>circle</code></dt> + + <dd>Takes the center coordinates of a circle and a point on + the circle. Is obeyed if the user selected point is with the + circle.</dd> + + <dt><code>rect</code> Directive</dt> + + <dd>Takes the coordinates of two opposing corners of a + rectangle. Obeyed if the point selected is within this + rectangle.</dd> + + <dt><code>point</code> Directive</dt> + + <dd>Takes a single point. The point directive closest to the + user selected point is obeyed if no other directives are + satisfied. Note that <code>default</code> will not be + followed if a <code>point</code> directive is present and + valid coordinates are given.</dd> + </dl> + + <h3>Values</h3> + The values for each of the directives can any of the following: + + + <dl> + <dt>a URL</dt> + + <dd>The URL can be relative or absolute URL. Relative URLs + can contain '..' syntax and will be resolved relative to the + <code>base</code> value.<br /> + <code>base</code> itself will not resolved according to the + current value. A statement <code>base mailto:</code> will + work properly, though.</dd> + + <dt><code>map</code></dt> + + <dd>Equivalent to the URL of the imagemap file itself. No + coordinates are sent with this, so a menu will be generated + unless ImapMenu is set to 'none'.</dd> + + <dt><code>menu</code></dt> + + <dd>Synonymous with <code>map</code>.</dd> + + <dt><code>referer</code></dt> + + <dd>Equivalent to the URL of the referring document. Defaults + to <code>http://servername/</code> if no Referer: header was + present.</dd> + + <dt><code>nocontent</code></dt> + + <dd>Sends a status code of <code>204 No Content</code>, + telling the client to keep the same page displayed. Valid for + all but <code>base</code>.</dd> + + <dt><code>error</code></dt> + + <dd>Fails with a <code>500 Server Error</code>. Valid for all + but <code>base</code>, but sort of silly for anything but + <code>default</code>.</dd> + </dl> + + <h3>Coordinates</h3> + + <dl> + <dt><code>0,0 200,200</code></dt> + + <dd>A coordinate consists of an <tt>x</tt> and a <tt>y</tt> + value separated by a comma. The coordinates are separated + from each other by whitespace. To accommodate the way Lynx + handles imagemaps, should a user select the coordinate + <code>0,0</code>, it is as if no coordinate had been + selected.</dd> + </dl> + + <h3>Quoted Text</h3> + + <dl> + <dt><code>"Menu Text"</code></dt> + + <dd>After the value or after the coordinates, the line + optionally may contain text within double quotes. This string + is used as the text for the link if a menu is + generated:<br /> + <code><a HREF="http://foo.com/">Menu + text</a></code><br /> + If no quoted text is present, the name of the link will be + used as the text:<br /> + <code><a + HREF="http://foo.com/">http://foo.com</a></code><br /> + If you want to use double quotes within this text, you have to + write them as <code>&quot;</code>.</dd> + </dl> + + <h2>Example Mapfile</h2> + + <blockquote> + <code>#Comments are printed in a 'formatted' or + 'semiformatted' menu.<br /> + #And can contain html tags. <hr><br /> + base referer<br /> + poly map "Could I have a menu, please?" 0,0 0,10 10,10 + 10,0<br /> + rect .. 0,0 77,27 "the directory of the referer"<br /> + circle http://www.inetnebr.com/lincoln/feedback/ 195,0 + 305,27<br /> + rect another_file "in same directory as referer" 306,0 + 419,27<br /> + point http://www.zyzzyva.com/ 100,100<br /> + point http://www.tripod.com/ 200,200<br /> + rect mailto:nate@tripod.com 100,150 200,0 "Bugs?"<br /> + </code> + </blockquote> + + <h2>Referencing your mapfile</h2> + + <blockquote> + <code><A HREF="/maps/imagemap1.map"><br /> + <IMG ISMAP SRC="/images/imagemap1.gif"><br /> + </A></code> + </blockquote> + <hr /> + + <h2><a id="imapmenu" name="imapmenu">ImapMenu</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ImapMenu + none|formatted|semiformatted|unformatted<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Indexes<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_imap<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ImapMenu is only + available in Apache 1.1 and later. + + <p>The ImapMenu directive determines the action taken if an + imagemap file is called without valid coordinates.</p> + + <dl> + <dt><code>none</code></dt> + + <dd>If ImapMenu is <code>none</code>, no menu is generated, + and the <code>default</code> action is performed.</dd> + + <dt><code>formatted</code></dt> + + <dd>A <code>formatted</code> menu is the simplest menu. + Comments in the imagemap file are ignored. A level one header + is printed, then an hrule, then the links each on a separate + line. The menu has a consistent, plain look close to that of + a directory listing.</dd> + + <dt><code>semiformatted</code></dt> + + <dd>In the <code>semiformatted</code> menu, comments are + printed where they occur in the imagemap file. Blank lines + are turned into HTML breaks. No header or hrule is printed, + but otherwise the menu is the same as a + <code>formatted</code> menu.</dd> + + <dt><code>unformatted</code></dt> + + <dd>Comments are printed, blank lines are ignored. Nothing is + printed that does not appear in the imagemap file. All breaks + and headers must be included as comments in the imagemap + file. This gives you the most flexibility over the appearance + of your menus, but requires you to treat your map files as + HTML instead of plaintext.</dd> + </dl> + <hr /> + + <h2><a id="imapdefault" name="imapdefault">ImapDefault</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ImapDefault + error|nocontent|map|referer|<em>URL</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Indexes<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_imap<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ImapDefault is + only available in Apache 1.1 and later. + + <p>The ImapDefault directive sets the default + <code>default</code> used in the imagemap files. Its value is + overridden by a <code>default</code> directive within the + imagemap file. If not present, the <code>default</code> action + is <code>nocontent</code>, which means that a <code>204 No + Content</code> is sent to the client. In this case, the client + should continue to display the original page.</p> + <hr /> + + <h2><a id="imapbase" name="imapbase">ImapBase</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ImapBase + map|referer|<em>URL</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Indexes<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_imap<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ImapBase is only + available in Apache 1.1 and later. + + <p>The ImapBase directive sets the default <code>base</code> + used in the imagemap files. Its value is overridden by a + <code>base</code> directive within the imagemap file. If not + present, the <code>base</code> defaults to + <code>http://servername/</code>. + <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_include.html b/htdocs/manual/mod/mod_include.html new file mode 100644 index 0000000000..f9b095d115 --- /dev/null +++ b/htdocs/manual/mod/mod_include.html @@ -0,0 +1,594 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_include</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_include</h1> + + <p>This module provides for documents with Server Side Includes + (SSI).</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_include.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + includes_module</p> + + <h2>Summary</h2> + + <p>This module provides a handler which will process files + before they are sent to the client. The processing is + controlled by specially formated SGML comments, referred to as + <em>elements</em>. These elements allow conditional text, the + inclusion other files or programs, as well as the setting and + printing of environment variables.</p> + + <p>For an introduction to this topic, we also provide a <a + href="../howto/ssi.html">tutorial on Server Side + Includes</a>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#xbithack">XBitHack</a></li> + </ul> + + <p>See also: <a href="core.html#options">Options</a> and <a + href="mod_mime.html#addhandler">AddHandler</a>.</p> + + <h2>Enabling Server-Side Includes</h2> + Any document with handler of "server-parsed" will be parsed by + this module, if the <code>Includes</code> option is set. If + documents containing server-side include directives are given + the extension .shtml, the following directives will make Apache + parse them and assign the resulting document the mime type of + <code>text/html</code>: +<pre> +AddType text/html .shtml +AddHandler server-parsed .shtml +</pre> + The following directive must be given for the directories + containing the shtml files (typically in a + <code><Directory></code> section, but this directive is + also valid .htaccess files if <code>AllowOverride + Options</code> is set): +<pre> +Options +Includes +</pre> + Alternatively the <a href="#xbithack"><code>XBitHack</code></a> + directive can be used to parse normal (<code>text/html</code>) + files, based on file permissions. + + <p>For backwards compatibility, documents with mime type + <code>text/x-server-parsed-html</code> or + <code>text/x-server-parsed-html3</code> will also be parsed + (and the resulting output given the mime type + <code>text/html</code>).</p> + + <h2>Basic Elements</h2> + The document is parsed as an HTML document, with special + commands embedded as SGML comments. A command has the syntax: + + <blockquote> + <code><!--#</code><em>element attribute=value + attribute=value ...</em> <code>--></code> + </blockquote> + The value will often be enclosed in double quotes; many + commands only allow a single attribute-value pair. Note that + the comment terminator (<samp>--></samp>) should be preceded + by whitespace to ensure that it isn't considered part of an SSI + token. Note that the leading <samp><!--#</samp> is <em>one</em> + token and may not contain any whitespaces.</p> + + <p>The allowed elements are:</p> + + <dl> + <dt><strong>config</strong></dt> + + <dd> + This command controls various aspects of the parsing. The + valid attributes are: + + <dl> + <dt><strong>errmsg</strong></dt> + + <dd>The value is a message that is sent back to the + client if an error occurs whilst parsing the + document.</dd> + + <dt><strong>sizefmt</strong></dt> + + <dd>The value sets the format to be used which displaying + the size of a file. Valid values are <code>bytes</code> + for a count in bytes, or <code>abbrev</code> for a count + in Kb or Mb as appropriate.</dd> + + <dt><strong>timefmt</strong></dt> + + <dd>The value is a string to be used by the + <code>strftime(3)</code> library routine when printing + dates.</dd> + </dl> + </dd> + + <dt><strong><a id="echo" name="echo">echo</a></strong></dt> + + <dd> + This command prints one of the <a href="#includevars">include + variables</a>, defined + below. If the variable is unset, it is printed as + <code>(none)</code>. Any dates printed are subject to the + currently configured <code>timefmt</code>. Attributes: + + <dl> + <dt><strong>var</strong></dt> + + <dd>The value is the name of the variable to print.</dd> + + <dt><strong>encoding</strong></dt> + + <dd>Specifies how Apache should encode special characters + contained in the variable before outputting them. If set + to "none", no encoding will be done. If set to "url", + then URL encoding (also known as %-encoding; this is + appropriate for use within URLs in links, etc.) will be + performed. At the start of an <code>echo</code> element, + the default is set to "entity", resulting in entity + encoding (which is appropriate in the context of a + block-level HTML element, eg. a paragraph of text). This + can be changed by adding an <code>encoding</code> + attribute, which will remain in effect until the next + <code>encoding</code> attribute is encountered or the + element ends, whichever comes first. Note that the + <code>encoding</code> attribute must <em>precede</em> the + corresponding <code>var</code> attribute to be effective, + and that only special characters as defined in the + ISO-8859-1 character encoding will be encoded. This + encoding process may not have the desired result if a + different character encoding is in use. Apache 1.3.12 and + above; previous versions do no encoding.</dd> + </dl> + </dd> + + <dt><strong>exec</strong></dt> + + <dd> + The exec command executes a given shell command or CGI + script. The IncludesNOEXEC <a + href="core.html#options">Option</a> disables this command + completely. The valid attributes are: + + <dl> + <dt><strong>cgi</strong></dt> + + <dd> + The value specifies a (%-encoded) URL relative path to + the CGI script. If the path does not begin with a (/), + then it is taken to be relative to the current + document. The document referenced by this path is + invoked as a CGI script, even if the server would not + normally recognize it as such. However, the directory + containing the script must be enabled for CGI scripts + (with <a + href="mod_alias.html#scriptalias">ScriptAlias</a> or + the ExecCGI <a href="core.html#options">Option</a>). + + <p>The CGI script is given the PATH_INFO and query + string (QUERY_STRING) of the original request from the + client; these cannot be specified in the URL path. The + include variables will be available to the script in + addition to the standard <a href="mod_cgi.html">CGI</a> + environment.</p> + + <p>For example:</p> + + <code><!--#exec cgi="/cgi-bin/example.cgi" --></code> + + <p>If the script returns a Location: header instead of + output, then this will be translated into an HTML + anchor.</p> + + <p>The <code><a href="#includevirtual">include + virtual</a></code> element should be + used in preference to <code>exec cgi</code>. In particular, + if you need to pass additional arguments to a CGI program, + using the query string, this cannot be done with <code>exec + cgi</code>, but can be done with <code>include + virtual</code>, as shown here:</p> + + <code><!--#include virtual="/cgi-bin/example.cgi?argument=value" --></code> + </dd> + + <dt><strong>cmd</strong></dt> + + <dd> + <p>The server will execute the given string using + <code>/bin/sh</code>. The <a + href="#includevars">include variables</a> are available + to the command, in addition to the usual set of CGI + variables.</p> + + <p>The use of <code><a href="#includevirtual">#include + virtual</a></code> is almost always + prefered to using either <code>#exec cgi</code> or <code>#exec + cmd</code>. The former (<code>#include virtual</code>) used the + standard Apache sub-request mechanism to include files or + scripts. It is much better tested and maintained.</p> + + <p>In addition, on some platforms, like Win32, and on unix + when using suexec, you cannot pass arguments to a command in + an <code>exec</code> directive, or otherwise include spaces in + the command. Thus, while the following will work under a + non-suexec configuration on unix, it will not produce the + desired result under Win32, or when running suexec:</p> + + <code><!--#exec cmd="perl /path/to/perlscript arg1 arg2" --></code> + + </dd> + </dl> + </dd> + + <dt><strong>fsize</strong></dt> + + <dd> + This command prints the size of the specified file, subject + to the <code>sizefmt</code> format specification. + Attributes: + + <dl> + <dt><strong>file</strong></dt> + + <dd>The value is a path relative to the directory + containing the current document being parsed.</dd> + + <dt><strong>virtual</strong></dt> + + <dd>The value is a (%-encoded) URL-path relative to the + current document being parsed. If it does not begin with + a slash (/) then it is taken to be relative to the + current document.</dd> + </dl> + </dd> + + <dt><strong>flastmod</strong></dt> + + <dd>This command prints the last modification date of the + specified file, subject to the <code>timefmt</code> format + specification. The attributes are the same as for the + <code>fsize</code> command.</dd> + + <dt><strong>include</strong></dt> + + <dd> + This command inserts the text of another document or file + into the parsed file. Any included file is subject to the + usual access control. If the directory containing the + parsed file has the <a href="core.html#options">Option</a> + IncludesNOEXEC set, and the including the document would + cause a program to be executed, then it will not be + included; this prevents the execution of CGI scripts. + Otherwise CGI scripts are invoked as normal using the + complete URL given in the command, including any query + string. + + <p>An attribute defines the location of the document; the + inclusion is done for each attribute given to the include + command. The valid attributes are:</p> + + <dl> + <dt><strong>file</strong></dt> + + <dd>The value is a path relative to the directory + containing the current document being parsed. It cannot + contain <code>../</code>, nor can it be an absolute path. + Therefore, you cannot include files that are outside of the + document root, or above the current document in the directory + structure. + The <code>virtual</code> attribute should always be used + in preference to this one.</dd> + + <dt><strong><a name="includevirtual">virtual</a></strong></dt> + + <dd> + <p>The value is a (%-encoded) URL relative to the + current document being parsed. The URL cannot contain a + scheme or hostname, only a path and an optional query + string. If it does not begin with a slash (/) then it is + taken to be relative to the current document.</p> + + <p>A URL is constructed from the attribute, and the output the + server would return if the URL were accessed by the client + is included in the parsed output. Thus included files can + be nested.</p> + + <p>If the specified URL is a CGI program, the program will + be executed and its output inserted in place of the directive + in the parsed file. You may include a query string in a CGI + url:</p> + + <code><!--#include virtual="/cgi-bin/example.cgi?argument=value" --></code> + + <p><code>include virtual</code> should be used in preference + to <code>exec cgi</code> to include the output of CGI + programs into an HTML document. + </dd> + </dl> + </dd> + + <dt><strong>printenv</strong></dt> + + <dd> + <p>This prints out a listing of all existing variables and + their values. Starting with Apache 1.3.12, special characters + are entity encoded (see the <a + href="#echo"><code>echo</code></a> element for details) + before being output. There are no attributes.</p> + + <p>For example:</p> + + <p><code><!--#printenv --></code></p> + + <p>The <strong>printenv</strong> element is available only in + Apache 1.2 and above.</p> + </dd> + <dt><strong>set</strong></dt> + + <dd> + This sets the value of a variable. Attributes: + + <dl> + <dt><strong>var</strong></dt> + + <dd>The name of the variable to set.</dd> + + <dt><strong>value</strong></dt> + + <dd>The value to give a variable.</dd> + </dl> + <p> + For example: <code><!--#set var="category" value="help" + --></code></p> + + <p>The <strong>set</strong> element is available only in + Apache 1.2 and above.</p> + </dd> + </dl> + + <h2><a name="includevars">Include Variables</a></h2> + In addition to the variables in the standard CGI environment, + these are available for the <code>echo</code> command, for + <code>if</code> and <code>elif</code>, and to any program + invoked by the document. + + <dl> + <dt>DATE_GMT</dt> + + <dd>The current date in Greenwich Mean Time.</dd> + + <dt>DATE_LOCAL</dt> + + <dd>The current date in the local time zone.</dd> + + <dt>DOCUMENT_NAME</dt> + + <dd>The filename (excluding directories) of the document + requested by the user.</dd> + + <dt>DOCUMENT_URI</dt> + + <dd>The (%-decoded) URL path of the document requested by the + user. Note that in the case of nested include files, this is + <em>not</em> then URL for the current document.</dd> + + <dt>LAST_MODIFIED</dt> + + <dd>The last modification date of the document requested by + the user.</dd> + + <dt>USER_NAME</dt> + + <dd>Contains the owner of the file which included it.</dd> + + </dl> + + <h2>Variable Substitution</h2> + + <p>Variable substitution is done within quoted strings in most + cases where they may reasonably occur as an argument to an SSI + directive. This includes the <samp>config</samp>, + <samp>exec</samp>, <samp>flastmod</samp>, <samp>fsize</samp>, + <samp>include</samp>, and <samp>set</samp> directives, as well + as the arguments to conditional operators. You can insert a + literal dollar sign into the string using backslash + quoting:</p> +<pre> + <!--#if expr="$a = \$test" --> +</pre> + + <p>If a variable reference needs to be substituted in the + middle of a character sequence that might otherwise be + considered a valid identifier in its own right, it can be + disambiguated by enclosing the reference in braces, + <em>à la</em> shell substitution:</p> +<pre> + <!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --> +</pre> + + <p>This will result in the <samp>Zed</samp> variable being set + to "<samp>X_Y</samp>" if <samp>REMOTE_HOST</samp> is + "<samp>X</samp>" and <samp>REQUEST_METHOD</samp> is + "<samp>Y</samp>".</p> + + <p>EXAMPLE: the below example will print "in foo" if the + DOCUMENT_URI is /foo/file.html, "in bar" if it is + /bar/file.html and "in neither" otherwise:</p> +<pre> + <!--#if expr="\"$DOCUMENT_URI\" = \"/foo/file.html\"" --> + in foo + <!--#elif expr="\"$DOCUMENT_URI\" = \"/bar/file.html\"" --> + in bar + <!--#else --> + in neither + <!--#endif --> +</pre> + + <h2><a id="flowctrl" name="flowctrl">Flow Control + Elements</a></h2> + These are available in Apache 1.2 and above. The basic flow + control elements are: +<pre> + <!--#if expr="<em>test_condition</em>" --> + <!--#elif expr="<em>test_condition</em>" --> + <!--#else --> + <!--#endif --> +</pre> + + <p>The <strong><code>if</code></strong> element works like an + if statement in a programming language. The test condition is + evaluated and if the result is true, then the text until the + next <strong><code>elif</code></strong>, + <strong><code>else</code></strong>. or + <strong><code>endif</code></strong> element is included in the + output stream.</p> + + <p>The <strong><code>elif</code></strong> or + <strong><code>else</code></strong> statements are be used the + put text into the output stream if the original test_condition + was false. These elements are optional.</p> + + <p>The <strong><code>endif</code></strong> element ends the + <strong><code>if</code></strong> element and is required.</p> + + <p><em>test_condition</em> is one of the following:</p> + + <dl> + <dt><em>string</em></dt> + + <dd>true if <em>string</em> is not empty</dd> + + <dt><em>string1</em> = <em>string2</em><br /> + <em>string1</em> != <em>string2</em><br /> + <em>string1</em> < <em>string2</em><br /> + <em>string1</em> <= <em>string2</em><br /> + <em>string1</em> > <em>string2</em><br /> + <em>string1</em> >= <em>string2</em></dt> + + <dd>Compare string1 with string 2. If string2 has the form + <em>/string/</em> then it is compared as a regular + expression. Regular expressions have the same syntax as those + found in the Unix <samp>egrep</samp> command.</dd> + + <dt>( <em>test_condition</em> )</dt> + + <dd>true if <em>test_condition</em> is true</dd> + + <dt>! <em>test_condition</em></dt> + + <dd>true if <em>test_condition</em> is false</dd> + + <dt><em>test_condition1</em> && + <em>test_condition2</em></dt> + + <dd>true if both <em>test_condition1</em> and + <em>test_condition2</em> are true</dd> + + <dt><em>test_condition1</em> || <em>test_condition2</em></dt> + + <dd>true if either <em>test_condition1</em> or + <em>test_condition2</em> is true</dd> + </dl> + + <p>"<em>=</em>" and "<em>!=</em>" bind more tightly than + "<em>&&</em>" and "<em>||</em>". "<em>!</em>" binds + most tightly. Thus, the following are equivalent:</p> +<pre> + <!--#if expr="$a = test1 && $b = test2" --> + <!--#if expr="($a = test1) && ($b = test2)" --> +</pre> + + <p>Anything that's not recognized as a variable or an operator + is treated as a string. Strings can also be quoted: + <em>'string'</em>. Unquoted strings can't contain whitespace + (blanks and tabs) because it is used to separate tokens such as + variables. If multiple strings are found in a row, they are + concatenated using blanks. So,</p> +<pre> + <em>string1 string2</em> results in <em>string1 string2</em> + <em>'string1 string2'</em> results in <em>string1 string2</em> +</pre> + + <h2>Using Server Side Includes for ErrorDocuments</h2> + There is <a href="../misc/custom_errordocs.html">a document</a> + which describes how to use the features of mod_include to offer + internationalized customized server error documents. + <hr /> + + <h2><a id="xbithack" name="xbithack">XBitHack</a> + directive</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> XBitHack + on|off|full<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>XBitHack + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_include + + <p>The XBitHack directives controls the parsing of ordinary + html documents. This directive only affects files associated + with the MIME type <code>text/html</code>. XBitHack can take on + the following values:</p> + + <dl> + <dt>off</dt> + + <dd>No special treatment of executable files.</dd> + + <dt>on</dt> + + <dd>Any file that has the user-execute bit set will be + treated as a server-parsed html document.</dd> + + <dt>full</dt> + + <dd> + As for <code>on</code> but also test the group-execute bit. + If it is set, then set the Last-modified date of the + returned file to be the last modified time of the file. If + it is not set, then no last-modified date is sent. Setting + this bit allows clients and proxies to cache the result of + the request. + + <p><strong>Note:</strong> you would not want to use this, + for example, when you <code>#include</code> a CGI that + produces different output on each hit (or potentially + depends on the hit).</p> + </dd> + </dl> + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_info.html.en b/htdocs/manual/mod/mod_info.html.en new file mode 100644 index 0000000000..d903bdb5b6 --- /dev/null +++ b/htdocs/manual/mod/mod_info.html.en @@ -0,0 +1,111 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_info</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_info</h1> + + <p>This module provides a comprehensive overview of the server + configuration including all installed modules and directives in + the configuration files.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_info.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + info_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.1 and later.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#addmoduleinfo">AddModuleInfo</a></li> + </ul> + + <h2>Using mod_info</h2> + + <p>To configure it, add the following to your + <code>access.conf</code> file.</p> +<pre> +<Location /server-info> +SetHandler server-info +</Location> +</pre> + You may wish to add a <a + href="core.html#limit"><Limit></a> clause inside the <a + href="core.html#location">location</a> directive to limit + access to your server configuration information. + + <p>Once configured, the server information is obtained by + accessing <tt>http://your.host.dom/server-info</tt></p> + + <blockquote> + <p><strong>Note that the configuration files are read by the + module at run-time, and therefore the display may + <em>not</em> reflect the running server's active + configuration if the files have been changed since the server + was last reloaded. Also, the configuration files must be + readable by the user as which the server is running (see the + <a href="core.html#user"><samp>User</samp></a> directive), or + else the directive settings will not be listed.</strong></p> + + <p><strong>It should also be noted that if + <samp>mod_info</samp> is compiled into the server, its + handler capability is available in <em>all</em> configuration + files, including <em>per</em>-directory files (<em>e.g.</em>, + <samp>.htaccess</samp>). This may have security-related + ramifications for your site.</strong></p> + + <p>In particular, this module can leak sensitive information + from the configuration directives of other Apache modules such as + system paths, usernames/passwords, database names, etc. Due to + the way this module works there is no way to block information + from it. Therefore, this module should ONLY be used in a controlled + environment and always with caution.</p> + + </blockquote> + <hr /> + + <h2><a id="addmoduleinfo" + name="addmoduleinfo">AddModuleInfo</a></h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddModuleInfo + <em>module-name string</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_info<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and + above + + <p>This allows the content of <em>string</em> to be shown as + HTML interpreted, <strong>Additional Information</strong> for + the module <em>module-name</em>. Example:</p> + + <blockquote> +<pre> +AddModuleInfo mod_auth.c 'See <A HREF="http://www.apache.org/docs/mod/mod_auth.html">http://www.apache.org/docs/mod/mod_auth.html</A>' +</pre> + </blockquote> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_info.html.html b/htdocs/manual/mod/mod_info.html.html new file mode 100644 index 0000000000..237ce65b94 --- /dev/null +++ b/htdocs/manual/mod/mod_info.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_info.html.en" --> + diff --git a/htdocs/manual/mod/mod_info.html.ja.jis b/htdocs/manual/mod/mod_info.html.ja.jis new file mode 100644 index 0000000000..ee7b56d7a5 --- /dev/null +++ b/htdocs/manual/mod/mod_info.html.ja.jis @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache module mod_info</title> + + </head> + <!-- English revision: 1.14 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_info モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪魯ぅ鵐好函ルされているすべてのモジュ・踉札襪筺鹿粡寂蝟赱齠洲痲筵娼設定ファイルのディレクティブなど、サ・踉札个寮瀋蠅料澗療奮詰廚鹿粡寂蝟赱齠洲痲筵娼提供します。</p> + + <p><a href="module-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯齒竇肅跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢソ・踉札好侫.ぅ墾踉晒齡鳫鈑閼煢鈕鎬礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪m閼繪粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + info_module<br /> + <a href="module-dict.html#Compatibility" + rel="help"><strong>互換性:</strong></a> + Apache 1.1 以降で使用可能。</p> + + <h2>ディレクティブ</h2> + + <ul> + <li><a href="#addmoduleinfo">AddModuleInfo</a></li> + </ul> + + <h2>mod_info の使用法</h2> + + <p>設定するには、以王踉擦踉祉閼絋苳氏窿纉鶤竢鈕閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢファイルに加えます。</p> +<pre> +<Location /server-info> +SetHandler server-info +</Location> +</pre> + サ・踉札仞瀋蠅陸苳諮報へのアクセスを制限するために、 + <a href="core.html#location">location</a> + ディレクティブの中に <a href="core.html#limit"><Limit></a> + 節を入れるとよいかもしれません。 + + <p>いったん設定すると、<tt>http://your.host.dom/server-info</tt> + をアクセスするとサ・踉札个陸苳諮報を得られるよう瘢雹になります。</p> + + <blockquote> + <p><strong>このモジュ・踉札襪櫓踉斬行時に設定ファイルを読み込みます。 + サ・踉札个寮瀋螢侫.ぅ襪埜紊縫機バに読み込まれた後に変更されている + 豺腓砲蓮拾踉雑されている内容は孫圓気譴討い襯機バの設定を反映して + <em>いない</em>かもしれないことに注意してください。 + また、設定ファイルはサ・踉札个踉斬行されているユ・踉札兇慮造鹿粡寂蝟赱齠洲痲筵娼読み込み許可が与えられている必要があります + (<a href="core.html#user"><samp>User</samp></a> + ディレクティブを参箸靴討世気ぢ。 + でなければ、ディレクティブの設定は表┐気譴泙擦鵝闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑黶逅迴籖蜴肬瘢隍苳纂蝟昭粡竚癈鷭п粐Ьぢがサ・踉札个冒箸濆泙譴討い襴苳詞合は、ディレクトリ<em>ごと</em>のファイル + (例えば、<samp>.htaccess</samp>) を含むすべての設定ファイルで + ハンドラを使用可能であるという瘢雹ことにも注意してください。 + これは、あなたのサイトではセキュリティに関連した問題があるかもしれません。 + </strong></p> + + <p>特に、このモジュ・踉札襪魯轡好謄爛僖后▲罅ザ巳苳ぢパスワ・踉札鼻鹿粡寂蝟赱齠洲痲筵娼デ・踉札織戞ス巳苳擦覆鼻の Apache モジュ・踉札襪寮瀋螢妊譽謄屬鹿粡寂蝟赱齠洲痲筵娼慎重に扱われるべき霾鵑鯱海蕕靴討靴泙逅参椎柔△蠅泙后鹿粡寂蝟赱齠洲痲筵娼このモジュ・踉札襪修里茲逅擦貌虻遒垢襪燭瓠▽苳諮報の流出を防ぐ方法はありません。 + ですから、このモジュ・踉札襪呂舛鵑肇▲札浩罎気譴心超任里鹿粡寂蝟赱齠洲痲筵娼注意して使ってください。</p> + + </blockquote> + <hr /> + + <h2><a id="addmoduleinfo" + name="addmoduleinfo">AddModuleInfo</a></h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> AddModuleInfo + <em>module-name string</em><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪m閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼煢鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> Apache 1.3 以降。 + + + <p>これは、<em>string</em> の内容がモジュ・踉札踉糸蹙苳詩閼絖釶辣蹙苳纂蝟昭粡竚癈鷭п粐Ьぢの<strong>追加霾闔胼苳として HTML + として解瓩気譟拾踉雑されるよう瘢雹にします。例:</p> + + <blockquote> +<pre> +AddModuleInfo mod_auth.c 'See <A HREF="http://www.apache.org/docs/mod/mod_auth.html">http://www.apache.org/docs/mod/mod_auth.html</A>' +</pre> + </blockquote> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/mod_isapi.html b/htdocs/manual/mod/mod_isapi.html new file mode 100644 index 0000000000..f29f6e3d49 --- /dev/null +++ b/htdocs/manual/mod/mod_isapi.html @@ -0,0 +1,335 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_isapi</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_isapi</h1> + + <p>This module supports ISAPI Extensions within Apache for + Windows.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_isapi.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + isapi_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> WIN32 only</p> + + <h2>Summary</h2> + + <p>This module implements the Internet Server extension API. It + allows Internet Server extensions (<em>e.g.</em> ISAPI .dll + modules) to be served by Apache for Windows, subject to the + noted restrictions.</p> + + <p>ISAPI extension modules (.dll files) are written by third + parties. The Apache Group does not author these modules, so we + provide no support for them. Please contact the ISAPI's author + directly if you are experiencing problems running their ISAPI + extention. <strong>Please <em>do not</em> post such problems to + Apache's lists or bug reporting pages.</strong></p> + + <h2>Directives</h2> + + <ul> + <li><a + href="#isapireadaheadbuffer">ISAPIReadAheadBuffer</a></li> + + <li><a + href="#isapilognotsupported">ISAPILogNotSupported</a></li> + + <li><a + href="#isapiappendlogtoerrors">ISAPIAppendLogToErrors</a></li> + + <li><a + href="#isapiappendlogtoquery">ISAPIAppendLogToQuery</a></li> + </ul> + + <h2>Usage</h2> + + <p>In the server configuration file, use the AddHandler + directive to associate ISAPI files with the + <code>isapi-isa</code> handler, and map it to the with their + file extensions. To enable any .dll file to be processed as an + ISAPI extention, edit the httpd.conf file and add the following + line:</p> +<pre> + AddHandler isapi-isa .dll +</pre> + + <p>ISAPI extensions are governed by the same permissions and + restrictions as CGI scripts. That is, <code>Options + ExecCGI</code> must be set for the directory that contains the + ISAPI .dll file.</p> + + <p>Review the <a href="#notes">Additional Notes</a> and the <a + href="#journal">Programmer's Journal</a> for additional details + and clarification of the specific ISAPI support offered by + mod_isapi.</p> + + <h2><a id="notes" name="notes">Additional Notes</a></h2> + + <p>Apache's ISAPI implementation conforms to all of the ISAPI + 2.0 specification, except for the "Microsoft-specific" + extensions dealing with asynchronous I/O. Apache's I/O model + does not allow asynchronous reading and writing in a manner + that the ISAPI could access. If an ISA tries to access + unsupported features, including async I/O, a message is placed + in the error log to help with debugging. Since these messages + can become a flood, a new directive; <code>ISAPILogNotSupported + Off</code>, is introduced in Apache 1.3.13.</p> + + <p>Some servers, like Microsoft IIS, load the ISA into the + server, and keep it loaded until memory usage is too high, or + specific configuration options are used. Apache currently loads + and unloads the ISA for each request. This is inefficient, but + Apache's request model makes this method the only method that + currently works. Apache 2.0 is expected to support more + effective loading and caching methods, with more precise + control over individual ISAPI modules and directories.</p> + + <p>Also, remember that while Apache supports ISAPI Extensions, + it <strong>does not support ISAPI Filters.</strong> Support for + filters may be added at a later date, but no support is planned + at this time.</p> + + <h2><a id="journal" name="journal">Programmer's + Journal</a></h2> + + <p>If you are programming Apache 1.3 mod_isapi modules, you + must limit your calls to ServerSupportFunction to the following + directives:</p> + + <dl> + <dt>HSE_REQ_SEND_URL_REDIRECT_RESP</dt> + + <dd>Redirect the user to another location.<br /> + This must be a fully qualified URL (e.g. + http://server/location).</dd> + + <dt>HSE_REQ_SEND_URL</dt> + + <dd>Redirect the user to another location.<br /> + This cannot be a fully qualified URL, you are not allowed to + pass the protocol or a server name (e.g. simply + /location).<br /> + This redirection is handled by the server, not the + browser.<br /> + <strong>Warning:</strong> in their recent documentation, + Microsoft appears to have abandoned the distinction between + the two HSE_REQ_SEND_URL functions. Apache continues to treat + them as two distinct functions with different requirements + and behaviors.</dd> + + <dt>HSE_REQ_SEND_RESPONSE_HEADER</dt> + + <dd>Apache accepts a response body following the header if it + follows the blank line (two consecutive newlines) in the + headers string argument. This body cannot contain NULLs, + since the headers argument is NULL terminated.</dd> + + <dt>HSE_REQ_DONE_WITH_SESSION</dt> + + <dd>Apache considers this a no-op, since the session will be + finished when the ISAPI returns from processing.</dd> + + <dt>HSE_REQ_MAP_URL_TO_PATH</dt> + + <dd>Apache will translate a virtual name to a physical + name.</dd> + + <dt>HSE_APPEND_LOG_PARAMETER <em>Apache 1.3.13 and + later</em></dt> + + <dd> + This logged message may be captured in any of the following + logs: + + <ul> + <li>in the \"%{isapi-parameter}n\" component in a + CustomLog directive</li> + + <li>in the %q log component with the + ISAPIAppendLogToQuery On directive</li> + + <li>in the error log with the ISAPIAppendLogToErrors On + directive</li> + </ul> + The first option, the %{isapi-parameter}n component, is + always available and prefered. + </dd> + + <dt>HSE_REQ_IS_KEEP_CONN <em>Apache 1.3.13 and + later</em></dt> + + <dd>Will return the negotiated Keep-Alive status.</dd> + + <dt>HSE_REQ_SEND_RESPONSE_HEADER_EX <em>Apache 1.3.13 and + later</em></dt> + + <dd>Will behave as documented, although the fKeepConn flag is + ignored.</dd> + + <dt>HSE_REQ_IS_CONNECTED <em>Apache 1.3.13 and + later</em></dt> + + <dd>Will report false if the request has been aborted.</dd> + </dl> + + <p>Apache returns FALSE to any unsupported call to + ServerSupportFunction, and sets the GetLastError value to + ERROR_INVALID_PARAMETER.</p> + + <p>Prior to Apache 1.3.13, ReadClient was a noop, and any + request with a request body greater than 48kb was rejected by + mod_isapi. As of Apache 1.3.13, ReadClient now retrieves the + request body exceeding the initial buffer (defined by + ISAPIReadAheadBuffer). Based on the ISAPIReadAheadBuffer + setting (number of bytes to buffer prior to calling the ISAPI + handler) shorter requests are sent complete to the extension + when it is invoked. If the request is longer, the ISAPI + extension must use ReadClient to retrieve the remaining request + body.</p> + + <p>WriteClient is supported, but only with the HSE_IO_SYNC flag + or no option flag (value of 0). Any other WriteClient request + will be rejected with a return value of FALSE, and a + GetLastError value of ERROR_INVALID_PARAMETER.</p> + + <p>GetServerVariable is supported, although extended server + variables do not exist (as defined by other servers.) All the + usual Apache CGI environment variables are available from + GetServerVariable. As of Apache 1.3.13, the ALL_HTTP and + ALL_RAW and variables are now available.</p> + + <p>Apache 2.0 mod_isapi may support additional features + introduced in later versions of the ISAPI specification, as + well as limited emulation of async I/O and the TransmitFile + semantics. Apache 2.0 may also support caching of ISAPI .dlls + for performance. No further enhancements to the Apache 1.3 + mod_isapi features are anticipated.</p> + <hr /> + + <h2><a id="isapireadaheadbuffer" + name="isapireadaheadbuffer">ISAPIReadAheadBuffer + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ISAPIReadAheadBuffer + <em>size</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> 49152<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> None<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_isapi<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.13 + and later, Win32 only + + <p>Defines the maximum size of the Read Ahead Buffer sent to + ISAPI extentions when they are initally invoked. All remaining + data must be retrieved using the ReadClient callback; some + ISAPI extensions may not support the ReadClient function. Refer + questions to the ISAPI extention's author.</p> + <hr /> + + <h2><a id="isapilognotsupported" + name="isapilognotsupported">ISAPILogNotSupported + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ISAPILogNotSupported + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> on<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> None<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_isapi<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.13 + and later, Win32 only + + <p>Logs all requests for unsupported features from ISAPI + extentions in the server error log. While this should be turned + off once all desired ISAPI modules are functioning, it defaults + to on to help administrators track down problems.</p> + <hr /> + + <h2><a id="isapiappendlogtoerrors" + name="isapiappendlogtoerrors">ISAPIAppendLogToErrors + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ISAPIAppendLogToErrors + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> off<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> None<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_isapi<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.13 + and later, Win32 only + + <p>Record HSE_APPEND_LOG_PARAMETER requests from ISAPI + extentions to the server error log.</p> + <hr /> + + <h2><a id="isapiappendlogtoquery" + name="isapiappendlogtoquery">ISAPIAppendLogToQuery + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ISAPIAppendLogToQuery + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> off<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> None<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_isapi<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.13 + and later, Win32 only + + <p>Record HSE_APPEND_LOG_PARAMETER requests from ISAPI + extentions to the query field (appended to the CustomLog %q + component).</p> + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_log_agent.html b/htdocs/manual/mod/mod_log_agent.html new file mode 100644 index 0000000000..2e518514f7 --- /dev/null +++ b/htdocs/manual/mod/mod_log_agent.html @@ -0,0 +1,106 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Module mod_log_agent</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_log_agent</h1> + + <p>This module provides for logging of the client user + agents.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_log_agent.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + agent_log_module</p> + + <h2>Summary</h2> + + <p>This module is provided strictly for compatibility with NCSA + httpd, and is deprecated. We recommend you use <a + href="mod_log_config.html">mod_log_config</a> instead.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#agentlog">AgentLog</a></li> + </ul> + + <p>See also: <a + href="mod_log_config.html#customlog">CustomLog</a> and <a + href="mod_log_config.html#logformat">LogFormat</a>.</p> + <hr /> + + <h2><a id="agentlog" name="agentlog">AgentLog</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AgentLog + <em>file-pipe</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>AgentLog + logs/agent_log</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_log_agent + + <p>The AgentLog directive sets the name of the file to which + the server will log the UserAgent header of incoming requests. + <em>File-pipe</em> is one of</p> + + <dl> + <dt>A filename</dt> + + <dd>A filename relative to the <a + href="core.html#serverroot">ServerRoot</a>.</dd> + + <dt>`|' followed by a command</dt> + + <dd>A program to receive the agent log information on its + standard input. Note the a new program will not be started + for a VirtualHost if it inherits the AgentLog from the main + server.</dd> + </dl> + <strong>Security:</strong> if a program is used, then it will + be run under the user who started httpd. This will be root if + the server was started by root; be sure that the program is + secure. + + <p><strong>Security:</strong> See the <a + href="../misc/security_tips.html">security tips</a> document + for details on why your security could be compromised if the + directory where logfiles are stored is writable by anyone other + than the user that starts the server.</p> + + <p>This directive is provided for compatibility with NCSA + 1.4. The same result can be obtained by using the <a + href="mod_log_config.html#logformat">LogFormat</a> and <a + href="mod_log_config.html#customlog">CustomLog</a> directives as + shown in the following example:</p> + +<pre> + LogFormat "%{User-agent}i" agent + CustomLog logs/agent_log agent +</pre> + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_log_common.html b/htdocs/manual/mod/mod_log_common.html new file mode 100644 index 0000000000..e91adf7a65 --- /dev/null +++ b/htdocs/manual/mod/mod_log_common.html @@ -0,0 +1,144 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_log_common</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_log_common</h1> + This module is contained in the <code>mod_log_common.c</code> + file, and is compiled in by default. It provides for logging of + the requests made to the server using the Common Logfile + Format. This module has been replaced by mod_log_config in + Apache 1.2 + + <h2>Log file format</h2> + The log file contains a separate line for each request. A line + is composed of several tokens separated by spaces: + + <blockquote> + host ident authuser date request status bytes + </blockquote> + If a token does not have a value then it is represented by a + hyphen (-). The meanings and values of these tokens are as + follows: + + <dl> + <dt>host</dt> + + <dd>The fully-qualified domain name of the client, or its IP + number if the name is not available.</dd> + + <dt>ident</dt> + + <dd>If <a href="core.html#identitycheck">IdentityCheck</a> is + enabled and the client machine runs identd, then this is the + identity information reported by the client.</dd> + + <dt>authuser</dt> + + <dd>If the request was for a password protected document, + then this is the userid used in the request.</dd> + + <dt>date</dt> + + <dd> + The date and time of the request, in the following format: + + <dl> + <dd> + <blockquote> + <code>date = [day/month/year:hour:minute:second + zone]<br /> + day = 2*digit<br /> + month = 3*letter<br /> + year = 4*digit<br /> + hour = 2*digit<br /> + minute = 2*digit<br /> + second = 2*digit<br /> + zone = (`+' | `-') 4*digit</code> + </blockquote> + </dd> + </dl> + </dd> + + <dt>request</dt> + + <dd>The request line from the client, enclosed in double + quotes (<code>"</code>).</dd> + + <dt>status</dt> + + <dd>The three digit status code returned to the client.</dd> + + <dt>bytes</dt> + + <dd>The number of bytes in the object returned to the client, + not including any headers.</dd> + </dl> + + <h2>Directives</h2> + + <ul> + <li><a href="#transferlog">TransferLog</a></li> + </ul> + <hr /> + + <h2><a id="transferlog" name="transferlog">TransferLog</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> TransferLog + <em>file-pipe</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>TransferLog + logs/transfer_log</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_log_common + + <p>The TransferLog directive sets the name of the file to which + the server will log the incoming requests. <em>File-pipe</em> + is one of</p> + + <dl> + <dt>A filename</dt> + + <dd>A filename relative to the <a + href="core.html#serverroot">ServerRoot</a>.</dd> + + <dt>`|' followed by a command</dt> + + <dd>A program to receive the agent log information on its + standard input. Note the a new program will not be started + for a VirtualHost if it inherits the TransferLog from the + main server. See, just as an example, <a + href="http://www.cronolog.org/">cronolog</a>.</dd> + </dl> + <strong>Security:</strong> if a program is used, then it will + be run under the user who started httpd. This will be root if + the server was started by root; be sure that the program is + secure. + + <p><strong>Security:</strong> See the <a + href="../misc/security_tips.html">security tips</a> document + for details on why your security could be compromised if the + directory where logfiles are stored is writable by anyone other + than the user that starts the server.</p> + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_log_config.html.en b/htdocs/manual/mod/mod_log_config.html.en new file mode 100644 index 0000000000..f9ad2fb2dc --- /dev/null +++ b/htdocs/manual/mod/mod_log_config.html.en @@ -0,0 +1,407 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_log_config</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_log_config</h1> + + <p>This module provides for logging of the requests made to the + server, using the Common Log Format or a user-specified + format.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_log_config.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + config_log_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Was an extension + module prior to Apache 1.2.</p> + + <h2>Summary</h2> + + <p>This module provides for flexible logging of client + requests. Logs are written in a customizable format, and may be + written directly to a file, or to an external program. + Conditional logging is provided so that individual requests may + be included or excluded from the logs based on characteristics + of the request.</p> + + <p>Three directives are provided by this module: + <code>TransferLog</code> to create a log file, + <code>LogFormat</code> to set a custom format, and + <code>CustomLog</code> to define a log file and format in one + step. The <code>TransferLog</code> and <code>CustomLog</code> + directives can be used multiple times in each server to cause + each request to be logged to multiple files.</p> + + <p>See also: <a href="../logs.html">Apache Log Files</a>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#cookielog">CookieLog</a></li> + + <li><a href="#customlog">CustomLog</a></li> + + <li><a href="#logformat">LogFormat</a></li> + + <li><a href="#transferlog">TransferLog</a></li> + </ul> + + <h2><a id="formats" name="formats">Custom Log Formats</a></h2> + + <p>The format argument to the <code>LogFormat</code> and + <code>CustomLog</code> directives is a string. This string is + used to log each request to the log file. It can contain literal + characters copied into the log files and the C-style control + characters "\n" and "\t" to represent new-lines and tabs. + Literal quotes and back-slashes should be escaped with + back-slashes.</p> + + <p>The characteristics of the request itself are logged by + placing "<code>%</code>" directives in the format string, which are + replaced in the log entry by the values as follows:</p> +<pre> +%...a: Remote IP-address +%...A: Local IP-address +%...B: Bytes sent, excluding HTTP headers. +%...b: Bytes sent, excluding HTTP headers. In CLF format + i.e. a '-' rather than a 0 when no bytes are sent. +%...c: Connection status when response was completed. + 'X' = connection aborted before the response completed. + '+' = connection may be kept alive after the response is sent. + '-' = connection will be closed after the response is sent. +%...{FOOBAR}e: The contents of the environment variable FOOBAR +%...f: Filename +%...h: Remote host +%...H The request protocol +%...{Foobar}i: The contents of Foobar: header line(s) in the request + sent to the server. +%...l: Remote logname (from identd, if supplied) +%...m The request method +%...{Foobar}n: The contents of note "Foobar" from another module. +%...{Foobar}o: The contents of Foobar: header line(s) in the reply. +%...p: The canonical Port of the server serving the request +%...P: The process ID of the child that serviced the request. +%...q The query string (prepended with a ? if a query string exists, + otherwise an empty string) +%...r: First line of request +%...s: Status. For requests that got internally redirected, this is + the status of the *original* request --- %...>s for the last. +%...t: Time, in common log format time format (standard english format) +%...{format}t: The time, in the form given by format, which should + be in strftime(3) format. (potentially localized) +%...T: The time taken to serve the request, in seconds. +%...u: Remote user (from auth; may be bogus if return status (%s) is 401) +%...U: The URL path requested, not including any query string. +%...v: The canonical ServerName of the server serving the request. +%...V: The server name according to the UseCanonicalName setting. +</pre> + + <p>The "..." can be nothing at all (<em>e.g.</em>, <code>"%h %u + %r %s %b"</code>), or it can indicate conditions for inclusion + of the item (which will cause it to be replaced with "-" if the + condition is not met). The forms of condition are a list of + HTTP status codes, which may or may not be preceded by "!". + Thus, "%400,501{User-agent}i" logs User-agent: on 400 errors + and 501 errors (Bad Request, Not Implemented) only; + "%!200,304,302{Referer}i" logs Referer: on all requests which + did <strong>not</strong> return some sort of normal status.</p> + + <p>Note that in versions previous to 1.3.25 no escaping was performed + on the strings from <code>%...r</code>, <code>%...i</code> and + <code>%...o</code>. This was mainly to comply with the requirements of + the Common Log Format. This implied that clients could insert control + characters into the log, so you had to be quite careful when dealing + with raw log files.</p> + + <p>For security reasons starting with 1.3.25 non-printable and + other special characters are escaped mostly by using + <code>\x<var>hh</var></code> sequences, where <var>hh</var> stands for + the hexadecimal representation of the raw byte. Exceptions from this + rule are <code>"</code> and <code>\</code> which are escaped by prepending + a backslash, and all whitespace characters that are written in their + C-style notation (<code>\n</code>, <code>\t</code>, etc).</p> + + <p>Some commonly used log format strings are:</p> + + <dl> + <dt>Common Log Format (CLF)</dt> + + <dd><code>"%h %l %u %t \"%r\" %>s %b"</code></dd> + + <dt>Common Log Format with Virtual Host</dt> + + <dd><code>"%v %h %l %u %t \"%r\" %>s %b"</code></dd> + + <dt>NCSA extended/combined log format</dt> + + <dd><code>"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\""</code></dd> + + <dt>Referer log format</dt> + + <dd><code>"%{Referer}i -> %U"</code></dd> + + <dt>Agent (Browser) log format</dt> + + <dd><code>"%{User-agent}i"</code></dd> + </dl> + + <p>Note that the canonical <a + href="core.html#servername">ServerName</a> and <a + href="core.html#port">Port</a> of the server serving the + request are used for <code>%v</code> and <code>%p</code> + respectively. This happens regardless of the <a + href="core.html#usecanonicalname">UseCanonicalName</a> setting + because otherwise log analysis programs would have to duplicate + the entire vhost matching algorithm in order to decide what + host really served the request.</p> + + <h2>Security Considerations</h2> + + <p>See the <a + href="../misc/security_tips.html#serverroot">security tips</a> + document for details on why your security could be compromised + if the directory where logfiles are stored is writable by + anyone other than the user that starts the server.</p> + + <h2>Compatibility notes</h2> + + <ul> + <li>This module is based on mod_log_config distributed with + previous Apache releases, now updated to handle multiple + logs. There is now no need to rebuild Apache to change + configuration log formats.</li> + + <li>The module also implements the <code>CookieLog</code> + directive, used to log user-tracking information created by + <a href="mod_usertrack.html">mod_usertrack</a>. The use of + <code>CookieLog</code> is deprecated, and a + <code>CustomLog</code> should be defined to log user-tracking + information instead.</li> + + <li>As of Apache 1.3.5, this module allows conditional + logging based upon the setting of <a + href="../env.html">environment variables</a>. That is, you + can control whether a request should be logged or not based + upon whether an arbitrary environment variable is defined or + not. This is configurable on a per-logfile + basis.</li> + + <li>Beginning with Apache 1.3.5, the mod_log_config module + has also subsumed the <code>RefererIgnore</code> + functionality from <a + href="mod_log_referer.html">mod_log_referer</a>. The effect + of <code>RefererIgnore</code> can be achieved by combinations + of <a href="mod_setenvif.html"><code>SetEnvIf</code></a> + directives and conditional <code>CustomLog</code> + definitions.</li> + </ul> + <hr /> + + <h2><a id="cookielog" name="cookielog">CookieLog</a> + directive</h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CookieLog + <em>filename</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_cookies<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Only available + in Apache 1.2 and above</p> + + <p>The CookieLog directive sets the filename for logging of + cookies. The filename is relative to the <a + href="core.html#serverroot">ServerRoot</a>. This directive is + included only for compatibility with <a + href="mod_cookies.html">mod_cookies</a>, and is deprecated.</p> + <hr /> + + <h2><a id="customlog" name="customlog">CustomLog</a> <a + id="customlog-conditional" + name="customlog-conditional">directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CustomLog + <em>file</em>|<em>pipe</em> <em>format</em>|<em>nickname</em> + [env=[!]<em>environment-variable</em>]<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Nickname only + available in Apache 1.3 or later. Conditional logging available + in 1.3.5 or later.<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_log_config</p> + + <p>The <code>CustomLog</code> directive is used to log requests + to the server. A log format is specified, and the logging can + optionally be made conditional on request characteristics using + environment variables.</p> + + <p>The first argument, which specifies the location to which + the logs will be written, can take one of the following two + types of values:</p> + + <dl> + <dt><em>file</em></dt> + + <dd>A filename, relative to the <a + href="core.html#serverroot">ServerRoot</a>.</dd> + + <dt><em>pipe</em></dt> + + <dd>The pipe character "<code>|</code>", followed by the path + to a program to receive the log information on its standard + input. <strong>Security:</strong> if a program is used, then + it will be run as the user who started httpd. This will be + root if the server was started by root; be sure that the + program is secure.</dd> + </dl> + + <p>The second argument specifies what will be written to the + log file. It can specify either a <em>nickname</em> defined by + a previous <a href="#logformat">LogFormat</a> directive, or it + can be an explicit <em>format</em> string as described in the + <a href="#formats">log formats</a> section.</p> + + <p>For example, the following two sets of directives have + exactly the same effect:</p> +<pre> + # CustomLog with format nickname + LogFormat "%h %l %u %t \"%r\" %>s %b" common + CustomLog logs/access_log common + + # CustomLog with explicit format string + CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b" +</pre> + + <p>The third argument is optional and controls + whether or not to log a particular request based on the + presence or absence of a particular variable in the server + environment. If the specified <a href="../env.html">environment + variable</a> is set for the request (or is not set, in the case + of a '<code>env=!<em>name</em></code>' clause), then the + request will be logged.</p> + + <p>Environment variables can be set on a per-request + basis using the <a href="mod_setenvif.html">mod_setenvif</a> + and/or <a href="mod_rewrite.html">mod_rewrite</a> modules. For + example, if you want to record requests for all GIF + images on your server in a separate logfile but not in your main + log, you can use:</p> +<pre> + SetEnvIf Request_URI \.gif$ gif-image + CustomLog gif-requests.log common env=gif-image + CustomLog nongif-requests.log common env=!gif-image +</pre> + <hr /> + + <h2><a id="logformat" name="logformat">LogFormat</a> + directive</h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LogFormat + <em>format</em>|<em>nickname</em> [<em>nickname</em>]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LogFormat "%h %l + %u %t \"%r\" %>s %b"</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Nickname only + available in Apache 1.3 or later<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_log_config</p> + + <p>This directive specifies the format of the access log + file.</p> + + <p>The <code>LogFormat</code> directive can take one of two + forms. In the first form, where only one argument is specified, + this directive sets the log format which will be used by logs + specified in subsequent <a href="#transferlog">TransferLog</a> + directives. The single argument can specify an explicit + <em>format</em> as discussed in the <a href="#formats">custom log + formats</a> section above. Alternatively, it can use a + <em>nickname</em> to refer to a log format defined in a + previous <code>LogFormat</code> directive as described + below.</p> + + <p>The second form of the <code>LogFormat</code> directive + associates an explicit <em>format</em> with a + <em>nickname</em>. This <em>nickname</em> can then be used in + subsequent <code>LogFormat</code> or <a + href="#customlog">CustomLog</a> directives rather than + repeating the entire format string. A <samp>LogFormat</samp> + directive which defines a nickname <strong>does nothing + else</strong> -- that is, it <em>only</em> defines the + nickname, it doesn't actually apply the format and make it the + default. Therefore, it will not affect subsequent <a + href="#transferlog">TransferLog</a> directives.</p> + + <p>For example:</p> + + <code>LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common</code> + + <hr /> + + <h2><a id="transferlog" name="transferlog">TransferLog</a> + directive</h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> TransferLog + <em>file</em>|<em>pipe</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> none<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_log_config</p> + + <p>This directive has exactly the same arguments and effect as + the <a href="#customlog">CustomLog</a> directive, with the + exception that it does not allow the log format to be specified + explicitly or for conditional logging of requests. Instead, the + log format is determined by the most recently specified <a + href="#logformat">LogFormat</a> directive that does not define + a nickname. Common Log Format is used if no other format has + been specified.</p> + + <p>Example:</p> +<pre> + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" + TransferLog logs/access_log +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_log_config.html.html b/htdocs/manual/mod/mod_log_config.html.html new file mode 100644 index 0000000000..091b838dc1 --- /dev/null +++ b/htdocs/manual/mod/mod_log_config.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_log_config.html.en" --> + diff --git a/htdocs/manual/mod/mod_log_config.html.ja.jis b/htdocs/manual/mod/mod_log_config.html.ja.jis new file mode 100644 index 0000000000..ae4f698e0b --- /dev/null +++ b/htdocs/manual/mod/mod_log_config.html.ja.jis @@ -0,0 +1,409 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + <title>Apache module mod_log_config</title> + </head> + <!-- English revision: 1.56 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#000080" + alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_log_config モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪魯機バへのリクエストを Common Log Format + やユ・踉札兇忙慊蠅気譴申颱踉三を用いて + ログ犬垢覽’修鯆鷆,靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹閼絖粡笏譯囂竇鍋跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖跫艤竢鈕蜃碣鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴糒跂蜒蔗迪M閼緝粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + config_log_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>互換性:</strong></a> Apache 1.2 より前は + extension モジュ・踉札襪任靴拭鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢概要</h2> + + <p> + このモジュ・踉札襪魯薀ぅ▲鵐箸離螢┘好箸鮟斉陲縫蹈愛踉持集する機能を + 提供します。ログはカスタマイズ可能な書阿能颪譟▲侫.ぅ襪膨接 + 書いたり、外部プログラムに渡したりすることができます。個々のリクエストを + 特徴に応じてログに書いたり書かなかったりできるよう瘢雹に、魴錣砲茲鹿粡寂蝟赱齠洲痲筵娼ログ犬眥鷆,気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのモジュ・踉札襪六阿弔離妊譽謄崢鷆,靴泙瑳蝟昭粡竚癈鷭п粐Ьぢログファイルを作成するための <code>TransferLog</code>, + 新しい書阿ぢ定義する <code>LogFormat</code>, + ログファイルと 書阿魄貪戮膨蟲舛垢踉祉閼絋苳暫輒閾閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢです。 + 各リクエストが複数回ログ犬気譴襪茲逅擦砲垢襪燭瓩鹿粡寂蝟赱齠洲痲筵娼竢粤夸瘤黽纈弥胼踉晒竢粤ぢディレクティブと <code>CustomLog</code> + ディレクティブは複数回使用することができます。</p> + + <p>参蓿繙就閾鶤蔗迪▽苳餐鞜竏綣蝟昭粡竚癈鷭п粐Ьぢログファイル</a>。</p> + + <h2>ディレクティブ</h2> + + <ul> + <li><a href="#cookielog">CookieLog</a></li> + + <li><a href="#customlog">CustomLog</a></li> + + <li><a href="#logformat">LogFormat</a></li> + + <li><a href="#transferlog">TransferLog</a></li> + </ul> + + <h2><a id="formats" name="formats">カスタムログ書王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢粤弥臚闥轣熙踉晒竢粤ぢディレクティブと <code>CustomLog</code> + ディレクティブの書阿鮖慊蠅垢覦瑤亙源鵑任后海諒源鵑鮖箸辰討修譴れの + リクエストがログファイルにログ犬気譴泙后修諒源鵑砲鹿粡寂蝟赱齠洲痲筵娼ログファイルにそのまま + 書かれる文字列や、それう苳擦豌圓肇織屬鮓修ぢ言語 + 形阿寮翳源樌と "\t" + とを含めることができます。そのまま出力させたい引用符とバックスラッシュは + バックスラッシュでエスケ・踉札廚垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢリクエストの特徴そのものは "<code>%</code>" + ディレクティブを書阿諒源鵑暴颪海箸鹿粡寂蝟赱齠洲痲筵娼ログ犬気譴泙后▲⊆蝟昭粡竚癈鷭п粐Ьぢディレクティブはログエントリ中では以王踉擦里茲逅擦鹿粡寂蝟赱齠洲痲筵娼値で置換されます:</p> + +<pre> +%...a: リモ・踉札アドレス +%...A: ロ・踉札アドレス +%...B: HTTP ヘッダ以外の送られたバイト数 +%...b: HTTP ヘッダ以外の送られたバイト数。CLF 書亜鹿粡寂蝟赱齠洲痲筵娼すなわち、1 バイトも送られなかったときは 0 ではなく、'-' になる +%...c: 応答が終了したときの接続ステ・踉札織后鹿粡寂蝟赱齠洲痲筵娼ж応答が終了する前に接続が異鐔鹿粡寂蝟赱齠洲痲筵娼Й応答が送られた後に接続を持続することが可能 + '-' = 応答が送られた後に接続は切られる +%...{FOOBAR}e: 環境変数 FOOBAR の内容 +%...f: ファイル巳苳鹿粡寂蝟赱齠洲痲筵娼ギ荳リモ・踉札肇曠好鹿粡寂蝟赱齠洲痲筵娼ギリクエストプロトコル +%...{Foobar}i: サ・踉札个冒蕕譴織螢┘好箸闖矚鮑ぢヘッダの内容 +%...l: (もしあれば、identd からの) リモ・踉札肇蹈位 +%...m リクエストメソッド +%...{Foobar}n: 側苳擦離皀献紂ルからのメモ "Foobar" の内容 +%...{Foobar}o: 応答の Foobar: ヘッダの内容 +%...p: リクエストを扱っているサ・踉札个寮畿踉三なポ・踉札鹿粡寂蝟赱齠洲痲筵娼ギ从リクエストを扱った子プロセスのプロセス ID +%...q 問い合せ文字列 (存在する豺腓倭阿ぢが追加される。そう瘢雹でない + 豺腓篭源蝟昭粡竚癈鷭п粐Ьぢリクエストの最初の行 +%...s: ステ・踉札織后F睇瑤妊螢瀬ぅ譽箸気譴織螢┘好箸蓮機垢鹿粡寂蝟赱齠洲痲筵娼リクエストのステ・踉札織ぢ最後のステ・踉札織垢瘢雹苳雌鹿粡寂蝟赱齠洲痲筵娼ギ時刻。CLF の時刻の書標準の英語の書蝟昭粡竚癈鷭п粐Ь肬鴉癆闥轣で与えられた書阿砲茲觧錙肬鴉癆ぢは strftime (3) の + 書阿任△詆廚△襦ぢ地域化されている可能性がある) +%...T: リクエストを扱う瘢雹のにかかった時間、秒単位 +%...u: リモ・踉札肇罅ザ (auth によるもの。ステ・踉札織ンが 401 のときは + 意味がない可能性がある) +%...U: リクエストされた URL パスで、クエリ文字列は含まない +%...v: リクエストを扱っているサ・踉札个寮畿踉三な ServerName +%...V: UseCanonicalName の設定によるサ・踉札侈 +</pre> + + <p>"..." は何もないか (<em>例えば</em>、<code>"%h %u %r %s %b"</code> のよう瘢雹に)、 + その項目を含めるかどう瘢雹かの魴もし魴錣帽腓錣覆辰燭箸鹿粡寂蝟赱齠洲痲筵娼その項目は "-" になります) にすることができます。魴錣侶薦踉三は + HTTP ステ・踉札織好魁ドのリストで、前に "!" を付けることもできます。 + ですから、"%400,501{User-agent}i" は 400 エラ・踉擦葦ぢエラ・踉鹿粡寂蝟赱齠洲痲筵娼痲繿齡ぢと Not Implemented) のときのみ User-agent: をログ犬靴泙后鹿粡寂蝟赱齠洲痲筵娼▲_旭梓芦繙纈纈は普通のステ・踉札織垢齡鳫鈑返さなかった</strong> + すべてのリクエストで Referer: をログ犬靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳傘より前のバ・踉札献腑鵑任蓮竢粤ギ鬢踉晒竢粤竢粤ギ薤踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳札閼絋苳の文字列は + エスケ・踉札廚気譴討い覆辰燭海箸鹿粡寂蝟赱齠洲痲筵娼注意してください。これは腓闕迴弥楠鴉癆ぢからの要求によるものです。 + これは、クライアントがログに制御文字を挿入することができるという瘢雹ことで、 + 生のログファイルを扱う瘢雹ときには非錣肪躇佞廚任靴拭鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢセキュリティ紊陵海砲茲より印字不可能な文字と + 側苳擦瞭段未癖源蓮△曚箸鵑踉祉閼絋苳施踉事癇蓙癇閼絋苳という瘢雹 + 文字列でエスケ・踉札廚気譴襪茲逅擦砲覆蠅泙靴拭海海如鬢苳肢荀踉晒鬢苳は + そのままのバイトの値の 16 進での値です。この規則の例外には、 + バックスラッシュを使ってエスケ・踉札廚気譴踉祉閼絋苳拶閼絋苳と <code>\</code> と、 + C 形阿良週,箸錣譴覿鯤源竢粤樌閼絋苳錆踉祉閼絋苳施熙踉晒竢粤ぢなど) が + あります。</p> + + <p>よく使われるフォ・踉札泪奪畔源鵑墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳暫闕迴弥楠鴉癆談透熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉祉閼絋苳拶ヨヵ棧ヲ棧逅紫モ▽踉晒竢粤筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳ぢバ・踉札船礇襯曠好班佞闕迴弥楠鴉癆熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉祉閼絋苳拶ヶレヴ▲鰛ウ瘢雹苳雌癶閼絋苳殺踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘涼啻緕粤箝竢轤蜴繖ぢログ書熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉祉閼絋苳拶ヨヵ棧ヲ棧逅紫モ▲繙纈纈棧鹿粡寂蝟赱齠洲痲筵娼棧專纈艱銓棧▽踉晒竢粤筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳子繙纈纈ぢログ書熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉祉閼絋苳拶吶聽鱚鵆瘢雹苳フ▽踉晒竢粤筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳餐艱銓ブラウ瘢雹ザ) ログ書熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉祉閼絋苳拶專纈艱銓▽踉晒竢粤筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳札踉晒竢粤ぢと <code>%p</code> にはそれう苳擦譟鹿粡寂蝟赱齠洲痲筵娼リクエストを扱っているサ・踉札个寮亀修気譴鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯黼鴟纈釶辣▽苳屍纈鯲瘢絋踉晒瓲苳と <a + href="core.html#port">Port</a> が使われるという瘢雹ことに注意してください。 + これは <a href="core.html#usecanonicalname">UseCanonicalName</a> の + 設定に関わらず、錣砲修逅擦覆蠅泙后修逅擦靴覆い箸匹鹿粡寂蝟赱齠洲痲筵娼ホストが尊櫃縫螢┘好箸魄靴辰燭里鮹里襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼ログ解析プログラムがバ・踉札船礇襯曠好箸離泪奪船鵐阿鬚箸襯▲襯乾螢坤狒澗里鹿粡寂蝟赱齠洲痲筵娼再汰靴覆韻譴个覆蕕覆覆襪蕕任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢セキュリティに関して</h2> + + <p>ログファイルが保存されているディレクトリがサ・踉札个魑阿靴唇奮阿離罅ザで + 書き込み可能なときにセキュリティの問題が発生する理由の楮戮畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迚黹繝蜚頌譯黼鴟纈鳫阡▽苳ぢセキュリティのこつ</a> + を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢互換性に関して</h2> + + <ul> + <li>このモジュ・踉札襪楼柄阿鞜竏綣蝟昭粡竚癈鷭п粐Ьぢのリリ・踉札垢杷柯曚気譴討い閼煬閾焜闔肅膽蝟昭粡竚癈鷭п粐Ьぢを基にして、複数のログを扱えるよう瘢雹に更新されたものです。 + 設定可能なログの書阿鮖箸逅擦燭瓩鞜竏をビルド + し彫苳擦紘廚呂覆覆蠅泙靴拭薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢこのモジュ・踉札襪踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖纈痺覡蔗迪▽苳詩閼熾黼鶯鱇站ぢにより + 作られたユ・踉札仰廟徑僂陸苳諮報のログ犬鮃圓覆逅擦燭瓩忙箸錣譴討い鹿粡寂蝟赱齠洲痲筵娼竢粤衷闍蜈弥胼踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブも汰靴討い泙后竢粤衷闍蜈弥胼踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブの使用は非推如鹿粡寂蝟赱齠洲痲筵娼ユ・踉札仰廟徑僂陸苳諮報もログ犬垢襪茲逅擦棒瀋蠅靴鹿粡寂蝟赱齠洲痲筵娼竢粤瀦齡闕弥胼踉晒竢粤ぢを使う瘢雹ことが推気譴討い泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳餐鞜竏窺凱の時点で、このモジュ・踉札襪踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就鉚譬環境変数</a> + の設定に基づいて魴鑄佞蹈鵐阿任襪茲逅擦砲覆蠅泙靴拭垢覆錣繊鹿粡寂蝟赱齠洲痲筵娼リクエストがログ犬気譴襪匹逅擦鯒ぐ佞隆超竸瑤蟲舛気譴討い襪鹿粡寂蝟赱齠洲痲筵娼どう瘢雹かにより変更することができるという瘢雹ことです。これは + ログファイルごとに設定可能です。</li> + + <li>Apache 1.3.5 から、mod_log_config モジュ・踉札襪踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖跫艤鱚聽鱚鬯蔗迪▽苳詩閼煬閾熬繙纈纈ぢの + <code>RefererIgnore</code> 機能も含むよう瘢雹になりました。 + <code>RefererIgnore</code> の効果は <a + href="mod_setenvif.html"><code>SetEnvIf</code></a> + ディレクティブと <code>CustomLog</code> + の魴鑄佞寮瀋蠅砲茲蠱任泙后薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼莢蜆就竢闍蜈跫腆瘢綵≪闖謇繻閾▽苳暫闖謇緻閾鹿粡寂蝟赱齠洲痲筵娼ディレクティブ</h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> CookieLog + <em>filename</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>モジュ・踉札墾踉晒齡鳫鈑閼焜闖謇纉碣鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑互換性:</strong></a> Apache 1.2 + 以降でのみ使用可能</p> + + <p>CookieLog + ディレクティブはクッキ・踉擦離蹈鵐阿里燭瓩離侫.ぅ詭を + 設定します。filename は <a + href="core.html#serverroot">ServerRoot</a> + からの相対パスです。このディレクティブは <a + href="mod_cookies.html">mod_cookies</a> との互換性のためだけに + 存在し、使用は推気譴討い泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼莢蜆就笊齡闕跫腆瘢綵≪迪閾▽苳暫輒閾踉氏鹿粡寂蝟赱齠洲痲筵娼蜆就笊齡闕跫膈竢鈔蜚蜿釶譬鹿粡寂蝟赱齠洲痲筵娼釶辣就笊齡闕跫膈竢鈔蜚蜿釶譬ディレクティブ</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> CustomLog + <em>file</em>|<em>pipe</em> <em>format</em>|<em>nickname</em> + [env=[!]<em>environment-variable</em>]<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Nickname は Apache + 1.3 以降でのみ使用可能。 魴鑄佞蹈鵐阿鹿粡寂蝟赱齠洲痲筵娼以降で使用可能。<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>モジュ・踉札墾踉晒齡鳫鈑閼煬閾焜闔肅胼踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢粤瀦齡闕弥胼踉晒竢粤ぢディレクティブはサ・踉札个悗離螢┘好箸鹿粡寂蝟赱齠洲痲筵娼ログ犬垢襪燭瓩忙箸錣譴泙后蹈阿僚颱踉三が指定され、 + 環境変数を使ってロギングが魴錣鳳犬胴圓覆錣譴襪茲逅擦砲垢襪海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢログが書かれる貊蠅鮖慊蠅垢觝能蕕琉瑤楼焚の二つの形阿涼佑鹿粡寂蝟赱齠洲痲筵娼とることができます:</p> + + <dl> + <dt><em>file</em></dt> + + <dd><a href="core.html#serverroot">ServerRoot</a> + からの相対パスで表されるファイル巳苳察筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉糸蹙苳諮蜷絋踉晒纃熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢパイプ文字 "<code>|</code>" と、その後に標準入力からログの + 霾鵑鬢踉歯けとるプログラムへのパスが続いたもの。 + <strong>セキュリティ:</strong> もしプログラムが使用された豺隋鹿粡寂蝟赱齠洲痲筵娼蔗が起動されたユ・踉札兇箸靴豆踉斬行されます。これはサ・踉札个鹿粡寂蝟赱齠洲痲筵娼鳫阡ぢによって起動された豺腓闖になります。プログラムが + 安全であるよう瘢雹に留意してください。</dd> + </dl> + + <p>二つめの引数はログファイルに何が書かれるかを指定します。 + 前にある <a href="#logformat">LogFormat</a> ディレクティブにより + 定義された <em>ニックネ・踉札蹙苳か、<a href="#formats">ログの書鹿粡寂蝟赱齠洲痲筵娼のところで説明されている、明纃フォ・踉札泪奪蹙苳ぢ文字列の + どちらかを指定することができます。</p> + + <p>例えば、以王踉擦瞭鵑弔離妊譽謄峽欧倭瓦韻幻未鬚發燭蕕靴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼輒閾蜚肬鴉癆蜒謗瘢綣蝟昭粡竚癈鷭п粐Ь弥臚闥轣▲レヴ▲鰛ウ瘢雹苳雌癶闕迴郤蝟昭粡竚癈鷭п粐Ь瀦齡闕弥跫苴窿纉黯跫竢迯闔鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼輒閾蜚纔韭蜒蜚闥轣齡鱸鈑鹿粡寂蝟赱齠洲痲筵娼輒閾閾鶩痺竇齠煬閾ヨヵ棧ヲ棧逅紫モ⊆蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮三つ目の引数は蔑椎修如▲機バの環境にある変数があるかないかに + 応じてリクエストをログ犬垢襪匹逅擦鮴罎垢襪燭瓩忙箸逅擦海箸任泙后鹿粡寂蝟赱齠洲痲筵娼指定された<a href="../env.html">環境変数</a>がリクエストに対して + 設定されていた豺Е踉祉閼絋苳糸鉚宗纃釶辣蹙苳殺踉晒竢粤文が使われたときは + 設定されていない豺ぢ、リクエストがログ犬気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ環境変数は <a href="mod_setenvif.html">mod_setenvif</a> モジュ・踉札襪鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖鱚蜚絎蔗迪▽苳詩閼熬纓鱸ぢモジュ・踉札襪領方もしくは + 片方を用いてリクエストごとに設定することができます。 + 例えば、サ・踉札个砲△襪垢戮討鋲ぢ画像へのリクエストを別のログファイル + には記録したいけれど、メインログには記録したくない、という瘢雹ときは + 以王踉擦里發里鮖箸逅擦海箸任泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼嚆鉚膚繿齡炙夘蜀芍罩蜊瘍綣蝟昭粡竚癈鷭п粐Ь輒閾蜀繿齡鶤跫竢迯闔鉚順蜀轣艱鹿粡寂蝟赱齠洲痲筵娼瀦齡闕弥鈿鈑蜀繿齡鶤跫竢迯闔鉚宗芍罩蜊瘍綣蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏閾肬鴉癆釶辣就跫艷闥轣槇弥臚闥轣熙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブ</h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> LogFormat + <em>format</em>|<em>nickname</em> [<em>nickname</em>]<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>LogFormat "%h + %l %u %t \"%r\" %>s %b"</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> ニックネ・踉札爐鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢ以降でのみ使用可能<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>モジュ・踉札墾踉晒齡鳫鈑閼煬閾焜闔肅胼踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このディレクティブはアクセスログファイルの書阿鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳嗣閾楠鴉癆閼絋苳ディレクティブは二つの形阿里匹舛蕕鹿粡寂蝟赱齠洲痲筵娼とることができます。最初の形阿任楼譴弔琉瑤里澆慊蠅気譟鹿粡寂蝟赱齠洲痲筵娼続く <a href="#transferlog">TransferLog</a> + で指定されたログで使われるログの書阿鮴瀋蠅靴泙后海涼影箸琉瑤任鹿粡寂蝟赱齠洲痲筵娼紊蓿繙就f闥轣▽苳ぢカスタムログ書で説明されているよう瘢雹に + <em>フォ・踉札泪奪蹙苳ぢを明忙慊蠅垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼もしくは、王踉擦農睫世気譴討い襪茲逅擦冒阿踉祉閼絋苳嗣閾楠鴉癆閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブで定義されたログの書阿纃ニックネ・踉札蹙苳ぢを使って + 参箸垢襪海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳嗣閾楠鴉癆閼絋苳ディレクティブの二つめの形阿鹿粡寂蝟赱齠洲痲筵娼纃フォ・踉札泪奪蹙苳ぢに<em>ニックネ・踉札蹙苳ぢを与えます。 + フォ・踉札泪奪畔源鸛澗里鮑討喀颪錣蠅法鹿粡寂蝟赱齠洲痲筵娼この<em>ニックネ・踉札蹙苳ぢを続きの <code>LogFormat</code> ディレクティブや + <a href="#customlog">CustomLog</a> ディレクティブで使う瘢雹ことができます。 + ニックネ・踉札爐鯆蟲舛垢踉雌瘢隍苳嗣閾楠鴉癆瘢隍苳ディレクティブは + <strong>側苳擦砲浪燭發靴泙擦闔胼苳ぢすなわち、ニックネ・踉札爐鯆蟲鹿粡寂蝟赱齠洲痲筵娼するだけで、尊櫃暴颱踉三を適用してデフォルトにするという瘢雹ことは行ないません。 + ですから、これは続く <a href="#transferlog">TransferLog</a> + ディレクティブには影響を与えません。</p> + + + <p>例:</p> + + <code>LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common</code> + + <hr /> + <h2><a id="transferlog" + name="transferlog">TransferLog</a>ディレクティブ</h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>構文:</strong></a> TransferLog + <em>file</em>|<em>pipe</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> none<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼煬閾焜闔肅胼踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このディレクティブは、ログ書阿鯆接指定できないことと、 + 魴鑄佞蹈鵐阿気い海箸鮟函畆蝟昭粡竚癈鷭п粐Ь鱚羹■笊齡闕跫腆瀦齡闕弥胼踉晒瓲苳と全く同じ引数と効果があります。 + 彫苳酸椒蹈綾颱踉三を指定する代わりに、ログの書阿呂修海泙任念貳嶌埜紊忙慊蠅気譴鹿粡寂蝟赱齠洲痲筵娼ニックネ・踉札爐鯆蟲舛靴覆鹿粡寂蝟赱齠洲痲筵娼蓿繙就l閾肬鴉癆▽苳嗣閾楠鴉癆ぢディレクティブ + で定義されたものを使います。 + もし側苳擦僚颱踉三が全く指定されていないときは Common Log Format + が使われます。</p> + + <p>例:</p> + +<pre> + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" + TransferLog logs/access_log +</pre> + + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_log_forensic.html.en b/htdocs/manual/mod/mod_log_forensic.html.en new file mode 100644 index 0000000000..88858501cd --- /dev/null +++ b/htdocs/manual/mod/mod_log_forensic.html.en @@ -0,0 +1,149 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <title>Apache module mod_log_forensic</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Module mod_log_forensic</h1> + + <p>This module provides for forensic logging of the requests made to the + server</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_log_forensic.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + log_forensic_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Version 1.3.30 and later.</p> + + <h2>Summary</h2> + + <p>This module provides for forensic logging of client + requests. Logging is done before and after processing a request, so the + forensic log contains two log lines for each request. + The forensic logger is very strict, which means:</p> + + <ul> + <li>The format is fixed. You cannot modify the logging format at + runtime.</li> + <li>If it cannot write its data, the child process exits immediately + and may dump core (depends on your + <code><a href="core.html#coredumpdirectory">CoreDumpDirectory</a></code> + configuration).</li> + </ul> + + <p>The <code>check_forensic</code> script, which can be found in the + distribution's support directory, may be helpful in evaluating the + forensic log output.</p> + + <p>See also: <a href="../logs.html">Apache Log Files</a>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#forensiclog">ForensicLog</a></li> + </ul> + + <h2><a id="formats" name="formats">Forensic Log Format</a></h2> + + <p>Each request is logged two times. The first time <em>before</em> it's + processed further (that is, after receiving the headers). The second log + entry is written <em>after</em> the request processing at the same time + where normal logging occurs.</p> + + <p>In order to identify each request, a unique request ID is assigned. + This forensic ID can be cross logged in the normal transfer log using the + <code>%{forensic-id}n</code> format string. If you're using + <code><a href="mod_unique_id.html">mod_unique_id</a></code>, its generated + ID will be used.</p> + + <p>The first line logs the forensic ID, the request line and all received + headers, separated by pipe characters (<code>|</code>). A sample line + looks like the following (all on one line):</p> + + <p><code> + +yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif + HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11; + U; Linux i686; en-US; rv%3a1.6) Gecko/20040216 + Firefox/0.8|Accept:image/png, <var>etc...</var> + </code></p> + + <p>The plus character at the beginning indicates that this is first log + line of this request. The second line just contains a minus character and + the id again:</p> + + <p><code> + -yQtJf8CoAB4AAFNXBIEAAAAA + </code></p> + + <p>The <code>check_forensic</code> script takes as its argument the name + of the logfile. It looks for those <code>+</code>/<code>-</code> ID pairs + and complains if a request was not completed.</p> + + <h2>Security Considerations</h2> + + <p>See the <a + href="../misc/security_tips.html#serverroot">security tips</a> + document for details on why your security could be compromised + if the directory where logfiles are stored is writable by + anyone other than the user that starts the server.</p> + + <hr /> + + <h2><a id="forensiclog" name="forensiclog">ForensicLog</a> + directive</h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ForensicLog + <var>filename</var>|<var>pipe</var><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_log_forensic<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available + in Version 1.3.30 and above</p> + + <p>The <code>ForensicLog</code> directive is used to + log requests to the server for forensic analysis. Each log entry + is assigned unique ID which can be associated with the request + using the normal <code><a href="mod_log_config.html#customlog">CustomLog</a></code> + directive. <code>mod_log_forensic</code> creates a token called + <code>forensic-id</code>, which can be added to the transfer log + using the <code>%{forensic-id}n</code> format string.</p> + + <p>The argument, which specifies the location to which + the logs will be written, can take one of the following two + types of values:</p> + + <dl> + <dt><var>filename</var></dt> + <dd>A filename, relative to the <code><a href="core.html#serverroot">ServerRoot</a></code>.</dd> + + <dt><var>pipe</var></dt> + <dd>The pipe character "<code>|</code>", followed by the path + to a program to receive the log information on its standard + input. <strong>Security:</strong> if a program is used, then + it will be run as the user who started httpd. This will be + root if the server was started by root; be sure that the + program is secure.</dd> + </dl> + + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_log_forensic.html.html b/htdocs/manual/mod/mod_log_forensic.html.html new file mode 100644 index 0000000000..00b1d88136 --- /dev/null +++ b/htdocs/manual/mod/mod_log_forensic.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_log_forensic.html.en" --> + diff --git a/htdocs/manual/mod/mod_log_referer.html b/htdocs/manual/mod/mod_log_referer.html new file mode 100644 index 0000000000..8045241401 --- /dev/null +++ b/htdocs/manual/mod/mod_log_referer.html @@ -0,0 +1,138 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_log_referer</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_log_referer</h1> + + <p>This module provides for logging of the documents which + reference documents on the server.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_log_referer.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + referer_log_module</p> + + <h2>Summary</h2> + + <p>This module is provided strictly for compatibility with NCSA + httpd, and is deprecated. We recommend you use <a + href="mod_log_config.html">mod_log_config</a> instead.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#refererignore">RefererIgnore</a></li> + + <li><a href="#refererlog">RefererLog</a></li> + </ul> + + <p>See also: <a + href="mod_log_config.html#customlog">CustomLog</a> and <a + href="mod_log_config.html#logformat">LogFormat</a>.</p> + + <h2>Log file format</h2> + The log file contains a separate line for each refer. Each line + has the format + + <blockquote> + <em>uri</em> <code>-></code> <em>document</em> + </blockquote> + where <em>uri</em> is the (%-escaped) URI for the document that + references the one requested by the client, and + <em>document</em> is the (%-decoded) local URL to the document + being referred to. + <hr /> + + <h2><a id="refererignore" + name="refererignore">RefererIgnore</a> directive</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RefererIgnore + <em>string</em> [<em>string</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_log_referer + + <p>The RefererIgnore directive adds to the list of strings to + ignore in Referer headers. If any of the strings in the list is + contained in the Referer header, then no referrer information + will be logged for the request. Example:</p> + + <blockquote> + <code>RefererIgnore www.ncsa.uiuc.edu</code> + </blockquote> + This avoids logging references from www.ncsa.uiuc.edu. + <hr /> + + <h2><a id="refererlog" name="refererlog">RefererLog</a> + directive</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RefererLog + <em>file-pipe</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>RefererLog + logs/referer_log</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_log_referer + + <p>The RefererLog directive sets the name of the file to which + the server will log the Referer header of incoming requests. + <em>File-pipe</em> is one of</p> + + <dl> + <dt>A filename</dt> + + <dd>A filename relative to the <a + href="core.html#serverroot">ServerRoot</a>.</dd> + + <dt>`|' followed by a command</dt> + + <dd>A program to receive the referrer log information on its + standard input. Note that a new program will not be started + for a VirtualHost if it inherits the RefererLog from the main + server.</dd> + </dl> + <strong>Security:</strong> if a program is used, then it will + be run under the user who started httpd. This will be root if + the server was started by root; be sure that the program is + secure. + + <p><strong>Security:</strong> See the <a + href="../misc/security_tips.html">security tips</a> document + for details on why your security could be compromised if the + directory where logfiles are stored is writable by anyone other + than the user that starts the server.</p> + + <p>This directive is provided for compatibility with NCSA + 1.4.</p> + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_mime.html.en b/htdocs/manual/mod/mod_mime.html.en new file mode 100644 index 0000000000..9f232785d6 --- /dev/null +++ b/htdocs/manual/mod/mod_mime.html.en @@ -0,0 +1,675 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_mime</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Module mod_mime</h1> + + <p>This module provides for determining the types of files from + the filename and for association of handlers with files.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_mime.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + mime_module</p> + + <h2>Summary</h2> + This module is used to determine various bits of "meta + information" about documents. This information relates to the + content of the document and is returned to the browser or used + in content-negotiation within the server. In addition, a + "handler" can be set for a document, which determines how the + document will be processed within the server. + + <p>The directives <a href="#addcharset">AddCharset</a>, <a + href="#addencoding">AddEncoding</a>, <a + href="#addhandler">AddHandler</a>, <a + href="#addlanguage">AddLanguage</a> and <a + href="#addtype">AddType</a> are all used to map file extensions + onto the meta-information for that file. Respectively they set + the character set, content-encoding, handler, content-language, + and MIME-type (content-type) of documents. The directive <a + href="#typesconfig">TypesConfig</a> is used to specify a file + which also maps extensions onto MIME types. The directives <a + href="#forcetype">ForceType</a> and <a + href="#sethandler">SetHandler</a> are used to associated all + the files in a given location (<em>e.g.</em>, a particular + directory) onto a particular MIME type or handler.</p> + + <p>Note that changing the type or encoding of a file does not + change the value of the <code>Last-Modified</code> header. + Thus, previously cached copies may still be used by a client or + proxy, with the previous headers.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#addcharset">AddCharset</a></li> + + <li><a href="#addencoding">AddEncoding</a></li> + + <li><a href="#addhandler">AddHandler</a></li> + + <li><a href="#addlanguage">AddLanguage</a></li> + + <li><a href="#addtype">AddType</a></li> + + <li><a href="#defaultlanguage">DefaultLanguage</a></li> + + <li><a href="#forcetype">ForceType</a></li> + + <li><a href="#removeencoding">RemoveEncoding</a></li> + + <li><a href="#removehandler">RemoveHandler</a></li> + + <li><a href="#removetype">RemoveType</a></li> + + <li><a href="#sethandler">SetHandler</a></li> + + <li><a href="#typesconfig">TypesConfig</a></li> + </ul> + + <p>See also: <a + href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a>.</p> + + <h2><a id="multipleext" name="multipleext">Files with Multiple + Extensions</a></h2> + <p>Files can have more than one extension, and the order of the + extensions is <em>normally</em> irrelevant. For example, if the + file <code>welcome.html.fr</code> maps onto content type + <code>text/html</code> and language French then the file + <code>welcome.fr.html</code> will map onto exactly the same information. + If more than one extension is given which maps onto the same + type of meta-information, then the one to the right will be + used, except for languages and content encodings. For example, if + <code>.gif</code> maps to the MIME-type <code>image/gif</code> and + <code>.html</code> maps to the MIME-type <code>text/html</code>, then the + file <code>welcome.gif.html</code> will be associated with the MIME-type + <code>text/html</code>.</p> + + <p>Languages and content encodings are treated accumulative, because one + can assign more than one language or encoding to a particular resource. + For example, the file <code>welcome.html.en.de</code> will be delivered + with <code>Content-Language: en, de</code> and <code>Content-Type: + text/html</code>.</p> + + <p>Care should be taken when a file with multiple extensions + gets associated with both a MIME-type and a handler. This will + usually result in the request being by the module associated + with the handler. For example, if the <code>.imap</code> + extension is mapped to the handler "imap-file" (from mod_imap) + and the <code>.html</code> extension is mapped to the MIME-type + "text/html", then the file <code>world.imap.html</code> will be + associated with both the "imap-file" handler and "text/html" + MIME-type. When it is processed, the "imap-file" handler will + be used, and so it will be treated as a mod_imap imagemap + file.</p> + <hr /> + + <h2><a id="addcharset" name="addcharset">AddCharset</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddCharset <em>charset + extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AddCharset is + only available in Apache 1.3.10 and later + + <p>The AddCharset directive maps the given filename extensions + to the specified content charset. <i>charset</i> is the MIME + charset parameter of filenames containing <i>extension</i>. + This mapping is added to any already in force, overriding any + mappings that already exist for the same <i>extension</i>.</p> + + <p>Example:</p> +<pre> + AddLanguage ja .ja + AddCharset EUC-JP .euc + AddCharset ISO-2022-JP .jis + AddCharset SHIFT_JIS .sjis +</pre> + + <p>Then the document <code>xxxx.ja.jis</code> will be treated + as being a Japanese document whose charset is ISO-2022-JP (as + will the document <code>xxxx.jis.ja</code>). The AddCharset + directive is useful for both to inform the client about the + character encoding of the document so that the document can be + interpreted and displayed appropriately, and for <a + href="../content-negotiation.html">content negotiation</a>, + where the server returns one from several documents based on + the client's charset preference.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a + href="mod_negotiation.html">mod_negotiation</a></p> + <hr /> + + <h2><a id="addencoding" name="addencoding">AddEncoding</a> + directive</h2> + <!--%plaintext <?INDEX {\tt AddEncoding} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddEncoding + <em>MIME-enc extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The AddEncoding directive maps the given filename extensions + to the specified encoding type. <em>MIME-enc</em> is the MIME + encoding to use for documents containing the + <em>extension</em>. This mapping is added to any already in + force, overriding any mappings that already exist for the same + <em>extension</em>. Example:</p> + + <blockquote> + <code>AddEncoding x-gzip .gz<br /> + AddEncoding x-compress .Z</code> + </blockquote> + This will cause filenames containing the .gz extension to be + marked as encoded using the x-gzip encoding, and filenames + containing the .Z extension to be marked as encoded with + x-compress. + + <p>Old clients expect <code>x-gzip</code> and + <code>x-compress</code>, however the standard dictates that + they're equivalent to <code>gzip</code> and + <code>compress</code> respectively. Apache does content + encoding comparisons by ignoring any leading <code>x-</code>. + When responding with an encoding Apache will use whatever form + (<em>i.e.</em>, <code>x-foo</code> or <code>foo</code>) the + client requested. If the client didn't specifically request a + particular form Apache will use the form given by the + <code>AddEncoding</code> directive. To make this long story + short, you should always use <code>x-gzip</code> and + <code>x-compress</code> for these two specific encodings. More + recent encodings, such as <code>deflate</code> should be + specified without the <code>x-</code>.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="addhandler" name="addhandler">AddHandler</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddHandler + <em>handler-name extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> AddHandler is + only available in Apache 1.1 and later + + <p>AddHandler maps the filename extensions <em>extension</em> + to the <a href="../handler.html">handler</a> + <em>handler-name</em>. This mapping is added to any already in + force, overriding any mappings that already exist for the same + <em>extension</em>. For example, to activate CGI scripts with + the file extension "<code>.cgi</code>", you might use:</p> +<pre> + AddHandler cgi-script .cgi +</pre> + + <p>Once that has been put into your srm.conf or httpd.conf + file, any file containing the "<code>.cgi</code>" extension + will be treated as a CGI program.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a>, <a href="#sethandler">SetHandler</a></p> + <hr /> + + <h2><a id="addlanguage" name="addlanguage">AddLanguage</a> + directive</h2> + <!--%plaintext <?INDEX {\tt AddLanguage} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddLanguage + <em>MIME-lang extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The AddLanguage directive maps the given filename extension + to the specified content language. <em>MIME-lang</em> is the + MIME language of filenames containing <em>extension</em>. This + mapping is added to any already in force, overriding any + mappings that already exist for the same + <em>extension</em>.</p> + + <p>Example:</p> + + <blockquote> + <code>AddEncoding x-compress .Z<br /> + AddLanguage en .en<br /> + AddLanguage fr .fr<br /> + </code> + </blockquote> + + <p>Then the document <code>xxxx.en.Z</code> will be treated as + being a compressed English document (as will the document + <code>xxxx.Z.en</code>). Although the content language is + reported to the client, the browser is unlikely to use this + information. The AddLanguage directive is more useful for <a + href="../content-negotiation.html">content negotiation</a>, + where the server returns one from several documents based on + the client's language preference.</p> + + <p>If multiple language assignments are made for the same + extension, the last one encountered is the one that is used. + That is, for the case of:</p> +<pre> + AddLanguage en .en + AddLanguage en-gb .en + AddLanguage en-us .en +</pre> + + <p>documents with the extension "<code>.en</code>" would be + treated as being "<code>en-us</code>".</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a>, <a + href="#defaultlanguage">DefaultLanguage</a><br /> + <strong>See also</strong>: <a + href="./mod_negotiation.html">mod_negotiation</a></p> + <hr /> + + <h2><a id="addtype" name="addtype">AddType</a> directive</h2> + <!--%plaintext <?INDEX {\tt AddType} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AddType <em>MIME-type + extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The AddType directive maps the given filename extensions + onto the specified content type. <em>MIME-type</em> is the MIME + type to use for filenames containing <em>extension</em>. This + mapping is added to any already in force, overriding any + mappings that already exist for the same <em>extension</em>. + This directive can be used to add mappings not listed in the + MIME types file (see the <code><a + href="#typesconfig">TypesConfig</a></code> directive). + Example:</p> + + <blockquote> + <code>AddType image/gif .gif</code> + </blockquote> + It is recommended that new MIME types be added using the + AddType directive rather than changing the <a + href="#typesconfig">TypesConfig</a> file. + + <p>Note that, unlike the NCSA httpd, this directive cannot be + used to set the type of particular files.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + + <p><strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="defaultlanguage" + name="defaultlanguage">DefaultLanguage</a> directive</h2> + <!--%plaintext <?INDEX {\tt DefaultLanguage} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> DefaultLanguage + <em>MIME-lang</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> DefaultLanguage + is only available in Apache 1.3.4 and later. + + <p>The DefaultLanguage directive tells Apache that all files in + the directive's scope (<em>e.g.</em>, all files covered by the + current <code><Directory></code> container) that don't + have an explicit language extension (such as <samp>.fr</samp> + or <samp>.de</samp> as configured by <samp>AddLanguage</samp>) + should be considered to be in the specified <em>MIME-lang</em> + language. This allows entire directories to be marked as + containing Dutch content, for instance, without having to + rename each file. Note that unlike using extensions to specify + languages, <samp>DefaultLanguage</samp> can only specify a + single language.</p> + + <p>For example:</p> + + <code>DefaultLanguage fr</code> + + <p>If no <samp>DefaultLanguage</samp> directive is in force, + and a file does not have any language extensions as configured + by <samp>AddLanguage</samp>, then that file will be considered + to have no language attribute.</p> + + <p><strong>See also</strong>: <a + href="./mod_negotiation.html">mod_negotiation</a><br /> + <strong>See also</strong>: <a href="#multipleext">Files with + multiple extensions</a></p> + <hr /> + + <h2><a id="forcetype" name="forcetype">ForceType</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ForceType + <em>media-type</em>|None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ForceType is + only available in Apache 1.1 and later. + + <p>When placed into an <code>.htaccess</code> file or a + <code><Directory></code> or <code><Location></code> + section, this directive forces all matching files to be served + as the content type given by <em>media type</em>. For example, + if you had a directory full of GIF files, but did not want to + label them all with ".gif", you might want to use:</p> +<pre> + ForceType image/gif +</pre> + + <p>Note that this will override any filename extensions that + might determine the media type.</p> + + <p>You can override any <directive>ForceType</directive> setting + by using the value of <code>none</code>:</p> + +<pre> + # force all files to be image/gif: + <Location /images> + ForceType image/gif + </Location> + + # but normal mime-type associations here: + <Location /images/mixed> + ForceType none + </Location> +</pre> + + <p><strong>See also</strong>: <a + href="#addtype">AddType</a></p> + + <hr /> + + <h2><a id="removeencoding" + name="removeencoding">RemoveEncoding</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RemoveEncoding + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> virtual host, directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RemoveEncoding + is only available in Apache 1.3.13 and later. + + <p>The <samp>RemoveEncoding</samp> directive removes any + encoding associations for files with the given extensions. This + allows <code>.htaccess</code> files in subdirectories to undo + any associations inherited from parent directories or the + server config files. An example of its use might be:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>AddEncoding x-gzip .gz</code><br /> + <code>AddType text/plain .asc</code><br /> + <code><Files *.gz.asc></code><br /> + <code> RemoveEncoding + .gz</code><br /> + <code></Files></code></dd> + </dl> + + <p>This will cause <code>foo.gz</code> to mark as being encoded + with the gzip method, but <code>foo.gz.asc</code> as an + unencoded plaintext file.</p> + + <p><b>Note:</b>RemoveEncoding directives are processed + <i>after</i> any <a href="#addencoding">AddEncoding</a> + directives, so it is possible they + may undo the effects of the latter if both occur within the + same directory configuration.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + <hr /> + + <h2><a id="removehandler" + name="removehandler">RemoveHandler</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RemoveHandler + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> virtual host, directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RemoveHandler is + only available in Apache 1.3.4 and later. + + <p>The <samp>RemoveHandler</samp> directive removes any handler + associations for files with the given extensions. This allows + <code>.htaccess</code> files in subdirectories to undo any + associations inherited from parent directories or the server + config files. An example of its use might be:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>AddHandler server-parsed .html</code></dd> + + <dt><code>/foo/bar/.htaccess:</code></dt> + + <dd><code>RemoveHandler .html</code></dd> + </dl> + + <p>This has the effect of returning <samp>.html</samp> files in + the <samp>/foo/bar</samp> directory to being treated as normal + files, rather than as candidates for parsing (see the <a + href="mod_include.html"><samp>mod_include</samp></a> + module).</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + <hr /> + + <h2><a id="removetype" name="removetype">RemoveType</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RemoveType + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> virtual host, directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> RemoveType is + only available in Apache 1.3.13 and later. + + <p>The <samp>RemoveType</samp> directive removes any MIME type + associations for files with the given extensions. This allows + <code>.htaccess</code> files in subdirectories to undo any + associations inherited from parent directories or the server + config files. An example of its use might be:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>RemoveType .cgi</code></dd> + </dl> + + <p>This will remove any special handling of <code>.cgi</code> + files in the <code>/foo/</code> directory and any beneath it, + causing the files to be treated as being of the <a + href="core.html#defaulttype">default type</a>.</p> + + <p><b>Note:</b><code>RemoveType</code> directives are processed + <i>after</i> any <code>AddType</code> directives, so it is + possible they may undo the effects of the latter if both occur + within the same directory configuration.</p> + + <p>The <em>extension</em> argument is case-insensitive, and can + be specified with or without a leading dot.</p> + <hr /> + + <h2><a id="sethandler" name="sethandler">SetHandler</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SetHandler + <em>handler-name</em>|None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> SetHandler is + only available in Apache 1.1 and later. + + <p>When placed into an <code>.htaccess</code> file or a + <code><Directory></code> or <code><Location></code> + section, this directive forces all matching files to be parsed + through the <a href="../handler.html">handler</a> given by + <em>handler-name</em>. For example, if you had a directory you + wanted to be parsed entirely as imagemap rule files, regardless + of extension, you might put the following into an + <code>.htaccess</code> file in that directory:</p> +<pre> + SetHandler imap-file +</pre> + + <p>Another example: if you wanted to have the server display a + status report whenever a URL of + <code>http://servername/status</code> was called, you might put + the following into access.conf: (See <a + href="mod_status.html">mod_status</a> for more details.)</p> +<pre> + <Location /status> + SetHandler server-status + </Location> +</pre> + + <p>You can override an earlier defined <code>SetHandler</code> + directive by using the value <code>None</code>.</p> + + <p><strong>See also</strong>: <a href="#addhandler">AddHandler</a></p> + <hr /> + + <h2><a id="typesconfig" name="typesconfig">TypesConfig</a> + directive</h2> + <!--%plaintext <?INDEX {\tt TypesConfig} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> TypesConfig + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>TypesConfig + conf/mime.types</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime + + <p>The TypesConfig directive sets the location of the MIME + types configuration file. <em>Filename</em> is relative to the + <a href="core.html#serverroot">ServerRoot</a>. This file sets + the default list of mappings from filename extensions to + content types; changing this file is not recommended. Use the + <a href="#addtype">AddType</a> directive instead. The file + contains lines in the format of the arguments to an AddType + command:</p> + + <blockquote> + <em>MIME-type extension extension ...</em> + </blockquote> + The extensions are lower-cased. Blank lines, and lines + beginning with a hash character (`#') are ignored. + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_mime.html.html b/htdocs/manual/mod/mod_mime.html.html new file mode 100644 index 0000000000..86aebbfcd8 --- /dev/null +++ b/htdocs/manual/mod/mod_mime.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_mime.html.en" --> + diff --git a/htdocs/manual/mod/mod_mime.html.ja.jis b/htdocs/manual/mod/mod_mime.html.ja.jis new file mode 100644 index 0000000000..0bcdf180f5 --- /dev/null +++ b/htdocs/manual/mod/mod_mime.html.ja.jis @@ -0,0 +1,677 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache module mod_mime</title> + + </head> + <!-- English revision: 1.54 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_mime モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪蓮▲侫.ぅ襪離織ぅ廚鬟侫.ぅ詭から決定する機能と、 + ファイルにハンドラを関連付ける機能を提供します。</p> + + <p><a href="module-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪s阨鱆繙蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑閼熏蜊絎礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪m閼繪粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> mime_module + </p> + + <h2>概要</h2> + + このモジュ・踉札襪蓮▲疋絅瓮鵐箸里い蹐い蹐福屮瓮職苳諮報」 + を決定するために使用されます。この霾鵑鹿粡寂蝟赱齠洲痲筵娼ドキュメントのコンテンツに関連しているもので、ブラウ瘢雹ザに返されたり、 + サ・踉札估發妊灰鵐謄鵐肇優乾轡─ションに使われたりします。 + さらに、「ハンドラ」をドキュメントに対して設定することができます。 + ハンドラはサ・踉札估發妊疋絅瓮鵐箸鬚匹里茲逅擦暴萢垢襪魴萃蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢディレクティブ <a href="#addcharset">AddCharset</a>, + <a href="#addencoding">AddEncoding</a>, <a href="#addhandler" + >AddHandler</a>, <a href="#addlanguage">AddLanguage</a>, <a + href="#addtype">AddType</a> はすべて、 + ファイルの拡張子をメタ霾鵑縫泪奪廚垢襪燭瓩忙藩僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼それう苳擦譟▲疋絅瓮鵐箸諒源札奪訳注: charset)、content-encoding, + ハンドラ、content-language, MIME タイプ (content-type) を設定します。 + ディレクティブ <a href="#typesconfig">TypesConfig</a> は拡張子を + MIME タイプにマップするファイルを指定するために使用されます。 + ディレクティブ <a href="#forcetype">ForceType</a> と <a + href="#sethandler">SetHandler</a> は、与えられた貊鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳ぢ例えば</em>、特定のディレクトリ) にあるすべてのファイルを特定の + MIME タイプやハンドラに関連付けるために使用されます。</p> + + <p>ファイルのタイプやエンコ・踉札妊鵐阿鯤僂┐討踉祉閼絋苳嗣癈酪粡肅繖閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢヘッダの値は変わらないことに注意してください。ですから、 + それらを変更した豺腓蓮▲薀ぅ▲鵐箸筌廛蹈靴念柄阿縫礇奪轡紊気譴鹿粡寂蝟赱齠洲痲筵娼コピ・踉擦修里箸離悒奪世箸箸發忙箸錣譴覯椎柔△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢ディレクティブ</h2> + + <ul> + <li><a href="#addcharset">AddCharset</a></li> + + <li><a href="#addencoding">AddEncoding</a></li> + + <li><a href="#addhandler">AddHandler</a></li> + + <li><a href="#addlanguage">AddLanguage</a></li> + + <li><a href="#addtype">AddType</a></li> + + <li><a href="#defaultlanguage">DefaultLanguage</a></li> + + <li><a href="#forcetype">ForceType</a></li> + + <li><a href="#removeencoding">RemoveEncoding</a></li> + + <li><a href="#removehandler">RemoveHandler</a></li> + + <li><a href="#removetype">RemoveType</a></li> + + <li><a href="#sethandler">SetHandler</a></li> + + <li><a href="#typesconfig">TypesConfig</a></li> + </ul> + + <p>参畆蝟昭粡竚癈鷭п粐Ь鱚羹閼熏蜊縷轣芍祟蔗迪m蜊纃瘍蜒肅跂▽苳四蜊緲瘍蜒鍋跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就逡踉蜷跂纔槇鹿粡寂蝟赱齠洲痲筵娼釶辣就逡踉蜷跂纔槇複数の拡張子のあるファイル</a></h2> + + <p>ファイルは複数の拡張子を持つことができ、拡張子の順番は<em + >通錣蹙苳ぢ関係ありません。たとえば、<code>welcome.html.fr</code> + ファイルがコンテントタイプは <code>text/html</code> + に、言語はフランス語にマップされる豺隋竢粤趁闕絎胙讀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼もまったく同じ霾鵑縫泪奪廚気譴泙后鹿粡寂蝟赱齠洲痲筵娼同じメタ霾鵑縫泪奪廚気譴覲板セ劼瑤△襪箸砲聾生譴肇灰鵐謄鵐肇┘鵐魁ディングを除いて、 + 右瘢雹側瘢雹にあるものが使用されます。たとえば、".gif" が MIME タイプ + image/gif にマップされ、".html" が MIME タイプ text/html + にマップされる豺腓蓮▲侫.ぅ踉祉閼絋苳似繻竢辣蜀讀踉晒竢粤ぢは + MIME タイプ "text/html" に関連付けられます。</p> + + <p>言語とコンテントエンコ・踉札妊鵐阿呂修譴泙任里發里膨媛辰靴動靴錣譴泙后鹿粡寂蝟赱齠洲痲筵娼これは特定のリソ・踉札垢紡个靴動譴聴弗苳糸の言語やエンコ・踉札妊鵐阿鹿粡寂蝟赱齠洲痲筵娼割り当てることができるからです。例えば、ファイル + <code>welcome.html.en.de</code> が <code>Content-Language: en, de</code> + で <code>Content-Type: text/html</code> といった具合です。</p> + + <p>複数の拡張子のあるファイルが MIME + タイプとハンドラの陸苳司亡慙佞韻蕕譴討い襪箸話躇佞垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼その豺隋當未魯螢┘好箸魯鵐疋蕕亡慙佞韻蕕譴鹿粡寂蝟赱齠洲痲筵娼モジュ・踉札襪砲茲辰動靴錣譴襪海箸砲覆蠅泙后燭箸┐弌板セ鹿粡寂蝟赱齠洲痲筵娼竢粤轣隍踉晒竢粤ぢが (mod_imap の) "imap-file" にマップされていて、 + <code>.html</code> が MIME タイプ "text/html" + にマップされているときは、ファイル <code>world.imap.html</code> は + "imap-file" ハンドラと "text/html" MIME + タイプに関連付けられます。ファイルが処理されるときは "imap-file" + ハンドラが使用されますので、そのファイルは mod_imap + のイメ・踉札献泪奪廛侫.ぅ襪箸靴動靴錣譴襪海箸砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痲粃葹鴦續釶辣就痲粃葹鴦續▽苳餐粐宙癇黼熙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブ</h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> AddCharset <em>charset + extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、 ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> AddCharset は + Apache 1.3.10 以降でのみ使用可能。 + + <p>AddCharset ディレクティブは、与えられた拡張子を指定された + charset にマップします。<em>charset</em> は、拡張子 + <em>extension</em> を含んでいるファイル巳苳擦浜竏癇黼蝟昭粡竚癈鷭п粐Ьぢパラメ・踉札燭任后靴靴ぅ泪奪團鵐阿牢砲△襪發里膨媛辰気譟韻験板セ鹿粡寂蝟赱齠洲痲筵娼纃纔銖蜿遉踉晒纃ぢのために既に存在するマッピングを綵颪靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> +<pre> + AddLanguage ja .ja + AddCharset EUC-JP .euc + AddCharset ISO-2022-JP .jis + AddCharset SHIFT_JIS .sjis +</pre> + + <p>この豺隋▲疋絅瓮鵐踉祉閼絋苳侍裃蜩閼絋苳は charset が + ISO-2022-JP の日本語のドキュメントとして扱われます + (<code>xxxx.jis.ja</code> も同様)。AddCharset + ディレクティブは、ドキュメントが適切に解瓩気貮拾踉雑されるよう瘢雹に、 + ドキュメントの charset の霾鵑鬟薀ぅ▲鵐箸剖気┐襪燭瓩北鬚卜舛泙后鹿粡寂蝟赱齠洲痲筵娼また、サ・踉札个薀ぅ▲鵐箸葹鴦續鹿粡寂蝟赱齠洲痲筵娼の優先度に基づいて複数のドキュメントの中からドキュメントを選ぶ<a + href="../content-negotiation.html" + >コンテントネゴシエ・踉札轡腑のためにも役に立ちます。</p> + + <p>引数 <em>extension</em>は大文字源魘菠未擦此鹿粡寂蝟赱齠洲痲筵娼最初のドットはあってもなくても構いません。</p> + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖鈬苡癆蜿隨蔗迪▽苳詩閼燻繚阡蛛闔鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痲粤釿閼蜴腆鹿粡寂蝟赱齠洲痲筵娼釶辣就痲粤釿閼蜴腆槍篥釿閼蜴胼踉晒瓲苳ディレクティブ</h2> + <!--%plaintext <?INDEX {\tt AddEncoding} directive> --> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> AddEncoding + <em>MIME-enc extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、 ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮槍篥釿閼蜴ディレクティブは、与えられた拡張子を指定された + エンコ・踉札妊鵐阿縫泪奪廚靴泙后纃揺妖釿蹙苳は、拡張子 + <em>extension</em> を含んだドキュメントに使用する MIME + エンコ・踉札妊鵐阿任后海凌靴靴ぅ泪奪團鵐阿牢砲△襪發里膨媛辰気譟鹿粡寂蝟赱齠洲痲筵娼同じ拡張子 <em>extension</em> + のために既に存在するマッピングを綵颪靴泙后N墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐粐梼竢粡鈑踉獅苳纂蝟昭粡竚癈鷭п粐Ь槍篥釿閼蜴竢逅鱚齠擘踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ьぢこれは、拡張子 .gz を含むファイル巳苳擦霄蝟昭粡竚癈鷭п粐Ьぢエンコ・踉札妊鵐阿鮖箸辰謄┘鵐魁ドされていることと、拡張子 .Z + を含むファイル巳苳擦闕頏纉鷦蝟昭粡竚癈鷭п粐Ьぢでエンコ・踉札匹気譴討い襪海箸鬢踉雑します。 + + <p>古いクライアントは <code>x-zip</code> と <code>x-compress</code> + が返ってくることを期待しますが、標準規格ではそれう苳擦鹿粡寂蝟赱齠洲痲筵娼竢粤苞蜷閼絋苳と <code>compress</code> + と等価であることになっています。Apache + は、コンテントエンコ・踉札妊鵐阿糧羈咾鬚垢襪箸砲蓮∪萋砲△鹿粡寂蝟赱齠洲痲筵娼竢粤閼絋苳を無視します。Apache + がエンコ・踉札妊鵐杏佞捻鯤屬垢箸蓮▲薀ぅ▲鵐箸弋瓩靴新薦踉三 + (<em>すなわち</em>、<code>x-foo</code> や <code>foo</code>) + を使用します。要するに、この二つのエンコ・踉札妊鵐阿陸苳詞合は錣鹿粡寂蝟赱齠洲痲筵娼竢粤苞蜷閼絋苳と <code>x-compress</code> + を使う瘢雹べきである、という瘢雹ことです。<code>deflate</code> + のよう瘢雹なより新しいエンコ・踉札妊鵐阿任蓮竢粤閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢなしで指定してください。 + </p> + + <p>引数 <em>extension</em> は大文字源魘菠未擦此鹿粡寂蝟赱齠洲痲筵娼最初のドットはあってもなくても構いません。</p> + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就m韭繞▽苳ぢ複数の拡張子のあるファイル</a></p> + <hr /> + + <h2><a id="addhandler" name="addhandler">AddHandler</a> + ディレクティブ</h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> AddHandler + <em>handler-name extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> AddHandler は + Apache 1.1 以降でのみ使用可能。<br /> + <p>AddHandler は、拡張子 <em>extension</em> を<a + href="../handler.html">ハンドラ</a> <em>handler-name</em> + にマップします。この新しいマッピングは既にあるものに追加され、 + 同じ拡張子 <em>extension</em> + のために既に存在するマッピングを綵颪靴泙后燭箸┐弌板セ鹿粡寂蝟赱齠洲痲筵娼▽踉祉閼絋苳皿竍薤踉晒竢粤で終わるファイルを CGI + スクリプトとして扱いたいときは、以王踉擦寮瀋蠅鬚靴泙后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь粐悲鈔跂竍薛黹鱸頸竍藜蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これを srm.conf か httpd.conf ファイルに記述することで、拡張子 + "<code>.cgi</code>" を含むファイルは CGI プログラムとして扱われます。 + </p> + + <p>引数 <em>extension</em> は大文字源魘菠未擦此鹿粡寂蝟赱齠洲痲筵娼最初のドットはあってもなくても構いません。</p> + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就m韭繞▽苳ぢ複数の拡張子のあるファイル</a>、 + <a href="#sethandler">SetHandler</a></p> + <hr /> + + <h2><a id="addlanguage" name="addlanguage">AddLanguage</a> + ディレクティブ</h2> + <!--%plaintext <?INDEX {\tt AddLanguage} directive> --> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> AddLanguage <em>MIME-lang + extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮槍簗瘤苺瘍ディレクティブは、与えられた拡張子を指定された + content language にマップします。<em>MIME-lang</em> は、拡張子 + <em>extension</em> を含んでいるファイル巳苳擦浜における言語です。 + この新しいマッピングは既にあるものに追加され、同じ拡張子 + <em>extension</em> のために既に存在するマッピングを綵颪靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> + + <blockquote> + <code>AddEncoding x-compress .Z<br /> + AddLanguage en .en<br /> + AddLanguage fr .fr<br /> + </code> + </blockquote> + + <p>この豺隋竢粤隨擘踉晒竢粤ぢドキュメントは compress + された英語のドキュメントとして扱われます (<code>xxxx.Z.en</code> + も同様)。content language はクライアントに通知されますが、 + ブラウ瘢雹ザがこの霾鵑鮖箸逅擦海箸呂修蕕△蠅泙擦鵝槍簗瘤苺瘍綣蝟昭粡竚癈鷭п粐Ьぢディレクティブは、サ・踉札个薀ぅ▲鵐箸慮生譴陵ダ菘戮亡陲鼎い栃瑤鹿粡寂蝟赱齠洲痲筵娼ドキュメントの中からドキュメントを選ぶ<a + href="../content-negotiation.html" + >コンテントネゴシエ・踉札轡腑のためにより役に立ちます。</p> + + <p>複数の言語が同じ拡張子に割り当てられているときは、 + 最後のものが使用されます。すなわち、,里茲逅擦弗苳詞合、</p> + +<pre> + AddLanguage en .en + AddLanguage en-gb .en + AddLanguage en-us .en +</pre> + + <p>拡張子 "<code>.en</code>" のあるドキュメントは + "<code>en-us</code>" として扱われます。</p> + + <p>引数 <em>extension</em> は大文字源魘菠未擦此鹿粡寂蝟赱齠洲痲筵娼最初のドットはあってもなくても構いません。</p> + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就m韭繞▽苳ぢ複数の拡張子のあるファイル</a>、 + <a href="#defaultlanguage">DefaultLanguage</a><br /> + <strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖鈬苡癆蜿隨蔗迪▽苳詩閼燻繚阡蛛闔鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就痲糘紜瘢綵≡粐鞳▽苳餐粐奘鞳ぢディレクティブ</h2> + <!--%plaintext <?INDEX {\tt AddType} directive> --> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> AddType <em>MIME-type + extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊綣蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮槍簫ディレクティブは、 + 与えられた拡張子を指定されたコンテントタイプにマップします。 + <em>MIME-type</em> は拡張子 <em>extension</em> + を含んだドキュメントに使用する MIME タイプです。 + この新しいマッピングは既にあるものに追加され、同じ拡張子 + <em>extension</em> のために既に存在するマッピングを綵颪靴泙后鹿粡寂蝟赱齠洲痲筵娼このディレクティブは MIME タイプファイル (<code><a + href="#typesconfig">TypesConfig</a></code> ディレクティブを参蝟昭粡竚癈鷭п粐Ьぢにないマッピングを追加するために使用することができます。例:</p> + + <blockquote> + <code>AddType image/gif .gif</code> + </blockquote> + 新しい MIME タイプは、<a href="#typesconfig">TypesConfig</a> + ファイルを変更するのではなく、AddType + ディレクティブを使って追加することが推気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳士池蔗とは違って、このディレクティブは特定のファイルの + タイプを設定することはできないことに注意してください。</p> + + <p>引数 <em>extension</em> は大文字源魘菠未擦此鹿粡寂蝟赱齠洲痲筵娼最初のドットはあってもなくても構いません。</p> + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就m韭繞▽苳ぢ複数の拡張子のあるファイル</a></p> + <hr /> + + <h2><a id="defaultlanguage" + name="defaultlanguage">DefaultLanguage</a> ディレクティブ</h2> + <!--%plaintext <?INDEX {\tt DefaultLanguage} directive> --> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> DefaultLanguage <em>MIME-lang</em><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> DefaultLanguage は + Apache 1.3.4 以降でのみ使用可能。<br /> + + <p>DefaultLanguage ディレクティブは、Apache + がディレクティブのスコ・踉札纃例えば</em>、その時点の + <code><Directory></code> の範囲) にある、明文生豎板セ鹿粡寂蝟赱齠洲痲筵娼└踉雌瘢隍苳餐粐戻鈑艱瘢隍苳で設定される <samp>.fr</samp> や + <samp>.de</samp>) のない全てのファイルを、指定された + <em>MIME-lang</em> 言語であるとみなすよう瘢雹にします。 + これにより、すべてのファイル巳苳擦鯤僂┐襪海箸覆鹿粡寂蝟赱齠洲痲筵娼ディレクトリがオランダ語のコンテントを含んでいる、 + という瘢雹よう瘢雹なことを指定することができます。 + 拡張子を使用して言語を指定する方法と違い、 + <samp>DefaultLanguage</samp> + は一つの言語しか指定できないことに注意してください。</p> + + <p>例えば:</p> + + <code>DefaultLanguage fr</code> + + <p><samp>DefaultLanguage</samp> + ディレクティブが有効でなく、ファイルに <samp>AddLanguage</samp> + で設定された言語の拡張子がないときは、 + ファイルには言語属性がないとみなされます。</p> + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖鈬苡癆蜿隨蔗迪▽苳詩閼燻繚阡蛛闔碣鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳ぢ参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就m韭繞▽苳ぢ複数の拡張子のあるファイル</a></p> + <hr /> + + <h2><a id="forcetype" name="forcetype">ForceType</a> + ディレクティブ</h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> ForceType + <em>media-type</em>|None<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> ForceType は + Apache 1.1 以降でのみ使用可能。 + + <p><code>.htaccess</code> や <code><Directory></code> + セクション、<code><Location></code> セクションに書かれた豺隋鹿粡寂蝟赱齠洲痲筵娼このディレクティブはそこにあるすべてのファイルが <em>media type</em> + で指定されたコンテントタイプとして扱われることを強制します。たとえば、 + GIF ファイルばかりのディレクトリがあって、すべてのファイルを ".gif" + で終わらせたくはないときに、以王踉擦里發里鮖藩僂靴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼楠鱆縱蜊瘍絲芍羲蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これは、メディアタイプを決定するかもしれないすべての拡張子を + 綵颪垢襪海箸肪躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ値を <code>none</code> に設定することで、 + 以前の <directive>ForceType</directive> のすべての設定を綵颪垢襪海箸鹿粡寂蝟赱齠洲痲筵娼できます:</p> + +<pre> + # force all files to be image/gif: + <Location /images> + ForceType image/gif + </Location> + + # but normal mime-type associations here: + <Location /images/mixed> + ForceType none + </Location> +</pre> + + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就a粐鞳▽苳餐粐奘鞳鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鱚迴緕竢粡鈑⊆蝟昭粡竚癈鷭п粐Ь瘢綵Å纃阮繞釿閼蜴腆吶迴梼竢粡鈑ぢディレクティブ</h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> RemoveEncoding + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> RemoveEncoding は + Apache 1.3.13 以降でのみ使用可能。 + + <p><samp>RemoveEncoding</samp> ディレクティブは、 + 与えられた拡張子に関連付けられたエンコ・踉札妊鵐阿鬢踉肢り辰靴泙后鹿粡寂蝟赱齠洲痲筵娼これにより、サブディレクトリにある <code>.htaccess</code> + ファイルが親ディレクトリやサ・踉札个寮瀋螢侫.ぅ襪薹僞苳撒した関連付けを + 茲螟苳暫すことができます。たとえば:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>AddEncoding x-gzip .gz</code><br /> + <code>AddType text/plain .asc</code><br /> + <code><Files *.gz.asc></code><br /> + <code> RemoveEncoding + .gz</code><br /> + <code></Files></code></dd> + </dl> + <p>これは、<code>foo.gz</code> は gzip + でエンコ・踉札匹気譴討い襪海箸鮖慊蠅靴泙垢竢粤肬鎬苞黹閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢはエンコ・踉札匹気譴討い覆ぅ廛譟ンテキストの + ファイルであるという瘢雹ことを指定します。</p> + + <p><strong>注意:</strong> RemoveEncoding は + <a href="#addencoding">AddEncoding</a> + ディレクティブの<em>後</em>で処理されますので、 + 同じディレクトリの設定中に陸苳司修譴襪函鹿粡寂蝟赱齠洲痲筵娼後圓慮未任薦苳暫される可能性があります。</p> + + <p>引数 <em>extension</em> は大文字源魘菠未擦此鹿粡寂蝟赱齠洲痲筵娼最初のドットはあってもなくても構いません。</p> + <hr /> + + <h2><a id="removehandler" + name="removehandler">RemoveHandler</a> ディレクティブ</h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> RemoveHandler + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> RemoveHandler は + Apache 1.3.4 以降でのみ使用可能。 + + <p><samp>RemoveHandler</samp> ディレクティブ + は与えられた拡張子に関連付けられたハンドラを茲螟苳暫します。 + これにより、サブディレクトリにある <code>.htaccess</code> + ファイルが親ディレクトリやサ・踉札个寮瀋螢侫.ぅ鹿粡寂蝟赱齠洲痲筵娼から継気靴心慙佞韻鬢踉肢り辰垢海箸任泙后燭箸┐墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳晒肬鎭窿纉鷓閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐竢粤槍簇瘤粲纈纈鬮鞜鴦繖蔗迪閼絋苳殺踉晒粐鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼糘竢粤闖癇蔗痺竇齠墾踉晒竢粤熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉祉閼絋苳子纃阮緘瘤粲纈蔗迪閼絋苳殺踉晒粐鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これは、<samp>/foo/bar</samp> ディレクトリの <samp>.html</samp> + ファイルは SSI ではなく (<a + href="mod_include.html"><samp>mod_include</samp></a> モジュ・踉札觧王苳使)、 + 普通のファイルとして扱われるよう瘢雹にする効果があります。 + </p> + + <p>引数 <em>extension</em> は大文字源魘菠未擦此鹿粡寂蝟赱齠洲痲筵娼最初のドットはあってもなくても構いません。</p> + <hr /> + + <h2><a id="removetype" + name="removetype">RemoveType</a> ディレクティブ</h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> RemoveType + <em>extension</em> [<em>extension</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> RemoveType は + Apache 1.3.13 以降でのみ使用可能。 + + <p><samp>RemoveType</samp> ディレクティブは与えられた拡張子の + MIME タイプの関連付けを茲螟苳暫します。これにより、 + サブディレクトリにある <code>.htaccess</code> + ファイルが親ディレクトリやサ・踉札个寮瀋螢侫.ぅ襪薹僞苳撒した + 関連付けを茲螟苳暫すことができます。たとえば:</p> + + <dl> + <dt><code>/foo/.htaccess:</code></dt> + + <dd><code>RemoveType .cgi</code></dd> + </dl> + + <p>これは <code>/foo/</code> ディレクトリ以王踉擦踉祉閼絋苳皿竍薤踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ファイルの特別な扱いを茲螟苳暫します。ファイルは<a + href="core.html#defaulttype" + >デフォルトタイプ</a>として扱われます。</p> + + <p><strong>注意:</strong> <code>RemoveType</code> ディレクティブは + <code>AddType</code> ディレクティブの<em>後</em>に処理されますので、 + 陸苳司韻献妊譽肇蠅寮瀋蠱罎妨修譴職苳詞合、 + 後圓慮未任薦苳暫される可能性があります。</p> + + <p>引数 <em>extension</em> は大文字源魘菠未擦此鹿粡寂蝟赱齠洲痲筵娼最初のドットはあってもなくても構いません。</p> + <hr /> + + <h2><a id="sethandler" name="sethandler">SetHandler</a> + ディレクティブ</h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> SetHandler + <em>handler-name</em>|None<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> SetHandler は + Apache 1.1 以降でのみ使用可能。 + + <p><code>.htaccess</code> や <code><Directory></code> + セクション、<code><Location></code> セクションに書かれた豺隋鹿粡寂蝟赱齠洲痲筵娼このディレクティブはそこにあるすべてのファイルが + <em>handler-name</em> で指定された<a href="../handler.html" + >ハンドラ</a>で扱われることを強制します。例えば、拡張子に関わらず、 + ディレクトリ全体がイメ・踉札献泪奪廛侫.ぅ襪箸靴堂鮴呂靴突澆靴う苳詞合には、 + 以王踉擦鬚修離妊譽肇蠅踉祉閼絋苳皿蔗痺竇齠閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢファイルに記述します:</p> +<pre> + SetHandler imap-file +</pre> + + <p>別の例: URL <code>http://servername/status</code> + が指定されたときにサ・踉札个苳歯態報告をするよう瘢雹にしたいときは、以王踉擦鹿粡寂蝟赱齠洲痲筵娼蔗筮竢鈕ぢに記述します: (楮戮踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖齡癆譬迴籖齡癆ぢを参函蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼逅詞弥竅闔齡癆逅紫鹿粡寂蝟赱齠洲痲筵娼嚆瘤粲纈纈鬮齡癆鹿粡寂蝟赱齠洲痲筵娼逅詞閭癆蜿遉瘢雹苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮値を <code>None</code> にすることで、 + 以前の <code>SetHandler</code> ディレクティブの定義を綵颪垢襪海箸鹿粡寂蝟赱齠洲痲筵娼できます。</p> + + <p><strong>参闔胼苳産踉氏鱚羹■痲粫瘤粲纈▽苳餐粐悲鈔跂鬢踉晒瓲苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏♯纉竢鈕蜃釶辣就鞳黹闔肅腆奘鞳鹵闔肅胼踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブ</h2> + <!--%plaintext <?INDEX {\tt TypesConfig} directive> --> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> TypesConfig + <em>filename</em><br /> + <a href="directive-dict.html#default" + rel="help"><strong>デフォルト:</strong></a> <code>TypesConfig + conf/mime.types</code><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼熏蜊綣蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮奘鞳鹵闔肅ディレクティブは、MIME + タイプ設定ファイルの位置を設定します。<em>filename</em> は + <a href="core.html#serverroot">ServerRoot</a> からの相対パスです。 + このファイルはファイルの拡張子からコンテントタイプへの + デフォルトのマッピングを設定します。 + このファイルを変更することは推気譴討い泙擦鵝B紊錣蠅鹿粡寂蝟赱齠洲痲筵娼蓿繙就a粐鞳▽苳餐粐奘鞳ぢディレクティブを使用してください。 + ファイルは、AddType コマンドの引数と同じ形阿旅圓嚢柔気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼纃揺妖纔銖蜿纔銖蜿踉晒纃鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ьぢ拡張子は源吠儡垢気譴泙后6圓肇魯奪轡緤源ВЗ鹿粡寂蝟赱齠洲痲筵娼で始まる行は無視されます。 + + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/mod_mime_magic.html b/htdocs/manual/mod/mod_mime_magic.html new file mode 100644 index 0000000000..3a5a76befb --- /dev/null +++ b/htdocs/manual/mod/mod_mime_magic.html @@ -0,0 +1,326 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_mime_magic</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + </div> + + <h1 align="CENTER">Module mod_mime_magic</h1> + + <p>This module provides for determining the MIME type of a file + by looking at a few bytes of its contents.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_mime_magic.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + mime_magic_module</p> + + <h2>Summary</h2> + + <p>This module determines the MIME type of files in the same + way the Unix file(1) command works: it looks at the first few + bytes of the file. It is intended as a "second line of defense" + for cases that <a href="mod_mime.html">mod_mime</a> can't + resolve. To assure that mod_mime gets first try at determining + a file's MIME type, be sure to list mod_mime_magic + <strong>before</strong> mod_mime in the configuration.</p> + + <p>This module is derived from a free version of the + <code>file(1)</code> command for Unix, which uses "magic + numbers" and other hints from a file's contents to figure out + what the contents are. This module is active only if the magic + file is specified by the <a + href="#mimemagicfile"><code>MimeMagicFile</code></a> + directive.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#mimemagicfile">MimeMagicFile</a></li> + </ul> + + <h2>Format of the Magic File</h2> + + <p>The contents of the file are plain ASCII text in 4-5 + columns. Blank lines are allowed but ignored. Commented lines + use a hash mark "#". The remaining lines are parsed for the + following columns:</p> + + <table border="1"> + <tr valign="top"> + <th>Column</th> + + <th>Description</th> + </tr> + + <tr valign="top"> + <td>1</td> + + <td>byte number to begin checking from<br /> + ">" indicates a dependency upon the previous non-">" + line</td> + </tr> + + <tr valign="top"> + <td>2</td> + + <td> + type of data to match + + <table border="1"> + <tr> + <td>byte</td> + + <td>single character</td> + </tr> + + <tr> + <td>short</td> + + <td>machine-order 16-bit integer</td> + </tr> + + <tr> + <td>long</td> + + <td>machine-order 32-bit integer</td> + </tr> + + <tr> + <td>string</td> + + <td>arbitrary-length string</td> + </tr> + + <tr> + <td>date</td> + + <td>long integer date (seconds since Unix + epoch/1970)</td> + </tr> + + <tr> + <td>beshort</td> + + <td>big-endian 16-bit integer</td> + </tr> + + <tr> + <td>belong</td> + + <td>big-endian 32-bit integer</td> + </tr> + + <tr> + <td>bedate</td> + + <td>big-endian 32-bit integer date</td> + </tr> + + <tr> + <td>leshort</td> + + <td>little-endian 16-bit integer</td> + </tr> + + <tr> + <td>lelong</td> + + <td>little-endian 32-bit integer</td> + </tr> + + <tr> + <td>ledate</td> + + <td>little-endian 32-bit integer date</td> + </tr> + </table> + </td> + </tr> + + <tr valign="top"> + <td>3</td> + + <td>contents of data to match</td> + </tr> + + <tr valign="top"> + <td>4</td> + + <td>MIME type if matched</td> + </tr> + + <tr valign="top"> + <td>5</td> + + <td>MIME encoding if matched (optional)</td> + </tr> + </table> + + <p>For example, the following magic file lines would recognize + some audio formats.</p> +<pre> +# Sun/NeXT audio data +0 string .snd +>12 belong 1 audio/basic +>12 belong 2 audio/basic +>12 belong 3 audio/basic +>12 belong 4 audio/basic +>12 belong 5 audio/basic +>12 belong 6 audio/basic +>12 belong 7 audio/basic +>12 belong 23 audio/x-adpcm +</pre> + Or these would recognize the difference between "*.doc" files + containing Microsoft Word or FrameMaker documents. (These are + incompatible file formats which use the same file suffix.) +<pre> +# Frame +0 string \<MakerFile application/x-frame +0 string \<MIFFile application/x-frame +0 string \<MakerDictionary application/x-frame +0 string \<MakerScreenFon application/x-frame +0 string \<MML application/x-frame +0 string \<Book application/x-frame +0 string \<Maker application/x-frame + +# MS-Word +0 string \376\067\0\043 application/msword +0 string \320\317\021\340\241\261 application/msword +0 string \333\245-\0\0\0 application/msword +</pre> + An optional MIME encoding can be included as a fifth column. + For example, this can recognize gzipped files and set the + encoding for them. +<pre> +# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver) +0 string \037\213 application/octet-stream x-gzip +</pre> + + <h2>Performance Issues</h2> + This module is not for every system. If your system is barely + keeping up with its load or if you're performing a web server + benchmark, you may not want to enable this because the + processing is not free. + + <p>However, an effort was made to improve the performance of + the original file(1) code to make it fit in a busy web server. + It was designed for a server where there are thousands of users + who publish their own documents. This is probably very common + on intranets. Many times, it's helpful if the server can make + more intelligent decisions about a file's contents than the + file name allows ...even if just to reduce the "why doesn't my + page work" calls when users improperly name their own files. + You have to decide if the extra work suits your + environment.</p> + + <p>When compiling an Apache server, this module should be at or + near the top of the list of modules in the Configuration file. + The modules are listed in increasing priority so that will mean + this one is used only as a last resort, just like it was + designed to.</p> + + <h2><a id="notes" name="notes">Notes</a></h2> + The following notes apply to the mod_mime_magic module and are + included here for compliance with contributors' copyright + restrictions that require their acknowledgment. +<pre> +/* + * mod_mime_magic: MIME type lookup via file magic numbers + * Copyright (c) 1996-1997 Cisco Systems, Inc. + * + * This software was submitted by Cisco Systems to the Apache Group in July + * 1997. Future revisions and derivatives of this source code must + * acknowledge Cisco Systems as the original contributor of this module. + * All other licensing and usage conditions are those of the Apache Group. + * + * Some of this code is derived from the free version of the file command + * originally posted to comp.sources.unix. Copyright info for that program + * is included below as required. + * --------------------------------------------------------------------------- + * - Copyright (c) Ian F. Darwin, 1987. Written by Ian F. Darwin. + * + * This software is not subject to any license of the American Telephone and + * Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on any + * computer system, and to alter it and redistribute it freely, subject to + * the following restrictions: + * + * 1. The author is not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, credits + * must appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users ever read + * sources, credits must appear in the documentation. + * + * 4. This notice may not be removed or altered. + * ------------------------------------------------------------------------- + * + * For compliance with Mr Darwin's terms: this has been very significantly + * modified from the free "file" command. + * - all-in-one file for compilation convenience when moving from one + * version of Apache to the next. + * - Memory allocation is done through the Apache API's pool structure. + * - All functions have had necessary Apache API request or server + * structures passed to them where necessary to call other Apache API + * routines. (<em>i.e.</em>, usually for logging, files, or memory allocation in + * itself or a called function.) + * - struct magic has been converted from an array to a single-ended linked + * list because it only grows one record at a time, it's only accessed + * sequentially, and the Apache API has no equivalent of realloc(). + * - Functions have been changed to get their parameters from the server + * configuration instead of globals. (It should be reentrant now but has + * not been tested in a threaded environment.) + * - Places where it used to print results to stdout now saves them in a + * list where they're used to set the MIME type in the Apache request + * record. + * - Command-line flags have been removed since they will never be used here. + * + */ +</pre> + <hr /> + + <h2><a id="mimemagicfile" + name="mimemagicfile">MimeMagicFile</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MimeMagicFile + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> none<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mime_magic</p> + + <p>The <code>MimeMagicFile</code> directive can be used to + enable this module, the default file is distributed at + <code>conf/magic</code>. Non-rooted paths are relative to the + ServerRoot. Virtual hosts will use the same file as the main + server unless a more specific setting is used, in which case + the more specific setting overrides the main server's file.</p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_mmap_static.html b/htdocs/manual/mod/mod_mmap_static.html new file mode 100644 index 0000000000..b246dbbfeb --- /dev/null +++ b/htdocs/manual/mod/mod_mmap_static.html @@ -0,0 +1,129 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_mmap_static</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_mmap_static</h1> + + <p>This module provides mmap()ing of a statically configured + list of frequently requested but not changed files.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Experimental<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_mmap_static.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + mmap_static_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later.</p> + + <h2>Summary</h2> + + <p>This is an <strong>experimental</strong> module and should + be used with care. You can easily create a broken site using + this module, read this document carefully. + <code>mod_mmap_static</code> maps a list of statically + configured files (via <code>MMapFile</code> directives in the + main server configuration) into memory through the system call + <code>mmap()</code>. This system call is available on most + modern Unix derivates, but not on all. There are sometimes + system-specific limits on the size and number of files that can + be mmap()d, experimentation is probably the easiest way to find + out.</p> + + <p>This mmap()ing is done once at server start or restart, + only. So whenever one of the mapped files changes on the + filesystem you <em>have</em> to restart the server by at least + sending it a HUP or USR1 signal (see the <a + href="../stopping.html">Stopping and Restarting</a> + documentation). To reiterate that point: if the files are + modified <em>in place</em> without restarting the server you + may end up serving requests that are completely bogus. You + should update files by unlinking the old copy and putting a new + copy in place. Most tools such as <code>rdist</code> and + <code>mv</code> do this. The reason why this modules doesn't + take care of changes to the files is that this check would need + an extra <code>stat()</code> every time which is a waste and + against the intent of I/O reduction.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#mmapfile">MMapFile</a></li> + </ul> + <hr /> + + <h2><a id="mmapfile" name="mmapfile">MMapFile</a> + directive</h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MMapFile + <em>filename</em> [<em>filename</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server-config<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Experimental<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_mmap_static<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Only available + in Apache 1.3 or later</p> + + <p>The <code>MMapFile</code> directive maps one or more files + (given as whitespace separated arguments) into memory at server + startup time. They are automatically unmapped on a server + shutdown. When the files have changed on the filesystem at + least a HUP or USR1 signal should be send to the server to + re-mmap them.</p> + + <p>Be careful with the <em>filename</em> arguments: They have + to literally match the filesystem path Apache's URL-to-filename + translation handlers create. We cannot compare inodes or other + stuff to match paths through symbolic links <em>etc.</em> + because that again would cost extra <code>stat()</code> system + calls which is not acceptable. This module may or may not work + with filenames rewritten by <code>mod_alias</code> or + <code>mod_rewrite</code>... it is an experiment after all.</p> + + <p>Notice: You cannot use this for speeding up CGI programs or + other files which are served by special content handlers. It + can only be used for regular files which are usually served by + the Apache core content handler.</p> + Example: +<pre> + MMapFile /usr/local/apache/htdocs/index.html + +</pre> + + <p><strong>Note</strong>: don't bother asking for a for a + <code>MMapDir</code> directive which recursively maps all the + files in a directory. Use Unix the way it was meant to be used. + For example, see the <a href="core.html#include">Include</a> + directive, and consider this command:</p> +<pre> + find /www/htdocs -type f -print \ + | sed -e 's/.*/mmapfile &/' > /www/conf/mmap.conf + +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_negotiation.html.en b/htdocs/manual/mod/mod_negotiation.html.en new file mode 100644 index 0000000000..5ba05f6caf --- /dev/null +++ b/htdocs/manual/mod/mod_negotiation.html.en @@ -0,0 +1,220 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_negotiation</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_negotiation</h1> + + <p>This module provides for <a + href="../content-negotiation.html">content negotiation</a>.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_negotiation.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + negotiation_module</p> + + <h2>Summary</h2> + Content negotiation, or more accurately content selection, is + the selection of the document that best matches the clients + capabilities, from one of several available documents. There + are two implementations of this. + + <ul> + <li>A type map (a file with the handler + <code>type-map</code>) which explicitly lists the files + containing the variants.</li> + + <li>A MultiViews search (enabled by the MultiViews <a + href="core.html#options">Option</a>, where the server does an + implicit filename pattern match, and choose from amongst the + results.</li> + </ul> + + <h2>Directives</h2> + + <ul> + <li><a + href="#cachenegotiateddocs">CacheNegotiatedDocs</a></li> + + <li><a href="#languagepriority">LanguagePriority</a></li> + </ul> + <strong>See also</strong>: <a + href="./mod_mime.html#defaultlanguage">DefaultLanguage</a>, <a + href="./mod_mime.html#addencoding">AddEncoding</a>, <a + href="./mod_mime.html#addlanguage">AddLanguage</a>, <a + href="./mod_mime.html#addtype">AddType</a>, and <a + href="core.html#options">Options</a>. + + <h2>Type maps</h2> + A type map has the same format as RFC822 mail headers. It + contains document descriptions separated by blank lines, with + lines beginning with a hash character ('#') treated as + comments. A document description consists of several header + records; records may be continued on multiple lines if the + continuation lines start with spaces. The leading space will be + deleted and the lines concatenated. A header record consists of + a keyword name, which always ends in a colon, followed by a + value. Whitespace is allowed between the header name and value, + and between the tokens of value. The headers allowed are: + + <dl> + <dt>Content-Encoding:</dt> + + <dd>The encoding of the file. Apache only recognizes + encodings that are defined by an <a + href="mod_mime.html#addencoding">AddEncoding</a> directive. + This normally includes the encodings <code>x-compress</code> + for compress'd files, and <code>x-gzip</code> for gzip'd + files. The <code>x-</code> prefix is ignored for encoding + comparisons.</dd> + + <dt>Content-Language:</dt> + + <dd>The language of the variant, as an Internet standard + language tag (RFC 1766). An example is <code>en</code>, + meaning English.</dd> + + <dt>Content-Length:</dt> + + <dd>The length of the file, in bytes. If this header is not + present, then the actual length of the file is used.</dd> + + <dt>Content-Type:</dt> + + <dd> + The MIME media type of the document, with optional + parameters. Parameters are separated from the media type + and from one another by a semi-colon, with a syntax of + <code>name=value</code>. Common parameters include: + + <dl> + <dt>level</dt> + + <dd>an integer specifying the version of the media type. + For <code>text/html</code> this defaults to 2, otherwise + 0.</dd> + + <dt>qs</dt> + + <dd>a floating-point number with a value in the range 0.0 + to 1.0, indicating the relative 'quality' of this variant + compared to the other available variants, independent of + the client's capabilities. For example, a jpeg file is + usually of higher source quality than an ascii file if it + is attempting to represent a photograph. However, if the + resource being represented is ascii art, then an ascii + file would have a higher source quality than a jpeg file. + All qs values are therefore specific to a given + resource.</dd> + </dl> + Example: + + <blockquote> + <code>Content-Type: image/jpeg; qs=0.8</code> + </blockquote> + </dd> + + <dt>URI:</dt> + + <dd>The path to the file containing this variant, relative to + the map file.</dd> + </dl> + + <h2>MultiViews</h2> + A MultiViews search is enabled by the MultiViews <a + href="core.html#options">Option</a>. If the server receives a + request for <code>/some/dir/foo</code> and + <code>/some/dir/foo</code> does <em>not</em> exist, then the + server reads the directory looking for all files named + <code>foo.*</code>, and effectively fakes up a type map which + names all those files, assigning them the same media types and + content-encodings it would have if the client had asked for one + of them by name. It then chooses the best match to the client's + requirements, and returns that document. + <hr /> + + <h2><a id="cachenegotiateddocs" + name="cachenegotiateddocs">CacheNegotiatedDocs</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> + CacheNegotiatedDocs<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_negotiation<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + CacheNegotiatedDocs is only available in Apache 1.1 and later. + + <p>If set, this directive allows content-negotiated documents + to be cached by proxy servers. This could mean that clients + behind those proxys could retrieve versions of the documents + that are not the best match for their abilities, but it will + make caching more efficient.</p> + + <p>This directive only applies to requests which come from + HTTP/1.0 browsers. HTTP/1.1 provides much better control over + the caching of negotiated documents, and this directive has no + effect in responses to HTTP/1.1 requests.</p> + <hr /> + + <h2><a id="languagepriority" + name="languagepriority">LanguagePriority</a> directive</h2> + <!--%plaintext <?INDEX {\tt LanguagePriority} directive> --> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LanguagePriority + <em>MIME-lang</em> [<em>MIME-lang</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_negotiation + + <p>The LanguagePriority sets the precedence of language + variants for the case where the client does not express a + preference, when handling a MultiViews request. The list of + <em>MIME-lang</em> are in order of decreasing preference. + Example:</p> + + <blockquote> + <code>LanguagePriority en fr de</code> + </blockquote> + For a request for <code>foo.html</code>, where + <code>foo.html.fr</code> and <code>foo.html.de</code> both + existed, but the browser did not express a language preference, + then <code>foo.html.fr</code> would be returned. + + <p>Note that this directive only has an effect if a 'best' + language cannot be determined by any other means. Correctly + implemented HTTP/1.1 requests will mean this directive has no + effect.</p> + + <p><strong>See also</strong>: <a + href="./mod_mime.html#defaultlanguage">DefaultLanguage</a> and + <a href="./mod_mime.html#addlanguage">AddLanguage</a> + <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_negotiation.html.html b/htdocs/manual/mod/mod_negotiation.html.html new file mode 100644 index 0000000000..01594523ac --- /dev/null +++ b/htdocs/manual/mod/mod_negotiation.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_negotiation.html.en" --> + diff --git a/htdocs/manual/mod/mod_negotiation.html.ja.jis b/htdocs/manual/mod/mod_negotiation.html.ja.jis new file mode 100644 index 0000000000..3a0a1d7145 --- /dev/null +++ b/htdocs/manual/mod/mod_negotiation.html.ja.jis @@ -0,0 +1,218 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache module mod_negotiation</title> + + </head> + <!-- English revision: 1.18 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_negotiation モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪踉氏鱚羹〓竢銓緕鈬苡癆蜿隨蔗迪⊆蝟昭粡竚癈鷭п粐Ь苳ぢコンテントネゴシエ・踉札轡腑を提供します。</p> + + <p><a href="module-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪s阨鱆繙蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖鈬苡癆蜿隨礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪m閼繪粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + negotiation_module</p> + + <h2>概要</h2> + コンテントネゴシエ・踉札轡腑鵝△茲蠕騎里砲魯灰鵐謄鵐弔料魑’修蓮鹿粡寂蝟赱齠洲痲筵娼複数用意されているドキュメントから、クライアントの能力に一番合った + ドキュメントを選択する機能です。この汰脇鵑弔△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚タイプマップ (<code>type-map</code> + ハンドラで扱われるファイル)。これは variants + を含んでいるファイルを明忙慊蠅靴泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳四帷纓の探索 (MultiViews <a + href="core.html#options">オプション</a> で使用するよう瘢雹になります)。 + サ・踉札个徒曚瞭發縫侫.ぅ詭のパタ・踉札鵐泪奪舛鮃圓覆ぁ鹿粡寂蝟赱齠洲痲筵娼その結果から選択します。</li> + </ul> + + <h2>ディレクティブ</h2> + + <ul> + <li><a href="#cachenegotiateddocs">CacheNegotiatedDocs</a></li> + + + <li><a href="#languagepriority">LanguagePriority</a></li> + </ul> + <a href="./mod_mime.html#defaultlanguage">DefaultLanguage</a>, + <a href="./mod_mime.html#addencoding">AddEncoding</a>, + <a href="./mod_mime.html#addlanguage">AddLanguage</a>, + <a href="./mod_mime.html#addtype">AddType</a>, + <a href="core.html#options">Options</a> + <strong>も参箸靴討世気闔胼苳ぢ。 + + <h2>タイプマップ</h2> + + タイプマップは RFC 822 のメ・踉札襯悒奪世汎韻現颱踉三です。 + ドキュメントの記述が空行で分離されて書かれていて、ハッシュ文字 + ('#') で始まる行はコメントとして扱われます。 + ドキュメントの説明は複数のヘッダレコ・踉札匹藕柔気譴泙后鹿粡寂蝟赱齠洲痲筵娼レコ・踉札匹蓮海旅圓鬚濃呂泙辰討い襪畔瑤旅圓砲泙燭蠅泙后鹿粡寂蝟赱齠洲痲筵娼最初の空白が探遒気譴董∩阿旅圓箸弔覆欧ぢ行として扱われます。 + ヘッダレコ・踉札匹魯ワ・踉札斌の後に値が続くという瘢雹形阿如鹿粡寂蝟赱齠洲痲筵娼キ・踉札錙ド巳苳擦櫓苳誌にコロンで終わります。空白はヘッダ巳苳擦斑佑隆屐鹿粡寂蝟赱齠洲痲筵娼値のト・踉札鵑隆屬貌譴襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼使用可能なヘッダは以王踉擦里箸蠅任瑳蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳暫闔銓釿閼蜴膾熙苳纂蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢファイルのエンコ・踉札妊鵐亜草痺蒹ぢは <a + href="mod_mime.html#addencoding">AddEncoding</a> + で定義されたエンコ・踉札妊鵐阿世韻鯒Е踉傘します。通闕頏纉鷦蝟昭粡竚癈鷭п粐Ьぢされたファイルのための <code>x-compress</code> と gzip + されたファイルのための <code>x-gzip</code> を含みます。 + エンコ・踉札妊鵐阿糧羈咾鬚垢襪箸蓮∪榮踉鮫 <code>x-</code> + は無視されます。</dd> + + + <dt>Content-Language:</dt> + + <dd>インタ・踉札優奪班現爐慮生譽織卞鰻橋蝟昭粡竚癈鷭п粐Ьぢで定義されている言語の鑪燹N磴┐弌竢粤緕閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢは英語を表します。</dd> + + <dt>Content-Length:</dt> + + <dd>ファイルの長さ (バイト数)。 + このヘッダがない豺隋▲侫.ぅ襪陸踉斬際の長さが使用されます。</dd> + + <dt>Content-Type:</dt> + + <dd>ドキュメントの MIME + メディアタイプ、オプショナルなパラメ・踉札辛佞僖薀瓠タの構文は + <code>name=value</code> + で、メディアタイプや側苳擦離僖薀瓠タとはセミコロンで分離されます。 + 共瘢雹通のパラメ・踉札燭楼焚のとおり: + + <dl> + <dt>level</dt> + + <dd>メディアタイプのバ・踉札献腑鵑鬢踉雑す整数。 + <code>text/html</code> では 2 がデフォルトで、その側苳擦陸苳詞合は + 0 がデフォルトです。</dd> + + <dt>qs</dt> + + <dd>クライアントの能力に関係なく、variant + を側苳擦犯羈咾靴燭箸料蠡佚福嵒弗踉餐」で、0.0 から 1.0 + の範囲の浮動点堯鹿粡寂蝟赱齠洲痲筵娼例えば、命燭鯢集修靴茲逅擦箸靴討い襪箸鷲當未佚納蝟昭粡竚癈鷭п粐Ьぢファイルの方が ASCII ファイルよりも高い品舛砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼しかし、リソ・踉札垢喘鰭ぢア・踉札箸派集修気譴討い襪箸蓮喪檀票蝟昭粡竚癈鷭п粐Ьぢファイルの方が JPEG + ファイルよりも高い品舛砲覆蠅泙后海里茲逅擦法體鹿粡寂蝟赱齠洲痲筵娼はリソ・踉札綱茲貌値涼佑鬢踉肢ります。 + </dd> + </dl> + 例: + + <blockquote> + <code>Content-Type: image/jpeg; qs=0.8</code> + </blockquote> + </dd> + + <dt>URI:</dt> + + <dd>マップファイルから相対パスで表わした、variant + のあるファイルへのパス</dd> + </dl> + + <h2>MultiViews</h2> + MultiViews 探索は、Multiviews <a href="core.html#options" + >オプション</a>により有効になります。サ・踉札个踉祉閼絋苳晒齒辣蜥闖閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢへのリクエストを右踉肢り、<code>/some/dir/foo</code> が存在 + <em>しない</em>豺隋▲機バはディレクトリを読んで、 + <code>foo.*</code> にあてはまる全てのファイルを探し、 + 事側苳糸それらのファイルをマップするタイプマップを作ります。 + そのとき、メディアタイプとコンテントエンコ・踉札妊鵐阿蓮鹿粡寂蝟赱齠洲痲筵娼そのファイル巳苳擦鯆接指定したときと同じものが割り当てられます。 + それからクライアントの要求に一番合う瘢雹ものを選び、 + そのドキュメントを返します。 + <hr /> + + <h2><a id="cachenegotiateddocs" + name="cachenegotiateddocs">CacheNegotiatedDocs</a> + ディレクティブ</h2> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> CacheNegotiatedDocs<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼閼燻繚阡蛛闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> + CacheNegotiatedDocs は Apache 1.1 以降でのみ使用可能。<br /> + <p>このディレクティブが設定されていると、コンテントネゴシエ・踉札轡腑鹿粡寂蝟赱齠洲痲筵娼をした結果のドキュメントのキャッシュを許可します。 + これは、プロキシの後ろにいるクライアントが能力に一番合った + ドキュメントではなく、 + キャッシュをより効果的にするものを得る可能性があるという瘢雹ことです。</p> + + <p>このディレクティブは HTTP/1.0 ブラウ瘢雹ザからのリクエスト + のみに適用されます。HTTP/1.1 は、 + 交弔気譴織疋絅瓮鵐箸離礇奪轡紊紡个靴討困辰箸茲だ罎椎修覆里如鹿粡寂蝟赱齠洲痲筵娼このディレクティブは HTTP/1.1 のリクエストには影響しません。</p> + <hr /> + + <h2><a id="languagepriority" + name="languagepriority">LanguagePriority</a> ディレクティブ</h2> + <!--%plaintext <?INDEX {\tt LanguagePriority} directive> --> + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> LanguagePriority + <em>MIME-lang</em> [<em>MIME-lang</em>] ...<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼燻繚阡蛛闔鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳嗣瘤苺瘍縊鱸闥蜚は、MultiViews + リクエストを扱う瘢雹ときに、クライアントが優先順位を提供していない豺腓鹿粡寂蝟赱齠洲痲筵娼言語の優先順位を設定します。<em>MIME-lang</em> + のリストが優先度の降順に並びます。 + 例:</p> + + <blockquote> + <code>LanguagePriority en fr de</code> + </blockquote> + <code>foo.html</code> がリクエストされ、<code>foo.html.fr</code> + と <code>foo.html.de</code> が陸苳司減澆掘鹿粡寂蝟赱齠洲痲筵娼ブラウ瘢雹ザが言語の優先順位を提供してない豺腓鹿粡寂蝟赱齠洲痲筵娼竢粤肬鎬蔗迪鬢踉晒竢粤ぢが返されます。 + + <p>このディレクティブは側苳擦諒,如嶌覗院鹿粡寂蝟赱齠洲痲筵娼の言語が決定できないときのみ効果があることに注意してください。 + HTTP/1.1 リクエストが正しく汰気譴討い襴苳詞合には、 + このディレクティブは無効になります。</p> + + <p><a href="./mod_mime.html#defaultlanguage">DefaultLanguage</a>, + <a href="./mod_mime.html#addlanguage">AddLanguage</a> + <strong>も参箸靴討世気闔胼苳ぢ。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/mod_proxy.html b/htdocs/manual/mod/mod_proxy.html new file mode 100644 index 0000000000..70ef498e24 --- /dev/null +++ b/htdocs/manual/mod/mod_proxy.html @@ -0,0 +1,1286 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_proxy</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache module mod_proxy</h1> + + <p>This module provides for an <strong>HTTP 1.1</strong> + caching proxy server.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_proxy.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + proxy_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.1 and later.</p> + + <h2>Summary</h2> + This module implements a proxy/cache for Apache. It implements + proxying capability for <code>FTP</code>, <code>CONNECT</code> + (for SSL), <code>HTTP/0.9</code>, <code>HTTP/1.0</code>, and + (as of Apache 1.3.23) <code>HTTP/1.1</code>. + The module can be configured to connect to other proxy modules + for these and other protocols. + + <p>This module was experimental in Apache 1.1.x. As of Apache + 1.2, mod_proxy stability is <em>greatly</em> improved.</p> + + <p><strong>Warning:</strong> Do not enable proxying with <a + href="#proxyrequests">ProxyRequests</a> until you have <a + href="#access">secured your server</a>. Open proxy servers are + dangerous both to your network and to the Internet at large.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#proxyrequests">ProxyRequests</a></li> + + <li><a href="#proxyremote">ProxyRemote</a></li> + + <li><a href="#proxypass">ProxyPass</a></li> + + <li><a href="#proxypassreverse">ProxyPassReverse</a></li> + + <li><a href="#proxyblock">ProxyBlock</a></li> + + <li><a href="#allowconnect">AllowCONNECT</a></li> + + <li><a href="#proxyreceivebuffersize">ProxyReceiveBufferSize</a></li> + + <li><a href="#proxyiobuffersize">ProxyIOBufferSize</a></li> + + <li><a href="#noproxy">NoProxy</a></li> + + <li><a href="#proxydomain">ProxyDomain</a></li> + + <li><a href="#proxyvia">ProxyVia</a></li> + + <li><a href="#cacheroot">CacheRoot</a></li> + + <li><a href="#cachesize">CacheSize</a></li> + + <li><a href="#cachemaxexpire">CacheMaxExpire</a></li> + + <li><a href="#cachedefaultexpire">CacheDefaultExpire</a></li> + + <li><a + href="#cachelastmodifiedfactor">CacheLastModifiedFactor</a></li> + + <li><a href="#cachegcinterval">CacheGcInterval</a></li> + + <li><a href="#cachedirlevels">CacheDirLevels</a></li> + + <li><a href="#cachedirlength">CacheDirLength</a></li> + + <li><a + href="#cacheforcecompletion">CacheForceCompletion</a></li> + + <li><a href="#nocache">NoCache</a></li> + </ul> + + <h2><a id="configs" name="configs">Common configuration + topics</a></h2> + + <ul> + <li><a href="#forwardreverse">Forward and Reverse Proxies</a></li> + + <li><a href="#examples">Basic Examples</a></li> + + <li><a href="#access">Controlling access to your + proxy</a></li> + + <li><a href="#shortname">Using Netscape hostname + shortcuts</a></li> + + <li><a href="#mimetypes">Why doesn't file type <em>xxx</em> + download via FTP?</a></li> + + <li><a href="#type">How can I force an FTP ASCII + download of File <em>xxx</em>?</a></li> + + <li><a href="#percent2fhack">How can I access + FTP files outside of my home directory?</a></li> + + <li><a href="#ftppass">How can I hide the + FTP cleartext password in my browser's URL line?</a></li> + + <li><a href="#startup">Why does Apache start more slowly when + using the proxy module?</a></li> + + <li><a href="#socks">Can I use the Apache proxy module with + my SOCKS proxy?</a></li> + + <li><a href="#intranet">What other functions are useful for + an intranet proxy server?</a></li> + </ul> + +<h2><a name="forwardreverse" id="forwardreverse">Forward and Reverse Proxies</a></h2> + <p>Apache can be configured in both a <dfn>forward</dfn> and + <dfn>reverse</dfn> proxy mode.</p> + + <p>An ordinary <dfn>forward proxy</dfn> is an intermediate + server that sits between the client and the <em>origin + server</em>. In order to get content from the origin server, + the client sends a request to the proxy naming the origin server + as the target and the proxy then requests the content from the + origin server and returns it to the client. The client must be + specially configured to use the forward proxy to access other + sites.</p> + + <p>A typical usage of a forward proxy is to provide Internet + access to internal clients that are otherwise restricted by a + firewall. The forward proxy can also use caching to reduce + network usage.</p> + + <p>The forward proxy is activated using the <code><a + href="#proxyrequests">ProxyRequests</a></code> directive. + Because forward proxys allow clients to access arbitrary sites + through your server and to hide their true origin, it is + essential that you <a href="#access">secure your server</a> so + that only authorized clients can access the proxy before + activating a forward proxy.</p> + + <p>A <dfn>reverse proxy</dfn>, by contrast, appears to the + client just like an ordinary web server. No special + configuration on the client is necessary. The client makes + ordinary requests for content in the name-space of the reverse + proxy. The reverse proxy then decides where to send those + requests, and returns the content as if it was itself the + origin.</p> + + <p>A typical usage of a reverse proxy is to provide Internet + users access to a server that is behind a firewall. Reverse + proxies can also be used to balance load among several back-end + servers, or to provide caching for a slower back-end server. + In addition, reverse proxies can be used simply to bring + several servers into the same URL space.</p> + + <p>A reverse proxy is activated using the <code><a + href="#proxypass">ProxyPass</a></code> directive or the + <code>[P]</code> flag to the <code><a + href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> + directive. It is <strong>not</strong> necessary to turn + <code><a href="#proxyrequests">ProxyRequests</a></code> on in + order to configure a reverse proxy.</p> + +<h2><a name="examples" id="examples">Basic Examples</a></h2> + + <p>The examples below are only a very basic idea to help you + get started. Please read the documentation on the individual + directives.</p> + + <h3>Forward Proxy</h3><p><code> + ProxyRequests On<br /> + ProxyVia On<br /> + <br /> + <Directory proxy:*><br /> + + Order deny,allow<br /> + Deny from all<br /> + Allow from internal.example.com<br /> + + </Directory><br /> + <br /> + CacheRoot "/usr/local/apache/proxy"<br /> + CacheSize 5<br /> + CacheGcInterval 4<br /> + CacheMaxExpire 24<br /> + CacheLastModifiedFactor 0.1<br /> + CacheDefaultExpire 1<br /> + NoCache a-domain.com another-domain.edu joes.garage-sale.com + </code></p> + + <h3>Reverse Proxy</h3><p><code> + ProxyRequests Off<br /> + <br /> + ProxyPass /foo http://foo.example.com/bar<br /> + ProxyPassReverse /foo http://foo.example.com/bar + </code></p> + + <h2><a id="access" name="access">Controlling access to your + proxy</a></h2> + You can control who can access your proxy via the normal + <Directory> control block using the following example: +<pre> +<Directory proxy:*> +Order Deny,Allow +Deny from all +Allow from yournetwork.example.com +</Directory> +</pre> + + <p>A <Files> block will also work, and is the only method + known to work for all possible URLs in Apache versions earlier + than 1.2b10.</p> + + <p>For more information, see <a + href="mod_access.html">mod_access</a>.</p> + + <p>Strictly limiting access is essential if you are using a + forward proxy (using the <code><a + href="#proxyrequests">ProxyRequests</a></code> directive). + Otherwise, your server can be used by any client to access + arbitrary hosts while hiding his or her true identity. This is + dangerous both for your network and for the Internet at large. + When using a reverse proxy (using the <code><a + href="#proxypass">ProxyPass</a></code> directive with + <code>ProxyRequests Off</code>), access control is less critical + because clients can only contact the hosts that you have + specifically configured.</p> + + <h2><a id="shortname" name="shortname">Using Netscape hostname + shortcuts</a></h2> + There is an optional patch to the proxy module to allow + Netscape-like hostname shortcuts to be used. It's available + from the <a + href="http://www.apache.org/dist/httpd/contrib/patches/1.2/netscapehost.patch"> + <samp>contrib/patches/1.2</samp></a> directory on the Apache + Web site. + + <h2><a id="mimetypes" name="mimetypes">Why doesn't file type + <em>xxx</em> download via FTP?</a></h2> + You probably don't have that particular file type defined as + <em>application/octet-stream</em> in your proxy's mime.types + configuration file. A useful line can be +<pre> +application/octet-stream bin dms lha lzh exe class tgz taz +</pre> + + <h2><a id="type" name="type">How can I force an FTP ASCII + download of File <em>xxx</em>?</a></h2> + In the rare situation where you must download a specific file + using the FTP <strong>ASCII</strong> transfer method (while the + default transfer is in <strong>binary</strong> mode), you can + override mod_proxy's default by suffixing the request with + <samp>;type=a</samp> to force an ASCII transfer. + (FTP Directory listings are always executed in ASCII mode, however.) + + <h2><a id="percent2fhack" name="percent2fhack">How can I access + FTP files outside of my home directory?</a></h2> + <p> + A FTP URI is interpreted relative to the home directory of + the user who is logging in. Alas, to reach higher directory + levels you cannot use /../, as the dots are interpreted by the + browser and not actually sent to the FTP server. To address + this problem, the so called "Squid %2f hack" was implemented in + the Apache FTP proxy; it is a solution which is also used by + other popular proxy servers like the + <a href="http://www.squid-cache.org/">Squid Proxy Cache</a>. + By prepending /%2f to the path of your request, you can make + such a proxy change the FTP starting directory to / (instead + of the home directory). <br /> + <b>Example:</b> To retrieve the file <code>/etc/motd</code>, + you would use the URL <blockquote> + <code>ftp://<em>user@host</em>/%2f/etc/motd</code></blockquote> + </p> + + <h2><a id="ftppass" name="ftppass">How can I hide the FTP + cleartext password in my browser's URL line?</a></h2> + <p> + To log in to an FTP server by username and password, Apache + uses different strategies. + In absense of a user name and password in the URL altogether, + Apache sends an anonymous login to the FTP server, i.e., + <blockquote><code> + user: anonymous<br /> + password: apache_proxy@ + </code></blockquote> + This works for all popular FTP servers which are configured for + anonymous access.<br> + For a personal login with a specific username, you can embed + the user name into the URL, like in: + <code>ftp://<em>username@host</em>/myfile</code>. If the FTP server + asks for a password when given this username (which it should), + then Apache will reply with a [401 Authorization required] response, + which causes the Browser to pop up the username/password dialog. + Upon entering the password, the connection attempt is retried, + and if successful, the requested resource is presented. + The advantage of this procedure is that your browser does not + display the password in cleartext (which it would if you had used + <code>ftp://<em>username:password@host</em>/myfile</code> in + the first place). + <br /> + <b>Note</b> that the password which is transmitted in such a way + is not encrypted on its way. It travels between your browser and + the Apache proxy server in a base64-encoded cleartext string, and + between the Apache proxy and the FTP server as plaintext. You should + therefore think twice before accessing your FTP server via HTTP + (or before accessing your personal files via FTP at all!) When + using unsecure channels, an eavesdropper might intercept your + password on its way. + </p> + + + <h2><a id="startup" name="startup">Why does Apache start more + slowly when using the proxy module?</a></h2> + If you're using the <code>ProxyBlock</code> or + <code>NoCache</code> directives, hostnames' IP addresses are + looked up and cached during startup for later match test. This + may take a few seconds (or more) depending on the speed with + which the hostname lookups occur. + + <h2><a id="socks" name="socks">Can I use the Apache proxy + module with my SOCKS proxy?</a></h2> + Yes. Just build Apache with the rule <code>SOCKS4=yes</code> in + your <em>Configuration</em> file, and follow the instructions + there. SOCKS5 capability can be added in a similar way (there's + no <code>SOCKS5</code> rule yet), so use the + <code>EXTRA_LDFLAGS</code> definition, or build Apache normally + and run it with the <em>runsocks</em> wrapper provided with + SOCKS5, if your OS supports dynamically linked libraries. + + <p>Some users have reported problems when using SOCKS version + 4.2 on Solaris. The problem was solved by upgrading to SOCKS + 4.3.</p> + + <p>Remember that you'll also have to grant access to your + Apache proxy machine by permitting connections on the + appropriate ports in your SOCKS daemon's configuration.</p> + + <h2><a id="intranet" name="intranet">What other functions are + useful for an intranet proxy server?</a></h2> + + <p>An Apache proxy server situated in an intranet needs to + forward external requests through the company's firewall + (for this, configure the <a href="#proxyremote">ProxyRemote</a> + directive to forward the respective <em>scheme</em> to + the firewall proxy). + However, when it has to access resources within the intranet, + it can bypass the firewall when accessing hosts. The <a + href="#noproxy">NoProxy</a> directive is useful for specifying + which hosts belong to the intranet and should be accessed + directly.</p> + + <p>Users within an intranet tend to omit the local domain name + from their WWW requests, thus requesting "http://somehost/" + instead of "http://somehost.my.dom.ain/". Some commercial proxy + servers let them get away with this and simply serve the + request, implying a configured local domain. When the <a + href="#proxydomain">ProxyDomain</a> directive is used and the + server is <a href="#proxyrequests">configured for proxy + service</a>, Apache can return a redirect response and send the + client to the correct, fully qualified, server address. This is + the preferred method since the user's bookmark files will then + contain fully qualified hosts.</p> + <hr /> + + <h2><a id="proxyrequests" + name="proxyrequests">ProxyRequests</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ProxyRequests + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ProxyRequests + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ProxyRequests is + only available in Apache 1.1 and later. + + <p>This allows or prevents Apache from functioning as a forward proxy + server. Setting ProxyRequests to 'off' does not disable use of + the <a href="#proxypass">ProxyPass</a> directive.</p> + + <p><strong>Warning:</strong> Do not enable proxying until you have + <a href="#access">secured your server</a>. Open proxy servers are + dangerous both to your network and to the Internet at large.</p> + + <hr /> + + <h2><a id="proxyremote" name="proxyremote">ProxyRemote</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ProxyRemote <em>match + remote-server</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ProxyRemote is + only available in Apache 1.1 and later. + + <p>This defines remote proxies to this proxy. <em>match</em> is + either the name of a URL-scheme that the remote server + supports, or a partial URL for which the remote server should + be used, or '*' to indicate the server should be contacted for + all requests. <em>remote-server</em> is a partial URL for the + remote server. Syntax:</p> +<pre> + remote-server = protocol://hostname[:port] +</pre> + <em>protocol</em> is the protocol that should be used to + communicate with the remote server; only "http" is supported by + this module. + + <p>Example:</p> +<pre> + ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000 + ProxyRemote * http://cleversite.com + ProxyRemote ftp http://ftpproxy.mydomain.com:8080 +</pre> + In the last example, the proxy will forward FTP requests, + encapsulated as yet another HTTP proxy request, to another + proxy which can handle them. + <hr /> + + <h2><a id="proxypass" name="proxypass">ProxyPass</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ProxyPass <em>path + url</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ProxyPass is + only available in Apache 1.1 and later. + + <p>This directive allows remote servers to be mapped into the + space of the local server; the local server does not act as a + proxy in the conventional sense, but appears to be a mirror of + the remote server. <em>path</em> is the name of a local virtual + path; <em>url</em> is a partial URL for the remote server.</p> + + <p>Suppose the local server has address + <samp>http://wibble.org/</samp>; then</p> +<pre> + ProxyPass /mirror/foo/ http://foo.com/ +</pre> + <p>will cause a local request for the + <<samp>http://wibble.org/mirror/foo/bar</samp>> to be + internally converted into a proxy request to + <<samp>http://foo.com/bar</samp>>.</p> + + <p><strong>Warning:</strong> The <code><a + href="#proxyrequests">ProxyRequests</a></code> directive should + usually be set <strong>off</strong> when using <code + class="directive">ProxyPass</code>. + + <hr /> + + <h2><a id="proxypassreverse" + name="proxypassreverse">ProxyPassReverse</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ProxyPassReverse + <em>path url</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ProxyPassReverse + is only available in Apache 1.3b6 and later. + + <p>This directive lets Apache adjust the URL in the + <tt>Location</tt> header on HTTP redirect responses. For + instance this is essential when Apache is used as a reverse + proxy to avoid by-passing the reverse proxy because of HTTP + redirects on the backend servers which stay behind the reverse + proxy.</p> + + <p><em>path</em> is the name of a local virtual path.<br /> + <em>url</em> is a partial URL for the remote server - the same + way they are used for the <tt>ProxyPass</tt> directive.</p> + + <p>Example:<br /> + Suppose the local server has address + <samp>http://wibble.org/</samp>; then</p> +<pre> + ProxyPass /mirror/foo/ http://foo.com/ + ProxyPassReverse /mirror/foo/ http://foo.com/ +</pre> + will not only cause a local request for the + <<samp>http://wibble.org/mirror/foo/bar</samp>> to be + internally converted into a proxy request to + <<samp>http://foo.com/bar</samp>> (the functionality + <samp>ProxyPass</samp> provides here). It also takes care of + redirects the server foo.com sends: when + <samp>http://foo.com/bar</samp> is redirected by him to + <samp>http://foo.com/quux</samp> Apache adjusts this to + <samp>http://wibble.org/mirror/foo/quux</samp> before + forwarding the HTTP redirect response to the client. + + <p>Note that this <samp>ProxyPassReverse</samp> directive can + also be used in conjunction with the proxy pass-through feature + ("<samp>RewriteRule ... [P]</samp>") from <a + href="mod_rewrite.html#RewriteRule"><tt>mod_rewrite</tt></a> + because its doesn't depend on a corresponding + <samp>ProxyPass</samp> directive.</p> + <hr /> + + <h2><a id="allowconnect" name="allowconnect">AllowCONNECT</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> AllowCONNECT + <em>port</em> [<em>port</em>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <em><samp>AllowCONNECT</samp> 443 563</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + <samp>AllowCONNECT</samp> is only available in Apache 1.3.2 and + later. + + <p>The <samp>AllowCONNECT</samp> directive specifies a list of + port numbers to which the proxy <samp>CONNECT</samp> method may + connect. Today's browsers use this method when a <em>https</em> + connection is requested and proxy tunneling over <em>http</em> + is in effect.<br /> + By default, only the default https port (443) and the default + snews port (563) are enabled. Use the <samp>AllowCONNECT</samp> + directive to override this default and allow connections to + the listed ports only.</p> + <hr /> + + <h2><a id="proxyblock" name="proxyblock">ProxyBlock</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ProxyBlock + *|<em>word|host|domain</em> [<em>word|host|domain</em>] + ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ProxyBlock is + only available in Apache 1.2 and later. + + <p>The ProxyBlock directive specifies a list of words, hosts + and/or domains, separated by spaces. HTTP, HTTPS, and FTP + document requests to sites whose names contain matched words, + hosts or domains are <em>blocked</em> by the proxy server. The + proxy module will also attempt to determine IP addresses of + list items which may be hostnames during startup, and cache + them for match test as well. Example:</p> +<pre> + ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu +</pre> + 'rocky.wotsamattau.edu' would also be matched if referenced by + IP address. + + <p>Note that 'wotsamattau' would also be sufficient to match + 'wotsamattau.edu'.</p> + + <p>Note also that</p> +<pre> +ProxyBlock * +</pre> + blocks connections to all sites. + <hr /> + + <h2><a id="proxyreceivebuffersize" + name="proxyreceivebuffersize">ProxyReceiveBufferSize</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ProxyReceiveBufferSize + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + ProxyReceiveBufferSize is only available in Apache 1.3 and + later. + + <p>The ProxyReceiveBufferSize directive specifies an explicit + network buffer size for outgoing HTTP and FTP connections, for + increased throughput. It has to be greater than 512 or set to 0 + to indicate that the system's default buffer size should be + used.</p> + + <p>Example:</p> +<pre> + ProxyReceiveBufferSize 2048 +</pre> + <hr /> + + <h2><a id="proxyiobuffersize" + name="proxyiobuffersize">ProxyIOBufferSize</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ProxyIOBufferSize + <em>bytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>8192</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + ProxyIOBufferSize is only available in Apache 1.3.24 and + later. + + <p>The ProxyIOBufferSize directive specifies the number of bytes + that will be read from a remote HTTP or FTP server at one time. + This directive is different from the ProxyReceiveBufferSize + directive, which specifies the low level socket buffer size. + </p> + + <p> + When a response is received which fits entirely within the IO + buffer size, the remote HTTP or FTP server socket will be closed + before an attempt is made to write the response to the client. + This ensures that the remote server does not remain connected + unnecessarily while the response is delivered to a slow client. + A high value for the IO buffer decreases the load on remote HTTP + and FTP servers, at the expense of greater RAM footprint on the + proxy. + </p> + + <p>Example:</p> +<pre> + ProxyIOBufferSize 131072 +</pre> + <hr /> + + <h2><a id="noproxy" name="noproxy">NoProxy</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> NoProxy <a + href="#domain"><em>Domain</em></a>|<a + href="#subnet"><em>SubNet</em></a>|<a + href="#ipaddr"><em>IpAddr</em></a>|<a + href="#hostname"><em>Hostname</em></a> [<a + href="#domain"><em>Domain</em></a>|<a + href="#subnet"><em>SubNet</em></a>|<a + href="#ipaddr"><em>IpAddr</em></a>|<a + href="#hostname"><em>Hostname</em></a>] ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> NoProxy is only + available in Apache 1.3 and later. + + <p>This directive is only useful for Apache proxy servers + within intranets. The NoProxy directive specifies a list of + subnets, IP addresses, hosts and/or domains, separated by + spaces. A request to a host which matches one or more of these + is always served directly, without forwarding to the configured + ProxyRemote proxy server(s).</p> + + <p>Example:</p> +<pre> + ProxyRemote * http://firewall.mycompany.com:81 + NoProxy .mycompany.com 192.168.112.0/21 +</pre> + The arguments to the NoProxy directive are one of the following + type list: + + <dl> + <!-- ===================== Domain ======================= --> + + <dt><a id="domain" name="domain"><em>Domain</em></a></dt> + + <dd>A <em>Domain</em> is a partially qualified DNS domain + name, preceded by a period. It represents a list of hosts + which logically belong to the same DNS domain or zone + (<em>i.e.</em>, the suffixes of the hostnames are all ending + in <em>Domain</em>).<br /> + Examples: <samp>.com</samp> <samp>.apache.org.</samp><br /> + To distinguish <em>Domain</em>s from <a + href="#hostname"><em>Hostname</em></a>s (both syntactically + and semantically; a DNS domain can have a DNS A record, + too!), <em>Domain</em>s are always written with a leading + period.<br /> + Note: Domain name comparisons are done without regard to the + case, and <em>Domain</em>s are always assumed to be anchored + in the root of the DNS tree, therefore two domains + <samp>.MyDomain.com</samp> and <samp>.mydomain.com.</samp> + (note the trailing period) are considered equal. Since a + domain comparison does not involve a DNS lookup, it is much + more efficient than subnet comparison. + <!-- ===================== SubNet ======================= --> + </dd> + + <dt><a id="subnet" name="subnet"><em>SubNet</em></a></dt> + + <dd> + A <em>SubNet</em> is a partially qualified internet address + in numeric (dotted quad) form, optionally followed by a + slash and the netmask, specified as the number of + significant bits in the <em>SubNet</em>. It is used to + represent a subnet of hosts which can be reached over a + common network interface. In the absence of the explicit + net mask it is assumed that omitted (or zero valued) + trailing digits specify the mask. (In this case, the + netmask can only be multiples of 8 bits wide.)<br /> + Examples: + + <dl> + <dt><samp>192.168</samp> or <samp>192.168.0.0</samp></dt> + + <dd>the subnet 192.168.0.0 with an implied netmask of 16 + valid bits (sometimes used in the netmask form + <samp>255.255.0.0</samp>)</dd> + + <dt><samp>192.168.112.0/21</samp></dt> + + <dd>the subnet <samp>192.168.112.0/21</samp> with a + netmask of 21 valid bits (also used in the form + 255.255.248.0)</dd> + </dl> + As a degenerate case, a <em>SubNet</em> with 32 valid bits + is the equivalent to an <em>IPAddr</em>, while a + <em>SubNet</em> with zero valid bits (<em>e.g.</em>, + 0.0.0.0/0) is the same as the constant <em>_Default_</em>, + matching any IP address. + <!-- ===================== IPAddr ======================= --> + </dd> + + <dt><a id="ipaddr" name="ipaddr"><em>IPAddr</em></a></dt> + + <dd> + A <em>IPAddr</em> represents a fully qualified internet + address in numeric (dotted quad) form. Usually, this + address represents a host, but there need not necessarily + be a DNS domain name connected with the address.<br /> + Example: 192.168.123.7<br /> + Note: An <em>IPAddr</em> does not need to be resolved by + the DNS system, so it can result in more effective apache + performance. + + <p><strong>See Also:</strong> <a + href="../dns-caveats.html">DNS Issues</a></p> + <!-- ===================== Hostname ======================= --> + </dd> + + <dt><a id="hostname" + name="hostname"><em>Hostname</em></a></dt> + + <dd> + A <em>Hostname</em> is a fully qualified DNS domain name + which can be resolved to one or more <a + href="#ipaddr"><em>IPAddrs</em></a> via the DNS domain name + service. It represents a logical host (in contrast to <a + href="#domain"><em>Domain</em></a>s, see above) and must be + resolvable to at least one <a + href="#ipaddr"><em>IPAddr</em></a> (or often to a list of + hosts with different <a + href="#ipaddr"><em>IPAddr</em></a>'s).<br /> + Examples: <samp>prep.ai.mit.edu</samp> + <samp>www.apache.org.</samp><br /> + Note: In many situations, it is more effective to specify + an <a href="#ipaddr"><em>IPAddr</em></a> in place of a + <em>Hostname</em> since a DNS lookup can be avoided. Name + resolution in Apache can take a remarkable deal of time + when the connection to the name server uses a slow PPP + link.<br /> + Note: <em>Hostname</em> comparisons are done without + regard to the case, and <em>Hostname</em>s are always + assumed to be anchored in the root of the DNS tree, + therefore two hosts <samp>WWW.MyDomain.com</samp> and + <samp>www.mydomain.com.</samp> (note the trailing period) + are considered equal.<br /> + + + <p><strong>See Also:</strong> <a + href="../dns-caveats.html">DNS Issues</a></p> + </dd> + </dl> + <hr /> + + <h2><a id="proxydomain" name="proxydomain">ProxyDomain</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ProxyDomain + <em>Domain</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ProxyDomain is + only available in Apache 1.3 and later. + + <p>This directive is only useful for Apache proxy servers + within intranets. The ProxyDomain directive specifies the + default domain which the apache proxy server will belong to. If + a request to a host without a domain name is encountered, a + redirection response to the same host with the configured + <em>Domain</em> appended will be generated.</p> + + <p>Example:</p> +<pre> + ProxyRemote * http://firewall.mycompany.com:81 + NoProxy .mycompany.com 192.168.112.0/21 + ProxyDomain .mycompany.com +</pre> + <hr /> + + <h2><a id="proxyvia" name="proxyvia">ProxyVia</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ProxyVia + on|off|full|block<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>ProxyVia + off</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ProxyVia is only + available in Apache 1.3.2 and later. + + <p>This directive controls the use of the <samp>Via:</samp> + HTTP header by the proxy. Its intended use is to control the + flow of of proxy requests along a chain of proxy servers. See + RFC2068 (HTTP/1.1) for an explanation of <samp>Via:</samp> + header lines.</p> + + <ul> + <li>If set to <em>off</em>, which is the default, no special + processing is performed. If a request or reply contains a + <samp>Via:</samp> header, it is passed through + unchanged.</li> + + <li>If set to <em>on</em>, each request and reply will get a + <samp>Via:</samp> header line added for the current + host.</li> + + <li>If set to <em>full</em>, each generated <samp>Via:</samp> + header line will additionally have the Apache server version + shown as a <samp>Via:</samp> comment field.</li> + + <li>If set to <em>block</em>, every proxy request will have + all its <samp>Via:</samp> header lines removed. No new + <samp>Via:</samp> header will be generated.</li> + </ul> + <hr /> + + <h2><a id="cacheforcecompletion" + name="cacheforcecompletion">CacheForceCompletion</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CacheForceCompletion + <em>percentage</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>90</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + CacheForceCompletion is only available in Apache 1.3.1 and + later. + + <p>If an http transfer that is being cached is cancelled, the + proxy module will complete the transfer to cache if more than + the percentage specified has already been transferred.</p> + + <p>This is a percentage, and must be a number between 1 and + 100, or 0 to use the default. 100 will cause a document to be + cached only if the transfer was allowed to complete. A number + between 60 and 90 is recommended.</p> + <hr /> + + <h2><a id="cacheroot" name="cacheroot">CacheRoot</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CacheRoot + <em>directory</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> CacheRoot is + only available in Apache 1.1 and later. + + <p>Sets the name of the directory to contain cache files; this + must be writable by the httpd server. (see the <a + href="core.html#user"><code>User</code></a> directive).<br /> + Setting <code>CacheRoot</code> enables proxy cacheing; without + defining a <code>CacheRoot</code>, proxy functionality will be + available if <code>ProxyRequests</code> are set to + <code>On</code>, but no cacheing will be available.</p> + <hr /> + + <h2><a id="cachesize" name="cachesize">CacheSize</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CacheSize + <em>kilobytes</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>CacheSize + 5</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> CacheSize is + only available in Apache 1.1 and later. + + <p>Sets the desired space usage of the cache, in KB (1024-byte + units). Although usage may grow above this setting, the garbage + collection will delete files until the usage is at or below + this setting.<br /> + Depending on the expected proxy traffic volume and + <code>CacheGcInterval</code>, use a value which is at least 20 + to 40 % lower than the available space.</p> + <hr /> + + <h2><a id="cachegcinterval" + name="cachegcinterval">CacheGcInterval</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CacheGcInterval + <em>hours</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> CacheGcinterval + is only available in Apache 1.1 and later. + + <p>Check the cache after the specified number of + <em>hours</em>, and delete files if the space usage is greater + than that set by CacheSize. Note that <em>hours</em> accepts a + float value, you could for example use <code>CacheGcInterval + 1.5</code> to check the cache every 90 minutes. (If unset, no + garbage collection will be performed, and the cache will grow + indefinitely.) Note also that the larger the + <code>CacheGcInterval</code>, the more extra space beyond the + configured <code>CacheSize</code> will be needed for the cache + between garbage collections.<br /> + <!-- Note that due to a design flaw, Apache + does not automatically force a garbage collection when the available + space on the file system where the cache resides is exhausted. --> + </p> + <hr /> + + <h2><a id="cachemaxexpire" + name="cachemaxexpire">CacheMaxExpire</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CacheMaxExpire + <em>hours</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>CacheMaxExpire + 24</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> CacheMaxExpire + is only available in Apache 1.1 and later. + + <p>Specifies the maximum number of <em>hours</em> for which + cachable HTTP documents will be retained without checking the + origin server. Thus, documents will be out of date at most this + number of <em>hours</em> This restriction is enforced even if + an expiry date was supplied with the document.</p> + <hr /> + + <h2><a id="cachelastmodifiedfactor" + name="cachelastmodifiedfactor">CacheLastModifiedFactor</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CacheLastModifiedFactor + <em>factor</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>CacheLastModifiedFactor 0.1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + CacheLastModifiedFactor is only available in Apache 1.1 and + later. + + <p>If the origin HTTP server did not supply an expiry date for + the document, then estimate one using the formula</p> +<pre> + expiry-period = time-since-last-modification * <em>factor</em> +</pre> + For example, if the document was last modified 10 hours ago, + and <em>factor</em> is 0.1, then the expiry period will be set + to 10*0.1 = 1 hour. + + <p>If the expiry-period would be longer than that set by + CacheMaxExpire, then the latter takes precedence.</p> + <hr /> + + <h2><a id="cachedirlevels" + name="cachedirlevels">CacheDirLevels</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CacheDirLevels + <em>levels</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>CacheDirLevels + 3</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> CacheDirLevels + is only available in Apache 1.1 and later. + + <p>CacheDirLevels sets the number of <em>levels</em> of + subdirectories in the cache. Cached data will be saved this + many directory levels below CacheRoot.</p> + <hr /> + + <h2><a id="cachedirlength" + name="cachedirlength">CacheDirLength</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CacheDirLength + <em>length</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>CacheDirLength + 1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> CacheDirLength + is only available in Apache 1.1 and later. + + <p>CacheDirLength sets the number of characters in proxy cache + subdirectory names.</p> + <hr /> + + <h2><a id="cachedefaultexpire" + name="cachedefaultexpire">CacheDefaultExpire</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CacheDefaultExpire + <em>hours</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>CacheDefaultExpire 1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + CacheDefaultExpire is only available in Apache 1.1 and later. + + <p>If the document is fetched via a protocol that does not + support expiry times, then use the specified number of + <em>hours</em> as the expiry time. <a + href="#cachemaxexpire">CacheMaxExpire</a> does + <strong>not</strong> override this setting.</p> + <hr /> + + <h2><a id="nocache" name="nocache">NoCache</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> NoCache + *|<em>word|host|domain</em> [<em>word|host|domain</em>] + ...<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_proxy<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> NoCache is only + available in Apache 1.1 and later. + + <p>The NoCache directive specifies a list of words, hosts + and/or domains, separated by spaces. HTTP and non-passworded + FTP documents from matched words, hosts or domains are + <em>not</em> cached by the proxy server. The proxy module will + also attempt to determine IP addresses of list items which may + be hostnames during startup, and cache them for match test as + well. Example:</p> +<pre> + NoCache joes-garage.com some-host.co.uk bullwinkle.wotsamattau.edu +</pre> + 'bullwinkle.wotsamattau.edu' would also be matched if + referenced by IP address. + + <p>Note that 'wotsamattau' would also be sufficient to match + 'wotsamattau.edu'.</p> + + <p>Note also that</p> +<pre> +NoCache * +</pre> + disables caching completely. + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_rewrite.html.en b/htdocs/manual/mod/mod_rewrite.html.en new file mode 100644 index 0000000000..0021777ec2 --- /dev/null +++ b/htdocs/manual/mod/mod_rewrite.html.en @@ -0,0 +1,2093 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--%hypertext --> +<!-- mod_rewrite.html --> +<!-- Documentation for the mod_rewrite Apache module --> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_rewrite</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <blockquote> + <!-- page indentation --> + <!--#include virtual="header.html" --> + <br /> + + + <h1 align="CENTER">Module mod_rewrite<br /> + URL Rewriting Engine</h1> + + <p>This module provides a rule-based rewriting engine to + rewrite requested URLs on the fly.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_rewrite.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + rewrite_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.2 and later.</p> + <hr noshade="noshade" size="1" /> + <br /> + + + <h2>Summary</h2> + + <blockquote> + <blockquote> + <blockquote> + <em>``The great thing about mod_rewrite is it gives you + all the configurability and flexibility of Sendmail. + The downside to mod_rewrite is that it gives you all + the configurability and flexibility of Sendmail.''</em> + + + <div align="RIGHT"> + -- Brian Behlendorf<br /> + Apache Group + </div> + </blockquote> + </blockquote> + </blockquote> + + <blockquote> + <blockquote> + <blockquote> + <em>`` Despite the tons of examples and docs, + mod_rewrite is voodoo. Damned cool voodoo, but still + voodoo. ''</em> + + <div align="RIGHT"> + -- Brian Moore<br /> + bem@news.cmc.net + </div> + </blockquote> + </blockquote> + </blockquote> + Welcome to mod_rewrite, the Swiss Army Knife of URL + manipulation! + + <p>This module uses a rule-based rewriting engine (based on a + regular-expression parser) to rewrite requested URLs on the + fly. It supports an unlimited number of rules and an + unlimited number of attached rule conditions for each rule to + provide a really flexible and powerful URL manipulation + mechanism. The URL manipulations can depend on various tests, + for instance server variables, environment variables, HTTP + headers, time stamps and even external database lookups in + various formats can be used to achieve a really granular URL + matching.</p> + + <p>This module operates on the full URLs (including the + path-info part) both in per-server context + (<code>httpd.conf</code>) and per-directory context + (<code>.htaccess</code>) and can even generate query-string + parts on result. The rewritten result can lead to internal + sub-processing, external request redirection or even to an + internal proxy throughput.</p> + + <p>But all this functionality and flexibility has its + drawback: complexity. So don't expect to understand this + entire module in just one day.</p> + + <p>This module was invented and originally written in April + 1996<br /> + and gifted exclusively to the The Apache Group in July 1997 + by</p> + + <blockquote> + <a href="http://www.engelschall.com/"><code>Ralf S. + Engelschall</code></a><br /> + <a + href="mailto:rse@engelschall.com"><code>rse@engelschall.com</code></a><br /> + <a + href="http://www.engelschall.com/"><code>www.engelschall.com</code></a> + </blockquote> + <hr noshade="noshade" size="1" /> + + <h2>Table Of Contents</h2> + + <p><strong>Internal Processing</strong></p> + + <ul> + <li><a href="#InternalAPI">API Phases</a></li> + + <li><a href="#InternalRuleset">Ruleset Processing</a></li> + + <li><a href="#InternalBackRefs">Regex Back-Reference + Availability</a></li> + </ul> + + <p><strong>Configuration Directives</strong></p> + + <ul> + <li><a href="#RewriteEngine">RewriteEngine</a></li> + + <li><a href="#RewriteOptions">RewriteOptions</a></li> + + <li><a href="#RewriteLog">RewriteLog</a></li> + + <li><a href="#RewriteLogLevel">RewriteLogLevel</a></li> + + <li><a href="#RewriteLock">RewriteLock</a></li> + + <li><a href="#RewriteMap">RewriteMap</a></li> + + <li><a href="#RewriteBase">RewriteBase</a></li> + + <li><a href="#RewriteCond">RewriteCond</a></li> + + <li><a href="#RewriteRule">RewriteRule</a></li> + </ul> + <strong>Miscellaneous</strong> + + <ul> + <li><a href="#EnvVar">Environment Variables</a></li> + + <li><a href="#Solutions">Practical Solutions</a></li> + </ul> + <hr noshade="noshade" size="1" /> + + <center> + <h1><a id="Internal" name="Internal">Internal + Processing</a></h1> + </center> + <hr noshade="noshade" size="1" /> + + <p>The internal processing of this module is very complex but + needs to be explained once even to the average user to avoid + common mistakes and to let you exploit its full + functionality.</p> + + <h2><a id="InternalAPI" name="InternalAPI">API + Phases</a></h2> + + <p>First you have to understand that when Apache processes a + HTTP request it does this in phases. A hook for each of these + phases is provided by the Apache API. Mod_rewrite uses two of + these hooks: the URL-to-filename translation hook which is + used after the HTTP request has been read but before any + authorization starts and the Fixup hook which is triggered + after the authorization phases and after the per-directory + config files (<code>.htaccess</code>) have been read, but + before the content handler is activated.</p> + + <p>So, after a request comes in and Apache has determined the + corresponding server (or virtual server) the rewriting engine + starts processing of all mod_rewrite directives from the + per-server configuration in the URL-to-filename phase. A few + steps later when the final data directories are found, the + per-directory configuration directives of mod_rewrite are + triggered in the Fixup phase. In both situations mod_rewrite + rewrites URLs either to new URLs or to filenames, although + there is no obvious distinction between them. This is a usage + of the API which was not intended to be this way when the API + was designed, but as of Apache 1.x this is the only way + mod_rewrite can operate. To make this point more clear + remember the following two points:</p> + + <ol> + <li>Although mod_rewrite rewrites URLs to URLs, URLs to + filenames and even filenames to filenames, the API + currently provides only a URL-to-filename hook. In Apache + 2.0 the two missing hooks will be added to make the + processing more clear. But this point has no drawbacks for + the user, it is just a fact which should be remembered: + Apache does more in the URL-to-filename hook than the API + intends for it.</li> + + <li> + Unbelievably mod_rewrite provides URL manipulations in + per-directory context, <em>i.e.</em>, within + <code>.htaccess</code> files, although these are reached + a very long time after the URLs have been translated to + filenames. It has to be this way because + <code>.htaccess</code> files live in the filesystem, so + processing has already reached this stage. In other + words: According to the API phases at this time it is too + late for any URL manipulations. To overcome this chicken + and egg problem mod_rewrite uses a trick: When you + manipulate a URL/filename in per-directory context + mod_rewrite first rewrites the filename back to its + corresponding URL (which is usually impossible, but see + the <code>RewriteBase</code> directive below for the + trick to achieve this) and then initiates a new internal + sub-request with the new URL. This restarts processing of + the API phases. + + <p>Again mod_rewrite tries hard to make this complicated + step totally transparent to the user, but you should + remember here: While URL manipulations in per-server + context are really fast and efficient, per-directory + rewrites are slow and inefficient due to this chicken and + egg problem. But on the other hand this is the only way + mod_rewrite can provide (locally restricted) URL + manipulations to the average user.</p> + </li> + </ol> + + <p>Don't forget these two points!</p> + + <h2><a id="InternalRuleset" name="InternalRuleset">Ruleset + Processing</a></h2> + Now when mod_rewrite is triggered in these two API phases, it + reads the configured rulesets from its configuration + structure (which itself was either created on startup for + per-server context or during the directory walk of the Apache + kernel for per-directory context). Then the URL rewriting + engine is started with the contained ruleset (one or more + rules together with their conditions). The operation of the + URL rewriting engine itself is exactly the same for both + configuration contexts. Only the final result processing is + different. + + <p>The order of rules in the ruleset is important because the + rewriting engine processes them in a special (and not very + obvious) order. The rule is this: The rewriting engine loops + through the ruleset rule by rule (<code>RewriteRule</code> + directives) and when a particular rule matches it optionally + loops through existing corresponding conditions + (<code>RewriteCond</code> directives). For historical reasons + the conditions are given first, and so the control flow is a + little bit long-winded. See Figure 1 for more details.</p> + + <div align="CENTER"> + <table cellspacing="0" cellpadding="2" border="0"> + <tr> + <td bgcolor="#CCCCCC"><img + src="../images/mod_rewrite_fig1.gif" width="428" + height="385" + alt="[Needs graphics capability to display]" /></td> + </tr> + + <tr> + <td align="CENTER"><strong>Figure 1:</strong> The + control flow through the rewriting ruleset</td> + </tr> + </table> + </div> + + <p>As you can see, first the URL is matched against the + <em>Pattern</em> of each rule. When it fails mod_rewrite + immediately stops processing this rule and continues with the + next rule. If the <em>Pattern</em> matches, mod_rewrite looks + for corresponding rule conditions. If none are present, it + just substitutes the URL with a new value which is + constructed from the string <em>Substitution</em> and goes on + with its rule-looping. But if conditions exist, it starts an + inner loop for processing them in the order that they are + listed. For conditions the logic is different: we don't match + a pattern against the current URL. Instead we first create a + string <em>TestString</em> by expanding variables, + back-references, map lookups, <em>etc.</em> and then we try + to match <em>CondPattern</em> against it. If the pattern + doesn't match, the complete set of conditions and the + corresponding rule fails. If the pattern matches, then the + next condition is processed until no more conditions are + available. If all conditions match, processing is continued + with the substitution of the URL with + <em>Substitution</em>.</p> + + <h2><a id="quoting" name="quoting">Quoting Special + Characters</a></h2> + + <p>As of Apache 1.3.20, special characters in + <i>TestString</i> and <i>Substitution</i> strings can be + escaped (that is, treated as normal characters without their + usual special meaning) by prefixing them with a slosh ('\') + character. In other words, you can include an actual + dollar-sign character in a <i>Substitution</i> string by + using '<code>\$</code>'; this keeps mod_rewrite from trying + to treat it as a backreference.</p> + + <h2><a id="InternalBackRefs" name="InternalBackRefs">Regex + Back-Reference Availability</a></h2> + One important thing here has to be remembered: Whenever you + use parentheses in <em>Pattern</em> or in one of the + <em>CondPattern</em>, back-references are internally created + which can be used with the strings <code>$N</code> and + <code>%N</code> (see below). These are available for creating + the strings <em>Substitution</em> and <em>TestString</em>. + Figure 2 shows to which locations the back-references are + transfered for expansion. + + <div align="CENTER"> + <table cellspacing="0" cellpadding="2" border="0"> + <tr> + <td bgcolor="#CCCCCC"><img + src="../images/mod_rewrite_fig2.gif" width="381" + height="179" + alt="[Needs graphics capability to display]" /></td> + </tr> + + <tr> + <td align="CENTER"><strong>Figure 2:</strong> The + back-reference flow through a rule</td> + </tr> + </table> + </div> + + <p>We know this was a crash course on mod_rewrite's internal + processing. But you will benefit from this knowledge when + reading the following documentation of the available + directives.</p> + <hr noshade="noshade" size="1" /> + + <center> + <h1><a id="Configuration" + name="Configuration">Configuration Directives</a></h1> + </center> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteEngine" + name="RewriteEngine">RewriteEngine</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RewriteEngine + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>RewriteEngine + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, + virtual host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache + 1.2<br /> + + + <p>The <code>RewriteEngine</code> directive enables or + disables the runtime rewriting engine. If it is set to + <code>off</code> this module does no runtime processing at + all. It does not even update the <code>SCRIPT_URx</code> + environment variables.</p> + + <p>Use this directive to disable the module instead of + commenting out all the <code>RewriteRule</code> + directives!</p> + + <p>Note that, by default, rewrite configurations are not + inherited. This means that you need to have a + <code>RewriteEngine on</code> directive for each virtual host + in which you wish to use it.</p> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteOptions" + name="RewriteOptions">RewriteOptions</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RewriteOptions + <em>Option</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>RewriteOptions + MaxRedirects=10</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, + virtual host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache + 1.2; <code>MaxRedirects</code> is available in Apache 1.3.28 and + later<br /> + + + <p>The <code>RewriteOptions</code> directive sets some + special options for the current per-server or per-directory + configuration. The <em>Option</em> strings can be one of the + following:</p> + + <dl> + <dt><code>inherit</code></dt> + <dd>This forces the current configuration to inherit the + configuration of the parent. In per-virtual-server context + this means that the maps, conditions and rules of the main + server are inherited. In per-directory context this means + that conditions and rules of the parent directory's + <code>.htaccess</code> configuration are inherited.</dd> + + <dt><code>MaxRedirects=<var>number</var></code></dt> + <dd>In order to prevent endless loops of internal redirects + issued by per-directory <code>RewriteRule</code>s, + <code>mod_rewrite</code> aborts the request after reaching a + maximum number of such redirects and responds with an 500 Internal + Server Error. If you really need more internal redirects than 10 + per request, you may increase the default to the desired value.</dd> + </dl> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteLog" name="RewriteLog">RewriteLog</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RewriteLog + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, + virtual host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache + 1.2<br /> + + + <p>The <code>RewriteLog</code> directive sets the name of the + file to which the server logs any rewriting actions it + performs. If the name does not begin with a slash + ('<code>/</code>') then it is assumed to be relative to the + <em>Server Root</em>. The directive should occur only once + per server config.</p> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Note</strong>: To disable the logging of + rewriting actions it is not recommended to set + <em>file-path</em> to <code>/dev/null</code>, because + although the rewriting engine does not then output to a + logfile it still creates the logfile output internally. + <strong>This will slow down the server with no advantage + to the administrator!</strong> To disable logging either + remove or comment out the <code>RewriteLog</code> + directive or use <code>RewriteLogLevel 0</code>!</td> + </tr> + </table> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Security</strong>: See the <a + href="../misc/security_tips.html">Apache Security + Tips</a> document for details on why your security could + be compromised if the directory where logfiles are stored + is writable by anyone other than the user that starts the + server.</td> + </tr> + </table> + + <p><strong>Example:</strong></p> + + <blockquote> +<pre> +RewriteLog "/usr/local/var/apache/logs/rewrite.log" +</pre> + </blockquote> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteLogLevel" + name="RewriteLogLevel">RewriteLogLevel</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RewriteLogLevel + <em>Level</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>RewriteLogLevel 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, + virtual host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache + 1.2<br /> + + + <p>The <code>RewriteLogLevel</code> directive sets the + verbosity level of the rewriting logfile. The default level 0 + means no logging, while 9 or more means that practically all + actions are logged.</p> + + <p>To disable the logging of rewriting actions simply set + <em>Level</em> to 0. This disables all rewrite action + logs.</p> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Notice:</strong> Using a high value for + <em>Level</em> will slow down your Apache server + dramatically! Use the rewriting logfile at a + <em>Level</em> greater than 2 only for debugging!</td> + </tr> + </table> + + <p><strong>Example:</strong></p> + + <blockquote> +<pre> +RewriteLogLevel 3 +</pre> + </blockquote> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteLock" + name="RewriteLock">RewriteLock</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RewriteLock + <em>file-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache + 1.3<br /> + + + <p>This directive sets the filename for a synchronization + lockfile which mod_rewrite needs to communicate with + <samp>RewriteMap</samp> <em>programs</em>. Set this lockfile + to a local path (not on a NFS-mounted device) when you want + to use a rewriting map-program. It is not required for other + types of rewriting maps.</p> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteMap" name="RewriteMap">RewriteMap</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RewriteMap + <em>MapName</em> <em>MapType</em>:<em>MapSource</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> not used per + default<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, + virtual host<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> <em>Not + applicable</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.2 + (partially), Apache 1.3<br /> + + + <p>The <code>RewriteMap</code> directive defines a + <em>Rewriting Map</em> which can be used inside rule + substitution strings by the mapping-functions to + insert/substitute fields through a key lookup. The source of + this lookup can be of various types.</p> + + <p>The <a id="mapfunc" name="mapfunc"><em>MapName</em></a> is + the name of the map and will be used to specify a + mapping-function for the substitution strings of a rewriting + rule via one of the following constructs:</p> + + <blockquote> + <strong><code>${</code> <em>MapName</em> <code>:</code> + <em>LookupKey</em> <code>}</code><br /> + <code>${</code> <em>MapName</em> <code>:</code> + <em>LookupKey</em> <code>|</code> <em>DefaultValue</em> + <code>}</code></strong> + </blockquote> + When such a construct occurs the map <em>MapName</em> is + consulted and the key <em>LookupKey</em> is looked-up. If the + key is found, the map-function construct is substituted by + <em>SubstValue</em>. If the key is not found then it is + substituted by <em>DefaultValue</em> or by the empty string + if no <em>DefaultValue</em> was specified. + + <p>The following combinations for <em>MapType</em> and + <em>MapSource</em> can be used:</p> + + <ul> + <li> + <strong>Standard Plain Text</strong><br /> + MapType: <code>txt</code>, MapSource: Unix filesystem + path to valid regular file + + <p>This is the standard rewriting map feature where the + <em>MapSource</em> is a plain ASCII file containing + either blank lines, comment lines (starting with a '#' + character) or pairs like the following - one per + line.</p> + + <blockquote> + <strong><em>MatchingKey</em> + <em>SubstValue</em></strong> + </blockquote> + + <p>Example:</p> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +## +## map.txt -- rewriting map +## + +Ralf.S.Engelschall rse # Bastard Operator From Hell +Mr.Joe.Average joe # Mr. Average +</pre> + </td> + </tr> + </table> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +RewriteMap real-to-user txt:/path/to/file/map.txt +</pre> + </td> + </tr> + </table> + </li> + + <li> + <strong>Randomized Plain Text</strong><br /> + MapType: <code>rnd</code>, MapSource: Unix filesystem + path to valid regular file + + <p>This is identical to the Standard Plain Text variant + above but with a special post-processing feature: After + looking up a value it is parsed according to contained + ``<code>|</code>'' characters which have the meaning of + ``or''. In other words they indicate a set of + alternatives from which the actual returned value is + chosen randomly. Although this sounds crazy and useless, + it was actually designed for load balancing in a reverse + proxy situation where the looked up values are server + names. Example:</p> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +## +## map.txt -- rewriting map +## + +static www1|www2|www3|www4 +dynamic www5|www6 +</pre> + </td> + </tr> + </table> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +RewriteMap servers rnd:/path/to/file/map.txt +</pre> + </td> + </tr> + </table> + </li> + + <li> + <strong>Hash File</strong><br /> + MapType: <code>dbm</code>, MapSource: Unix filesystem + path to valid regular file + + <p>Here the source is a binary NDBM format file + containing the same contents as a <em>Plain Text</em> + format file, but in a special representation which is + optimized for really fast lookups. You can create such a + file with any NDBM tool or with the following Perl + script:</p> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +#!/path/to/bin/perl +## +## txt2dbm -- convert txt map to dbm format +## + +use NDBM_File; +use Fcntl; + +($txtmap, $dbmmap) = @ARGV; + +open(TXT, "<$txtmap") or die "Couldn't open $txtmap!\n"; +tie (%DB, 'NDBM_File', $dbmmap,O_RDWR|O_TRUNC|O_CREAT, 0644) or die "Couldn't create $dbmmap!\n"; + +while (<TXT>) { + next if (/^\s*#/ or /^\s*$/); + $DB{$1} = $2 if (/^\s*(\S+)\s+(\S+)/); +} + +untie %DB; +close(TXT); +</pre> + </td> + </tr> + </table> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +$ txt2dbm map.txt map.db +</pre> + </td> + </tr> + </table> + </li> + + <li> + <strong>Internal Function</strong><br /> + MapType: <code>int</code>, MapSource: Internal Apache + function + + <p>Here the source is an internal Apache function. + Currently you cannot create your own, but the following + functions already exists:</p> + + <ul> + <li><strong>toupper</strong>:<br /> + Converts the looked up key to all upper case.</li> + + <li><strong>tolower</strong>:<br /> + Converts the looked up key to all lower case.</li> + + <li><strong>escape</strong>:<br /> + Translates special characters in the looked up key to + hex-encodings.</li> + + <li><strong>unescape</strong>:<br /> + Translates hex-encodings in the looked up key back to + special characters.</li> + </ul> + </li> + + <li> + <strong>External Rewriting Program</strong><br /> + MapType: <code>prg</code>, MapSource: Unix filesystem + path to valid regular file + + <p>Here the source is a program, not a map file. To + create it you can use the language of your choice, but + the result has to be a executable (<em>i.e.</em>, either + object-code or a script with the magic cookie trick + '<code>#!/path/to/interpreter</code>' as the first + line).</p> + + <p>This program is started once at startup of the Apache + servers and then communicates with the rewriting engine + over its <code>stdin</code> and <code>stdout</code> + file-handles. For each map-function lookup it will + receive the key to lookup as a newline-terminated string + on <code>stdin</code>. It then has to give back the + looked-up value as a newline-terminated string on + <code>stdout</code> or the four-character string + ``<code>NULL</code>'' if it fails (<em>i.e.</em>, there + is no corresponding value for the given key). A trivial + program which will implement a 1:1 map (<em>i.e.</em>, + key == value) could be:</p> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +#!/usr/bin/perl +$| = 1; +while (<STDIN>) { + # ...put here any transformations or lookups... + print $_; +} +</pre> + </td> + </tr> + </table> + + <p>But be very careful:<br /> + </p> + + <ol> + <li>``<em>Keep it simple, stupid</em>'' (KISS), because + if this program hangs it will hang the Apache server + when the rule occurs.</li> + + <li>Avoid one common mistake: never do buffered I/O on + <code>stdout</code>! This will cause a deadloop! Hence + the ``<code>$|=1</code>'' in the above example...</li> + + <li>Use the <samp>RewriteLock</samp> directive to + define a lockfile mod_rewrite can use to synchronize + the communication to the program. By default no such + synchronization takes place.</li> + </ol> + </li> + </ul> + The <code>RewriteMap</code> directive can occur more than + once. For each mapping-function use one + <code>RewriteMap</code> directive to declare its rewriting + mapfile. While you cannot <strong>declare</strong> a map in + per-directory context it is of course possible to + <strong>use</strong> this map in per-directory context. + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Note:</strong> For plain text and DBM format + files the looked-up keys are cached in-core until the + <code>mtime</code> of the mapfile changes or the server + does a restart. This way you can have map-functions in + rules which are used for <strong>every</strong> request. + This is no problem, because the external lookup only + happens once!</td> + </tr> + </table> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteBase" + name="RewriteBase">RewriteBase</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RewriteBase + <em>URL-path</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>default is the + physical directory path</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> directory, + .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> + <em>FileInfo</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache + 1.2<br /> + + + <p>The <code>RewriteBase</code> directive explicitly sets the + base URL for per-directory rewrites. As you will see below, + <code>RewriteRule</code> can be used in per-directory config + files (<code>.htaccess</code>). There it will act locally, + <em>i.e.</em>, the local directory prefix is stripped at this + stage of processing and your rewriting rules act only on the + remainder. At the end it is automatically added back to the + path.</p> + + <p>When a substitution occurs for a new URL, this module has + to re-inject the URL into the server processing. To be able + to do this it needs to know what the corresponding URL-prefix + or URL-base is. By default this prefix is the corresponding + filepath itself. <strong>But at most websites URLs are NOT + directly related to physical filename paths, so this + assumption will usually be wrong!</strong> There you have to + use the <code>RewriteBase</code> directive to specify the + correct URL-prefix.</p> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Notice:</strong> If your webserver's URLs are + <strong>not</strong> directly related to physical file + paths, you have to use <code>RewriteBase</code> in every + <code>.htaccess</code> files where you want to use + <code>RewriteRule</code> directives.</td> + </tr> + </table> + + <p><strong>Example:</strong></p> + + <blockquote> + Assume the following per-directory config file: + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +# +# /abc/def/.htaccess -- per-dir config file for directory /abc/def +# Remember: /abc/def is the physical path of /xyz, <em>i.e.</em>, the server +# has a 'Alias /xyz /abc/def' directive <em>e.g.</em> +# + +RewriteEngine On + +# let the server know that we were reached via /xyz and not +# via the physical path prefix /abc/def +RewriteBase /xyz + +# now the rewriting rules +RewriteRule ^oldstuff\.html$ newstuff.html +</pre> + </td> + </tr> + </table> + + <p>In the above example, a request to + <code>/xyz/oldstuff.html</code> gets correctly rewritten to + the physical file <code>/abc/def/newstuff.html</code>.</p> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td> + <font size="-1"><strong>Note - For Apache + hackers:</strong><br /> + The following list gives detailed information about + the internal processing steps:</font> +<pre> +<font size="-1">Request: + /xyz/oldstuff.html + +Internal Processing: + /xyz/oldstuff.html -> /abc/def/oldstuff.html (per-server Alias) + /abc/def/oldstuff.html -> /abc/def/newstuff.html (per-dir RewriteRule) + /abc/def/newstuff.html -> /xyz/newstuff.html (per-dir RewriteBase) + /xyz/newstuff.html -> /abc/def/newstuff.html (per-server Alias) + +Result: + /abc/def/newstuff.html +</font> +</pre> + <font size="-1">This seems very complicated but is + the correct Apache internal processing, because the + per-directory rewriting comes too late in the + process. So, when it occurs the (rewritten) request + has to be re-injected into the Apache kernel! BUT: + While this seems like a serious overhead, it really + isn't, because this re-injection happens fully + internally to the Apache server and the same + procedure is used by many other operations inside + Apache. So, you can be sure the design and + implementation is correct.</font> + </td> + </tr> + </table> + </blockquote> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteCond" + name="RewriteCond">RewriteCond</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RewriteCond + <em>TestString</em> <em>CondPattern</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, + virtual host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> + <em>FileInfo</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.2 + (partially), Apache 1.3<br /> + + + <p>The <code>RewriteCond</code> directive defines a rule + condition. Precede a <code>RewriteRule</code> directive with + one or more <code>RewriteCond</code> directives. The + following rewriting rule is only used if its pattern matches + the current state of the URI <strong>and</strong> if these + additional conditions apply too.</p> + + <p><em>TestString</em> is a string which can contains the + following expanded constructs in addition to plain text:</p> + + <ul> + <li> + <strong>RewriteRule backreferences</strong>: These are + backreferences of the form + + <blockquote> + <strong><code>$N</code></strong> + </blockquote> + (0 <= N <= 9) which provide access to the grouped + parts (parenthesis!) of the pattern from the + corresponding <code>RewriteRule</code> directive (the one + following the current bunch of <code>RewriteCond</code> + directives). + </li> + + <li> + <strong>RewriteCond backreferences</strong>: These are + backreferences of the form + + <blockquote> + <strong><code>%N</code></strong> + </blockquote> + (1 <= N <= 9) which provide access to the grouped + parts (parentheses!) of the pattern from the last matched + <code>RewriteCond</code> directive in the current bunch + of conditions. + </li> + + <li> + <strong>RewriteMap expansions</strong>: These are + expansions of the form + + <blockquote> + <strong><code>${mapname:key|default}</code></strong> + </blockquote> + See <a href="#mapfunc">the documentation for + RewriteMap</a> for more details. + </li> + + <li> + <strong>Server-Variables</strong>: These are variables of + the form + + <blockquote> + <strong><code>%{</code> <em>NAME_OF_VARIABLE</em> + <code>}</code></strong> + </blockquote> + where <em>NAME_OF_VARIABLE</em> can be a string taken + from the following list: + + <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5"> + <tr> + <td valign="TOP"> + <strong>HTTP headers:</strong> + + <p><font size="-1">HTTP_USER_AGENT<br /> + HTTP_REFERER<br /> + HTTP_COOKIE<br /> + HTTP_FORWARDED<br /> + HTTP_HOST<br /> + HTTP_PROXY_CONNECTION<br /> + HTTP_ACCEPT<br /> + </font></p> + </td> + + <td valign="TOP"> + <strong>connection & request:</strong> + + <p><font size="-1">REMOTE_ADDR<br /> + REMOTE_HOST<br /> + REMOTE_USER<br /> + REMOTE_IDENT<br /> + REQUEST_METHOD<br /> + SCRIPT_FILENAME<br /> + PATH_INFO<br /> + QUERY_STRING<br /> + AUTH_TYPE<br /> + </font></p> + </td> + </tr> + + <tr> + <td valign="TOP"> + <strong>server internals:</strong> + + <p><font size="-1">DOCUMENT_ROOT<br /> + SERVER_ADMIN<br /> + SERVER_NAME<br /> + SERVER_ADDR<br /> + SERVER_PORT<br /> + SERVER_PROTOCOL<br /> + SERVER_SOFTWARE<br /> + </font></p> + </td> + + <td valign="TOP"> + <strong>system stuff:</strong> + + <p><font size="-1">TIME_YEAR<br /> + TIME_MON<br /> + TIME_DAY<br /> + TIME_HOUR<br /> + TIME_MIN<br /> + TIME_SEC<br /> + TIME_WDAY<br /> + TIME<br /> + </font></p> + </td> + + <td valign="TOP"> + <strong>specials:</strong> + + <p><font size="-1">API_VERSION<br /> + THE_REQUEST<br /> + REQUEST_URI<br /> + REQUEST_FILENAME<br /> + IS_SUBREQ<br /> + </font></p> + </td> + </tr> + </table> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td> + <p><strong>Notice:</strong> These variables all + correspond to the similarly named HTTP + MIME-headers, C variables of the Apache server or + <code>struct tm</code> fields of the Unix system. + Most are documented elsewhere in the Manual or in + the CGI specification. Those that are special to + mod_rewrite include:</p> + + <dl> + <dt><code>IS_SUBREQ</code></dt> + + <dd>Will contain the text "true" if the request + currently being processed is a sub-request, + "false" otherwise. Sub-requests may be generated + by modules that need to resolve additional files + or URIs in order to complete their tasks.</dd> + + <dt><code>API_VERSION</code></dt> + + <dd>This is the version of the Apache module API + (the internal interface between server and + module) in the current httpd build, as defined in + include/ap_mmn.h. The module API version + corresponds to the version of Apache in use (in + the release version of Apache 1.3.14, for + instance, it is 19990320:10), but is mainly of + interest to module authors.</dd> + + <dt><code>THE_REQUEST</code></dt> + + <dd>The full HTTP request line sent by the + browser to the server (e.g., "<code>GET + /index.html HTTP/1.1</code>"). This does not + include any additional headers sent by the + browser.</dd> + + <dt><code>REQUEST_URI</code></dt> + + <dd>The resource requested in the HTTP request + line. (In the example above, this would be + "/index.html".)</dd> + + <dt><code>REQUEST_FILENAME</code></dt> + + <dd>The full local filesystem path to the file or + script matching the request.</dd> + </dl> + </td> + </tr> + </table> + </li> + </ul> + + <p>Special Notes:</p> + + <ol> + <li>The variables SCRIPT_FILENAME and REQUEST_FILENAME + contain the same value, <em>i.e.</em>, the value of the + <code>filename</code> field of the internal + <code>request_rec</code> structure of the Apache server. + The first name is just the commonly known CGI variable name + while the second is the consistent counterpart to + REQUEST_URI (which contains the value of the + <code>uri</code> field of <code>request_rec</code>).</li> + + <li>There is the special format: + <code>%{ENV:variable}</code> where <em>variable</em> can be + any environment variable. This is looked-up via internal + Apache structures and (if not found there) via + <code>getenv()</code> from the Apache server process.</li> + + <li>There is the special format: + <code>%{HTTP:header}</code> where <em>header</em> can be + any HTTP MIME-header name. This is looked-up from the HTTP + request. Example: <code>%{HTTP:Proxy-Connection}</code> is + the value of the HTTP header + ``<code>Proxy-Connection:</code>''.</li> + + <li>There is the special format + <code>%{LA-U:variable}</code> for look-aheads which perform + an internal (URL-based) sub-request to determine the final + value of <em>variable</em>. Use this when you want to use a + variable for rewriting which is actually set later in an + API phase and thus is not available at the current stage. + For instance when you want to rewrite according to the + <code>REMOTE_USER</code> variable from within the + per-server context (<code>httpd.conf</code> file) you have + to use <code>%{LA-U:REMOTE_USER}</code> because this + variable is set by the authorization phases which come + <em>after</em> the URL translation phase where mod_rewrite + operates. On the other hand, because mod_rewrite implements + its per-directory context (<code>.htaccess</code> file) via + the Fixup phase of the API and because the authorization + phases come <em>before</em> this phase, you just can use + <code>%{REMOTE_USER}</code> there.</li> + + <li>There is the special format: + <code>%{LA-F:variable}</code> which performs an internal + (filename-based) sub-request to determine the final value + of <em>variable</em>. Most of the time this is the same as + LA-U above.</li> + </ol> + + <p><em>CondPattern</em> is the condition pattern, + <em>i.e.</em>, a regular expression which is applied to the + current instance of the <em>TestString</em>, <em>i.e.</em>, + <em>TestString</em> is evaluated and then matched against + <em>CondPattern</em>.</p> + + <p><strong>Remember:</strong> <em>CondPattern</em> is a + standard <em>Extended Regular Expression</em> with some + additions:</p> + + <ol> + <li>You can prefix the pattern string with a + '<code>!</code>' character (exclamation mark) to specify a + <strong>non</strong>-matching pattern.</li> + + <li> + There are some special variants of <em>CondPatterns</em>. + Instead of real regular expression strings you can also + use one of the following: + + <ul> + <li>'<strong><CondPattern</strong>' (is lexically + lower)<br /> + Treats the <em>CondPattern</em> as a plain string and + compares it lexically to <em>TestString</em>. True if + <em>TestString</em> is lexically lower than + <em>CondPattern</em>.</li> + + <li>'<strong>>CondPattern</strong>' (is lexically + greater)<br /> + Treats the <em>CondPattern</em> as a plain string and + compares it lexically to <em>TestString</em>. True if + <em>TestString</em> is lexically greater than + <em>CondPattern</em>.</li> + + <li>'<strong>=CondPattern</strong>' (is lexically + equal)<br /> + Treats the <em>CondPattern</em> as a plain string and + compares it lexically to <em>TestString</em>. True if + <em>TestString</em> is lexically equal to + <em>CondPattern</em>, i.e the two strings are exactly + equal (character by character). If <em>CondPattern</em> + is just <samp>""</samp> (two quotation marks) this + compares <em>TestString</em> to the empty string.</li> + + <li>'<strong>-d</strong>' (is + <strong>d</strong>irectory)<br /> + Treats the <em>TestString</em> as a pathname and tests + if it exists and is a directory.</li> + + <li>'<strong>-f</strong>' (is regular + <strong>f</strong>ile)<br /> + Treats the <em>TestString</em> as a pathname and tests + if it exists and is a regular file.</li> + + <li>'<strong>-s</strong>' (is regular file with + <strong>s</strong>ize)<br /> + Treats the <em>TestString</em> as a pathname and tests + if it exists and is a regular file with size greater + than zero.</li> + + <li>'<strong>-l</strong>' (is symbolic + <strong>l</strong>ink)<br /> + Treats the <em>TestString</em> as a pathname and tests + if it exists and is a symbolic link.</li> + + <li>'<strong>-F</strong>' (is existing file via + subrequest)<br /> + Checks if <em>TestString</em> is a valid file and + accessible via all the server's currently-configured + access controls for that path. This uses an internal + subrequest to determine the check, so use it with care + because it decreases your servers performance!</li> + + <li>'<strong>-U</strong>' (is existing URL via + subrequest)<br /> + Checks if <em>TestString</em> is a valid URL and + accessible via all the server's currently-configured + access controls for that path. This uses an internal + subrequest to determine the check, so use it with care + because it decreases your server's performance!</li> + </ul> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Notice:</strong> All of these tests can + also be prefixed by an exclamation mark ('!') to + negate their meaning.</td> + </tr> + </table> + </li> + </ol> + + <p>Additionally you can set special flags for + <em>CondPattern</em> by appending</p> + + <blockquote> + <strong><code>[</code><em>flags</em><code>]</code></strong> + </blockquote> + as the third argument to the <code>RewriteCond</code> + directive. <em>Flags</em> is a comma-separated list of the + following flags: + + <ul> + <li>'<strong><code>nocase|NC</code></strong>' + (<strong>n</strong>o <strong>c</strong>ase)<br /> + This makes the test case-insensitive, <em>i.e.</em>, there + is no difference between 'A-Z' and 'a-z' both in the + expanded <em>TestString</em> and the <em>CondPattern</em>. + This flag is effective only for comparisons between + <em>TestString</em> and <em>CondPattern</em>. It has no + effect on filesystem and subrequest checks.</li> + + <li> + '<strong><code>ornext|OR</code></strong>' + (<strong>or</strong> next condition)<br /> + Use this to combine rule conditions with a local OR + instead of the implicit AND. Typical example: + + <blockquote> +<pre> +RewriteCond %{REMOTE_HOST} ^host1.* [OR] +RewriteCond %{REMOTE_HOST} ^host2.* [OR] +RewriteCond %{REMOTE_HOST} ^host3.* +RewriteRule ...some special stuff for any of these hosts... +</pre> + </blockquote> + Without this flag you would have to write the cond/rule + three times. + </li> + </ul> + + <p><strong>Example:</strong></p> + + <blockquote> + To rewrite the Homepage of a site according to the + ``<code>User-Agent:</code>'' header of the request, you can + use the following: + + <blockquote> +<pre> +RewriteCond %{HTTP_USER_AGENT} ^Mozilla.* +RewriteRule ^/$ /homepage.max.html [L] + +RewriteCond %{HTTP_USER_AGENT} ^Lynx.* +RewriteRule ^/$ /homepage.min.html [L] + +RewriteRule ^/$ /homepage.std.html [L] +</pre> + </blockquote> + Interpretation: If you use Netscape Navigator as your + browser (which identifies itself as 'Mozilla'), then you + get the max homepage, which includes Frames, <em>etc.</em> + If you use the Lynx browser (which is Terminal-based), then + you get the min homepage, which contains no images, no + tables, <em>etc.</em> If you use any other browser you get + the standard homepage. + </blockquote> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteRule" + name="RewriteRule">RewriteRule</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> RewriteRule + <em>Pattern</em> <em>Substitution</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>None</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, + virtual host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> + <em>FileInfo</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_rewrite.c<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.2 + (partially), Apache 1.3<br /> + + + <p>The <code>RewriteRule</code> directive is the real + rewriting workhorse. The directive can occur more than once. + Each directive then defines one single rewriting rule. The + <strong>definition order</strong> of these rules is + <strong>important</strong>, because this order is used when + applying the rules at run-time.</p> + + <p><a id="patterns" name="patterns"><em>Pattern</em></a> can + be (for Apache 1.1.x a System V8 and for Apache 1.2.x and + later a POSIX) <a id="regexp" name="regexp">regular + expression</a> which gets applied to the current URL. Here + ``current'' means the value of the URL when this rule gets + applied. This may not be the originally requested URL, + because any number of rules may already + have matched and made alterations to it.</p> + + <p>Some hints about the syntax of regular expressions:</p> + + <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5"> + <tr> + <td valign="TOP"> +<pre> +<strong>Text:</strong> + <strong><code>.</code></strong> Any single character + <strong><code>[</code></strong>chars<strong><code>]</code></strong> Character class: One of chars + <strong><code>[^</code></strong>chars<strong><code>]</code></strong> Character class: None of chars + text1<strong><code>|</code></strong>text2 Alternative: text1 or text2 + +<strong>Quantifiers:</strong> + <strong><code>?</code></strong> 0 or 1 of the preceding text + <strong><code>*</code></strong> 0 or N of the preceding text (N > 0) + <strong><code>+</code></strong> 1 or N of the preceding text (N > 1) + +<strong>Grouping:</strong> + <strong><code>(</code></strong>text<strong><code>)</code></strong> Grouping of text + (either to set the borders of an alternative or + for making backreferences where the <strong>N</strong>th group can + be used on the RHS of a RewriteRule with <code>$</code><strong>N</strong>) + +<strong>Anchors:</strong> + <strong><code>^</code></strong> Start of line anchor + <strong><code>$</code></strong> End of line anchor + +<strong>Escaping:</strong> + <strong><code>\</code></strong>char escape that particular char + (for instance to specify the chars "<code>.[]()</code>" <em>etc.</em>) +</pre> + </td> + </tr> + </table> + + <p>For more information about regular expressions either have + a look at your local regex(3) manpage or its + <code>src/regex/regex.3</code> copy in the Apache 1.3 + distribution. If you are interested in more detailed + information about regular expressions and their variants + (POSIX regex, Perl regex, <em>etc.</em>) have a look at the + following dedicated book on this topic:</p> + + <blockquote> + <em>Mastering Regular Expressions</em><br /> + Jeffrey E.F. Friedl<br /> + Nutshell Handbook Series<br /> + O'Reilly & Associates, Inc. 1997<br /> + ISBN 1-56592-257-3<br /> + </blockquote> + + <p>Additionally in mod_rewrite the NOT character + ('<code>!</code>') is a possible pattern prefix. This gives + you the ability to negate a pattern; to say, for instance: + ``<em>if the current URL does <strong>NOT</strong> match this + pattern</em>''. This can be used for exceptional cases, where + it is easier to match the negative pattern, or as a last + default rule.</p> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Notice:</strong> When using the NOT character + to negate a pattern you cannot have grouped wildcard + parts in the pattern. This is impossible because when the + pattern does NOT match, there are no contents for the + groups. In consequence, if negated patterns are used, you + cannot use <code>$N</code> in the substitution + string!</td> + </tr> + </table> + + <p><a id="rhs" name="rhs"><em>Substitution</em></a> of a + rewriting rule is the string which is substituted for (or + replaces) the original URL for which <em>Pattern</em> + matched. Beside plain text you can use</p> + + <ol> + <li>back-references <code>$N</code> to the RewriteRule + pattern</li> + + <li>back-references <code>%N</code> to the last matched + RewriteCond pattern</li> + + <li>server-variables as in rule condition test-strings + (<code>%{VARNAME}</code>)</li> + + <li><a href="#mapfunc">mapping-function</a> calls + (<code>${mapname:key|default}</code>)</li> + </ol> + Back-references are <code>$</code><strong>N</strong> + (<strong>N</strong>=0..9) identifiers which will be replaced + by the contents of the <strong>N</strong>th group of the + matched <em>Pattern</em>. The server-variables are the same + as for the <em>TestString</em> of a <code>RewriteCond</code> + directive. The mapping-functions come from the + <code>RewriteMap</code> directive and are explained there. + These three types of variables are expanded in the order of + the above list. + + <p>As already mentioned above, all the rewriting rules are + applied to the <em>Substitution</em> (in the order of + definition in the config file). The URL is <strong>completely + replaced</strong> by the <em>Substitution</em> and the + rewriting process goes on until there are no more rules + unless explicitly terminated by a + <code><strong>L</strong></code> flag - see below.</p> + + <p>There is a special substitution string named + '<code>-</code>' which means: <strong>NO + substitution</strong>! Sounds silly? No, it is useful to + provide rewriting rules which <strong>only</strong> match + some URLs but do no substitution, <em>e.g.</em>, in + conjunction with the <strong>C</strong> (chain) flag to be + able to have more than one pattern to be applied before a + substitution occurs.</p> + + <p>One more note: You can even create URLs in the + substitution string containing a query string part. Just use + a question mark inside the substitution string to indicate + that the following stuff should be re-injected into the + QUERY_STRING. When you want to erase an existing query + string, end the substitution string with just the question + mark.</p> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Note</strong>: There is a special feature: + When you prefix a substitution field with + <code>http://</code><em>thishost</em>[<em>:thisport</em>] + then <strong>mod_rewrite</strong> automatically strips it + out. This auto-reduction on implicit external redirect + URLs is a useful and important feature when used in + combination with a mapping-function which generates the + hostname part. Have a look at the first example in the + example section below to understand this.</td> + </tr> + </table> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Remember:</strong> An unconditional external + redirect to your own server will not work with the prefix + <code>http://thishost</code> because of this feature. To + achieve such a self-redirect, you have to use the + <strong>R</strong>-flag (see below).</td> + </tr> + </table> + + <p>Additionally you can set special flags for + <em>Substitution</em> by appending</p> + + <blockquote> + <strong><code>[</code><em>flags</em><code>]</code></strong> + </blockquote> + as the third argument to the <code>RewriteRule</code> + directive. <em>Flags</em> is a comma-separated list of the + following flags: + + <ul> + <li> + '<strong><code>redirect|R</code> + [=<em>code</em>]</strong>' (force <a id="redirect" + name="redirect"><strong>r</strong>edirect</a>)<br /> + Prefix <em>Substitution</em> with + <code>http://thishost[:thisport]/</code> (which makes the + new URL a URI) to force a external redirection. If no + <em>code</em> is given a HTTP response of 302 (MOVED + TEMPORARILY) is used. If you want to use other response + codes in the range 300-400 just specify them as a number + or use one of the following symbolic names: + <code>temp</code> (default), <code>permanent</code>, + <code>seeother</code>. Use it for rules which should + canonicalize the URL and give it back to the client, + <em>e.g.</em>, translate ``<code>/~</code>'' into + ``<code>/u/</code>'' or always append a slash to + <code>/u/</code><em>user</em>, etc.<br /> + + + <p><strong>Note:</strong> When you use this flag, make + sure that the substitution field is a valid URL! If not, + you are redirecting to an invalid location! And remember + that this flag itself only prefixes the URL with + <code>http://thishost[:thisport]/</code>, rewriting + continues. Usually you also want to stop and do the + redirection immediately. To stop the rewriting you also + have to provide the 'L' flag.</p> + </li> + + <li>'<strong><code>forbidden|F</code></strong>' (force URL + to be <strong>f</strong>orbidden)<br /> + This forces the current URL to be forbidden, + <em>i.e.</em>, it immediately sends back a HTTP response of + 403 (FORBIDDEN). Use this flag in conjunction with + appropriate RewriteConds to conditionally block some + URLs.</li> + + <li>'<strong><code>gone|G</code></strong>' (force URL to be + <strong>g</strong>one)<br /> + This forces the current URL to be gone, <em>i.e.</em>, it + immediately sends back a HTTP response of 410 (GONE). Use + this flag to mark pages which no longer exist as gone.</li> + + <li> + '<strong><code>proxy|P</code></strong>' (force + <strong>p</strong>roxy)<br /> + This flag forces the substitution part to be internally + forced as a proxy request and immediately (<em>i.e.</em>, + rewriting rule processing stops here) put through the <a + href="mod_proxy.html">proxy module</a>. You have to make + sure that the substitution string is a valid URI + (<em>e.g.</em>, typically starting with + <code>http://</code><em>hostname</em>) which can be + handled by the Apache proxy module. If not you get an + error from the proxy module. Use this flag to achieve a + more powerful implementation of the <a + href="mod_proxy.html#proxypass">ProxyPass</a> directive, + to map some remote stuff into the namespace of the local + server. + + <p>Notice: To use this functionality make sure you have + the proxy module compiled into your Apache server + program. If you don't know please check whether + <code>mod_proxy.c</code> is part of the ``<code>httpd + -l</code>'' output. If yes, this functionality is + available to mod_rewrite. If not, then you first have to + rebuild the ``<code>httpd</code>'' program with mod_proxy + enabled.</p> + </li> + + <li>'<strong><code>last|L</code></strong>' + (<strong>l</strong>ast rule)<br /> + Stop the rewriting process here and don't apply any more + rewriting rules. This corresponds to the Perl + <code>last</code> command or the <code>break</code> command + from the C language. Use this flag to prevent the currently + rewritten URL from being rewritten further by following + rules. For example, use it to rewrite the root-path URL + ('<code>/</code>') to a real one, <em>e.g.</em>, + '<code>/e/www/</code>'.</li> + + <li>'<strong><code>next|N</code></strong>' + (<strong>n</strong>ext round)<br /> + Re-run the rewriting process (starting again with the + first rewriting rule). Here the URL to match is again not + the original URL but the URL from the last rewriting rule. + This corresponds to the Perl <code>next</code> command or + the <code>continue</code> command from the C language. Use + this flag to restart the rewriting process, <em>i.e.</em>, + to immediately go to the top of the loop.<br /> + <strong>But be careful not to create an infinite + loop!</strong></li> + + <li>'<strong><code>chain|C</code></strong>' + (<strong>c</strong>hained with next rule)<br /> + This flag chains the current rule with the next rule + (which itself can be chained with the following rule, + <em>etc.</em>). This has the following effect: if a rule + matches, then processing continues as usual, <em>i.e.</em>, + the flag has no effect. If the rule does + <strong>not</strong> match, then all following chained + rules are skipped. For instance, use it to remove the + ``<code>.www</code>'' part inside a per-directory rule set + when you let an external redirect happen (where the + ``<code>.www</code>'' part should not to occur!).</li> + + <li> + '<strong><code>type|T</code></strong>=<em>MIME-type</em>' + (force MIME <strong>t</strong>ype)<br /> + Force the MIME-type of the target file to be + <em>MIME-type</em>. For instance, this can be used to + simulate the <code>mod_alias</code> directive + <code>ScriptAlias</code> which internally forces all files + inside the mapped directory to have a MIME type of + ``<code>application/x-httpd-cgi</code>''.</li> + + <li> + '<strong><code>nosubreq|NS</code></strong>' (used only if + <strong>n</strong>o internal + <strong>s</strong>ub-request)<br /> + This flag forces the rewriting engine to skip a + rewriting rule if the current request is an internal + sub-request. For instance, sub-requests occur internally + in Apache when <code>mod_include</code> tries to find out + information about possible directory default files + (<code>index.xxx</code>). On sub-requests it is not + always useful and even sometimes causes a failure to if + the complete set of rules are applied. Use this flag to + exclude some rules.<br /> + + + <p>Use the following rule for your decision: whenever you + prefix some URLs with CGI-scripts to force them to be + processed by the CGI-script, the chance is high that you + will run into problems (or even overhead) on + sub-requests. In these cases, use this flag.</p> + </li> + + <li>'<strong><code>nocase|NC</code></strong>' + (<strong>n</strong>o <strong>c</strong>ase)<br /> + This makes the <em>Pattern</em> case-insensitive, + <em>i.e.</em>, there is no difference between 'A-Z' and + 'a-z' when <em>Pattern</em> is matched against the current + URL.</li> + + <li>'<strong><code>qsappend|QSA</code></strong>' + (<strong>q</strong>uery <strong>s</strong>tring + <strong>a</strong>ppend)<br /> + This flag forces the rewriting engine to append a query + string part in the substitution string to the existing one + instead of replacing it. Use this when you want to add more + data to the query string via a rewrite rule.</li> + + <li> + '<strong><code>noescape|NE</code></strong>' + (<strong>n</strong>o URI <strong>e</strong>scaping of + output)<br /> + This flag keeps mod_rewrite from applying the usual URI + escaping rules to the result of a rewrite. Ordinarily, + special characters (such as '%', '$', ';', and so on) + will be escaped into their hexcode equivalents ('%25', + '%24', and '%3B', respectively); this flag prevents this + from being done. This allows percent symbols to appear in + the output, as in +<pre> + RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] + +</pre> + which would turn '<code>/foo/zed</code>' into a safe + request for '<code>/bar?arg=P1=zed</code>'. + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Notice:</strong> The + <code>noescape</code> flag is only available with + Apache 1.3.20 and later versions.</td> + </tr> + </table> + </li> + + <li> + '<strong><code>passthrough|PT</code></strong>' + (<strong>p</strong>ass <strong>t</strong>hrough to next + handler)<br /> + This flag forces the rewriting engine to set the + <code>uri</code> field of the internal + <code>request_rec</code> structure to the value of the + <code>filename</code> field. This flag is just a hack to + be able to post-process the output of + <code>RewriteRule</code> directives by + <code>Alias</code>, <code>ScriptAlias</code>, + <code>Redirect</code>, <em>etc.</em> directives from + other URI-to-filename translators. A trivial example to + show the semantics: If you want to rewrite + <code>/abc</code> to <code>/def</code> via the rewriting + engine of <code>mod_rewrite</code> and then + <code>/def</code> to <code>/ghi</code> with + <code>mod_alias</code>: +<pre> + RewriteRule ^/abc(.*) /def$1 [PT] + Alias /def /ghi + +</pre> + If you omit the <code>PT</code> flag then + <code>mod_rewrite</code> will do its job fine, + <em>i.e.</em>, it rewrites <code>uri=/abc/...</code> to + <code>filename=/def/...</code> as a full API-compliant + URI-to-filename translator should do. Then + <code>mod_alias</code> comes and tries to do a + URI-to-filename transition which will not work. + + <p>Note: <strong>You have to use this flag if you want to + intermix directives of different modules which contain + URL-to-filename translators</strong>. The typical example + is the use of <code>mod_alias</code> and + <code>mod_rewrite</code>..</p> + </li> + + <li>'<strong><code>skip|S</code></strong>=<em>num</em>' + (<strong>s</strong>kip next rule(s))<br /> + This flag forces the rewriting engine to skip the next + <em>num</em> rules in sequence when the current rule + matches. Use this to make pseudo if-then-else constructs: + The last rule of the then-clause becomes + <code>skip=N</code> where N is the number of rules in the + else-clause. (This is <strong>not</strong> the same as the + 'chain|C' flag!)</li> + + <li> + '<strong><code>env|E=</code></strong><em>VAR</em>:<em>VAL</em>' + (set <strong>e</strong>nvironment variable)<br /> + This forces an environment variable named <em>VAR</em> to + be set to the value <em>VAL</em>, where <em>VAL</em> can + contain regexp backreferences <code>$N</code> and + <code>%N</code> which will be expanded. You can use this + flag more than once to set more than one variable. The + variables can be later dereferenced in many situations, but + usually from within XSSI (via <code><!--#echo + var="VAR"--></code>) or CGI (<em>e.g.</em> + <code>$ENV{'VAR'}</code>). Additionally you can dereference + it in a following RewriteCond pattern via + <code>%{ENV:VAR}</code>. Use this to strip but remember + information from URLs.</li> + </ul> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td> + <strong>Note:</strong> Never forget that + <em>Pattern</em> is applied to a complete URL in + per-server configuration files. <strong>But in + per-directory configuration files, the per-directory + prefix (which always is the same for a specific + directory!) is automatically <em>removed</em> for the + pattern matching and automatically <em>added</em> after + the substitution has been done.</strong> This feature + is essential for many sorts of rewriting, because + without this prefix stripping you have to match the + parent directory which is not always possible. + + <p>There is one exception: If a substitution string + starts with ``<code>http://</code>'' then the directory + prefix will <strong>not</strong> be added and an + external redirect or proxy throughput (if flag + <strong>P</strong> is used!) is forced!</p> + </td> + </tr> + </table> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>Note:</strong> To enable the rewriting engine + for per-directory configuration files you need to set + ``<code>RewriteEngine On</code>'' in these files + <strong>and</strong> ``<code>Options + FollowSymLinks</code>'' must be enabled. If your + administrator has disabled override of + <code>FollowSymLinks</code> for a user's directory, then + you cannot use the rewriting engine. This restriction is + needed for security reasons.</td> + </tr> + </table> + + <p>Here are all possible substitution combinations and their + meanings:</p> + + <p><strong>Inside per-server configuration + (<code>httpd.conf</code>)<br /> + for request ``<code>GET + /somepath/pathinfo</code>'':</strong><br /> + </p> + + <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5"> + <tr> + <td> +<pre> +<strong>Given Rule</strong> <strong>Resulting Substitution</strong> +---------------------------------------------- ---------------------------------- +^/somepath(.*) otherpath$1 not supported, because invalid! + +^/somepath(.*) otherpath$1 [R] not supported, because invalid! + +^/somepath(.*) otherpath$1 [P] not supported, because invalid! +---------------------------------------------- ---------------------------------- +^/somepath(.*) /otherpath$1 /otherpath/pathinfo + +^/somepath(.*) /otherpath$1 [R] http://thishost/otherpath/pathinfo + via external redirection + +^/somepath(.*) /otherpath$1 [P] not supported, because silly! +---------------------------------------------- ---------------------------------- +^/somepath(.*) http://thishost/otherpath$1 /otherpath/pathinfo + +^/somepath(.*) http://thishost/otherpath$1 [R] http://thishost/otherpath/pathinfo + via external redirection + +^/somepath(.*) http://thishost/otherpath$1 [P] not supported, because silly! +---------------------------------------------- ---------------------------------- +^/somepath(.*) http://otherhost/otherpath$1 http://otherhost/otherpath/pathinfo + via external redirection + +^/somepath(.*) http://otherhost/otherpath$1 [R] http://otherhost/otherpath/pathinfo + via external redirection + (the [R] flag is redundant) + +^/somepath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo + via internal proxy +</pre> + </td> + </tr> + </table> + + <p><strong>Inside per-directory configuration for + <code>/somepath</code><br /> + (<em>i.e.</em>, file <code>.htaccess</code> in dir + <code>/physical/path/to/somepath</code> containing + <code>RewriteBase /somepath</code>)<br /> + for request ``<code>GET + /somepath/localpath/pathinfo</code>'':</strong><br /> + </p> + + <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5"> + <tr> + <td> +<pre> +<strong>Given Rule</strong> <strong>Resulting Substitution</strong> +---------------------------------------------- ---------------------------------- +^localpath(.*) otherpath$1 /somepath/otherpath/pathinfo + +^localpath(.*) otherpath$1 [R] http://thishost/somepath/otherpath/pathinfo + via external redirection + +^localpath(.*) otherpath$1 [P] not supported, because silly! +---------------------------------------------- ---------------------------------- +^localpath(.*) /otherpath$1 /otherpath/pathinfo + +^localpath(.*) /otherpath$1 [R] http://thishost/otherpath/pathinfo + via external redirection + +^localpath(.*) /otherpath$1 [P] not supported, because silly! +---------------------------------------------- ---------------------------------- +^localpath(.*) http://thishost/otherpath$1 /otherpath/pathinfo + +^localpath(.*) http://thishost/otherpath$1 [R] http://thishost/otherpath/pathinfo + via external redirection + +^localpath(.*) http://thishost/otherpath$1 [P] not supported, because silly! +---------------------------------------------- ---------------------------------- +^localpath(.*) http://otherhost/otherpath$1 http://otherhost/otherpath/pathinfo + via external redirection + +^localpath(.*) http://otherhost/otherpath$1 [R] http://otherhost/otherpath/pathinfo + via external redirection + (the [R] flag is redundant) + +^localpath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo + via internal proxy +</pre> + </td> + </tr> + </table> + + <p><strong>Example:</strong></p> + + <blockquote> + We want to rewrite URLs of the form + + <blockquote> + <code>/</code> <em>Language</em> <code>/~</code> + <em>Realname</em> <code>/.../</code> <em>File</em> + </blockquote> + into + + <blockquote> + <code>/u/</code> <em>Username</em> <code>/.../</code> + <em>File</em> <code>.</code> <em>Language</em> + </blockquote> + + <p>We take the rewrite mapfile from above and save it under + <code>/path/to/file/map.txt</code>. Then we only have to + add the following lines to the Apache server configuration + file:</p> + + <blockquote> +<pre> +RewriteLog /path/to/file/rewrite.log +RewriteMap real-to-user txt:/path/to/file/map.txt +RewriteRule ^/([^/]+)/~([^/]+)/(.*)$ /u/${real-to-user:$2|nobody}/$3.$1 +</pre> + </blockquote> + </blockquote> + <hr noshade="noshade" size="1" /> + + <center> + <h1><a id="Miscelleneous" + name="Miscelleneous">Miscellaneous</a></h1> + </center> + <hr noshade="noshade" size="1" /> + + <h2><a id="EnvVar" name="EnvVar">Environment + Variables</a></h2> + This module keeps track of two additional (non-standard) + CGI/SSI environment variables named <code>SCRIPT_URL</code> + and <code>SCRIPT_URI</code>. These contain the + <em>logical</em> Web-view to the current resource, while the + standard CGI/SSI variables <code>SCRIPT_NAME</code> and + <code>SCRIPT_FILENAME</code> contain the <em>physical</em> + System-view. + + <p>Notice: These variables hold the URI/URL <em>as they were + initially requested</em>, <em>i.e.</em>, <em>before</em> any + rewriting. This is important because the rewriting process is + primarily used to rewrite logical URLs to physical + pathnames.</p> + + <p><strong>Example:</strong></p> + + <blockquote> +<pre> +SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html +SCRIPT_FILENAME=/u/rse/.www/index.html +SCRIPT_URL=/u/rse/ +SCRIPT_URI=http://en1.engelschall.com/u/rse/ +</pre> + </blockquote> + <hr noshade="noshade" size="1" /> + + <h2><a id="Solutions" name="Solutions">Practical + Solutions</a></h2> + We also have an <a href="../misc/rewriteguide.html">URL + Rewriting Guide</a> available, which provides a collection of + practical solutions for URL-based problems. There you can + find real-life rulesets and additional information about + mod_rewrite. + </blockquote> + <!--#include virtual="footer.html" --> + <!-- page indentation --> + <!--/%hypertext --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_rewrite.html.html b/htdocs/manual/mod/mod_rewrite.html.html new file mode 100644 index 0000000000..077dc923bd --- /dev/null +++ b/htdocs/manual/mod/mod_rewrite.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_rewrite.html.en" --> + diff --git a/htdocs/manual/mod/mod_rewrite.html.ja.jis b/htdocs/manual/mod/mod_rewrite.html.ja.jis new file mode 100644 index 0000000000..60ca78cf13 --- /dev/null +++ b/htdocs/manual/mod/mod_rewrite.html.ja.jis @@ -0,0 +1,2078 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--%hypertext --> +<!-- mod_rewrite.html --> +<!-- Documentation for the mod_rewrite Apache module --> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache module mod_rewrite</title> + </head> + <!-- English revision: 1.65 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <blockquote> + <!-- page indentation --> + <!--#include virtual="header.html" --> + <br /> + + <h1 align="center">mod_rewrite モジュ・踉札碣鹿粡寂蝟赱齠洲痲筵娼厂ぢ書き換えエンジン</h1> + + <p>このモジュ・踉札襪蓮⇒弋瓩気譴厂鹿粡寂蝟赱齠洲痲筵娼をリアルタイムで書き換えるための、 + ル・踉札襯戞スの書き換えエンジンを提供します。 + </p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯囂竇鍋跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖鱚蜚絎礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪M閼緝粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + rewrite_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>互換性:</strong></a> Apache 1.2 以降で使用可能</p> + <hr noshade="noshade" size="1" /> + <br /> + + <h2>概要</h2> + + <blockquote> + <blockquote> + <blockquote> + <em>`` mod_rewrite のすばらしいところは、 + Sendmail のよう瘢雹な設定性と柔軟性を与えてくれるところだろう瘢雹。 + また、mod_rewrite のよくないところは、 + Sendmail のよう瘢雹な設定性と柔軟性を与えてくれるところだろう瘢雹。''</em> + + <div align="right"> + -- Brian Behlendorf<br /> + Apache Group + </div> + </blockquote> + </blockquote> + </blockquote> + + <blockquote> + <blockquote> + <blockquote> + <em>`` 膨大な設定例やドキュメントがあるにもかかわらず、 + mod_rewrite は黒魔術である。かなりイケてるっぽい黒魔術だが、 + やっぱり黒魔術である。''</em> + + <div align="right"> + -- Brian Moore<br /> + bem@news.cmc.net + </div> + </blockquote> + </blockquote> + </blockquote> + URL を操作するためのスイス製のア・踉札漾ナイフ、mod_rewrite + へよう瘢雹こそ! + + <p>このモジュ・踉札襪蓮ぢ正規表現パ・踉札気亡陲鼎蝟昭粡竚癈鷭п粐Ьぢル・踉札襯戞スの書き換えエンジンを使い、要求された URL + を適宜書き換えます。サポ・踉札箸垢襯襦ルの数、 + および各ル・踉札襪鯏僂垢觝櫃離襦ル魴錣凌瑤棒造呂覆鹿粡寂蝟赱齠洲痲筵娼本当に柔軟でかつ強力な URL 操作メカニズムを提供します。この URL + 操作に先立ち、,里茲逅擦砲い蹐い蹐壁価を行う瘢雹ことができます。 + 例えばサ・踉札佇竸堯超竸堯挽墅ぢヘッダ、タイムスタンプ、 + さらに外部デ・踉札織戞スの検索結果までを髭苳参舛梁丶苳旨として、 + 各錣離侫マットを使った細粒度の URL マッチングを存修任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのモジュ・踉札襪蓮▲機バ単位のコンテキスト + (<code>httpd.conf</code>) およびディレクトリ単位のコンテキスト + (<code>.htaccess</code>) において (PATH-INFO 部分を含む) フル + URL に対する操作を行いますが、 + さらに結果としてクエリ・踉司源麌鮴言垢襪海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼出力された結果を内部のサブプロセスや外部リクエストのリダイレクション、 + さらには内部のプロキシ処理ル・踉札船鵑謀呂垢海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢただ、これらすべての機能や柔軟性が、 + 欠点である複雑さの元にもなっています。なので、このモジュ・踉札鹿粡寂蝟赱齠洲痲筵娼全体を一日程度で覚えよう瘢雹などとは思わないほう瘢雹がいいでしょう瘢雹。 + </p> + + <p>このモジュ・踉札襪更年の 4 月に</p> + + <blockquote> + <a href="http://www.engelschall.com/"><code>Ralf S. + Engelschall</code></a><br /> + <a + href="mailto:rse@engelschall.com"><code>rse@engelschall.com</code></a><br /> + <a + href="http://www.engelschall.com/"><code>www.engelschall.com</code></a> + </blockquote> + + <p>らにより考案されてオリジナルが書かれ、<br /> + 1997 年の 7 月に、The Apache Group + に対して独占的に贈呈されました。</p> + <hr noshade="noshade" size="1" /> + + <h2>目王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑内部処理</strong></p> + + <ul> + <li><a href="#InternalAPI">API フェ・踉札薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■侮鴈瘡咐跂黼槇ル・踉札襯札奪判萢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■侮鴈瘡逮站吶胝▽苳ぢ正規表現の後方参箸椎薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ設定ディレクティブ</strong></p> + + <ul> + <li><a href="#RewriteEngine">RewriteEngine</a></li> + + <li><a href="#RewriteOptions">RewriteOptions</a></li> + + <li><a href="#RewriteLog">RewriteLog</a></li> + + <li><a href="#RewriteLogLevel">RewriteLogLevel</a></li> + + <li><a href="#RewriteLock">RewriteLock</a></li> + + <li><a href="#RewriteMap">RewriteMap</a></li> + + <li><a href="#RewriteBase">RewriteBase</a></li> + + <li><a href="#RewriteCond">RewriteCond</a></li> + + <li><a href="#RewriteRule">RewriteRule</a></li> + </ul> + <strong>その側苳闔胼苳鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就E鉚已鬆環境変数</a></li> + + <li><a href="#Solutions">体薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿闢葹粤就鈿鼈痲紜蝴綵苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉祉緕鬢苳纂蝟昭粡竚癈鷭п粐Ь踉肢右苳殺踉氏篏銓纈釶譬瘢綵銓纈釶譬内部処理</a></h1> + </center> + <hr noshade="noshade" size="1" /> + + <p>このモジュ・踉札襪瞭睇萢呂箸討睚┐任垢鹿粡寂蝟赱齠洲痲筵娼ありがちなミスを避け、また全機能を活用できるよう瘢雹に、 + 平均的ユ・踉札兇紡个靴討皸貪戮論睫世靴討廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就侮鴈瘡双柊瘢綵銓纈釶豼佗▽苳餐佗ぢフェ・踉札王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮まずは、Apache が HTTP リクエストを処理する際に、 + このモジュ・踉札襪海離侫Аズで行う瘢雹ことを理解しておかなければなりません。 + Apache API では、これらの各フェ・踉札困紡个垢襯侫奪鷆,気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼迴籖鱚蜚は以王踉擦瞭鵑弔離侫奪鮖箸い泙挽墅鹿粡寂蝟赱齠洲痲筵娼リクエストが読まれた後でかつすべての認擇呂気譴訌阿忙箸錣譴鹿粡寂蝟赱齠洲痲筵娼孀稔蛹緕瘢変換フック、そして、認撻侫Аズの後で + ディレクトリごとの設定ファイル (<code>.htaccess</code>) + が読まれた後、まだ content ハンドラが有効になる前に起動される + Fixup フックです。 + </p> + + <p>そして、あるリクエストが入って来て、Apache がこれに対応するサ・踉札鹿粡寂蝟赱齠洲痲筵娼ぢ磴靴魯弌チャルサ・踉札を決定した後に、書き換えエンジンは、 + サ・踉札个瓦箸寮瀋蠅鮓気法孀稔蛹緕瘢フェ・踉札困任垢戮討鹿粡寂蝟赱齠洲痲筵娼迴籖鱚蜚ディレクティブの処理を開始します。 + その後多離好謄奪廚魴个萄埜紊離如タディレクトリが見つかった時、 + ディレクトリごとの mod_rewrite 設定ディレクティブが Fixup + フェ・踉札困乃阿気譴泙后鹿粡寂蝟赱齠洲痲筵娼この各々のタイミングの間に特に明らかな違いはないのですが、それでも + mod_rewrite はいずれの時にも各 URL を新しい URL + またはファイル巳苳擦暴颪垢┐泙后海譴呂海佗鹿粡寂蝟赱齠洲痲筵娼がデザインされた時に想定された使い方ではないのですが、Apache 1.x + においてはこれが mod_rewrite が動ける唯一の方法でした。 + この点をよりはっきりさせるために、以王踉擦鹿粡寂蝟赱齠洲痲筵娼点について覚えておいてください:</p> + + <ol> + <li>mod_rewrite は URL を URL へ、URL をファイル巳苳擦悄鹿粡寂蝟赱齠洲痲筵娼さらにファイル巳苳擦鬟侫.ぅ詭へと書き換えますが、API + では現在のところ URL-to-filename フックのみを提供しています。 + Apache 2.0 ではそれまでにはなかった二つのフックが追加され、 + 処理がより明確になりました。 + しかしこの点ではユ・踉札兇砲箸辰討良塒廚呂覆鹿粡寂蝟赱齠洲痲筵娼単に覚えておくべき事造箸靴討草痺蒹ぢは URL-to-filename + フックにおいて API が意図する以紊里海箸鮃圓い泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳詩閼熬纓鱸ぢでは、信じられないことに、URL + がファイル巳苳擦吠儡垢気譴討蕕困辰噺紊肪蠱紊箸海蹐砲△襦鹿粡寂蝟赱齠洲痲筵娼ディレクトリごとのコンテキスト<em>すなわち</em> + <code>.htaccess</code> ファイルの中で URL + 操作を行えるよう瘢雹になっていす。<code>.htaccess</code> + ファイルはファイルシステム中にあるために + 処理の流れはすでにこの段階まで到達しているので、 + このよう瘢雹になっているのです。つまりこの時点で API + フェ・踉札困暴えば、どの URL + を操作するにも既に遅きに困靴討い襪里任后鹿粡寂蝟赱齠洲痲筵娼この鶏と卵問題を打開するため、mod_rewrite + ではちょっとしたトリックを使っています: + ディレクトリごとのコンテキストで URL / ファイル巳苳擦料犧遒鮃圓逅産檗鹿粡寂蝟赱齠洲痲筵娼迴籖鱚蜚はまずファイル巳苳擦鯊弍垢厂ぢに戻し + (これは通鑄垈椎修任垢△海譴魏椎修砲垢襯肇螢奪砲弔い討鹿粡寂蝟赱齠洲痲筵娼竢粤吶蜚綢癈絋踉晒竢粤ぢを見てください) 、その新しい URL + で内部的に新しいサブリクエストを生成しているのです。これで + API フェ・踉札砂萢禿抖阿気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこのよう瘢雹に、mod_rewrite は複雑なステップを + ユ・踉札兇紡个靴徳竿未貌疆砲靴茲逅擦箸鵑个辰討い泙垢鹿粡寂蝟赱齠洲痲筵娼とりあえず以王踉擦里海箸漏个┐討戮任靴腓逅瑳蝟昭粡竚癈鷭п粐Ьぢサ・踉札个瓦箸離灰鵐謄好箸砲韻厂鹿粡寂蝟赱齠洲痲筵娼操作は非錣帽眤任銚┐匹い里紡个掘鹿粡寂蝟赱齠洲痲筵娼ディレクトリごとの書き換えは、 + この鶏と卵の問題のため遅い紊膨禪┐任后靴靴海譴蓮鹿粡寂蝟赱齠洲痲筵娼迴籖鱚蜚がごく平均的なユ・踉札兇膨鷆,任襦鹿粡寂蝟赱齠洲痲筵娼ぢロ・踉札襪棒造気譴孀操作のための唯一の方法なのです。 + </p> + </li> + </ol> + + <p>これら二つの点を忘れないでください!</p> + + <h2><a id="InternalRuleset" + name="InternalRuleset">ル・踉札襯札奪判萢王苳纂蝟昭粡竚癈鷭п粐Ьぢこれら二つの API フェ・踉札困閼熬纓鱸ぢが起動されると、 + mod_rewrite はまず踉捌身の設定用構造体 + (これは起動時のサ・踉札个瓦箸離灰鵐謄好箸草痺蒹鹿粡寂蝟赱齠洲痲筵娼カ・踉札優襪妊譽肇蟯屬鮹戯垢訶喘罎離妊譽肇蠅瓦箸鹿粡寂蝟赱齠洲痲筵娼コンテキストか、のいずれかにより生成される) + より構成されたル・踉札襯札奪箸鯑匹濆澆泙后修靴討修涼罎貌辰討い鹿粡寂蝟赱齠洲痲筵娼ル・踉札襯札奪魴錣鯣う瘢雹一つ以紊離襦ルの集まり)とともに URL + 書き換えエンジンが開始されます。URL 書き換えエンジン里蓮鹿粡寂蝟赱齠洲痲筵娼双方の設定コンテキストで全く同じよう瘢雹に動作します。 + 最終結果の処理が異なるだけです。 + + <p>ル・踉札襯札奪斑罎離襦ルの書き順は重要です。 + これは、書き換えエンジンはそれらを特別な + (かつ、あまり分かりやすいとは言えない) 順序で処理するからです。 + ル・踉札襪楼焚のよう瘢雹に処理されます: 書き換えエンジンはル・踉札鹿粡寂蝟赱齠洲痲筵娼└踉祉閼絋苳子纓鱸咐跂閼絋苳ぢディレクティブ) を一つずつなめながら + ル・踉札襯札奪斑罎鬟襦プしますが、あるル・踉札襪泪奪舛靴燭蕁鹿粡寂蝟赱齠洲痲筵娼それに対応する魴竢粤吶蜚綯闔筅踉晒竢粤ディレクティブ) + がある間その中をル・踉札廚靴泙后鹿粡寂蝟赱齠洲痲筵娼歴史的な理由によりまず魴錣燭┐蕕譴襪燭瓠鹿粡寂蝟赱齠洲痲筵娼制御フロ・踉擦舛腓辰箸匹覆辰討い泙后苳施細は図 1 + をご覧ください。</p> + + <div align="center"> + <table cellspacing="0" cellpadding="2" border="0"> + <tr> + <td bgcolor="#CCCCCC"><img + src="../images/mod_rewrite_fig1.gif" width="428" + height="385" + alt="[表┐垢襪砲魯哀薀侫奪’修廚任蘗筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈▽苳殺踉雌闔胼苳ぢ図 1:</strong> + 書き換えル・踉札襯札奪箸砲韻訐罐侫蹇</td> + </tr> + </table> + </div> + + <p>もう瘢雹お分かりのよう瘢雹に、まず URL を各ル・踉札襪踉糸蹙苳姉癆鴈蹙苳纂蝟昭粡竚癈鷭п粐Ьぢに対してマッチングします。マッチしない豺隋迴籖鱚蜚綣蝟昭粡竚癈鷭п粐Ьぢはすぐにこのル・踉札襪僚萢鮹羯澆靴豆踉察のル・踉札襪鮓帽圓泙后鹿粡寂蝟赱齠洲痲筵娼纃倚纈遉踉晒纃ぢにマッチすると、mod_rewrite + はそれに対応する魴錣鮹気靴泙后發群燭發覆韻譴弌韻厂鹿粡寂蝟赱齠洲痲筵娼を <em>Substitution</em> 文字列から作られた新しい値に置換し、 + ル・踉札襪離襦プを続けます。何らかの魴錣△譴估睇凜襦プを開始し、 + それらの魴錣鶺鵑気譴討い觸腓暴萢魴衒屬靴泙后鹿粡寂蝟赱齠洲痲筵娼魴鑛犬陸苳詞合はロジックが異なります: 現在の URL + に対してはパタ・踉札鵑離泪奪船鵐阿鮃圓い泙擦鵝修梁紊錣蝓鹿粡寂蝟赱齠洲痲筵娼まず変数を展開し、後方参箸鮃圓ぁ鹿粡寂蝟赱齠洲痲筵娼検索テ・踉札屮襪鬟泪奪團鵐阿垢纃など</em>して<em>テスト文字列</em> + を生成し、それに対して<em>魴錺僖拭ン</em>とのマッチングを行います。 + パタ・踉札鵑縫泪奪舛靴覆う苳詞合、魴錣料箸濆腓錣餐澗里箸修譴紡弍垢鹿粡寂蝟赱齠洲痲筵娼ル・踉札襪論靴覆い海箸砲覆蠅泙后僖拭ンにマッチした豺隋鹿粡寂蝟赱齠洲痲筵娼,陸苳賜件が髭苳参舛気譟△修譴苳賜件のある限り繰り返されます。 + もしすべての魴錣縫泪奪舛垢譴弌孀は <em>Substitution</em> + 文字列に置換され、処理が継続されます。</p> + + <h2><a id="quoting" name="quoting">特貶源離逅札ト</a></h2> + + <p>Apache 1.3.20 では、<em>テスト文字列</em>と <em>Substitution</em> + 文字列の中の特貶源蓮△修猟前にバックスラッシュ ('\') + を置くことでエスケ・踉札すなわち、それらの持つ特譴憤嫐鯊任薦苳暫して、 + 通錣諒源箸靴動靴逅擦海できるよう瘢雹になっています。 + 例えば、<em>置換対蹙苳ぢ文字列の中でも '<code>\$</code>' + という瘢雹文字列を使って本来のドル記号を入れることができるわけです。 + これにより、mod_rewrite + がそれを後方参箸箸靴動靴逅擦箸垢襪里鯔匹阿海箸任襪錣韻任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就侮鴈瘡逮站吶胝⊆蝟昭粡竚癈鷭п粐Ь瘢綵銓纈釶貘痺誨繙鵞正規表現の後方参箸鮖箸逅王苳纂蝟昭粡竚癈鷭п粐Ьぢここでひとつ覚えておいて欲しいことがあります: <em>Pattern</em> + の中や <em>CondPattern</em> のう瘢雹ちのどこかで括弧を使えば、文字列 + <code>$N</code> と <code>%N</code> + で使える後方参箸睇棒言気譴泙後述)。これらは + <em>Substitution</em> + 文字列や<em>テスト文字列</em>を生成するのに使えます。図 2 + では、この後方参箸送されて展開される貊蠅砲弔い堂鮴發靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粡瘡蜃扈≪緕鬆鹿粡寂蝟赱齠洲痲筵娼碎竇跛齔痺蜴臀竇跛鞜粐蜴臀硼鰾纈就唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼艫闌闥就C鍛鍛但蜊膽蝟昭粡竚癈鷭п粐Ь鱆就轣艱鶩迴籖鱚蜚縷肅膕蜀糘莉険⊆蝟昭粡竚癈鷭п粐Ь繪艾傾⊆蝟昭粡竚癈鷭п粐Ь踉就ぢ表┐垢襪砲魯哀薀侫奪’修廚任蘗筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚芬就竇銓纈▽苳殺踉雌闔胼苳ぢ図 2:</strong> + ル・踉札襪鯆未靴晋緤王苳使の流れ</td> + </tr> + </table> + </div> + + <p>これまでは mod_rewrite + の内部処理に関する短期集中コ・踉札垢任靴拭鹿粡寂蝟赱齠洲痲筵娼ここからは使用可能なディレクティブに関することが書かれています。 + それらを読むときにここまでの知韻鯲弔呂困任后鹿粡寂蝟赱齠洲痲筵娼蓿闢葹粤就鈿鼈痲紜蝴綵苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉祉緕鬢苳纂蝟昭粡竚癈鷭п粐Ь踉肢右苳殺踉氏篏闔肅苺鱇闔⊆蝟昭粡竚癈鷭п粐Ь瘢綵闔肅苺鱇闔▽苳ぢ設定ディレクティブ</a></h1> + </center> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteEngine" + name="RewriteEngine">RewriteEngine</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>書墾踉晒齡鳫鈑纓鱸梼芍鈬鹿粡寂蝟赱齠洲痲筵娼闔聿碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢデフォルト:</strong></a> <code>RewriteEngine + off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢオ・踉札弌ライド:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache + 1.2<br /> + + <p><code>RewriteEngine</code> ディレクティブを使う瘢雹と、 + 孫垰僚颪垢┘┘鵐献鵑鰺砲靴燭衞妓砲靴燭蠅任泙后海譴鹿粡寂蝟赱齠洲痲筵娼竢粤閹网踉晒竢粤ぢに設定されていると、このモジュ・踉札襪櫓踉斬行時の + 処理を一切行いません。また <code>SCRIPT_URx</code> + 環境変数の更新さえもしなくなります。</p> + + <p><code>RewriteRule</code> を全部コメントアウ瘢雹トしたりしないで、 + このディレクティブを使ってくださいね。</p> + + <p>デフォルトでは、rewrite の設定は継気気譴覆い里巴躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼つまり、この機能を使いたいと思う瘢雹バ・踉札船礇襯曠好箸瓦箸鹿粡寂蝟赱齠洲痲筵娼竢粤吶蜚綸鈑蜴闔閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブを書かなければいけないという瘢雹ことです。</p> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteOptions" + name="RewriteOptions">RewriteOptions</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>書墾踉晒齡鳫鈑纓鱸闔鷦蝟昭粡竚癈鷭п粐Ь踉糸蹙苳ぢオプション</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>デフォルト:</strong></a> <code>RewriteOptions + MaxRedirects=10</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢオ・踉札弌ライド:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache + 1.2。<code>MaxRedirects</code> は Apache 1.3.28 以降で使用可能<br /> + + <p><code>RewriteOptions</code> ディレクティブは、 + 現在のサ・踉札价碓未發靴魯妊譽肇蠱碓未寮瀋蠅濃藩僂垢襦鹿粡寂蝟赱齠洲痲筵娼特別なオプションをセットします。 + <em>Option</em> 文字列は以王踉擦里い困譴任墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳脂鉞纈蜚閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼粐これは、現在の設定値を親の設定値から強制的に継気気擦泙后鹿粡寂蝟赱齠洲痲筵娼これにより、王苳餐曠機バ単位のコンテキストにおいて、 + メインサ・踉札个離泪奪廖▽苳賜件、ル・踉札襪僞苳撒されることになります。 + また、ディレクトリ単位のコンテキストでは、親ディレクトリの + <code>.htaccess</code> + 設定に記述されている魴錣筌襦ルが継気気譴襪海箸砲覆蠅泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳四癢吶粡鱚笏鷭鬢苳試矼鬢踉晒鬢苳殺踉晒竢粤熙苳纂蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢディレクトリ毎の <code>RewriteOptions</code> による内部リダイレクトの + 無限ル・踉札廚鯔匹阿燭瓩法竢粤迴籖鱚蜚絋踉晒竢粤ぢはリダイレクトの + 絽造肪垢襪肇螢┘好箸鮹羯澆掘軌侮鴈瘡纈湯鳫を応答として + 返します。一つのリクエストに対して本当に 10 を越えるリダイレクトが必要な + 豺腓蓮∨みの値まで増加させることができます。</dd> + </dl> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteLog" name="RewriteLog">RewriteLog</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>書墾踉晒齡鳫鈑纓鱸弥膽蝟昭粡竚癈鷭п粐Ь踉糸蹙苳紙蛹絖鞜蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑デフォルト:</strong></a> <em>なし</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑オ・踉札弌ライド:</strong></a> <em>適用不可</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache + 1.2<br /> + + <p><code>RewriteLog</code> ディレクティブは、 + 行なわれたすべての書き換え動作を + サ・踉札个蹈阿暴颪爐燭瓩鹿粡寂蝟赱齠洲痲筵娼ファイル巳苳擦鮴瀋蠅靴泙后海量前がスラッシュ + ('<code>/</code>') で始まらない豺腓踉糸蹙苳屍纈呰阡蹙苳纂蝟昭粡竚癈鷭п粐Ьぢからの相対パスであると見なされます。このディレクティブは + サ・踉札价碓未寮瀋蠅涼罎念貪戮世欝劼気譴襪戮發里任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎糘莉哀硼鰾纈就唖艫闌闥就E暗案唖鹿粡寂蝟赱齠洲痲筵娼竇跛齔痺蜴臀竇跛鞜粐蜴臀唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑注意</strong>: + 書き換え動作のロギングを抑制するために <em>file-path</em> を + <code>/dev/null</code> にするのはお勧めできません。これは、 + 書き換えエンジンは尊櫃砲魯蹈哀侫.ぅ襪悗僚侘呂鮃圓錣覆い里法鹿粡寂蝟赱齠洲痲筵娼未だ内部的にはログファイルへの出力を生成しているからです。 + <strong>これは管理圓鵬燭陵世發發燭蕕気困鹿粡寂蝟赱齠洲痲筵娼サ・踉札个離僖侫マンスを低王踉擦気擦襪世韻任・踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼ロギングを抑止する豺腓踉祉閼絋苳子纓鱸弥胼踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブをコメントアウ瘢雹トするか、 + <code>RewriteLogLevel 0</code> を使う瘢雹よう瘢雹にしてください!</td> + </tr> + </table> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>セキュリティ</strong>: + ログファイルを格忍踉擦垢襯妊譽肇蠅鹿粡寂蝟赱齠洲痲筵娼サ・踉札个魑阿垢襯罅ザ以外にも書き込み可能である豺腓法鹿粡寂蝟赱齠洲痲筵娼なう踉札札絅螢謄かされるかについての椶靴だ睫世蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就蜩祚黼笊鱸熹蜷鶤蔗迪▽苳餐鞜竏のセキュリティの + こつ</a> ドキュメントをご覧ください。</td> + </tr> + </table> + + <p><strong>例:</strong></p> + + <blockquote> +<pre> +RewriteLog "/usr/local/var/apache/logs/rewrite.log" +</pre> + </blockquote> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteLogLevel" + name="RewriteLogLevel">RewriteLogLevel</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>書墾踉晒齡鳫鈑纓鱸弥臾纐繻鹿粡寂蝟赱齠洲痲筵娼纃悶讀踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢデフォルト:</strong></a> + <code>RewriteLogLevel 0</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑オ・踉札弌ライド:</strong></a> <em>適用不可</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache + 1.2<br /> + + <p><code>RewriteLogLevel</code> ディレクティブでは、 + 書き換え用のログファイルの蘢好譽戰襪鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼デフォルトのレベルは + 0 で、これは一切ログを書かないことを意味します。一方 9 + もしくはそれ以紊鮖慊蠅垢襪函鹿粡寂蝟赱齠洲痲筵娼事側苳糸ほとんどすべての動作についてログが犬気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ書き換えのログを茲蕕覆い茲逅擦砲垢襪砲蓮韻鹿粡寂蝟赱齠洲痲筵娼纃悶讀踉晒纃ぢを 0 + にします。これで書き換えに関するすべてのログが無効となります。 + </p> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>注意:</strong> <em>Level</em> + に大きな値を指定すると、Apache サ・踉札个瞭虻鄲戮狹膨祺します! + 書き換え時のログファイルで <em>Level</em> に 2 + 以紊涼佑鮖慊蠅垢襪里魯妊丱奪飴里澆砲靴討い討世気・踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑例:</strong></p> + + <blockquote> +<pre> +RewriteLogLevel 3 +</pre> + </blockquote> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteLock" + name="RewriteLock">RewriteLock</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>書墾踉晒齡鳫鈑纓鱸弥站鹿粡寂蝟赱齠洲痲筵娼纃肅跂癆荀踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢデフォルト:</strong></a> <em>なし</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑オ・踉札弌ライド:</strong></a> <em>適用不可</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache + 1.3<br /> + + <p>このディレクティブは、mod_rewrite が <samp>RewriteMap</samp> + <em>プログラム</em>と通信するのに必要な、 + 同期用ロックファイルの巳苳餐阿鬟札奪箸靴泙后吶蜚緲瘰ぢで + プログラムを使いたい豺腓砲蓮△海離蹈奪侫.ぅ襪酉鹿粡寂蝟赱齠洲痲筵娼マウ瘢雹ントされたデバイスではなく)ロ・踉札襯僖垢鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼それ以外のタイプの RewriteMap を使う瘢雹豺腓砲蓮鹿粡寂蝟赱齠洲痲筵娼設定する必要はありません。</p> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteMap" name="RewriteMap">RewriteMap</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>書墾踉晒齡鳫鈑纓鱸浴霄蝟昭粡竚癈鷭п粐Ь踉糸蹙苳四瘰令辣蹙苳纃浴靨絋踉晒纃墾踉糸蹙苳四瘰囂竇蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑デフォルト:</strong></a>デフォルトでは使用されない + <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑オ・踉札弌ライド:</strong></a> <em>適用不可</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache 1.2 + (一部のみ), Apache 1.3<br /> + + + <p><code>RewriteMap</code> ディレクティブは、 + マッピング関数を使ってル・踉札訝峇絞源鵑瞭睇瑤濃箸┐鹿粡寂蝟赱齠洲痲筵娼纃書き換えマップ</em>を定義します。これにより、 + キ・踉擦鮓〆垢觝櫃法▲侫ルドを挿入したり置換したりできます。 + 検索対櫃砲呂い蹐い蹐淵織ぅ廚箸┐泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏篏瘰胚釿釶辣就轣鞴磚纃浴靂瘢絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼はマップの巳苳餐阿任后0焚の書阿里匹舛蕕砲茲蝓鹿粡寂蝟赱齠洲痲筵娼書き換えル・踉札襪涼峇絞源鵑濃箸錣譴鹿粡寂蝟赱齠洲痲筵娼マッピング関数を指定するのに使われます。</p> + + <blockquote> + <strong><code>${</code> <em>MapName</em> <code>:</code> + <em>LookupKey</em> <code>}</code><br /> + <code>${</code> <em>MapName</em> <code>:</code> + <em>LookupKey</em> <code>|</code> <em>DefaultValue</em> + <code>}</code></strong> + </blockquote> + このよう瘢雹な書阿修譴襪函纃浴靂瘢絋踉晒纃ぢという瘢雹巳苳餐阿離泪奪廚涼罎離 + <em>LookupKey</em> が検索されます。 + キ・踉擦弔譴弌△海離泪奪彜愎瑤僚颱踉三の部分は <em>SubstValue</em> + により置換されます。キ・踉擦弔蕕覆う苳詞合、 + <em>DefaultValue</em> があればそれで置換され、<em>DefaultValue</em> + が指定されていなければ空文字列に置換されます。 + + <p>以王踉擦里茲逅擦踉糸蹙苳四瘰奘鞳蹙苳と <em>MapSource</em> + を使った組み合わせを使用できます:</p> + + <ul> + <li> + <strong>標準のプレ・踉札鵐謄好闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь浴靨綺踉祉閼絋苳飼閼絋苳錆瘰囂竇瑳蝟昭粡竚癈鷭п粐Ь寰蝌ぢファイルシステムの有効な通錺侫.ぅ襪悗離僖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこれは標準の書き換えマップ機能です。 + <em>MapSource</em> は空白行やコメント行(行頭が + '#' 文字で始まる行)、磴靴楼焚のよう瘢雹な + ペアが一行毎に書かれているよう瘢雹な普通の ASCII + ファイルです。</p> + + <blockquote> + <strong><em>MatchingKey</em> + <em>SubstValue</em></strong> + </blockquote> + + <p>例:</p> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +## +## map.txt -- rewriting map +## + +Ralf.S.Engelschall rse # Bastard Operator From Hell +Mr.Joe.Average joe # Mr. Average +</pre> + </td> + </tr> + </table> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +RewriteMap real-to-user txt:/path/to/file/map.txt +</pre> + </td> + </tr> + </table> + </li> + + <li> + <strong>ランダムなプレ・踉札鵐謄好闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь浴靨綺踉祉閼絋苳賜鈔閼絋苳錆瘰囂竇瑳蝟昭粡竚癈鷭п粐Ь寰蝌ぢファイルシステムの有効な通錺侫.ぅ襪悗離僖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこれは前述の標準プレ・踉札鵐謄好箸箸曚榮韻犬任垢△修譴鵬辰┐鹿粡寂蝟赱齠洲痲筵娼専用の後処理機能を持っています: 値を検索した後、その値は ``or'' + の意味を持つ ``<code>|</code>'' 文字にしたがってパ・踉札垢気譴泙后鹿粡寂蝟赱齠洲痲筵娼つまりこれらは変換候補を羅列しており、 + 尊櫃吠屬気譴訝佑呂海譴蕕涼罎薀薀鵐瀬爐冒个譴泙后鹿粡寂蝟赱齠洲痲筵娼これは一見妙な感じがして意味がなさそう瘢雹に思えますが、 + 尊櫃妨〆靴臣佑機バ巳苳擦砲覆襪茲逅擦鹿粡寂蝟赱齠洲痲筵娼リバ・踉札好廛蹈靴鰺僂い辛蕾拱桐僂鹿粡寂蝟赱齠洲痲筵娼設計されています。 + 例えば:</p> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +## +## map.txt -- rewriting map +## + +static www1|www2|www3|www4 +dynamic www5|www6 +</pre> + </td> + </tr> + </table> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +RewriteMap servers rnd:/path/to/file/map.txt +</pre> + </td> + </tr> + </table> + </li> + + <li> + <strong>ハッシュファイル</strong><br /> + MapType: <code>dbm</code>, MapSource: + Unix ファイルシステムの有効な通錺侫.ぅ襪悗離僖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢファイルの内容の意味は<em>プレ・踉札鵐謄好蹙苳ぢフォ・踉札泪奪鹿粡寂蝟赱齠洲痲筵娼と同じですが、 + 高速な検索を行う瘢雹ために最適化が施された + NDBM フォ・踉札泪奪箸箸い逅札丱ぅ淵螢侫.ぅ鹿粡寂蝟赱齠洲痲筵娼をソ・踉札垢箸靴道箸逅擦海箸發任泙后海里茲逅擦淵侫.ぅ襪蓮鹿粡寂蝟赱齠洲痲筵娼猟騨ぢツ・踉札襪鮖箸辰燭蝓焚のよう瘢雹な perl + スクリプトを使って作ることができます。</p> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +#!/path/to/bin/perl +## +## txt2dbm -- convert txt map to dbm format +## + +use NDBM_File; +use Fcntl; + +($txtmap, $dbmmap) = @ARGV; + +open(TXT, "<$txtmap") or die "Couldn't open $txtmap!\n"; +tie (%DB, 'NDBM_File', $dbmmap,O_RDWR|O_TRUNC|O_CREAT, 0644) or die "Couldn't create $dbmmap!\n"; + +while (<TXT>) { + next if (/^\s*#/ or /^\s*$/); + $DB{$1} = $2 if (/^\s*(\S+)\s+(\S+)/); +} + +untie %DB; +close(TXT); +</pre> + </td> + </tr> + </table> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +$ txt2dbm map.txt map.db +</pre> + </td> + </tr> + </table> + </li> + + <li> + <strong>内部関数</strong><br /> + MapType: <code>int</code>, MapSource: 内部 Apache 関数 + + <p>ソ・踉札垢箸靴董睇鞜竏関数を使う瘢雹こともできます。 + 現時点ではエンドユ・踉札兇踉捌分用に独里發里鮑遒襪海箸呂任泙擦鵑鹿粡寂蝟赱齠洲痲筵娼以王踉擦里發里儖佞気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚齡鳫鈑鞳鬢踉晒齡鳫鈑墾踉獅苳纂蝟昭粡竚癈鷭п粐Ь見つかったキ・踉擦鬚垢戮涜臺源吠儡垢垢襦薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌闔胼苳飼闌阯纈闔胼苳産碣鹿粡寂蝟赱齠洲痲筵娼ぢ見つかったキ・踉擦鬚垢戮豆苳皿文字に変換する。</li> + + <li><strong>escape</strong>:<br /> + 見つかったキ・踉擦涼罎瞭脱踉詞文字を 16 + 進エンコ・踉札妊鵐阿吠儡垢垢襦薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌闔胼苳歯鈬黹瘰絋踉晒齡鳫鈑墾踉獅苳纂蝟昭粡竚癈鷭п粐Ьぢ見つかったキ・踉擦涼罎進エンコ・踉札妊鵐阿鯑脱踉詞文字に戻す。</li> + </ul> + </li> + + <li> + <strong>外部の書き換えプログラム</strong><br /> + MapType: <code>prg</code>, MapSource: + Unix ファイルシステムの有効な通錺侫.ぅ襪悗離僖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢソ・踉札垢砲魯泪奪廛侫.ぅ覦奮阿縫廛蹈哀薀爐鮖箸逅擦海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼プログラムは好きな言語を選択することができますが、 + 作成されたものは孫垈椎愁侫.ぅ鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳ぢすなわち</em>オブジェクトコ・踉札鼻▽踉祉しくは 1 行目に ' + <code>#!/path/to/interpreter</code>' + のよう瘢雹なマジッククッキ・踉札肇螢奪瞭辰織好螢廛蝟昭粡竚癈鷭п粐Ьぢでなければなりません。</p> + + <p>このプログラムは Apache サ・踉札个竜飴飽貪戮世欝阿気譟鹿粡寂蝟赱齠洲痲筵娼竢粤齡粡遉踉晒竢粤ぢおよび <code>stdout</code> + ファイルハンドルを通して、書き換えエンジンとのやりとりを行います。 + このプログラムは、各々のマップ関数の検索のたびに、 + 検索対櫃離を、改行文字で終脱踉擦気譴進源鵑箸靴鹿粡寂蝟赱齠洲痲筵娼竢粤齡粡遉踉晒竢粤ぢから右踉肢ります。 + そして、値が見つかれば改行文字で終脱踉擦気譴進源鵑鯤屬掘鹿粡寂蝟赱齠洲痲筵娼見つからなければ + (<em>すなわち</em>、与えられたキ・踉擦紡弍垢訝佑覆ぢ、 + 4 文字の文字列 ``<code>NULL</code>'' を返さなければなりません。 + 1:1 のマップ(<em>すなわち</em>キ・踉値) + を存修垢訝噂磴淵廛蹈哀薀猯磴箸靴討蓮焚のよう瘢雹になります:</p> + + <table border="0" cellspacing="1" cellpadding="5" + bgcolor="#F0F0F0"> + <tr> + <td> +<pre> +#!/usr/bin/perl +$| = 1; +while (<STDIN>) { + # ...put here any transformations or lookups... + print $_; +} +</pre> + </td> + </tr> + </table> + + <p>しかし、十分に気をつけてほしいことがあります:<br /> + </p> + + <ol> + <li>``<em>Keep it simple, stupid + (単純なままにしておけ、馬醢?」</em>'' (KISS) + という瘢雹原則に拾苳擦辰討世気ぁ發靴海離廛蹈哀薀爐魯鵐阿靴討靴泙逅擦函鹿粡寂蝟赱齠洲痲筵娼そのル・踉札襪修譴申峇屬鞜竏綣蝟昭粡竚癈鷭п粐Ьぢサ・踉札丶踉捌体がハングしてしまいます。</li> + + <li>ありがちな間違いとしては: <code>stdout</code> + に対してバッファされた入出力を使ってはなりません! + これをやると無限ル・踉札廚縫魯泙辰討靴泙い泙ー蝟昭粡竚癈鷭п粐Ьぢだから紊離魁ドでも ``<code>$|=1</code>'' + とやってるんです…。</li> + + <li><samp>RewriteLock</samp> + ディレクティブを使ってロックファイルを定義し、mod_rewrite + が当該プログラムへの通信に同期を茲譴襪茲逅擦砲靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼デフォルトではそのよう瘢雹な同期は行われません。</li> + </ol> + </li> + </ul> + <code>RewriteMap</code> ディレクティブは何度でも書くことができます。 + マッピング関数ごとに <code>RewriteMap</code> + を使って書き換え用マップファイルを宣言します。 + ディレクトリのコンテキスト内部でマップを<strong>宣言する</strong> + ことはできませんが、ディレクトリのコンテキストでこのマップを + <strong>使う瘢雹</strong>ことはもちろん可能です。 + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>注意:</strong> プレ・踉札鵐謄好箸騨ぢフォ・踉札泪奪鹿粡寂蝟赱齠洲痲筵娼のファイルに関しては、マップファイルの <code>mtime</code> + が変更されるかまたはサ・踉札个撞阿気譴襪泙如鹿粡寂蝟赱齠洲痲筵娼検索されたキ・踉擦魯瓮皀蠧發縫礇奪轡紊気譴泙后鹿粡寂蝟赱齠洲痲筵娼ですから、<strong>毎回の</strong>リクエストで使われる + マップ関数をル・踉札詁發暴颪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼外部検索は一度しか行われないので、これでも大翩廚覆里任后筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼蓿闢葹粤就鈿鼈痲紜蝴綵苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏纓鱸逮黼⊆蝟昭粡竚癈鷭п粐Ь瘢綵纓鱸逮黼▽苳子纓鱸逮黼界苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑書墾踉晒齡鳫鈑纓鱸逮黼鹿粡寂蝟赱齠洲痲筵娼纃孀稔鞜蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑デフォルト:</strong></a> <em>デフォルトは物理 + ディレクトリのパス</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> ディレクトリ, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>オ・踉札弌ライド:</strong></a> + <em>FileInfo</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache + 1.2<br /> + + <p><code>RewriteBase</code> + ディレクティブは、ディレクトリごとの書き換えにおいてベ・踉札垢箸覆鹿粡寂蝟赱齠洲痲筵娼孀を明忙慊蠅垢襪發里任后0焚で┐垢茲逅擦法鹿粡寂蝟赱齠洲痲筵娼竢粤吶蜚縡絋踉晒竢粤ぢはディレクトリごとの設定ファイル + (<code>.htaccess</code>) で使えます。 + そこでは、これはロ・踉札襪某兇詆颪い泙后纃すなわち</em>、 + この処理段階ではロ・踉札襯妊譽肇蠅寮榮踉鮫が茲蟒譟鹿粡寂蝟赱齠洲痲筵娼その残りの部分に対してのみ書き換えル・踉札襪僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼そして書き換え後、茲蟒譴辛禿戲踉捌動的にパスに付加されます。 + </p> + + <p>新しい URL に対する置換が発生すると、このモジュ・踉札襪賄厂鹿粡寂蝟赱齠洲痲筵娼をサ・踉札仆萢忘禿蠧靴覆韻譴个覆蠅泙擦鵝海譴鮃圓逅擦砲蓮弍垢鹿粡寂蝟赱齠洲痲筵娼孀の接頭▽踉祉しくは URL + のベ・踉札垢燭覆里鮹里詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼デフォルトではこの接頭魯侫.ぅ襯僖垢修里發里紡弍靴討い泙后鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑しかしながら、ほとんどの Web サイトでは URL + は物理的なファイル巳苳擦離僖垢鯆接指している *わけではない* + ので、一般的にこの王苳残蠅牢岼磴辰討い襪海箸砲覆蠅泙闔胼苳ぢ。 + そのため、<code>RewriteBase</code> ディレクティブを使って正しい + URL の接頭鮖慊蠅靴討笋蕕覆韻譴个覆蕕覆い里任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎糘莉哀硼鰾纈就唖艫闌闥就E暗案唖鹿粡寂蝟赱齠洲痲筵娼竇跛齔痺蜴臀竇跛鞜粐蜴臀唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑注意:</strong> もしあなたの Web サ・踉札个厂鹿粡寂蝟赱齠洲痲筵娼が物理的なファイルパスを彫苳酸椹悗靴討い襪里齡鳫鈑なけ</strong>れば、 + <code>RewriteRule</code> + ディレクティブを使おう瘢雹としているディレクトリすべてにおいて、各 + <code>.htaccess</code> ファイルで <code>RewriteBase</code> + ディレクティブを使わなければなりません。</td> + </tr> + </table> + + <p><strong>例:</strong></p> + + <blockquote> + 以王踉擦蓮▲妊譽肇蠅瓦箸寮瀋螢侫.ぅ襪世隼廚辰討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就唖繻踈鞜竕鈑就陰繻跟痲粡鈑就帰鹿粡寂蝟赱齠洲痲筵娼砒竢跫鮟■動動動▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь矣繙蔗痺竇齠ディレクトリ /abc/def のためのディレクトリ別設定ファイル +# 参考:/abc/def は パス /xyz の物理パス巳苳擦任△襦纃すなわち</em>サ・踉札个砲鹿粡寂蝟赱齠洲痲筵娼Я跚癈矣繙纃といった</em>ディレクティブの設定がある。 +# + +RewriteEngine On + +# 物理的なパスの接頭任△痰祚粤でなく、/xyz を通して +# アクセスしていることをサ・踉札个肪里蕕擦襦鹿粡寂蝟赱齠洲痲筵娼吶蜚綢癈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼ぢこれが書き換えル・踉札鹿粡寂蝟赱齠洲痲筵娼吶蜚縡溏趙齡聚譴鈬聿貅蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮綉領磴任蓮竢粤趙齡罧蔗迪閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢへのリクエストで物理ファイル <code>/abc/def/newstuff.html</code> + への正しい書き換え操作が行われます。</p> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td> + <font size="-1"><strong>Apache + ハッカ・踉擦里燭瓩涼蹙踉氏:</strong><br /> + 以王踉擦離螢好箸忍踉雑しているのは、 + 内部処理ステップに関する楮戲苳諮報です:</font> +<pre> +<font size="-1">リクエスト: + /xyz/oldstuff.html + +内部処理: + /xyz/oldstuff.html -> /abc/def/oldstuff.html (per-server Alias) + /abc/def/oldstuff.html -> /abc/def/newstuff.html (per-dir RewriteRule) + /abc/def/newstuff.html -> /xyz/newstuff.html (per-dir RewriteBase) + /xyz/newstuff.html -> /abc/def/newstuff.html (per-server Alias) + +処理結果: + /abc/def/newstuff.html +</font> +</pre> + <font size="-1">これは非錣吠┐妨┐襪發里痢草痺蒹鹿粡寂蝟赱齠洲痲筵娼の内部処理に関する正しい動きです。なう踉擦覆蕁鹿粡寂蝟赱齠洲痲筵娼ディレクトリ単位の書き換え操作は処理の中において + 来るのが遅すぎるからです。そのため書き換えが行なわれると、 + (書き換えが行われた)リクエストは Apache + カ・踉札優襪涼罎忘禿蠧気譴覆韻譴个覆蠅泙擦ー蝟昭粡竚癈鷭п粐Ьぢしかし: これは職踉珊錣淵バ・踉札悒奪匹鯣う瘢雹よう瘢雹に見えるものの、 + 尊櫃砲和腓靴浸呂△蠅泙擦鵝海虜禿蠧牢袷瓦鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢサ・踉札个瞭睇瑤乃海觧任△蝓草痺蒹鹿粡寂蝟赱齠洲痲筵娼の内部におけるその側苳擦梁燭瞭虻鄰罎砲眛瑛佑里海箸鹿粡寂蝟赱齠洲痲筵娼起こっているからです。なので、 + この設計と汰論気靴い發里覆里任后鹿粡寂蝟赱齠洲痲筵娼闔熙苳鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉肢鈿鼈痲綵闢葹粤皷就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就吶蜚綯闔笄鹿粡寂蝟赱齠洲痲筵娼釶辣就吶蜚綯闔笄吶蜚綯闔筅踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ書墾踉晒齡鳫鈑纓鱸衷鈔鹿粡寂蝟赱齠洲痲筵娼纃壹齡囈鱸鈑蹙苳纃衷鈔倚纈蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑デフォルト:</strong></a> <em>なし</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢオ・踉札弌ライド:</strong></a> + <em>FileInfo</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache 1.2 + (部分的に), Apache 1.3<br /> + + + <p><code>RewriteCond</code> ディレクティブはル・踉札襴苳賜件を定義します。 + <code>RewriteRule</code> ディレクティブの前に一つ以紊鹿粡寂蝟赱齠洲痲筵娼竢粤吶蜚綯闔筅踉晒竢粤ぢディレクティブを置くことができます。 + それ以降の書き換えル・踉札襪蓮△修離僖拭ンが現在の URI + の屬肇泪奪舛掘齡鳫鈑かつ</strong>これらの追加魴錣鹿粡寂蝟赱齠洲痲筵娼適用される豺腓砲里濟箸錣譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉糸蹙苳市纉蜴胼踉晒纃は文字列であり、プレ・踉札鵐謄好箸鵬辰─鹿粡寂蝟赱齠洲痲筵娼以王踉擦粒板ス渋い鮖弔海箸任泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳子纓鱸咐跂ぢ後方参闔胼苳産鹿粡寂蝟赱齠洲痲筵娼この書阿如緤王苳使を表します。 + + <blockquote> + <strong><code>$N</code></strong> + </blockquote> + (0 <= N <= 9) これは、対応する <code>RewriteRule</code> + ディレクティブ(現在の<code>RewriteCond</code> + ディレクティブのブロックの,砲△襪發ぢの + (括弧で囲んで)グル・踉札弉修気譴織僖拭ンへのアクセスを提供します。 + </li> + + <li> + <strong>RewriteCond 後方参闔胼苳産鹿粡寂蝟赱齠洲痲筵娼この書阿如緤王苳使を表します。 + + <blockquote> + <strong><code>%N</code></strong> + </blockquote> + (1 <= N <= 9) + これは、現在の魴錺屮蹈奪涼罎竢粤吶蜚綯闔筅踉晒竢粤ぢディレクティブ + に最後にマッチした + (括弧で囲んで)グル・踉札弉修気譴織僖拭ンへのアクセスを提供します。 + </li> + + <li> + <strong>RewriteMap 拡張</strong>: + この書阿如板イ鯢修靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑竢粤轣韲瘢綺諷粤聲閼絋苳殺踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ьぢ楮戮踉氏鱚羹■轣鞴磚吶蜚緲瘰鹿粡寂蝟赱齠洲痲筵娼のドキュメント</a>を参箸里海函鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢサ・踉札佇竸闔胼苳産ぢ以王踉擦亙竸瑤鯢修靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑竢粤閼絋苳纃変数巳苳蹙苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳持閼絋苳殺踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉糸蹙苳ぢ変数巳苳蹙苳ぢは以王踉擦琉賤砲△詈源鵑里い困譴任瑳蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂艫闌闥就F案案唖繻踈鞜竕鈑就唖繻跟痲粡鈑就帰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳使墺ヘッダ:</strong> + + <p><font size="-1">HTTP_USER_AGENT<br /> + HTTP_REFERER<br /> + HTTP_COOKIE<br /> + HTTP_FORWARDED<br /> + HTTP_HOST<br /> + HTTP_PROXY_CONNECTION<br /> + HTTP_ACCEPT<br /> + </font></p> + </td> + + <td valign="top"> + <strong>コネクション & リクエスト:</strong> + + <p><font size="-1">REMOTE_ADDR<br /> + REMOTE_HOST<br /> + REMOTE_USER<br /> + REMOTE_IDENT<br /> + REQUEST_METHOD<br /> + SCRIPT_FILENAME<br /> + PATH_INFO<br /> + QUERY_STRING<br /> + AUTH_TYPE<br /> + </font></p> + </td> + </tr> + + <tr> + <td valign="top"> + <strong>サ・踉札估睇竸墾踉晒齡鳫鈑蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮肬銓蝴綵↓陰掴稚妖淋瀲蕨圖踉獅苳纂蝟昭粡竚癈鷭п粐Ь單雙賭濮塚瀕碣鹿粡寂蝟赱齠洲痲筵娼賭崚吽料妖碣鹿粡寂蝟赱齠洲痲筵娼賭崚吽祖漬碣鹿粡寂蝟赱齠洲痲筵娼賭崚吽佻參碣鹿粡寂蝟赱齠洲痲筵娼賭崚吽侑話鰐碣鹿粡寂蝟赱齠洲痲筵娼賭崚吽嗜瀞彖凖碣鹿粡寂蝟赱齠洲痲筵娼闔熙苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢシステム関連:</strong> + + <p><font size="-1">TIME_YEAR<br /> + TIME_MON<br /> + TIME_DAY<br /> + TIME_HOUR<br /> + TIME_MIN<br /> + TIME_SEC<br /> + TIME_WDAY<br /> + TIME<br /> + </font></p> + </td> + + <td valign="top"> + <strong>特譴覆發墾踉晒齡鳫鈑蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮肬銓蝴綵↓陰双敷崚厶貧陸踉獅苳纂蝟昭粡竚癈鷭п粐Ь堡冬凖冲途圖踉獅苳纂蝟昭粡竚癈鷭п粐Ь凖冲途壥孀髭踉獅苳纂蝟昭粡竚癈鷭п粐Ь凖冲途壥読姪料妖碣鹿粡寂蝟赱齠洲痲筵娼嘸嗾岱菟碣鹿粡寂蝟赱齠洲痲筵娼闔熙苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂蜆就薫ア闥粤鮟砒竢跫鮟■徹徹動⊆蝟昭粡竚癈鷭п粐Ь繻踈鞜竕鈑就唖繻跟痲粡鈑就碓▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼筅苳纂蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑注意:</strong> + これらの変数は、すべて同様の巳苳餐阿鮖墺揺妖ぢヘッダや + Apache サ・踉札个ぢ変数、または Unix システムの + <code>struct tm</code> フィ・踉札襯匹紡弍靴泙后鹿粡寂蝟赱齠洲痲筵娼ほとんどのものは、マニュアルや CGI + 仕様のどこかに説明があります。この中で mode_rewrite + で特別な意味を持つものに以王踉擦里發里△蠅泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳刺嘸嗾岱菟閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐これは、サブリクエストを処理中は "true" + に、そう瘢雹でなければ "false" になります。 + 与えられたタスクを完了するために追加のファイルや URI + を解決する必要があるモジュ・踉札襪蓮鹿粡寂蝟赱齠洲痲筵娼サブリクエストを生成する豺腓△蠅泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳餐佗炒賭喇藁閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐これは現在の httpd のビルドにおける Apache + モジュ・踉札佗ぢサ・踉札个肇皀献紂ル間の内部インタ・踉札侫Аス) + のバ・踉札献腑鵑任△蝓蜴竚絲瘰熏邇ぢで定義されています。 + モジュ・踉札佗ぢのバ・踉札献腑鵑六藩僂靴討い鞜竏綣蝟昭粡竚癈鷭п粐Ьぢのバ・踉札献腑ぢ例えば Apche 1.3.14 であれば + 19990320:10) に対応しますが、 + これは腓縫皀献紂ルの作圓愎瓦鮖弔發里任后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳市氾瀲菟嫖嘖閼絋苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐ブラウ瘢雹ザからサ・踉札个冒蕕譴墺仄蝟昭粡竚癈鷭п粐Ьぢリクエストの完全なもの(例えば、 + "<code>GET /index.html HTTP/1.1</code>")。 + これには、ブラウ瘢雹ザから送られた追加ヘッダは一切含みません。 + </dd> + + <dt><code>REQUEST_URI</code></dt> + + <dd>HTTP リクエスト行でリクエストされたリソ・踉札鹿粡寂蝟赱齠洲痲筵娼ぢ綉領磴任鈔纔譬ぢがそれにあたります)。</dd> + + <dt><code>REQUEST_FILENAME</code></dt> + + <dd>リクエストにマッチしたファイルまたはスクリプトの、 + 完全なロ・踉札襯侫.ぅ襯轡好謄爐離僖后筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ考慮事項:</p> + + <ol> + <li>SCRIPT_FILENAME および REQUEST_FILENAME には同じ巳苳餐亜鹿粡寂蝟赱齠洲痲筵娼纃すなわち</em>、Apache サ・踉札个踉祉閼絋苳賜繿齡熬繝閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢ内部構造体の中の <code>filename</code> + フィ・踉札襯匹涼佑辰討い泙后A愛踉市は単によく知られている CGI + 変数巳苳擦任△襪里紡个掘絋踉市は (<code>request_rec</code> + フィ・踉札襯匹踉祉閼絋苳歯鱸閼絋苳の値が入っている)REQUEST_URI + に対応するものです。</li> + + <li><em>変数</em>に任意の環境変数を指定できる特別な書鹿粡寂蝟赱齠洲痲筵娼竢粤杜嶌変数}</code> + があります。これは Apache + の内部構造体磴靴ぢそこに存在しなければ)Apache + サ・踉札丱廛蹈札垢圓垢踉祉閼絋苳紫續緕踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を通して検索されます。</li> + + <li> + <em>ヘッダ</em>に任意の HTTP MIME ヘッダ巳苳擦鮖慊蠅任詁段未塀颱踉三 + <code>%{HTTP:ヘッダ}</code>があります。これは + HTTP リクエストから検索されます。 + 例: <code>%{HTTP:Proxy-Connection}</code> は HTTP ヘッダの + ``<code>Proxy-Connection:</code>'' の値です。</li> + + <li>前方参箸鮃圓覆辰篤睇瑤厂ぢベ・踉札垢蝟昭粡竚癈鷭п粐Ьぢサブリクエストを孫圓靴纃変数</em>の最終値を決定する特別な書鹿粡寂蝟赱齠洲痲筵娼竢粤盟ぢ変数}</code> があります。 + 尊櫃砲佗ぢフェ・踉札困慮紊里曚逅擦妊札奪箸気譴襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼現時点ではアクセスできないよう瘢雹な変数を使って書き換えを + 行ないたい豺腓忙藩僂靴泙后N磴┐弌▲機バ単位のコンテキスト + (<code>httpd.conf</code> ファイル) で <code>REMOTE_USER</code> + 変数にしたがって書き換えを行いたい豺腓砲蓮鹿粡寂蝟赱齠洲痲筵娼竢粤盟災斗冬孑賭踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を使用しなければなりません。なう踉擦覆蕁△海諒竸瑤閼熬纓鱸鹿粡寂蝟赱齠洲痲筵娼が動作する URL 変換フェ・踉札困纃後</em>にある認撻侫Аズで + セットされるものだからです。一方、ディレクトリ単位のコンテキスト + (<code>.htaccess</code> ファイル) では、mod_rewrite は API の Fixup + フェ・踉札困鯆未靴豆踉斬装されており、 + 認撻侫Аズはこのフェ・踉札困纃前</em>に行なわれるため、 + そこでは単に <code>%{REMOTE_USER}</code> + とすることができるます。</li> + + <li>内部の(ファイル巳苳札戞スの) + サブリクエストを孫圓靴纃変数</em>の最終値を決定する特別な書鹿粡寂蝟赱齠洲痲筵娼竢粤盟ぢ変数}</code> があります。 + ほとんどの豺腓海譴倭綾劼銑と同じです。</li> + </ol> + + <p><em>CondPattern</em> は、魴錺僖拭ンで、 + 現在の <em>TestString</em> の詑里紡个靴禿僂気譴訐亀集修任后鹿粡寂蝟赱齠洲痲筵娼纃壹齡囈鱸鈑蹙苳は髭苳参舛気譴晋紊踉糸蹙苳暫闔簧癆鴈蹙苳ぢに対して + マッチングが行なわれます。</p> + + <p><strong>備考:</strong> <em>CondPattern</em>は、 + 標準の<em>拡張正規表現</em>にいくつか追加を行ったものです:</p> + + <ol> + <li>'<code>!</code>' 文字(エクスクラメ・踉札轡腑鵐沺ク) + をパタ・踉札麒源鵑料阿砲弔韻襪海箸如鹿粡寂蝟赱齠洲痲筵娼マッチ<strong>しない</strong>パタ・踉札鵑鮖慊蠅任泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉糸蹙苳暫闔簧癆鴈蹙苳のちょっとした変錣發△蠅泙后鹿粡寂蝟赱齠洲痲筵娼尊櫃寮亀集淑源鵑梁紊錣蠅飽焚のよう瘢雹に使う瘢雹ことができます: + + <ul> + <li>'<strong><CondPattern</strong>' + (字句の並び的に、より気踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉糸蹙苳暫闔簧癆鴈蹙苳を単なる文字列として扱い、 + 字句の並びとして <em>TestString</em> と比較します。 + <em>TestString</em> が字句の並びとして + <em>CondPattern</em> より気う苳詞合に真になります。</li> + + <li>'<strong>>CondPattern</strong>' + (字句の並び的に、より大きい)<br /> + <em>CondPattern</em> を単なる文字列として扱い、 + 字句の並びとして <em>TestString</em> と比較します。 + <em>TestString</em> が字句の並びとして + <em>CondPattern</em> より大きい豺腓某燭砲覆蠅泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳薩齡鳫鈑獣闔簧癆鴈闔胼苳薩鹿粡寂蝟赱齠洲痲筵娼ぢ字句の並び的に等しい)<br /> + <em>CondPattern</em> を単なる文字列として扱い、 + 字句の並びとして <em>TestString</em> と比較します。 + <em>TestString</em> が字句の並びとして + <em>CondPattern</em> と等しい豺隋△垢覆錣繊鵑弔諒源鵑鹿粡寂蝟赱齠洲痲筵娼┗ぢ文字ずつ比較して)正確に等しい豺腓某燭砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼もし <em>CondPattern</em> が単なる<samp>""</samp> + (二つの引用符)であれば、 + <em>TestString</em> は空文字列と比較されます。</li> + + <li>'<strong>-d</strong>' (ディレクトリ (<strong>d</strong>irectory))<br /> + <em>TestString</em> をパス巳苳擦箸靴動靴ぁ△修譴減澆靴董鹿粡寂蝟赱齠洲痲筵娼かつディレクトリであれば真。</li> + + <li>'<strong>-f</strong>' (通錣離侫.ぅ齡鳫鈑网踉晒齡鳫鈑蛹紿踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉糸蹙苳市纉蜴胼踉晒纃ぢをパス巳苳擦箸靴動靴ぁ△修譴減澆靴董鹿粡寂蝟赱齠洲痲筵娼かつ通錣離侫.ぅ襪任△譴仗拭薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳薩齡鳫鈑闔胼苳薩大きさ (<strong>s</strong>ize) + のある通錣離侫.ぅ踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉糸蹙苳市纉蜴胼踉晒纃ぢをパス巳苳擦箸靴動靴ぁ△修譴減澆靴董鹿粡寂蝟赱齠洲痲筵娼かつ大きさが 0 より大きい通錺侫.ぅ襪任△譴仗拭薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳薩齡鳫鈑闔胼苳薩シンボリックリンク + (symbolic <strong>l</strong>ink))<br /> + <em>TestString</em> をパス巳苳擦箸靴動靴ぁ△修譴減澆靴董鹿粡寂蝟赱齠洲痲筵娼かつシンボリックリンクであれば真。</li> + + <li>'<strong>-F</strong>' (サブリクエストを通した既存ファイル) + <br /> + <em>TestString</em> が有効なファイルであること、 + そしてこのサ・踉札个砲い董住世農瀋蠅気譴討い襪垢戮討鹿粡寂蝟赱齠洲痲筵娼アクセス制御を通して、そのパス巳苳擦妊▲札垢任襪匹逅擦鹿粡寂蝟赱齠洲痲筵娼チェックします。これは内部のサブリクエストを使って + チェックを行う瘢雹ので、注意して使わないとサ・踉札个鹿粡寂蝟赱齠洲痲筵娼パフォ・踉札泪鵐垢鯆祺させることになりかねません!</li> + + <li>'<strong>-U</strong>' (サブリクエストを通した既存 URL) + <br /> + <em>TestString</em> が有効な URL であること、 + そしてこのサ・踉札个砲い董住世農瀋蠅気譴討い襪垢戮討鹿粡寂蝟赱齠洲痲筵娼アクセス制御を通して、そのパス巳苳擦妊▲札垢任襪匹逅擦鹿粡寂蝟赱齠洲痲筵娼チェックします。これは内部のサブリクエストを使って + チェックを行う瘢雹ので、注意して使わないとサ・踉札个鹿粡寂蝟赱齠洲痲筵娼パフォ・踉札泪鵐垢鯆祺させることになりかねません!</li> + </ul> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>注意: </strong>以紊垢戮討離謄好箸砲弔い董鹿粡寂蝟赱齠洲痲筵娼エクスクラメ・踉札轡腑鵐沺ク ('!') を前に置くことにより + それらの意味を否定したマッチングを行なう瘢雹ことができます。</td> + </tr> + </table> + </li> + </ol> + + <p>さらに、<code>RewriteCond</code> + ディレクティブへの第三引数として <em>CondPattern</em> に特別な</p> + + <blockquote> + <strong><code>[</code><em>フラグ</em><code>]</code></strong> + </blockquote> + を追加することができます + <em>フラグ</em>は以王踉擦里發里鬟鵐浙萓擇蠅琶造戮燭發里任瑳蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳薩齡鳫鈑竢粤鈿竅黼脱踉晒竢粤闔胼苳薩鹿粡寂蝟赱齠洲痲筵娼└踉雌闔胼苳試闔胼苳誌踉雌闔胼苳祉闔胼苳氏黼踉獅苳纂蝟昭粡竚癈鷭п粐Ьぢこれは大文字源魘菠未擦困縫謄好箸靴泙后纃すなわち、</em> + 展開された<em>TestString</em> と <em>CondPattern</em> において、 + 'A-Z' および 'a-z' の間には違いはないものと見なされます。 + このフラグは<em>TestString</em> と <em>CondPattern</em> の間の + 比較においてのみ有効です。ファイルシステム紊茲咼汽屮螢┘好鹿粡寂蝟赱齠洲痲筵娼のチェックでは意味を持ちません。</li> + + <li> + '<strong><code>ornext|OR</code></strong>' + (<strong>or</strong> next condition)<br /> + ル・踉札襴苳賜件を結合するにあたり、暗黙の AND の代わりにロ・踉札襪鹿粡寂蝟赱齠洲痲筵娼碗ぢを使います。典型的な例として、以王踉擦鮖王苳使してください: + + <blockquote> +<pre> +RewriteCond %{REMOTE_HOST} ^host1.* [OR] +RewriteCond %{REMOTE_HOST} ^host2.* [OR] +RewriteCond %{REMOTE_HOST} ^host3.* +RewriteRule ...これらのホストに関する特別な処理 +</pre> + </blockquote> + このフラグを使わない豺腓蓮▽苳賜件/ル・踉札襪鹿粡寂蝟赱齠洲痲筵娼回書くことになってしまいます。 + </li> + </ul> + + <p><strong>使用例:</strong></p> + + <blockquote> + リクエストの中の ``<code>User-Agent:</code>'' ヘッダに拾苳擦辰鹿粡寂蝟赱齠洲痲筵娼サイトのホ・踉札爛據ジの書き換えを行なう瘢雹には、以王踉擦里茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь纓鱸衷鈔挽墅炙單吽素杜奬淪陏蛹赱鹿粡寂蝟赱齠洲痲筵娼吶蜚縡蓖辣鞜艱癢杢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼吶蜚綯闔墺俤孑賭濮播淋薮銹鹿粡寂蝟赱齠洲痲筵娼吶蜚縡蓖辣鞜艱蜴杢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼吶蜚縡蓖辣鞜艱杢鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ьぢ解ブラウ瘢雹ザとして(踉捌身で 'Mozilla' と巳苳殺苳肢っている) + ネットスケ・踉札廛淵咼押タを使う瘢雹豺隋▲侫譟ム<em>など</em>を含む + max のホ・踉札爛據ジを見ることになります。(脱踉史戞スの) Lynx + ブラウ瘢雹ザを使う瘢雹豺腓蓮菫筌董ブル<em>など</em>を含まない + min のホ・踉札爛據ジが表┐気譴泙后修谿奮阿離屮薀逅札兇陸苳詞合は標準 + (std) のペ・踉札犬拾踉雑されます。 + </blockquote> + <hr noshade="noshade" size="1" /> + + <h3><a id="RewriteRule" + name="RewriteRule">RewriteRule</a></h3> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>書墾踉晒齡鳫鈑纓鱸咐跂鹿粡寂蝟赱齠洲痲筵娼纃倚纈遉踉晒纃踉糸蹙苳屍齡蜚蜿遉踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢデフォルト:</strong></a> <em>なし</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ襦鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好函▲妊譽肇蝓窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢオ・踉札弌ライド:</strong></a> + <em>FileInfo</em><br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札墾踉晒齡鳫鈑閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> Apache 1.2 + (partially), Apache 1.3<br /> + + <p><code>RewriteRule</code> + ディレクティブは、尊櫃僚颪垢┐鮹甘靴討譴詛櫓踉志馬です。 + このディレクティブは複数回書くことができます。 + 各ディレクティブは一つの書き換えル・踉札襪鯆蟲舛靴泙后鹿粡寂蝟赱齠洲痲筵娼これらル・踉札襪齡鳫鈑定義する順序</strong>は重要です。 + なう踉擦覆蕁▽踉斬行時にル・踉札襪鯏僂垢觝檗△海僚臀嚢圓覆錣譴襪蕕任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏篏癆鴈鵞瘢綵癆鴈鵞纃倚纈遉踉晒纃ぢは現在の + URL に適用される (Apache 1.1.x では System V8、Apache 1.2.x + 以降では POSIX の)<a id="regexp" name="regexp">正規表現</a>です。 + ここで「現在の」と言っているのは、ル・踉札襪僂気譴觝櫃厂鹿粡寂蝟赱齠洲痲筵娼の値のことです。これはリクエストされたオリジナルの URL + であるとは限りません。既に数多くのル・踉札襪泪奪舛靴董鹿粡寂蝟赱齠洲痲筵娼それを書き換えた後かもしれないからです。</p> + + <p>正規表現の文法に関するヒント:</p> + + <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5"> + <tr> + <td valign="top"> +<pre> +<strong>テキスト: </strong> + <strong><code>.</code></strong> 任意の一文字 + <strong><code>[</code></strong>chars<strong><code>]</code></strong> 文字クラス: いずれかの文字 + <strong><code>[^</code></strong>chars<strong><code>]</code></strong> 文字クラス: これら以外の文字 + text1<strong><code>|</code></strong>text2 選択肢: text1 または text2 + +<strong>文字数指定:</strong> + <strong><code>?</code></strong> 彫苳餐阿諒源ぢ回または 1 回の繰り返し + <strong><code>*</code></strong> 彫苳餐阿諒源ぢ回以紊侶衒屬鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑竢粤踉晒竢粤闔胼苳彫苳餐阿諒源ぢ回以紊侶衒屬鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑グル・踉札團鵐墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑竢粤└踉晒竢粤闔胼苳飼纔熙踉雌闔胼苳殺踉祉閼絋苳皐閼絋苳殺踉晒齡鳫鈑テキストのグル・踉札團鵐鹿粡寂蝟赱齠洲痲筵娼ぢ選択肢の境界瘢雹を明┐垢襦▽踉祉しくは後方参箸鮑鄒垢襪燭瓩忙箸逅察鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳士闔胼苳ぢ番目のグル・踉札廚蓮吶蜚縡の右瘢雹側瘢雹の表現で<code>$</code><strong>N</strong>として参箸垢襪海箸椎宗鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑文字位置の指定:</strong> + <strong><code>^</code></strong> 行頭 + <strong><code>$</code></strong> 行末 + +<strong>エスケ・踉札墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑竢粤椄踉晒竢粤闔胼苳祉葹特貶源鬟┘好院プ(効果を打ち辰ぢする + (例えば "<code>.[]()</code>" <em>など</em>) +</pre> + </td> + </tr> + </table> + + <p>正規表現に関する霾鵑蓮▲蹇カルの regex(3) man ペ・踉札犬泙燭鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢの配布物に含まれる<code>src/regex/regex.3</code> + を参箸靴討世気ぁ發契亀集修笋修諒僞踉誌 (POSIX 正規表現、 + Perl 正規表現 <em>など</em>)に興味があれば、以王踉擦寮賁臀颪鬚翰さい:</p> + + <blockquote> + <em>Mastering Regular Expressions</em><br /> + Jeffrey E.F. Friedl<br /> + Nutshell Handbook Series<br /> + O'Reilly & Associates, Inc. 1997<br /> + ISBN 1-56592-257-3<br /> + </blockquote> + + <p>(訳注: 第2版の日本語版)</p> + + <blockquote> + <em>楡ぢ正規表現 第2版</em><br /> + Jeffrey E. F. Friedl 著<br /> + 田和 ぢ訳<br /> + オライリ・踉察逅札献礇僖旭界踉獅苳纂蝟昭粡竚癈鷭п粐Ь瓶体軍臼外碣鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮さらに、mod_rewrite ではパタ・踉札鵑料阿ぢ文字('<code>!</code>') + が使えます。これで後続のパタ・踉札鵑鯣歡蠅垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼例えていう瘢雹ならば、``<em>もし現在の URL + がこのパタ・踉札鵑縫泪奪齡鳫鈑しなければ</strong></em>'' + という瘢雹ことです。これは、反対のパタ・踉札鵑鯢修絞蔽韻世辰燭蝓鹿粡寂蝟赱齠洲痲筵娼最後のデフォルトル・踉札襪箸垢襪覆鼻鹿粡寂蝟赱齠洲痲筵娼例外的なケ・踉札垢鯢集修垢襪里砲盪箸┐泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎糘莉哀硼鰾纈就唖艫闌闥就E暗案唖鹿粡寂蝟赱齠洲痲筵娼竇跛齔痺蜴臀竇跛鞜粐蜴臀唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑注意:</strong> NOT + 文字を使ってパタ・踉札鵑鯣歡蠅垢襴苳詞合はパタ・踉札鹵罎鹿粡寂蝟赱齠洲痲筵娼グル・踉札弉修気譴織錺ぅ襯疋ド部分を入れることはできません。 + これは、パタ・踉札鵑泪奪しない* とき、 + グル・踉札廚涼羶箸篭砲覆辰討靴泙逅擦蕕任后修侶覯漫鹿粡寂蝟赱齠洲痲筵娼否定されたパタ・踉札鵑鮖箸逅殺苳詞合は、置き換え文字列の中で + <code>$N</code> は使えません!</td> + </tr> + </table> + + <p>書き換えル・踉札襪踉氏篏Å蓴⊆蝟昭粡竚癈鷭п粐Ь瘢綵Å蓴▽苳殺踉糸蹙苳屍齡蜚蜿遉踉晒纃ぢは、<em>Pattern</em>が + マッチした豺腓縫螢献淵襪厂ぢから置き換えられる文字列です。 + プレ・踉札鵐謄好箸梁に以王踉擦里發里箸┐泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼闌鹿粡寂蝟赱齠洲痲筵娼跚吶蜚縡パタ・踉札鵑悗慮緤王苳使 <code>$N</code></li> + + <li>最後にマッチした RewriteCond パタ・踉札鵑悗慮緤王苳使 + <code>%N</code></li> + + <li>ル・踉札襴苳賜件のテスト文字列と同様のサ・踉札佇竸鹿粡寂蝟赱齠洲痲筵娼└踉祉閼絋苳札ぢ変数巳苳踉晒竢粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就m瘰胚釿▽苳ぢマッピング関数</a> の呼び出し + (<code>${mapname:key|default}</code>)</li> + </ol> + 後方参箸踉祉閼絋苳擦閼絋苳殺踉雌闔胼苳士闔胼苳雑齡鳫鈑陸踉晒齡鳫鈑衆工鹿粡寂蝟赱齠洲痲筵娼永婿劼派修靴泙后海譴蓮▲泪奪舛靴踉糸蹙苳姉癆鴈蹙苳のグル・踉札廚涼罎如鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑陸踉晒齡鳫鈑ぢ番目のものの内容に置き換えられます。サ・踉札佇竸瑤鹿粡寂蝟赱齠洲痲筵娼竢粤吶蜚綯闔筅踉晒竢粤ぢディレクティブの <em>TestString</em> と同じです。 + マッピング関数は <code>RewriteMap</code> ディレクティブから来たもので、 + そこで説明しています。これら 3 タイプの変数は、綉僚臀播験気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ前述のよう瘢雹に、すべての書き換えル・踉札襪踉糸蹙苳屍齡蜚蜿遉踉晒纃ぢに対して + (設定ファイルに定義してある順に)適用されます。URL + は <em>Substitution</em> によって<strong>完全に置き換えられ</strong>、 + 書き換え処理は <code><strong>L</strong></code> フラグ -- 後述 -- + によって明暴されていない限り、 + ル・踉札襪覆覆襪泙蚤海韻蕕譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳薩竢粤踉晒竢粤と呼ばれる特譴蔽屬垢源鵑△蠅泙后鹿粡寂蝟赱齠洲痲筵娼これは、<strong>置換禁止</strong>! の意味です。変でしょ? + いいえ、これは URL のマッチング<strong>だけ</strong>を行ない、 + 置換を行なわないという瘢雹機能を提供してくれるものです。 + <em>すなわち</em>、<strong>C</strong> (chain) + フラグとないっしょに使う瘢雹ことによって、 + 置換が行なわれる前に複数のパタ・踉札鵑鯏僂垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢもう瘢雹ひとつ注意事項: クエリ・踉司源麌鯢娉辰靴臣峇絞源鵑鹿粡寂蝟赱齠洲痲筵娼孀を生成することもできます。 + 単に、置換文字列の中にクエスチョンマ・踉札鯑譴襪世韻如△修谿聞澆鹿粡寂蝟赱齠洲痲筵娼冲賭捫嘖夘稜ぢに入れるべきことを┐靴泙后鹿粡寂蝟赱齠洲痲筵娼既存のクエリ・踉司源鵑鬢苳暫去したい豺腓蓮鹿粡寂蝟赱齠洲痲筵娼置換文字列をクエスチョンマ・踉札世韻能錣蕕擦襪茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎糘莉哀硼鰾纈就唖艫闌闥就E暗案唖鹿粡寂蝟赱齠洲痲筵娼竇跛齔痺蜴臀竇跛鞜粐蜴臀唖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑注意</strong>: 特豕’修砲弔い峠劼戮泙瑳蝟昭粡竚癈鷭п粐Ьぢ置換フィ・踉札襯匹料阿鹿粡寂蝟赱齠洲痲筵娼竢粤蔗痕踉晒竢粤纃蜩蓖齡蹙苳斯纃柵蓍齔闥熙踉晒纃歇蝟昭粡竚癈鷭п粐Ьぢを置くと、<strong>mod_rewrite</strong> + は暗砲海譴鮟遒靴泙后海琉徒曚粒杏凜螢瀬ぅ譽厂鹿粡寂蝟赱齠洲痲筵娼における以儡控’修蓮▲曠好般部分を生成する + マッピング関数と同時に使う瘢雹豺腓吠慷捗斗廚覆發里任后鹿粡寂蝟赱齠洲痲筵娼これを理解するには、以王踉擦離汽鵐廛襪陸苳始の最初の例を見てください。 + </td> + </tr> + </table> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>備考: この機能の影響で、</strong> + <code>http://thishost</code> 接頭良佞い鹿粡寂蝟赱齠洲痲筵娼踉捌身のサ・踉札个悗量畿苳賜件の外部リダイレクションは、 + 動作しません。 + このよう瘢雹な淵螢瀬ぅ譽箸鮃圓逅擦砲蓮齡鳫鈑勁踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼フラグを使う瘢雹必要があります(後述)。</td> + </tr> + </table> + + <p><code>RewriteRule</code> ディレクティブの第三引数として、 + <em>Pattern</em> に対して綉奮阿砲皸焚のよう瘢雹な</p> + + <blockquote> + <strong><code>[</code><em>フラグ</em><code>]</code></strong> + </blockquote> + をつけることができます。 + <em>フラグ</em>は以王踉擦里發里鬟鵐泙廼萓擇辰道慊蠅靴泙瑳蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑竢粤鱚粡鱚笏閼絋苳纂蝟昭粡竚癈鷭п粐Ь拾踉糸蹙苳祉閼絋踉晒纃檸踉晒齡鳫鈑ぢ強制 <a id="redirect" + name="redirect"><strong>r</strong>edirect</a>)<br /> + + <em>Substitution</em> の前に (新しい URL を URI にする) + <code>http://thishost[:thisport]/</code> + をつけることにより強制的な外部リダイレクションを行ないます。 + <em>code</em> が指定されない豺隋挽墅ぢレスポンスの 302 + (MOVED TEMPORARILY) が使われます。300 から 400 + までの側苳擦離譽好櫂鵐好魁ドを返したい豺腓蓮鹿粡寂蝟赱齠洲痲筵娼彫苳酸椶修糧峭罎鮖慊蠅垢襪▲轡鵐椒詭 <code>temp</code> + (デフォルト), <code>permanent</code>, <code>seeother</code> + のいずれかを使います。<em>例えば</em>、``<code>/~</code>'' + を ``<code>/u/</code>'' に変換したり、錣踉祉閼絋苳晒閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉糸蹙苳歯黼鬢踉晒纃ぢにスラッシュを追加するなどの、クライアントに 正規化 + された URL を返すル・踉札襪忙箸逅擦海箸任泙后碣鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ注意:</strong> + このフラグを使う瘢雹豺腓蓮峇好侫ルドが有効な URL + であることを確認してください。もしそう瘢雹でない豺隋鹿粡寂蝟赱齠洲痲筵娼無効な貊蠅縫螢瀬ぅ譽箸靴討い襪海箸砲覆辰討靴泙い泙后鹿粡寂蝟赱齠洲痲筵娼さらに、このフラグは、URL の前に + <code>http://thishost[:thisport]/</code> + を付加するだけで、その後も書き換え処理は続くことを + 理解しておいてください。 + 通錣呂修海能颪垢┐鬚笋瓩涜┿縫螢瀬ぅ譽箸垢襪海箸みの動作 + でしょう瘢雹。 + 書き換えを終了するには、 + 'L' フラグもいっしょに指定しなければなりません。</p> + </li> + + <li>'<strong><code>forbidden|F</code></strong>' (URL を強制的に + <strong>f</strong>orbidden(禁止)にする)<br /> + これは現在の URL を強制的にアクセス禁止にします。 + <em>すなわち</em>、即時に HTTP レスポンスの 403 (FORBIDDEN) + を返します。このフラグは適切な RewriteCond + といっしょに使って、特定の URL に対する魴錺屮蹈奪鮃圓覆逅擦燭瓩鹿粡寂蝟赱齠洲痲筵娼使います。</li> + + <li>'<strong><code>gone|G</code></strong>' (URL を強制的に + <strong>g</strong>one(探邵僂ぢにする)<br /> + これは現在の URL を強制的に探邵僂闔紿にします。 + <em>すなわち</em>、即時に HTTP レスポンスの 410 (GONE) + を返します。このフラグはもはや存在しないペ・踉札犬鹿粡寂蝟赱齠洲痲筵娼探邵僂澆箸靴謄沺クするために使います。</li> + + <li> + '<strong><code>proxy|P</code></strong>' (強制 + <strong>p</strong>roxy)<br /> + このフラグは、置換対殄瑤鯑睇淵廛蹈轡螢┘好鹿粡寂蝟赱齠洲痲筵娼とみなし、その譴└踉糸蹙苳ぢすなわち</em>、 + ここで書き換えル・踉札襪鯆篁澆靴踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖頏陂蔗迪▽苳ぢプロキシモジュ・踉札襪通して出力します。 + 置換対殃源鵑└踉糸蹙苳ぢ例えば</em>、普通は <code>http://</code> + <em>hostname</em>で始まるよう瘢雹な)、Apache + プロキシモジュ・踉札襪念靴┐詬夘ぢでなければなりません。 + そう瘢雹でなければ、プロキシモジュ・踉札襪薀┘蕁が報告されます。 + このフラグを使う瘢雹ことでより強力な <a + href="mod_proxy.html#proxypass">ProxyPass</a> + ディレクティブの汰鮃圓覆逅擦海箸任▲螢癲トにあるものを + ロ・踉札襯機バの巳苳餐斡屬縫泪奪廚垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ注意: この機能を使う瘢雹にあたっては、ご鞜竏サ・踉札个鹿粡寂蝟赱齠洲痲筵娼プロキシモジュ・踉札襪箸濆泙譴討い襪海箸鹿粡寂蝟赱齠洲痲筵娼確認してください。確認方法がわからない豺腓蓮玻竢粤蔗篌蝟昭粡竚癈鷭п粐Ь讀踉晒竢粤Ёぢの出力の中に <code>mod_proxy.c</code> + があるかどう瘢雹かを調べてみましょう瘢雹。もしあれば、 + mod_rewrite のこの機能を使えます。もしなければ、mod_proxy + を有効にして ``<code>httpd</code>'' + プログラムを再構築する必要があります。</p> + </li> + + <li>'<strong><code>last|L</code></strong>' + (<strong>l</strong>ast(最後の)ル・踉札踉獅苳纂蝟昭粡竚癈鷭п粐Ьぢここで書き換え処理を中止し、 + それ以紊僚颪垢┘襦ルを適用しないよう瘢雹にします。これは Perl + の <code>last</code> コマンドや C 言語の <code>break</code> + コマンドに対応するものです。このフラグを使う瘢雹ことで、 + 現在の書き換え後の URL が後続のル・踉札襪砲茲辰鹿粡寂蝟赱齠洲痲筵娼それ以綵颪垢┐蕕譴襪海箸鯔瓢澆靴泙后鹿粡寂蝟赱齠洲痲筵娼例えば、これを使ってル・踉札肇僖垢厂Е踉祉閼絋苳晒閼絋苳薩蝟昭粡竚癈鷭п粐Ьぢを尊櫃里發痢纃例えば </em>'<code>/e/www/</code>' + に書き換えます。</li> + + <li>'<strong><code>next|N</code></strong>' + (<strong>n</strong>ext(,ぢ一踉獅苳纂蝟昭粡竚癈鷭п粐Ьぢ書き換え処理を(一番最初の書き換えル・踉札襪ぢ再孫圓靴泙后鹿粡寂蝟赱齠洲痲筵娼ただしその際マッチングされる URL は当初の URL + ではなく、最後に書き換えられた URL です。これは Perl + の <code>next</code> コマンドや C 言語の <code>continue</code> + コマンドに対応するものです。 + 書き換え処理を再起動したいとき + <em>すなわち、</em>ル・踉札廚寮萋北瓩蠅燭い箸碣に + このコマンドを使ってください。 + <strong>ただし、無限ル・踉札廚鮑遒蕕覆い茲逅擦卜碓佞靴討世気ー蝟昭粡竚癈鷭п粐Ь踉晒齡鳫鈑薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳薩齡鳫鈑竢粤竏瘟鋺脱踉晒竢粤闔胼苳薩鹿粡寂蝟赱齠洲痲筵娼ぢ,離襦ルに <strong>c</strong>hained (チェイン))<br /> + このフラグを指定すると、現在のル・踉札襪櫓踉察のル・踉札襪縫船Дぅ鵑気譴泙鹿粡寂蝟赱齠洲痲筵娼ぢなお、,離襦ルも後続のル・踉札襪暴臠屬鹿粡寂蝟赱齠洲痲筵娼チェインすることができます)。これには以王踉擦慮未△蠅泙瑳蝟昭粡竚癈鷭п粐Ьぢル・踉札襪泪奪舛垢襪函⊇萢歪巳苳誌どおり行われます。 + <em>すなわち</em>フラグは何の影響も与えません。ル・踉札襪泪奪鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑しない</strong>豺隋綢海里垢戮討離襦ルはスキップされます。 + 例えば (.www 部分が行なわれるべきでない) + 外部リダイレクトを発生させた時に、 + ディレクトリごとのル・踉札襯札奪箸涼罎爨踉祉閼絋苳皿踉晒竢粤Ё鹿粡寂蝟赱齠洲痲筵娼の部分を茲蟒燭瓩忙箸逅擦海箸任泙后鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑竢粤鞳閼絋苳殺踉晒齡鳫鈑拾踉糸蹙苳四浜鏑鞳蹙苳薩鹿粡寂蝟赱齠洲痲筵娼浜齡鳫鈑熙踉晒齡鳫鈑の強制指定)<br /> + タ・踉札殴奪肇侫.ぅ襪浜タイプを強制的に <em>MIME-type</em> + にします。例えばこれを使って、<code>mod_alias</code> + のディレクティブである <code>ScriptAlias</code> + をシミュレ・踉札箸垢襪海箸任泙后海譴蓮鹿粡寂蝟赱齠洲痲筵娼マッピングされたディレクトリの中にあるすべてのファイルの MIME + タイプを、内部的に``<code>application/x-httpd-cgi</code>'' + に強制セットするものです。</li> + + <li> + '<strong><code>nosubreq|NS</code></strong>' (<strong>n</strong>o + <strong>s</strong>ub-request, + 内部の + サブリクエストがない + ときのみ使われる)<br /> + このフラグを使う瘢雹と、クエストが内部のサブリクエストである豺腓法鹿粡寂蝟赱齠洲痲筵娼書き換えエンジンが書き換えル・踉札襪鬟好奪廚垢襪茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼サブリクエストは、例えば、<code>mod_include</code> + がディレクトリのデフォルトの候補となるファイルの霾鹿粡寂蝟赱齠洲痲筵娼└踉祉閼絋苳脂鈔纔閼絋苳皐ぢを検索しよう瘢雹とする際に、Apache + の中で内部的に発生します。 + サブリクエストにおいては書き換え操作は錣僕僂任△襪箸聾造蕕此鹿粡寂蝟赱齠洲痲筵娼すべてのル・踉札襪僂気譴討靴泙逅擦般簑蠅魑海靴討靴泙逅殺苳詞合もあります。 + そのよう瘢雹なル・踉札襪呂海離侫薀阿鮖箸辰峠阿靴泙后碣鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ以王踉擦離襦ルを使って、このフラグを使う瘢雹かどう瘢雹か決めてください: + CGI スクリプトの先頭になんらかの URL を付加して、それを CGI + スクリプトで処理させよう瘢雹とする豺隋▲汽屮螢┘好箸虜櫃北簑蠅鹿粡寂蝟赱齠洲痲筵娼起こったり (オ・踉札弌ヘッドがかかったり) する可能性が高くなります。 + このよう瘢雹なケ・踉札垢任蓮△海離侫薀阿鮖箸辰討世気ぁ鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳薩齡鳫鈑竢粤鈿竅黼脱踉晒竢粤闔胼苳薩鹿粡寂蝟赱齠洲痲筵娼└踉雌闔胼苳試闔胼苳誌踉雌闔胼苳祉闔胼苳氏黼踉獅苳纂蝟昭粡竚癈鷭п粐Ьぢこれは<em>パタ・踉札蹙苳ぢについて大文字源魘菠未靴覆い茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼纃すなわち</em>、<em>パタ・踉札蹙苳ぢが現在の URL とマッチされる際、 + 'A-Z' と 'a-z' は区別されません。</li> + + <li>'<strong><code>qsappend|QSA</code></strong>' + (<strong>q</strong>uery <strong>s</strong>tring + <strong>a</strong>ppend)<br /> + このフラグは、既存のものを置き換えるのではなく、置換文字列の + クエリ・踉司源麌鯆媛辰垢襪茲逅擦砲靴泙后颪垢┘襦ルを通してクエリ・踉鹿粡寂蝟赱齠洲痲筵娼文字列に何かデ・踉札燭鯆媛辰靴燭う苳詞合にこのフラグを使います。</li> + + <li> + '<strong><code>noescape|NE</code></strong>' + (<strong>n</strong>o URI <strong>e</strong>scaping of + output)<br /> + このフラグは、mod_rewrite が書き換え結果に対して通鏐圓覆錣譴鹿粡寂蝟赱齠洲痲筵娼孀エスケ・踉札廛襦ルを適用しないよう瘢雹にします。通錣ДК鹿粡寂蝟赱齠洲痲筵娼ГК薩ぢといった) 特貶源砲弔い討蓮△修譴蕕氾舛脅蝟昭粡竚癈鷭п粐Ьぢ進数文字列 (順に '%25', '%24', '%3B') にエスケ・踉札廚気譴泙后鹿粡寂蝟赱齠洲痲筵娼このフラグはこの動作を抑制します。 + これにより、出力の中にパ・踉札札鵐畔源鮖箸逅擦海箸任泙后鹿粡寂蝟赱齠洲痲筵娼以王踉擦卜磴魑鵑欧泙后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь纓鱸咐跂肬鎭┏矚鮨癇臀弍椒割け飭療歇蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼この例では、'<code>/foo/zed</code>' が安全なリクエストである + '<code>/bar?arg=P1=zed</code>' に変更されます。 + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>注意:</strong> + <code>noescape</code> フラグは Apache 1.3.20 + 以降でのみ有効です。</td> + </tr> + </table> + </li> + + <li> + '<strong><code>passthrough|PT</code></strong>' + (<strong>p</strong>ass <strong>t</strong>hrough to next + handler)<br /> + このフラグは、内部の <code>request_rec</code> 構造体の + <code>uri</code> フィ・踉札襯匹踉祉閼絋苳紙蛹緕瘢絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼フィ・踉札襯匹涼佑鬟札奪箸垢襪茲逅擦法⊇颪垢┘┘鵐献鵑忙悧踉雑します。 + このフラグは単に、<code>RewriteRule</code> + ディレクティブの出力に対して、側苳擦夘鹿粡寂蝟赱齠洲痲筵娼からファイル巳苳擦悗諒儡構萢鮃圓逅踉祉閼絋苳餐跚癈閼絋苳錆蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍竰蜷跚癈閼絋苳錆踉祉閼絋苳子繖蜥繝熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼纃といった</em>ディレクティブによる後処理を入れるための擦任后鹿粡寂蝟赱齠洲痲筵娼意味を┐垢燭瓩涼噂磴蔑竢粤迴籖鱚蜚絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼の書き換えエンジンで <code>/abc</code> から <code>/def</code> + への変換を行ない、さらに <code>mod_alias</code> で + <code>/def</code> から <code>/ghi</code> + に書き換えるには、以王踉擦里茲逅擦砲靴泙瑳蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼吶蜚縡洒痰礙粤罎柞壙鹿粡寂蝟赱齠洲痲筵娼糟蛛繙艾藜蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼もし <code>PT</code> フラグを指定するのを忘れてしまった豺隋鹿粡寂蝟赱齠洲痲筵娼竢粤迴籖鱚蜚絋踉晒竢粤ぢはちゃんとその仕事を行ないます。 + <em>すなわち</em>、完全な API に準拠した URI-to-filename + 変換ル・踉札船鵑圓逅擦戮竢粤藹矣閼絋苳を + <code>filename=/def/...</code> に書き換え、を行ないます。その後 + <code>mod_alias</code> が起動され、URI-to-filename + 変換を試みますが、これは動作しません 。 + + <p>注意: <strong>URL-to-filename + 変換を含む異なったモジュ・踉札襪離妊譽謄屬鮑僂靴燭う苳詞合には、 + このフラグを指定する必要があります。</strong>典型的な例としては、 + <code>mod_alias</code> と <code>mod_rewrite</code> + の同時使用です。</p> + </li> + + <li>'<strong><code>skip|S</code></strong>=<em>num</em>' + (<strong>s</strong>kip next rule(s))<br /> + このフラグは書き換えエンジンに対し、現在のル・踉札襪泪奪舛靴燭蕁鹿粡寂蝟赱齠洲痲筵娼,踉糸蹙苳試蹙苳個のル・踉札襪鬟好奪廚垢襪茲逅算悧踉雑します。これを + 使って、畿踉算罩緕踈構造を作ることができます: then-句 + の最終ル・踉札襪踉祉閼絋苳雌謇霆陸踉晒竢粤ぢとなります。ここで N は + else-句 に入れるル・踉札襪凌瑤任后ぢこれは 'chain|C' フラグとは + <strong>異なります</strong>!)。</li> + + <li> + '<strong><code>env|E=</code></strong><em>VAR</em>:<em>VAL</em>' + (set <strong>e</strong>nvironment variable)<br /> + これは <em>VAR</em> という瘢雹巳苳餐阿隆超竸瑤涼佑踉糸蹙苳志遡蹙苳纂蝟昭粡竚癈鷭п粐Ьぢにするよう瘢雹指┐靴泙后海海踉糸蹙苳志遡蹙苳纂蝟昭粡竚癈鷭п粐Ьぢには、正規表現の後方参箸箸靴禿験気譴踉祉閼絋苳擦陸踉晒竢粤ぢと + <code>%N</code> を書くことができます。 + このフラグを複数使って、複数の変数を定義することもできます。 + この変数は多くの豺隋巳苳誌後から XSSI (<code><!--#echo + var="VAR"--></code> を通して) または CGI (<em>例えば</em> + <code>$ENV{'VAR'}</code>) のよう瘢雹に、参箸気譴泙后気蕕法鹿粡寂蝟赱齠洲痲筵娼吶蜚綯闔パタ・踉札踉祉閼絋苳札琳砦倉踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼を通して参箸垢襪海箸發任泙后海譴鮖箸辰厂鹿粡寂蝟赱齠洲痲筵娼ぢからの霾鵑鮴擇螟踉肢って記憶します。</li> + </ul> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td> + <strong>注意:</strong> + サ・踉札价碓未寮瀋螢侫.ぅ襪涼罎任蓮纃倚纈遉踉晒纃ぢは完全な + URL に適用されることを忘れないでください。 + <strong>しかしながら、ディレクトリ単位の設定ファイルの中では、 + パタ・踉札鵐泪奪船鵐阿里燭瓩縫妊譽肇蠱碓未寮榮踉鮫 + (これは特定のディレクトリでは錣貌韻犬發里任?ぢが暗鹿粡寂蝟赱齠洲痲筵娼纃茲蟒蹙苳ぢ、置換が終わった後に暗纃付加</em> + されます。</strong>この機構は、さまざまな鑪爐僚颪垢犧遒鹿粡寂蝟赱齠洲痲筵娼おいて欠くことのできないものです。なう踉擦覆蕁△海寮榮踉鮫のスキップ + が行なわれないと、錣紡減澆垢襪箸聾造蕕覆た謄妊譽肇蠅箸鹿粡寂蝟赱齠洲痲筵娼マッチングを行なわなければならなくなるからです。 + + <p>ひとつ例外があります: 置換文字列が ``<code>http://</code>'' + で始まっている豺隋▲妊譽肇蠕榮踉鮫は付加<strong>されず + </strong>、外部リダイレクトまたは (<strong>P</strong> フラグが + 使われていれば!) プロキシ処理が強制的に行なわれます。</p> + </td> + </tr> + </table> + + <table width="70%" border="0" bgcolor="#E0E0F0" + cellspacing="0" cellpadding="10"> + <tr> + <td><strong>注意:</strong> ディレクトリ単位の設定ファイル + における書き換えエンジンを有効にする豺隋△海譴蕕離侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼玻竢粤吶蜚綸鈑蜴閼絋苳薩をセットし、<strong>かつ + </strong>``<code>Options FollowSymLinks</code>'' を有効に + しなければなりません。あなたのところの管理圓罅ザの + ディレクトリの <code>FollowSymLinks</code> のオ・踉札弌ライド + を禁止していた豺隋⊇颪垢┘┘鵐献鵑鮖箸逅擦海箸呂任泙擦鵝鹿粡寂蝟赱齠洲痲筵娼この制限が必要なのは、セキュリティ関連の理由によります。</td> + </tr> + </table> + + <p>以王踉擦僕蔽峇垢料塙腓擦函△修譴蕕琉嫐鬢踉雑します:</p> + + <p><strong>リクエスト ``<code>GET /somepath/pathinfo</code>'' + が行なわれた豺腓痢碣鹿粡寂蝟赱齠洲痲筵娼サ・踉札价碓未寮瀋竢粤蔗筮竢鈕閼絋苳皐ぢの内部:</strong><br /> + </p> + + <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5"> + <tr> + <td> +<pre> +<strong>与えられたル・踉札闔胼苳踉雌闔胼苳ぢ置換結果</strong> +---------------------------------------------- ---------------------------------- +^/somepath(.*) otherpath$1 無効なのでサポ・踉札箸靴覆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼洒齒辣鞜┏纈鞜け柢無効なのでサポ・踉札箸靴覆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼洒齒辣鞜┏纈鞜け柞無効なのでサポ・踉札箸靴覆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼洒齒辣鞜┏阡蒹鴃癆茲纈鞜癆蓍鈕鐚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь闕辮癆荐纈鞜け叺ぢ外部リダイレクション経由で + http://thishost/otherpath/pathinfo + +^/somepath(.*) /otherpath$1 [P] 無意味なのでサポ・踉札箸靴覆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼洒齒辣鞜┏雕蜩蓖齡纈鞜け纈鞜癆蓍鈕鐚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь闕辮癆荐蔗痕蓍鼈闢阡蒹鴃癆茲柢ぢ外部リダイレクション経由で + http://thishost/otherpath/pathinfo + +^/somepath(.*) http://thishost/otherpath$1 [P] 無意味なのでサポ・踉札箸靴覆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼洒齒辣鞜┏雕阡蒹鱶闢阡蒹鴃癆茲外部リダイレクション経由で + http://otherhost/otherpath/pathinfo + +^/somepath(.*) http://otherhost/otherpath$1 [R] 外部リダイレクション経由で + http://otherhost/otherpath/pathinfo + ([R] フラグは蘢蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь闕辮癆荐蔗痕纈蓖齡纈鞜け俚ぢ内部プロキシ経由で + http://otherhost/otherpath/pathinfo +</pre> + </td> + </tr> + </table> + + <p><strong>リクエスト ``<code>GET /somepath/localpath/pathinfo</code>'' + が行なわれた豺腓痢碣鹿粡寂蝟赱齠洲痲筵娼竢粤闕辮癆荀踉晒竢粤ぢに関するディレクトリ単位の設定の内部:<br /> + (<em>例えば</em>、 + <code>/physical/path/to/somepath</code> ディレクトリにあって、<br /> + <code>RewriteBase /somepath</code> の記述がある + <code>.htaccess</code> ファイル):</strong><br /> + </p> + + <table bgcolor="#F0F0F0" cellspacing="0" cellpadding="5"> + <tr> + <td> +<pre> +<strong>与えられたル・踉札闔胼苳踉雌闔胼苳ぢ置換結果</strong> +---------------------------------------------- ---------------------------------- +^localpath(.*) otherpath$1 /somepath/otherpath/pathinfo + +^localpath(.*) otherpath$1 [R] 外部リダイレクション経由で + http://thishost/somepath/otherpath/pathinfo + +^localpath(.*) otherpath$1 [P] 無意味なのでサポ・踉札箸靴覆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼溲閭瘡鞜┏阡蒹鴃癆茲纈鞜癆蓍鈕鐚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь跫竅跟癆荐纈鞜け叺ぢ外部リダイレクション経由で + http://thishost/otherpath/pathinfo + +^localpath(.*) /otherpath$1 [P] 無意味なのでサポ・踉札箸靴覆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼溲閭瘡鞜┏雕蜩蓖齡纈鞜け纈鞜癆蓍鈕鐚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь跫竅跟癆荐蔗痕蓍鼈闢阡蒹鴃癆茲柢ぢ外部リダイレクション経由で + http://thishost/otherpath/pathinfo + +^localpath(.*) http://thishost/otherpath$1 [P] 無意味なのでサポ・踉札箸靴覆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼溲閭瘡鞜┏雕阡蒹鱶闢阡蒹鴃癆茲外部リダイレクション経由で + http://otherhost/otherpath/pathinfo + +^localpath(.*) http://otherhost/otherpath$1 [R] 外部リダイレクション経由で + http://otherhost/otherpath/pathinfo + ([R] フラグは蘢蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь跫竅跟癆荐蔗痕纈蓖齡纈鞜け俚ぢ内部プロキシ経由で + http://otherhost/otherpath/pathinfo +</pre> + </td> + </tr> + </table> + + <p><strong>例:</strong></p> + + <blockquote> + ここでは、 + <blockquote> + <code>/</code> <em>Language</em> <code>/~</code> + <em>Realname</em> <code>/.../</code> <em>File</em> + </blockquote> + + という瘢雹書阿厂ぢを + + <blockquote> + <code>/u/</code> <em>Username</em> <code>/.../</code> + <em>File</em> <code>.</code> <em>Language</em> + </blockquote> + + に書き換えたいものとします。 + + <p>前述のマップファイルを <code>/path/to/file/map.txt</code> + という瘢雹巳苳餐阿琶歛犬靴討泙后修慮紂草痺蒹ぢサ・踉札仞瀋鹿粡寂蝟赱齠洲痲筵娼ファイルに以王踉擦旅圓鯆媛辰垢襪世韻任墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼吶蜚緻閾鞜鎭肅跂纓鱸閾鹿粡寂蝟赱齠洲痲筵娼吶蜚緲瘰縺讚黼癆莚蛹絲轣隰蝟昭粡竚癈鷭п粐Ь纓鱸咐跂洒洒櫟栲鱚瘡鎰纈困戒鈿硼糯こ閏蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉肢鈿鼈痲綵闢葹粤皷就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼竇銓纈鹿粡寂蝟赱齠洲痲筵娼莟蜆就莱黹繻跂鈬阨鵞鹿粡寂蝟赱齠洲痲筵娼釶辣就莱黹繻跂鈬阨鵞その側苳擦陸苳諮報</a></h1> + </center> + <hr noshade="noshade" size="1" /> + + <h2><a id="EnvVar" name="EnvVar">環境変数</a></h2> + このモジュ・踉札襪蓮竢粤喘夘來炙厂閼絋苳と + <code>SCRIPT_URI</code> という瘢雹二つの (非標準の) CGI/SSI + 環境変数を設定します。これらの中には現在のリソ・踉札垢悗纃論理的な</em> + Web ビュ・踉擦辰討い泙后0貶現爐派喇ぢ変数である + <code>SCRIPT_NAME</code> と <code>SCRIPT_FILENAME</code> + には、<em>物理的な</em>システムビュ・踉擦辰討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ注意: これらの変数の中には、<em>最初にリクエストを韻浸蹙苳纂蝟昭粡竚癈鷭п粐Ь踉糸蹙苳ぢすなわち</em>、書き換えが行われる<em>前の</em> URI/URL + が保持されています。URL 書き換え処理は、論理的な URL + を物理的なパス巳苳擦暴颪垢┐襪燭瓩忙箸錣譴襪海箸燭い燭瓠鹿粡寂蝟赱齠洲痲筵娼この点は重要です。</p> + + <p><strong>例:</strong></p> + + <blockquote> +<pre> +SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html +SCRIPT_FILENAME=/u/rse/.www/index.html +SCRIPT_URL=/u/rse/ +SCRIPT_URI=http://en1.engelschall.com/u/rse/ +</pre> + </blockquote> + <hr noshade="noshade" size="1" /> + + <h2><a id="Solutions" name="Solutions">汰焚魴菲王苳纂蝟昭粡竚癈鷭п粐Ьぢこの文書以外にも、<a href="../misc/rewriteguide.html">URL + Rewriting Guide</a> という瘢雹文書があります。この中には、URL + ベ・踉札垢量簑蠅砲弔い董▽踉斬践的な解決法が集められています。 + ここで尊櫃北鯲張襦ルセットや mod_rewrite + に関する追加霾鵑鮓襪海箸任襪任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉察瘍蜴粤銓癆蜿鹿粡寂蝟赱齠洲痲筵娼´ヨ纈苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖黼鉚蜀谺緕閭鶩轣銛瘡閼閼燗續緕罧蔗迪郤碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握後拘怯険蘯碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼燗續緕罧蔗迪鄂莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼燗續緕罧蔗迪郤昭蝟昭粡竚癈鷭ц襷樟卯害誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏迴糒跂閼燗續緕网踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳四閼迴籖黼鉚蜀右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閼頏阮蜆纉蒹砠跚黼緕鳫鉈緕蝟昭粡竚癈鷭п粐Ь癇蛛碎纉癈繖竟癆蛯纉鱚髟纉鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯囂竇鍋跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍阨鱆鍋跂墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖黼鉚蜀碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯酪糒跂符緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼符緕肅纈墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼黼鉚蜀熏閼絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑蛹痰跂郤蝟昭粡竚癈鷭п粐Ь鞜竏窺瘤赱鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢囎迯癇踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉雌瘢隍苳詩閼燗續緕网踉晒黶逅閼瘡跫阨黼蝟昭粡竚癈鷭п粐Ь鉚蜥闔辣銓癇蛛碎纉窿闥粡鈑續蒹粡聿纈緕癈鞳笏閹鹿粡寂蝟赱齠洲痲筵娼鱚髟纉轣蓿繙就蜩祚徳儁蔗迪r繚纔▽苳賜繚癇鹿粡寂蝟赱齠洲痲筵娼纔頏纉皷闔鵙踉晒瓲苳齔繝蜀蒹黼鉚蜥闔辣銓癇蛛碎纉瘤綣蝟昭粡竚癈鷭п粐Ь黼磔纈癇黼鴟纈轣諷繝蜩蜿銖硼鹿粡寂蝟赱齠洲痲筵娼痺闔諷隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蜥繝癇竢銖蜆纈繖闥粤纖韶縺蜴鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿肅跂鶤迴鱚闕韭纔繿釿纉瘤繖蝟昭粡竚癈鷭п粐Ь癈蓍纔瘢韭絳蓍竏續竢粤鈬竅鞳閼絋苳蜀蒹鹿粡寂蝟赱齠洲痲筵娼碣阯黼蜩陏蛹赱阡喇溺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鳫纈浴淪陏蛹赱續黹瘰綣蝟昭粡竚癈鷭п粐Ь鳫纈浴羊錨鈬竅鞳鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥粐蜚蜿釶蜴肬鴉癆蜿遯頏阮蜆粹笊辣銓畆蝟昭粡竚癈鷭п粐Ь鱚羹〓緕蔗迪▽苳仕鉚蜥闔辣銓癇蛛碎纉草痺蒹踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳残蜥繝鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就b鳫纈轣茴択阯黼鰺癆竏薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■碣阯黼鴉癆竏鈿竅黼▽苳斬鳫纈浴萠鐫癈絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就s續緕罌嚆鉚膚薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黼鉚蜀鈿竅黼▽苳屍續梼耄鐫癈絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь踉察蒹蜩癇閹蒹蜥繝纉竰蜷闔苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≒鳫纈轣茴瘢綵≒鳫纈轣茴択阯黼鰺癆竏鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑鳫纈浴纃鱚艱蝟昭粡竚癈鷭п粐Ь鉚癇蛛碎絋踉晒纃杤纃跿絋踉晒纃歇蝟昭粡竚癈鷭п粐Ь纃緕鱸痰跂蹙苳斯拾踉糸蹙苳事瘡蹙苳旨踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳薤苳試闔絋踉晒薤苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼燗續緕网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼痰阮草痺蒹蓍粡鱚笏蝟肬蜴蒹鹿粡寂蝟赱齠洲痲筵娼鈿閧齒跂閼烽鳫纈閼紿蜴蔗痺竇齠蛹纉鉤蝟昭粡竚癈鷭п粐Ь竟鶯繖蜚窺凱嘘鈔癆纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鳫纈浴粡鱚笏蝟粤肅鈬緕鳫鉈緕鱸痰跂鷦蝟昭粡竚癈鷭п粐Ь癈繖黶逅專纈艱銓瘢隍苳挽墅繿齡縺粤肅繻筮鹿粡寂蝟赱齠洲痲筵娼壽肅鴦癇苺辣銓蓖矼腕婦緕粤鱚苺赱鮗蝟昭粡竚癈鷭п粐Ь鱚齠蜿蜊蛹癇瘤踉雌瘢隍苳糸苒辮瘢隍苳鮫齡鱚艱壽綣蝟昭粡竚癈鷭п粐Ь纉閹蒹鱧緕蝟釶辣閹癇蛛碎纉黼鈔鹿粡寂蝟赱齠洲痲筵娼關闔瘡踟瘡蓍竏蒹鼈阨趙黼蒹黼瘠綣蝟昭粡竚癈鷭п粐Ь闥閹鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼闌鹿粡寂蝟赱齠洲痲筵娼跚黶逅纃鴈瘢絋踉晒纃瘢隍苳錆鬢踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚黶逅・踉糸蹙苳事癇釶辣蹙苳殺踉晒黶逅闥薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌瘢隍苳殺踉糸蹙苳事癇釶辣蹙苳蚕纃跿絋踉晒纃瘢隍苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮蒹蜥齡闥蹶蒹瘡蛹矼續〓蒹繝闔篌蝟昭粡竚癈鷭п粐Ь蛹鱚迴蒹蝟緕癇蛛碎蜀跼縺糯繙蜴繖瘤綣蝟昭粡竚癈鷭п粐Ь蓍鰾蛹黼鱸痰跂跿芍磔鹿粡寂蝟赱齠洲痲筵娼黶逅纃跿絋踉晒纃瘢隍苳皿黶逅專纈艱銓瘢隍苳纂蝟昭粡竚癈鷭п粐Ь蜴轣蒹迴鱚葹闔緕蒹跛辣鱧繖蝟昭粡竚癈鷭п粐Ь銓鱸纉鱚鳫竇齠繖闥粤蜴蓍竏蒹瘰鞳癇瘤篌蝟昭粡竚癈鷭п粐Ь癆纈銓鱸纉瘤鴪蜆縺鳰蜈闔纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮楠纔瘢韭綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鳫纈浴淪陏蛹赱闥逑鞳臀碣阯黼鮟鈬竅鞳鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏淪陏蛹赱沖掛碎纉芍胙瘢纉癘癈竰蜷蝟昭粡竚癈鷭п粐Ь鳫纈浴羊錨裃黹鱸頸鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗葹鱚苺赱纔頏纉皷闔蜴蜩鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑竅黼緕皷闔胼苳皿闥癈絖瀕黼銖蜚蝟轣蓍鈑蝟昭粡竚癈鷭п粐Ь繞蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就b鳫纈轣蓆閭癈紜黶逅択阯黼鰺癆竏麗秩黼瘢隍苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽黶逅択阯黼鰺癆竏瘢隍苳瘤篌蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳斬鳫纈浴萠鐫癈絋踉晒黶逅蜥繝癇齔繝蛛竅黼閹鹿粡寂蝟赱齠洲痲筵娼蓿繙就s續緕罌黶逅嚆鉚膚瘢隍苳殺踉晒瓲苳瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹■黼鉚蜀鈿竅黼▽苳殺踉雌瘢隍苳屍續梼耄鐫癈絋踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉壽肬跛阯蜴跚鈬葹蒹瘢繙聽笏墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼鳫纈浴萠鐫癈呰硼蜩焉熬閧阡鹿粡寂蝟赱齠洲痲筵娼續梼耄鐫癈專纈艱銓閧阡黯痿鳫硼蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼´頒鞜鶯粡鱚笏蝟粤黹鱸頸蜿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就碣阯黼鴉癆竏鈿竅黼⊆蝟昭粡竚癈鷭п粐Ь瘢綵≒鳫纈轣蓆閭癈紜択阯黼鰺癆竏麗秩黼蜥繝王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮蓿繙就粡鱚笏蝟絖粡笏譯囮銓癢⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍闔胼苳殺踉晒瓲苳択阯黼鰺癆竏麗秩黼鹿粡寂蝟赱齠洲痲筵娼纃鱚艱緕鱸痰跂蹙苳斯拾踉糸蹙苳事瘡蹙苳旨鹿粡寂蝟赱齠洲痲筵娼昿踉糸蹙苳糸鉚癇蛛碎絋踉晒纃杤纃跿絋踉晒纃毫碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪D繙癜踉⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳残繙癜踉墾踉晒齡鳫鈑踉糸蹙苳試闔絋踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闔⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闔墾踉晒齡鳫鈑纈竢鈕蜃鶯貅蝟昭粡竚癈鷭п粐Ь闢蜥繝鴒窿纉鵙踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯纈鱸粤⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳始鴪蜆綺闔胼苳殺踉晒瓲苳鍋跂侮肬碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖黼鉚蜀碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳暫闕鞜砠跚墾踉晒齡鳫鈑鞜竏窺瘤篌蝟昭粡竚癈鷭п粐Ь硼蜴鞜竏窺蜩蜥繝癈阨鈔綣蝟昭粡竚癈鷭п粐Ь阯碵闌續迴籖碣阯黼迴糒跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽黶逅択阯黼鰺癆竏麗秩黼瘢隍苳粡鱚笏蝟蜩鹿粡寂蝟赱齠洲痲筵娼黼轣銓蜒瘡踟粤銓蜒瘡畆蝟昭粡竚癈鷭п粐Ь鱚羹■択阯黼鰺癆竏▽苳殺踉雌瘢隍苳斬鳫纈浴荀踉晒黶逅蜥繝蝟昭粡竚癈鷭п粐Ь阯纐纈蜚鳫粤肬竅黼銖緕皷癆竏蜴膊闥鹿粡寂蝟赱齠洲痲筵娼纔瘢韭綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鳫纈浴萠鐫癈轣韭癆肬鴉渚痺蜴鼈鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏麗秩黼蜴赱闥軆鈔阯鷦蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉雌瘢隍苳斬鳫纈浴荀踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅択阯黼鰺癆竏麗秩黼瘢隍苳粡鱚笏蝟纉鱚鞳竕瘡癈纉羲蝟昭粡竚癈鷭п粐Ь蒹踉氏鱚羹■黼鉚蜀▽苳殺踉雌瘢隍苳屍續梼网踉晒黶逅鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就S續梼耄鐫癈紜黶逅嚆鉚膚麗秩黼瘢隍苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝鶤蒹闌跫鈑蜴纉癘黶辣聿繝鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь択阯黼鰺癆竏麗秩黼閧阡黯痿鳫硼蝟昭粡竚癈鷭п粐Ь嚆鉚膚麗秩黼黼鬮燥緕呰硼蜩焉熬閧阡鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь踉察蒹蜩癇閹蒹蜥繝纉竰蜷闔苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏‰續緕罌瘢綵‰續緕罌嚆鉚膚鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑續梼纃癆蛯綣蝟昭粡竚癈鷭п粐Ь繚纔鉚癇蛛碎絋踉晒纃杤纃跿絋踉晒纃歇蝟昭粡竚癈鷭п粐Ь纃緕鱸痰跂蹙苳斯拾踉糸蹙苳事瘡蹙苳旨踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳纃鈿鈬蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼燗續緕网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼痰阮綮蒹繿齡瀰鳫竢諷闥瘤緕鳫鉈緕鱸痰跂鹿粡寂蝟赱齠洲痲筵娼轣蓍鈑鱚鉤癘瘟赱碎鈔癆纈蜴鹿粡寂蝟赱齠洲痲筵娼窿纉肅跂闔踟竟鶯繖蜚窺凱嘘鈔癆纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉雌瘢隍苳屍續梼网踉晒黶逅蜥繝繙蜴纉鉚蜥闔辣銓鹿粡寂蝟赱齠洲痲筵娼鱸痰跂矚黼闔鱸碯閹蒹繿齡壽纉癆蛯纉鹿粡寂蝟赱齠洲痲筵娼竅矼蒹瘡閹癇蜿墺鱚髟纉蒹痲纈蜈趙繞踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕聶粡鬯闥膀鱠祚鱠祺怯峡槇卞嘆怯共踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь闥闥蜴肬鴉癆蜿痰阨纉紿闥阡蒹癈鞳笏閹蒹鹿粡寂蝟赱齠洲痲筵娼鱚髟纉釿跿粡鈑蒹闌跫鈑墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌瘢隍苳子纃阡縷被齡瘢隍苳蓖齡釶辣蜀蛹痰跂閹鹿粡寂蝟赱齠洲痲筵娼竚蜈銓瘠蜴鱚髟纉熙踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚黶逅吶迴濮粐鬢踉晒黶逅蒹痲糅纉閹蒹跚緕蝟昭粡竚癈鷭п粐Ь瘠蜴鱚髟纉熙踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚黶逅吶髟纉羅閼瘢隍苳釶辣辣閼鹿粡寂蝟赱齠洲痲筵娼矼蜴繖黶逅播圖踉晒黶逅黶逅佻嘖瘢隍苳錆踉糸蹙苳糸蝟昭粡竚癈鷭п粐Ь續纈瓲踉晒纃踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚黶逅吶髟纉會阡閭闌瘢隍苳釶辣鈔纈皷闔羲蝟昭粡竚癈鷭п粐Ь蒹鳫竢蓍竏蒹繿齡癈痲└踉糸蹙苳糸踉晒纃蝟昭粡竚癈鷭п粐Ь挽墅↑挽墅↑踉糸蹙苳糸踉晒纃踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚黶逅吶髟纉孀髭踉晒黶逅蒹闥闔孀娘蝟昭粡竚癈鷭п粐Ь闌跫鈑蒹竏纃瘤蓖齡闥闔薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍闕閹蒹闥竢迯闔踟黼鱚髟纉蒹痲纈蜈趙瘢纉鹿粡寂蝟赱齠洲痲筵娼蜴竚黶逅被齡瘢隍苳錆踉雌瘢隍苳師黼鬮燥緕熙踉晒黶逅瘤篌蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳子繙纈纈瘢隍苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺纃癆蛯絋踉晒纃瘢粹纉逾轣瘤閹蒹鹿粡寂蝟赱齠洲痲筵娼齔繝蛛諷闥糂鈿瘤閹蒹繿齡縺粤肅繻釶辣鵺鹿粡寂蝟赱齠洲痲筵娼蜚齡繖釶辣瘤鉚蜥闔辣銓癇蛛碎蜴蒹蜩蝟昭粡竚癈鷭п粐Ь闢癈齒竕癆繖蜚鱚髟纉蓍瘡跫鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鉚膚閼絋苳粡鱚笏蝟纉齡艨蜴齡蒹纉閹鹿粡寂蝟赱齠洲痲筵娼頏蜿轣蒹鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑踟蓖黼鉚蜥闔辣銓癇蛛碎纉繙蜴繖縺鳰蜈鮗蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍續梼聘麗秩黼檸踉晒竢粤蜥繝癇癘瘟赱碎肬鮗蝟昭粡竚癈鷭п粐Ь纉鈑蜩瘤鈬鬯刀鳰蜈鬣縺銖葹纖纈綣蝟昭粡竚癈鷭п粐Ь繙蜴繖碣閨粤黹關癈纈鬮粤闥鹿粡寂蝟赱齠洲痲筵娼頏纐蜿踟笊鴪緕粡鱚笏蝟紮黹關絎闔胼苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼續梼吶髟纉孀∠蜀あ礪繝蜩煢轣艱順蜀鹿粡寂蝟赱齠洲痲筵娼續梼吶髟纉孀∠韃あ礪繝蜩煢轣艱所韃鹿粡寂蝟赱齠洲痲筵娼續梼吶髟纉孀∠硴あ礪繝蜩煢轣艱序硴鹿粡寂蝟赱齠洲痲筵娼瑳蝟昭粡竚癈鷭п粐Ь嚆鉚膚繙纈纈椪逋粹轣蜴椪竢蜴痿皷熬繙纈鱇貅蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼續梼閧裙笏煢黯蜊瘍愨不瀰厦壇嗷瀕能閏蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蜥齡蓿繞蛹黼緕鳫鉈緕鱸痰跂鹿粡寂蝟赱齠洲痲筵娼黶逅閧裙笏煢黯蜊瘍絋踉晒黶逅鱚髟纉肬瘤轣艱鹿粡寂蝟赱齠洲痲筵娼肅跂瘤肬續黶逅蜴痿皷熬繙纈鱇讀踉晒黶逅羲蝟昭粡竚癈鷭п粐Ь蒹繙纈鱸鈑瘍齒辣纈闔蒹鹿粡寂蝟赱齠洲痲筵娼黶逅逋粹轣蜴闕瘢隍苳怛皷踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь踉察蒹蜩癇閹蒹蜥繝纉竰蜷闔苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏‰續緕冐閭癈紜瘢綵‰續緕冐閭癈紜嚆鉚膚麗秩黼鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹≫蜥繝蜒蔗迪S鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囮銓癢墾踉晒齡鳫鈑續梼耄鐫癈綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳氏鱸碯繚纔鉚癇蛛碎絋踉晒纃杤纃跿絋踉晒纃歇蝟昭粡竚癈鷭п粐Ь纃緕鱸痰跂蹙苳斯拾踉糸蹙苳事瘡蹙苳旨踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯偵聲槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑偵聲闔胼苳殺踉晒瓲苳纃鈿鈬蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷銓纔槇鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷銓纔闔胼苳殺踉晒瓲苳黼鴟纈闔肅膃蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡粡鱚笏闥蔗痺竇齠碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪O鴪蜆紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑纈鱸粤墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳屍鷓闔胼苳殺踉晒瓲苳逮黼碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪M閼紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑酪糒跂墾踉晒齡鳫鈑閼燗續緕网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳草痺蒹鈔鹿粡寂蝟赱齠洲痲筵娼痰阮綮蒹繿齡瀰鳫竢諷闥瘤緕鳫鉈緕鱸痰跂鹿粡寂蝟赱齠洲痲筵娼轣蓍鈑鱚鉤癘瘟赱碎鈔癆纈蜴鹿粡寂蝟赱齠洲痲筵娼窿纉肅跂闔踟竟鶯繖蜚窺凱嘘鈔癆纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉雌瘢隍苳屍續梼耄鐫癈絋踉晒黶逅黼轣銓蜒瘡踟粤銓蜒瘡鐚蝟昭粡竚癈鷭п粐Ь蒹踉氏鱚羹■黼鉚蜀▽苳殺踉雌瘢隍苳屍續梼网踉晒黶逅蜥繝蝟昭粡竚癈鷭п粐Ь鈔蜀聽鴦鉤蜴葹鱚苺赱纔頏纉皷闔癆竏蜴蜩鹿粡寂蝟赱齠洲痲筵娼鞳鱠闥辣蜴癈絖蜴黼銖蜚蝟轣銕纈楠纔瘢韭綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь嚆鉚膚麗秩黼闢草痺蒹椪皷潤鞜竏綣蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍跛癜黼蒹踉雌瘢隍苳雌蜚絋踉晒黶逅鉚蜥闔辣銓癇蛛碎綣蝟昭粡竚癈鷭п粐Ь矼續▽踉雌瘢隍苳氏鞜竏絋踉晒黶逅蜀蒹墺鱚髟纉蒹痲纈鹿粡寂蝟赱齠洲痲筵娼肅繻黶逅被齡墾踉晒黶逅癈釿跿粤瘤竢銓瘟鈬篌蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳餐鞜竏絎胼踉晒黶逅黶逅瘰痺蒹鱧瘢隍苳錆瘤阡蒹鮗蝟昭粡竚癈鷭п粐Ь闕砠釶闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖黼鉚蜀谺蔗迪閭鶩轣銛瘡閼閼燗續緕罧蔗迪貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握梶臆甍翫桓碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼燗續緕罧蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼燗續緕罧蔗迪貅昭蝟昭粡竚癈鷭ц襷樟卯誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺囈鱸笏杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈蜒糘笄鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊閼燗續緕罧蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁迴箝迴籖黼鉚蜀谺裃蜩閭鶩轣銛瘡閼閼燗續緕罧蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握戟橋欝皸脅碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡閼閼燗續緕罧蔗迪甌裼鷽莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡閼閼燗續緕罧蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯害誓鹿粡寂蝟赱齠洲痲筵娼据迪纈皷闔就窺唖釿閼蜴臀∫齒芦沖褓⊃鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪貂赱鈑就裃赱鈑就裃▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹閼迴籖黼鉚蜀蜚跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察鈑跚鼈纐蜩蜿邵鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■聿聿聿就0旭旭唖蜴觸■旭旭聿⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就f羂旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳詩閼燗續緕モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪蓮鹿粡寂蝟赱齠洲痲筵娼リクエストの属性に基づいて環境変数を設定する機能を提供します。</p> + + <p><a href="module-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪s阨鱆繙蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖黼鉚蜀碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯迴糒跂蜆緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札襴踉傘別子:</strong></a> + setenvif_module<br /> + <a href="module-dict.html#Compatibility" + rel="help"><strong>互換性:</strong></a> + Apache 1.3 以降で使用可能。</p> + + <h2>概要</h2> + + <p><samp>mod_setenvif</samp> + モジュ・踉札襪蓮▲螢┘好箸里△訛逅嗣未慊蠅気譴畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迚黹瘻譯鱚艱正規表現</a + >に合う瘢雹かどう瘢雹かによって環境変数を設定する機能を提供します。 + これらの環境変数を使用して、サ・踉札个梁の部分がどのよう瘢雹な動作をするかを + 決定することができます。</p> + + <p>このモジュ・踉札襪鷆,垢襯妊譽謄屬蓮鹿粡寂蝟赱齠洲痲筵娼設定ファイルに現れる順番に適用されます。 + それを使って、,領磴里茲逅擦砲茲衒┐弊瀋蠅鬚垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼これは、ブラウ瘢雹ザが mozilla ではあるけれど、MSIE ではないときに + <code>netscape</code> を設定します。</p> + <blockquote> +<pre> + BrowserMatch ^Mozilla netscape + BrowserMatch MSIE !netscape + +</pre> + </blockquote> + + <p>楮戮蓮蓿繙就鉚譬草痺蒹鹿粡寂蝟赱齠洲痲筵娼の環境変数</a>を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢ディレクティブ</h2> + + <ul> + <li><a href="#browsermatch">BrowserMatch</a></li> + + <li><a href="#browsermatchnocase">BrowserMatchNoCase</a></li> + + <li><a href="#setenvif">SetEnvIf</a></li> + + <li><a href="#setenvifnocase">SetEnvIfNoCase</a></li> + </ul> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="browsermatch" name="browsermatch">BrowserMatch + ディレクティブ</a></h2> + + <p><a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> BrowserMatch <em>regex + env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="help"><strong>デフォルト:</strong></a> None<br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼燗續緕网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> Apache 1.2 以鹿粡寂蝟赱齠洲痲筵娼ぢこのディレクティブは Apache 1.2 では、今では obsolete になっている + mod_browser モジュ・踉札襪砲△蠅泙靴ぢ。.htaccess ファイルでの使用は + 1.3.13 以降でのみサポ・踉札函鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳斬鳫纈浴ディレクティブは、HTTP リクエストの + <samp>User-Agent</samp> + ヘッダフィ・踉札襯匹亡陲鼎い憧超竸瑤鮴瀋蠅靴泙后能蕕琉瑤鹿粡寂蝟赱齠洲痲筵娼佻喇悽拡張正規表現 (<samp>egrep</samp> + 形阿寮亀集修隼燭發です。 + 残りの引数は、設定をする変数巳苳擦箸修涼佑如絋踉市は蔑椎修任后鹿粡寂蝟赱齠洲痲筵娼これらは以王踉擦侶薦踉三になります。</p> + + <ol> + <li><samp><em>varname</em></samp>, or</li> + + <li><samp>!<em>varname</em></samp>, or</li> + + <li><samp><em>varname</em>=<em>value</em></samp></li> + </ol> + + <p>最初の形阿任蓮佑瘢雹髟阡傘逅資ぢに設定されます。 + 2 番目は変数が既に定義されていた豺隋△修譴鮑鐔靴泙后鹿粡寂蝟赱齠洲痲筵娼番目は変数の値を <samp><em>value</em></samp> に設定します。 + <samp>User-Agent</samp> + フィ・踉札襯匹諒源鵑瑤離┘鵐肇蠅縫泪奪舛靴職苳詞合は、 + その結果がまとめられます。 + エントリは現れた順に処理され、後のエントリが前のものを綵颪靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> +<pre> + BrowserMatch ^Mozilla forms jpeg=yes browser=netscape + BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript + BrowserMatch MSIE !javascript + +</pre> + + <p>正規表現の文字列は<strong>大文字源魘菠未垢闔膽蝟昭粡竚癈鷭п粐Ь苳ぢことに注意してください。大文字源魘菠未靴覆ぅ泪奪舛畆蝟昭粡竚癈鷭п粐Ь鱚羹■碣阯黼鴉癆竏鈿竅黼▽苳殺踉雌瘢隍苳斬鳫纈浴萠鐫癈絋踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼ディレクティブを参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌瘢隍苳斬鳫纈浴荀踉晒黶逅ぢディレクティブと + <samp>BrowserMatchNoCase</samp> ディレクティブは + <a href="#setenvif"><samp>SetEnvIf</samp></a> ディレクティブ + <a href="#setenvifnocase"><samp>SetEnvIfNoCase</samp></a> + ディレクティブの特別なケ・踉札垢任后0焚の 2 行は同じ効果になります: + </p> +<pre> + BrowserMatchNoCase Robot is_a_robot + SetEnvIfNoCase User-Agent Robot is_a_robot + +</pre> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="browsermatchnocase" + name="browsermatchnocase">BrowserMatchNoCase ディレクティブ</a></h2> + + <p><a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> BrowserMatchNoCase + <em>regex env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="help"><strong>デフォルト:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼燗續緕网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> Apache 1.2 以鹿粡寂蝟赱齠洲痲筵娼ぢこのディレクティブは Apache 1.2 では、今では obsolete になっている + mod_browser モジュ・踉札襪砲△蠅泙靴ぢ。.htaccess ファイルでの使用は + 1.3.13 以降でのみサポ・踉札函鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌瘢隍苳斬鳫纈浴萠鐫癈絋踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼ディレクティブは、意味的には <a href="#browsermatch" + ><samp>BrowserMatch</samp></a> + ディレクティブとほとんど同じです。 + 違う瘢雹点は、大文字源魘菠未靴覆い妊泪奪舛鮃圓覆逅擦海箸任后N墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼択阯黼鰺癆竏麗秩黼痺赱闥軆轣竕銓闢莠蝟昭粡竚癈鷭п粐Ь鳫纈浴萠鐫癈韭癆肬鴉女蜴粹鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌瘢隍苳斬鳫纈浴荀踉晒黶逅ぢディレクティブと + <samp>BrowserMatchNoCase</samp> ディレクティブは <a + href="#setenvif"><samp>SetEnvIf</samp></a> ディレクティブと <a + href="#setenvifnocase"><samp>SetEnvIfNoCase</samp></a> + ディレクティブの特別なケ・踉札垢任后0焚の + 2 行は同じ効果になります:</p> +<pre> + BrowserMatchNoCase Robot is_a_robot + SetEnvIfNoCase User-Agent Robot is_a_robot + +</pre> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="setenvif" name="setenvif">SetEnvIf + ディレクティブ</a></h2> + + <p><a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> SetEnvIf <em> attribute + regex env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#Default" + rel="help"><strong>デフォルト:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼燗續緕网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> Apache 1.3 以紂鹿粡寂蝟赱齠洲痲筵娼吶髟纉會阡閭闌ぢキ・踉札錙ドと環境変数のマッチは 1.3.7 + 以降でのみ使用可能。.htaccess ファイルでの使用は + 1.3.13 以降でのみサポ・踉札函鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌瘢隍苳屍續梼网踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼ディレクティブは、リクエストの属性に基づいて環境変数を定義します。 + これらの属性は、HTTP リクエストのいろいろなヘッダフィ・踉札襯鹿粡寂蝟赱齠洲痲筵娼ぢ椶靴う苳諮報は <a href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC + 2616</a> を参箸靴討世気蝟昭粡竚癈鷭п粐Ьぢか、以王踉擦里茲逅擦福▲螢┘好箸梁の側瘢雹面であることができます。</p> + + <ul> + <li><samp>Remote_Host</samp> - + リクエストを行なっているクライアントのホスト巳苳もしあれば)</li> + + <li><samp>Remote_Addr</samp> - + リクエストを行なっているクライアントの IP アドレス</li> + + <li><samp>Request_Method</samp> - + 使用されているメソッド巳苳黶逅播圖踉晒黶逅黶逅佻嘖瘢隍苳纂蝟昭粡竚癈鷭п粐Ь踉糸蹙苳ぢなど</em>)</li> + + <li><samp>Request_Protocol</samp> - + リクエストが行なわれたプロトコルの巳苳餐阿肇弌ジョン + (<em>例えば</em>、"HTTP/0.9", "HTTP/1.1" <em>など。</em>)</li> + + <li><samp>Request_URI</samp> - + URL のスキ・踉札爐肇曠好箸慮紊良薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢよく使われるリクエストのヘッダフィ・踉札襯匹砲鹿粡寂蝟赱齠洲痲筵娼黶逅被齡瘢隍苳錆踉雌瘢隍苳師黼鬮燥緕熙踉晒黶逅黶逅吶聽鱚鬢踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼があります。</p> + + <p>属性巳苳踉糸蹙苳氏鱸碯蹙苳纂蝟昭粡竚癈鷭п粐Ьぢが特別なキ・踉札錙ドやリクエストのヘッダフィ・踉札襯斌にマッチしないときは、 + リクエストに関連付けられたリストにある環境変数の巳苳餐阿箸靴道遒気譴泙后鹿粡寂蝟赱齠洲痲筵娼これにより、<code>SetEnvIf</code> + ディレクティブが前のマッチの結果を使用することができるよう瘢雹になります。 + </p> + + <blockquote> + <strong>前の <code>SetEnvIf[NoCase]</code> + で定義された環境変数のみをこの方法で調べることができます。 + 「前」という瘢雹のは (サ・踉札仭澗痢△里茲逅擦蝟昭粡竚癈鷭п粐Ьぢより広いスコ・踉札廚把蟲舛気譴燭鹿粡寂蝟赱齠洲痲筵娼現ディレクティブのスコ・踉札廚涼罎料阿諒把蟲舛気譴燭箸い逅三嫐任后鹿粡寂蝟赱齠洲痲筵娼闔胼苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例:</p> +<pre> + SetEnvIf Request_URI "\.gif$" object_is_image=gif + SetEnvIf Request_URI "\.jpg$" object_is_image=jpg + SetEnvIf Request_URI "\.xbm$" object_is_image=xbm + : + SetEnvIf Referer www\.mydomain\.com intra_site_referral + : + SetEnvIf object_is_image xbm XBIT_PROCESSING=1 + +</pre> + + <p>先頭の三つはリクエストが画像ファイルのときに、環境変数 + <samp>object_is_image</samp> を設定します。 + 4 番目は参噺気離據ジが <samp>www.mydomain.com</samp> + ウ瘢雹ェブサイトのどこかにある豺腓踉雌瘢隍苳脂銓鱇燗蜚縷鱚聽鴪瘡瘢隍苳纂蝟昭粡竚癈鷭п粐Ьぢを設定します。</p> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="setenvifnocase" name="setenvifnocase">SetEnvIfNoCase + ディレクティブ</a></h2> + + <p><a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> SetEnvIfNoCase + <em>attribute regex env-variable</em>[=<em>value</em>] + [<em>env-variable</em>[=<em>value</em>]] ...<br /> + <a href="directive-dict.html#default" + rel="help"><strong>デフォルト:</strong></a> <em>none</em><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑蛹緝鈕錵踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼燗續緕网踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑互換性:</strong></a> Apache 1.3 以紂鹿粡寂蝟赱齠洲痲筵娼吶髟纉會阡閭闌ぢキ・踉札錙ドと環境変数のマッチは 1.3.7 + 以降でのみ使用可能。.htaccess ファイルでの使用は + 1.3.13 以降でのみサポ・踉札函鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌瘢隍苳屍續梼耄鐫癈絋踉晒黶逅ぢは、意味的には <a + href="#setenvif"><samp>SetEnvIf</samp></a> とほとんど同じです。 + 違いは正規表現のマッチが大文字源魘菠未靴覆い嚢圓覆錣譴襪海箸任后鹿粡寂蝟赱齠洲痲筵娼例えば:</p> + +<pre> + SetEnvIfNoCase Host Apache\.Org site=apache +</pre> + + <p>これは、HTTP リクエストの <samp>Host:</samp> + ヘッダフィ・踉札襯匹△蝓△修涼佑鹿粡寂蝟赱齠洲痲筵娼黶逅草痺蒹鱧瘢隍苳錆踉雌瘢隍苳氏鞜竏絎闥胼踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼やその側苳擦梁臺源苳皿文字の組み合わせであったときに、環境変数 + <samp>site</samp> を "<samp>apache</samp>" に設定します。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/mod_so.html.en b/htdocs/manual/mod/mod_so.html.en new file mode 100644 index 0000000000..3146ace97a --- /dev/null +++ b/htdocs/manual/mod/mod_so.html.en @@ -0,0 +1,191 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_so</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_so</h1> + + <p>This module provides for loading of executable code and + modules into the server at start-up or restart time.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base (Windows); + Experimental (Unix)<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_so.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + so_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later.</p> + + <h2>Summary</h2> + + <p>This is an experimental module. On selected operating + systems it can be used to load modules into Apache at runtime + via the <a href="../dso.html">Dynamic Shared Object</a> (DSO) + mechanism, rather than requiring a recompilation.</p> + + <p>On Unix, the loaded code typically comes from shared object + files (usually with <samp>.so</samp> extension), whilst on + Windows this module loads <samp>DLL</samp> files. This module + is only available in Apache 1.3 and up.</p> + + <p>In previous releases, the functionality of this module was + provided for Unix by mod_dld, and for Windows by mod_dll. On + Windows, mod_dll was used in beta release 1.3b1 through 1.3b5. + mod_so combines these two modules into a single module for all + operating systems.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#loadfile">LoadFile</a></li> + + <li><a href="#loadmodule">LoadModule</a></li> + </ul> + + <h2><a id="creating" name="creating">Creating DLL Modules for + Windows</a></h2> + + <p>The Apache module API is unchanged between the Unix and + Windows versions. Many modules will run on Windows with no or + little change from Unix, although others rely on aspects of the + Unix architecture which are not present in Windows, and will + not work.</p> + + <p>When a module does work, it can be added to the server in + one of two ways. As with Unix, it can be compiled into the + server. Because Apache for Windows does not have the + <code>Configure</code> program of Apache for Unix, the module's + source file must be added to the ApacheCore project file, and + its symbols must be added to the + <code>os\win32\modules.c</code> file.</p> + + <p>The second way is to compile the module as a DLL, a shared + library that can be loaded into the server at runtime, using + the <code><a href="#loadmodule">LoadModule</a></code> + directive. These module DLLs can be distributed and run on any + Apache for Windows installation, without recompilation of the + server.</p> + + <p>To create a module DLL, a small change is necessary to the + module's source file: The module record must be exported from + the DLL (which will be created later; see below). To do this, + add the <code>MODULE_VAR_EXPORT</code> (defined in the Apache + header files) to your module's module record definition. For + example, if your module has:</p> +<pre> + module foo_module; +</pre> + + <p>Replace the above with:</p> +<pre> + module MODULE_VAR_EXPORT foo_module; +</pre> + + <p>Note that this will only be activated on Windows, so the + module can continue to be used, unchanged, with Unix if needed. + Also, if you are familiar with <code>.DEF</code> files, you can + export the module record with that method instead.</p> + + <p>Now, create a DLL containing your module. You will need to + link this against the ApacheCore.lib export library that is + created when the ApacheCore.dll shared library is compiled. You + may also have to change the compiler settings to ensure that + the Apache header files are correctly located.</p> + + <p>This should create a DLL version of your module. Now simply + place it in the <samp>modules</samp> directory of your server + root, and use the <code><a + href="#loadmodule">LoadModule</a></code> directive to load + it.</p> + <hr /> + + <h2><a id="loadfile" name="loadfile">LoadFile</a> + directive</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LoadFile + <em>filename</em> [<em>filename</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_so + + <p>The LoadFile directive links in the named object files or + libraries when the server is started or restarted; this is used + to load additional code which may be required for some module + to work. <em>Filename</em> is either an absolute path or + relative to <a href="core.html#serverroot">ServerRoot</a>.</p> + + <p>For example:</p> + <code>LoadFile libexec/libxmlparse.so</code> + + <hr /> + + <h2><a id="loadmodule" name="loadmodule">LoadModule</a> + directive</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LoadModule <em>module + filename</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_so + + <p>The LoadModule directive links in the object file or library + <em>filename</em> and adds the module structure named + <em>module</em> to the list of active modules. <em>Module</em> + is the name of the external variable of type + <code>module</code> in the file, and is listed as the <a + href="module-dict.html#ModuleIdentifier">Module Identifier</a> + in the module documentation. Example (Unix, and for Windows as + of Apache 1.3.15):</p> + + <blockquote> + <code>LoadModule status_module modules/mod_status.so</code> + </blockquote> + + <p>Example (Windows prior to Apache 1.3.15, and some 3rd party + modules):</p> + + <blockquote> + <code>LoadModule foo_module modules/ApacheModuleFoo.dll<br /> + </code> + </blockquote> + + <p><strong>Note that all modules bundled with the Apache Win32 + binary distribution were renamed as of Apache version + 1.3.15</strong>.</p> + + <p>Win32 Apache modules are often distributed with the old + style names, or even a name such as libfoo.dll. Whatever the + name of the module, the LoadModule directive requires the exact + filename, no assumption is made about the filename + extension.</p> + + <p><strong>See also</strong>: <a + href="core.html#addmodule">AddModule</a> and <a + href="core.html#clearmodulelist">ClearModuleList</a></p> + + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_so.html.html b/htdocs/manual/mod/mod_so.html.html new file mode 100644 index 0000000000..509309177a --- /dev/null +++ b/htdocs/manual/mod/mod_so.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_so.html.en" --> + diff --git a/htdocs/manual/mod/mod_so.html.ja.jis b/htdocs/manual/mod/mod_so.html.ja.jis new file mode 100644 index 0000000000..f929fbe791 --- /dev/null +++ b/htdocs/manual/mod/mod_so.html.ja.jis @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache module mod_so</title> + + </head> + <!-- English Revision: 1.14 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_so モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪蓮▲機バの起動時や再起動時に孫團魁ドと + モジュ・踉札襪鬟機バに読み込む機能を提供します。</p> + + <p><a href="module-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼逮黼怏鈔阯鶇祷鞳鱸辣銓瘡寰蝌踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪s阨鱆繙蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑閼燗鎬礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪m閼繪粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + so_module<br /> + <a href="module-dict.html#Compatibility" + rel="help"><strong>互換性:</strong></a> + Apache 1.3 以降で使用可能。</p> + + <h2>概要</h2> + + <p>これは存嚇淵皀献紂ルです。 + オペレ・踉札謄鵐哀轡好謄爐砲茲辰討蓮▲機バの再コンパイルをする代わりに、 + <a href="../dso.html">Dynamic Shared Object</a> + (DSO) 機構により、孫垰鞜竏にモジュ・踉札襪鯑匹濆燹△箸い逅擦海箸鹿粡寂蝟赱齠洲痲筵娼行なう瘢雹ためにこのモジュ・踉札襪鮖藩僂垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼隍苳師鉗紊任蓮匹濆泙譴襯魁ドは通錣魯轡Д◆ドオブジェクトファイル + (普通 <samp>.so</samp> という瘢雹拡張子が付いています) からです。 + 一方、Windows 紊任呂海離皀献紂ルは <samp>DLL</samp> + ファイルを読み込みます。このモジュ・踉札襪鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢ以降のみで使用可能です。</p> + <p>以前のリリ・踉札垢任蓮△海離皀献紂ルの機能は Unix では mod_dld、 + Windows では mod_dll により提供されていました。Windows では、 + mod_dll は 1.3b1 から 1.3b5 までのベ・踉札織螢蝓スで使用されていました。 + mod_so はすべてのオペレ・踉札謄鵐哀轡好謄猴僂法鹿粡寂蝟赱齠洲痲筵娼この二つのモジュ・踉札襪魄譴弔離皀献紂ルにまとめたものです。</p> + + <h2>ディレクティブ</h2> + + <ul> + <li><a href="#loadfile">LoadFile</a></li> + + <li><a href="#loadmodule">LoadModule</a></li> + </ul> + + <h2><a id="creating" name="creating">Windows 用の DLL + モジュ・踉札襪鮑鄒垢王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢのモジュ・踉札佗ぢは UNIX と Windows とで変更されていません。 + 多くのモジュ・踉札襪倭瓦儿垢覆掘△發靴牢蔽韻癖儿垢砲茲蜴粹蝟昭粡竚癈鷭п粐Ьぢで孫圓任襪茲逅擦砲覆蠅泙后燭世掘△修谿奮阿蜴粹ぢには無い Unix + ア・踉札謄船磧の機能に依存したモジュ・踉札襪脇虻遒靴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢモジュ・踉札襪踉斬際に動作するときは、 + 二つの方法のどちらかでサ・踉札个膨媛辰垢襪海箸任泙后泙此寰蝌鹿粡寂蝟赱齠洲痲筵娼と同様にサ・踉札个縫灰鵐僖ぅ襪靴徳箸濆爐海箸任泙后怏鈔阯鷦蝟昭粡竚癈鷭п粐Ьぢ用の Apache は Unix 用の Apache にある <code>Configure</code> + プログラムがありませんので、モジュ・踉札襪離宗スファイルを + ApacheCore プロジェクトファイルに追加し、シンボルを + <code>os\win32\modules.c</code> ファイルに追加する必要があります。</p> + + <p>二つ目はモジュ・踉札襪面ぢとしてコンパイルする方法です。 + DLL はシェア・踉札疋薀ぅ屮薀蠅如▽踉斬行時に + <code><a href="#loadmodule">LoadModule</a></code> + ディレクティブによりサ・踉札个貌匹濆爐海箸任泙后海譴蕕離皀献紂ル + DLL は配布することが可能で、サ・踉札个鮑謄灰鵐僖ぅ襪垢襪海箸覆怏鈔阯鷦蝟昭粡竚癈鷭п粐Ьぢ用の Apache のすべてのインスト・踉札襪忍踉斬行することができます。</p> + + <p>モジュ・踉札面ぢを作成するためには、 + モジュ・踉札襪虜鄒胞苳皿さな変更を行なう瘢雹必要があります。 + つまり、モジュ・踉札襪離譽魁ドが DLL (これは後で作成されます。 + 以王踉擦鮖王苳使してください) からエクスポ・踉札箸気譴覆韻譴个覆蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼これを行なう瘢雹には、<code>MODULE_VAR_EXPORT</code> (Apache + のヘッダファイルで定義されています) をモジュ・踉札襪離皀献紂ルレコ・踉札鹿粡寂蝟赱齠洲痲筵娼定義の部分に追加してください。たとえば、モジュ・踉札襪鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь閼肬閙迴糒跂纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮があるとすると、それを,里發里巴屬垢┐討世気ぁ鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь閼溶蔦姪炒倉濺慚碗肬閙迴糒跂纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮もし Unix 紊任海離皀献紂ルを使用したくなっても、 + 変更無しで使い続けられるよう瘢雹に、このマクロは Windows + 紊任里澹呂鮖弔箸い逅擦海箸肪躇佞靴討世気ぁ竢粤兎閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢファイルの方を良く知っているという瘢雹豺腓蓮鹿粡寂蝟赱齠洲痲筵娼代わりにそれを使ってモジュ・踉札襯譽魁ドを + エクスポ・踉札箸垢襪海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼隍苳ぢここで、あなたのモジュ・踉札襪面ぢを作成してください。これを、 + ApacheCore.dll シェア・踉札疋薀ぅ屮薀蠅灰鵐僖ぅ襪気譴燭箸忘鄒気譴鹿粡寂蝟赱齠洲痲筵娼草痺蒹衷鱚蛯ぢエクスポ・踉札肇薀ぅ屮薀蠅肇螢鵐靴討世気ぁ海了法鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢのヘッダファイルが正しい位置にあるよう瘢雹に、 + コンパイラの設定を変える必要があるかもしれません。</p> + + <p>これで DLL 版のモジュ・踉札襪鄒気譴討い襪呂困任后鹿粡寂蝟赱齠洲痲筵娼さあ、サ・踉札丱襦トの <samp>modules</samp> + ディレクトリにモジュ・踉札襪鮹屬い董竢粤畆蝟昭粡竚癈鷭п粐Ь鱚羹■跫痲迴糒跂▽苳嗣閨簍閼絋踉晒瓲苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブを使って読み込んでください。</p> + <hr /> + + <h2><a id="loadfile" name="loadfile">LoadFile</a> + ディレクティブ</h2> + + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> LoadFile + <em>filename</em> [<em>filename</em>] ...<br /> + <a href="directive-dict.html#Context" + rel="help"><strong>コンテキスト:</strong></a> サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼燗鐚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮弥痲鍋跂ぢディレクティブは、サ・踉札个阿気譴燭箸篋撞阿気譴燭箸法鹿粡寂蝟赱齠洲痲筵娼指定されたオブジェクトファイルやライブラリをリンクします。 + これはモジュ・踉札襪虻遒垢襪燭瓩防廚砲覆襪發靴譴覆つ媛辰鹿粡寂蝟赱齠洲痲筵娼コ・踉札匹鯑匹濆爐燭瓩忙藩僂気譴泙后纃鍋跂釶辣蹙苳は絶対パスか、<a + href="core.html#serverroot">ServerRoot</a> からの相対パスです。</p> + + <p>例:</p> + <code>LoadFile libexec/libxmlparse.so</code> + + <hr /> + + <h2><a id="loadmodule" name="loadmodule">LoadModule</a> + ディレクティブ</h2> + + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> LoadModule <em>module + filename</em><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a>サ・踉札仞瀋螢侫.ぅ碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼燗鐚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮弥痲酪糒跂ぢディレクティブは <em>filename</em> + という瘢雹オブジェクトファイルおよびライブラリをリンクし、<em>module</em> + という瘢雹巳苳餐阿離皀献紂ルの構造をアクティブなモジュ・踉札襪離螢好箸膨媛辰靴泙后鹿粡寂蝟赱齠洲痲筵娼纃酪糒跂蹙苳はファイル中の <code>module</code> + 型の外部変数の巳苳餐阿如▲皀献紂ルのドキュメントに + <a href="module-dict.html#moduleidentifier" + >モジュ・踉札襴踉傘別子</a>として書かれているものです。例 + (Unix と Apache 1.3.15 以降の Windows):</p> + + <blockquote> + <code>LoadModule status_module modules/mod_status.so</code> + </blockquote> + + <p>例 (Apache 1.3.15 以前の + Windows, サ・踉札疋僉ティモジュ・踉札襪琉貮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤弥痲酪糒跂闖熏閼迴糒跂鶩草痺蒹酪糒跂楠鎬粲讀踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑草痺蒹の時点で Apache Win32 バイナリ配布に付属している + すべてのモジュ・踉札襪量前が変更されたことに注意してください</strong>。 + </p> + + <p>Win32 Apache モジュ・踉札襪呂靴个靴亳鼎し薦踉三の巳苳餐阿杷柯曚気譴襪海箸△蝓鹿粡寂蝟赱齠洲痲筵娼跚砌闖跛ぢのよう瘢雹な巳苳餐阿杷柯曚気譴燭蠅垢襪海箸気┐△蠅泙后鹿粡寂蝟赱齠洲痲筵娼モジュ・踉札襪量前に関係なく、LoadModule + ディレクティブは正確なファイル巳苳擦鰺弋瓩靴泙后鹿粡寂蝟赱齠洲痲筵娼ファイル巳苳擦粒板セ劼亡悗靴討浪燭硫定も行ないません。</p> + <!--#include virtual="footer.html" --> + + <p><strong>参闔胼苳産踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就竢鱚譯痲粱閼紜槍簍閼絋踉晒瓲苳と <a + href="core.html#clearmodulelist">ClearModuleList</a></p> + + </body> +</html> diff --git a/htdocs/manual/mod/mod_speling.html.en b/htdocs/manual/mod/mod_speling.html.en new file mode 100644 index 0000000000..772c0ef545 --- /dev/null +++ b/htdocs/manual/mod/mod_speling.html.en @@ -0,0 +1,123 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_speling</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_speling</h1> + + <p>This module attempts to correct misspellings of URLs that + users might have entered, by ignoring capitalization and by + allowing up to one misspelling.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_speling.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + speling_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later. Available as an External module in Apache + 1.1 and later.</p> + + <h2>Summary</h2> + + <p>Requests to documents sometimes cannot be served by the core + apache server because the request was misspelled or + miscapitalized. This module addresses this problem by trying to + find a matching document, even after all other modules gave up. + It does its work by comparing each document name in the + requested directory against the requested document name + <strong>without regard to case</strong>, and allowing + <strong>up to one misspelling</strong> (character insertion / + omission / transposition or wrong character). A list is built + with all document names which were matched using this + strategy.</p> + + <p>If, after scanning the directory,</p> + + <ul> + <li>no matching document was found, Apache will proceed as + usual and return a "document not found" error.</li> + + <li>only one document is found that "almost" matches the + request, then it is returned in the form of a redirection + response.</li> + + <li>more than one document with a close match was found, then + the list of the matches is returned to the client, and the + client can select the correct candidate.</li> + </ul> + + <h2>Directives</h2> + + <ul> + <li><a href="#checkspelling">CheckSpelling</a></li> + </ul> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="checkspelling" + name="checkspelling">CheckSpelling</a> directive</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CheckSpelling + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>CheckSpelling + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> Options <br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_speling<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> CheckSpelling + was available as a separately available module for Apache 1.1, + but was limited to miscapitalizations. As of Apache 1.3, it is + part of the Apache distribution. Prior to Apache 1.3.2, the + <samp>CheckSpelling</samp> directive was only available in the + "server" and "virtual host" contexts. + + <p>This directive enables or disables the spelling module. When + enabled, keep in mind that</p> + + <ul> + <li>the directory scan which is necessary for the spelling + correction will have an impact on the server's performance + when many spelling corrections have to be performed at the + same time.</li> + + <li>the document trees should not contain sensitive files + which could be matched inadvertently by a spelling + "correction".</li> + + <li>the module is unable to correct misspelled user names (as + in <code>http://my.host/~apahce/</code>), just file names or + directory names.</li> + + <li>spelling corrections apply strictly to existing files, so + a request for the <samp><Location /status></samp> may + get incorrectly treated as the negotiated file + "<samp>/stats.html</samp>".</li> + </ul> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_speling.html.html b/htdocs/manual/mod/mod_speling.html.html new file mode 100644 index 0000000000..d225b4ba79 --- /dev/null +++ b/htdocs/manual/mod/mod_speling.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_speling.html.en" --> + diff --git a/htdocs/manual/mod/mod_speling.html.ja.jis b/htdocs/manual/mod/mod_speling.html.ja.jis new file mode 100644 index 0000000000..731599cbef --- /dev/null +++ b/htdocs/manual/mod/mod_speling.html.ja.jis @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache module mod_speling</title> + + </head> + <!-- English revision: 1.14 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_speling モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪和臺源苳皿文字の違いを無視したり、 + 一文字以王踉擦猟屬蠅隆岼磴い鯡技襪垢襪海箸鹿粡寂蝟赱齠洲痲筵娼孀の綴りの間違いの修正を試みます。</p> + + <p><a href="module-dict.html#status" + rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯齒竇肅跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖齔繻蜴膊礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪m閼繪粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + speling_module<br /> + <a href="module-dict.html#Compatibility" + rel="help"><strong>互換性:</strong></a> Apache 1.3 + 以降で使用可能。Apache 1.1 以降では外部モジュ・踉札襪箸靴道藩儔椎宗鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢概要</h2> + + <p>リクエストの綴りが間違っていたり、 + 大文字源磴辰討い燭蠅垢襪燭瓩法草痺蒹ぢのコアサ・踉札个鹿粡寂蝟赱齠洲痲筵娼ドキュメントへのリクエストへの応答を正しく提供できないことがあります。 + このモジュ・踉札襪蓮のすべてのモジュ・踉札襪△蕕瓩晋紊任△辰燭箸靴討癲鹿粡寂蝟赱齠洲痲筵娼リクエストに合う瘢雹ドキュメントを見つけよう瘢雹とすることによりこの問題の + 解決を試みます。このモジュ・踉札襪魯螢┘好箸気譴織妊譽肇蠅砲△鹿粡寂蝟赱齠洲痲筵娼それう苳擦譴離疋絅瓮鵐箸量前と、リクエストされたドキュメントの巳苳餐阿箸鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑大文字源龍菠未鯡技襪闔胼苳ぢ、 + <strong>一文字までの綴りの間違い</strong> + (文字の挿入/蔑ぢ隣合う瘢雹文字の置換、間違った文字) + を許可して比較することにより、目的を達成しよう瘢雹とします。 + この方法でリクエストに合う瘢雹ドキュメントの一覧が作成されます。</p> + + <p>ディレクトリをスキャンした後に、</p> + + <ul> + <li>適切なドキュメントが見つからなかった豺隋鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢはいつもと同じよう瘢雹に処理をし、 + 「ドキュメントが見つからない」という瘢雹エラ・踉擦鯤屬靴泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢリクエストに「ほとんど」合う瘢雹ドキュメントが一つだけ見つかった豺隋鹿粡寂蝟赱齠洲痲筵娼ぢそれがリダイレクト応答として返されます。</li> + + <li>よく似たドキュメントが複数見つかった豺隋鹿粡寂蝟赱齠洲痲筵娼そのリストがクライアントに返され、 + クライアントが正しい候補を選択できるよう瘢雹にします。</li> + </ul> + + <h2>ディレクティブ</h2> + + <ul> + <li><a href="#checkspelling">CheckSpelling</a></li> + </ul> + <hr /> + <!-- the HR is part of the directive description --> + + <h2><a id="checkspelling" + name="checkspelling">CheckSpelling</a> ディレクティブ</h2> + + <a href="directive-dict.html#syntax" + rel="help"><strong>構文:</strong></a> CheckSpelling on|off<br /> + <a href="directive-dict.html#default" + rel="help"><strong>デフォルト:</strong></a> <code>CheckSpelling + Off</code><br /> + <a href="directive-dict.html#context" + rel="help"><strong>コンテキスト:</strong></a> + サ・踉札仞瀋螢侫.ぅ襦▲弌チャルホスト、ディレクトリ、.htaccess<br /> + <a href="directive-dict.html#override" + rel="help"><strong>綵颪墾踉晒齡鳫鈑頸蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪s鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑ステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯迴糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札墾踉晒齡鳫鈑閼燗鞳跚鈑碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪C闕鞜砠跚⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢ互換性:</strong></a> CheckSpelling は + Apache 1.1 では外部のモジュ・踉札襪箸靴道藩儔椎修任靴燭鹿粡寂蝟赱齠洲痲筵娼大文字源琉磴い鮟だ気垢覽’修里澆任靴拭草痺蒹ぢでは + Apache の配布の一部になっています。Apache 1.3.2 以前では、 + <samp>CheckSpelling</samp> ディレクティブは "サ・踉札と + "バ・踉札船礇襯曠好のコンテキストのみで使用可能でした。 + + + <p>このディレクティブは綴り用のモジュ・踉札襪鮖藩僂垢襪匹逅擦鹿粡寂蝟赱齠洲痲筵娼決めます。使用時には、以王踉擦里海箸魍个┐討い討世気鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚同時にたくさんの綴りの訂正を行なわなければならないときは、 + そのために行なわれるディレクトリのスキャンが + サ・踉札个寮修鳳洞舛鰺燭┐泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢドキュメントの中に綴りの「訂正」により + 意図せず合ってしまう瘢雹よう瘢雹な重要なファイルがないよう瘢雹にしてください。 + </li> + + <li>モジュ・踉札襪魯罅ザ巳苳擦猟屬蠅隆岼磴鹿粡寂蝟赱齠洲痲筵娼└踉祉閼絋苳肢雕逋闢鞜蓊絲閼絋苳のよう瘢雹に) + を訂正することはできません。 + 訂正できるのはファイル巳苳擦肇妊譽肇衞だけです。</li> + + <li>綴りの訂正は存在するファイルに厳密に適用されますので、 + <samp><Location /status></samp> + はネゴシエ・踉札轡腑鵑侶覯未離侫.ぅ黶逅讀踉晒黶逅⊆蝟昭粡竚癈鷭п粐Ьぢとして間違って扱われるかもしれません。</li> + </ul> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/mod_status.html b/htdocs/manual/mod/mod_status.html new file mode 100644 index 0000000000..6725452222 --- /dev/null +++ b/htdocs/manual/mod/mod_status.html @@ -0,0 +1,158 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_status</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_status</h1> + + <p>This module provides information on server activity and + performance.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> mod_status.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + status_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.1 and later.</p> + + <h2>Summary</h2> + + <p>The Status module allows a server administrator to find out + how well their server is performing. A HTML page is presented + that gives the current server statistics in an easily readable + form. If required this page can be made to automatically + refresh (given a compatible browser). Another page gives a + simple machine-readable list of the current server state.</p> + + <p>The details given are:</p> + + <ul> + <li>The number of children serving requests</li> + + <li>The number of idle children</li> + + <li>The status of each child, the number of requests that + child has performed and the total number of bytes served by + the child (*)</li> + + <li>A total number of accesses and byte count served (*)</li> + + <li>The time the server was started/restarted and the time it + has been running for</li> + + <li>Averages giving the number of requests per second, the + number of bytes served per second and the average number of + bytes per request (*)</li> + + <li>The current percentage CPU used by each child and in + total by Apache (*)</li> + + <li>The current hosts and requests being processed (*)</li> + </ul> + + <p>Details marked "(*)" are only available with + <code>ExtendedStatus On</code>.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#extendedstatus">ExtendedStatus</a></li> + </ul> + + <h2>Enabling Status Support</h2> + To enable status reports only for browsers from the foo.com + domain add this code to your <code>httpd.conf</code> + configuration file +<pre> + <Location /server-status> + SetHandler server-status + + Order Deny,Allow + Deny from all + Allow from .foo.com + </Location> +</pre> + + <p>You can now access server statistics by using a Web browser + to access the page + <code>http://your.server.name/server-status</code></p> + + <p>Alternatively, if you have <code>lynx</code> installed, you can + also get a server statics report from the command line by running + the command <code>apachectl status</code>, or, for the extended + status report, <code>apachectl fullstatus</code>. See the <a + href="../programs/apachectl.html">apachectl</a> documentation for + additional details.</a><p> + + <p>Note that mod_status will only work when you are running + Apache in <a href="core.html#servertype">standalone</a> mode + and not <a href="core.html#servertype">inetd</a> mode.</p> + + <h3>Automatic Updates</h3> + You can get the status page to update itself automatically if + you have a browser that supports "refresh". Access the page + <code>http://your.server.name/server-status?refresh=N</code> to + refresh the page every N seconds. + + <h3>Machine Readable Status File</h3> + A machine-readable version of the status file is available by + accessing the page + <code>http://your.server.name/server-status?auto</code>. This + is useful when automatically run, see the Perl program in the + <code>/support</code> directory of Apache, + <code>log_server_status</code>. + + <blockquote> + <strong>It should be noted that if <samp>mod_status</samp> is + compiled into the server, its handler capability is available + in <em>all</em> configuration files, including + <em>per</em>-directory files (<em>e.g.</em>, + <samp>.htaccess</samp>). This may have security-related + ramifications for your site.</strong> + </blockquote> + <hr /> + + <h2><a id="extendedstatus" name="extendedstatus">ExtendedStatus + directive</a></h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ExtendedStatus + On|Off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ExtendedStatus + Off</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config <br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_status<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> ExtendedStatus + is only available in Apache 1.3.2 and later. + + <p>This directive controls whether the server keeps track of + extended status information for each request. This is only + useful if the status module is enabled on the server.</p> + + <p>This setting applies to the entire server, and cannot be + enabled or disabled on a virtualhost-by-virtualhost basis.</p> + + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_unique_id.html.en b/htdocs/manual/mod/mod_unique_id.html.en new file mode 100644 index 0000000000..d3ab32c83f --- /dev/null +++ b/htdocs/manual/mod/mod_unique_id.html.en @@ -0,0 +1,206 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_unique_id</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_unique_id</h1> + + <p>This module provides an environment variable with a unique + identifier for each request.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_unique_id.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + unique_id_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3 and later.</p> + + <h2>Summary</h2> + + <p>This module provides a magic token for each request which is + guaranteed to be unique across "all" requests under very + specific conditions. The unique identifier is even unique + across multiple machines in a properly configured cluster of + machines. The environment variable <code>UNIQUE_ID</code> is + set to the identifier for each request. Unique identifiers are + useful for various reasons which are beyond the scope of this + document.</p> + + <h2>Directives</h2> + + <p>This module has no directives.</p> + + <h2>Theory</h2> + + <p>First a brief recap of how the Apache server works on Unix + machines. On Unix machines, Apache creates several children, + the children process requests one at a time. Each child can + serve multiple requests in its lifetime. For the purpose of + this discussion, the children don't share any data with each + other. We'll refer to the children as httpd processes.</p> + + <p>Your website has one or more machines under your + administrative control, together we'll call them a cluster of + machines. Each machine can possibly run multiple instances of + Apache. All of these collectively are considered "the + universe", and with certain assumptions we'll show that in this + universe we can generate unique identifiers for each request, + without extensive communication between machines in the + cluster.</p> + + <p>The machines in your cluster should satisfy these + requirements. (Even if you have only one machine you should + synchronize its clock with NTP.)</p> + + <ul> + <li>The machines' times are synchronized via NTP or other + network time protocol.</li> + + <li>The machines' hostnames all differ, such that the module + can do a hostname lookup on the hostname and receive a + different IP address for each machine in the cluster.</li> + </ul> + + <p>As far as operating system assumptions go, we assume that + pids (process ids) fit in 32-bits. If the operating system uses + more than 32-bits for a pid, the fix is trivial but must be + performed in the code.</p> + + <p>Given those assumptions, at a single point in time we can + identify any httpd process on any machine in the cluster from + all other httpd processes. The machine's IP address and the pid + of the httpd process are sufficient to do this. So in order to + generate unique identifiers for requests we need only + distinguish between different points in time.</p> + + <p>To distinguish time we will use a Unix timestamp (seconds + since January 1, 1970 UTC), and a 16-bit counter. The timestamp + has only one second granularity, so the counter is used to + represent up to 65536 values during a single second. The + quadruple <em>( ip_addr, pid, time_stamp, counter )</em> is + sufficient to enumerate 65536 requests per second per httpd + process. There are issues however with pid reuse over time, and + the counter is used to alleviate this issue.</p> + + <p>When an httpd child is created, the counter is initialized + with ( current microseconds divided by 10 ) modulo 65536 (this + formula was chosen to eliminate some variance problems with the + low order bits of the microsecond timers on some systems). When + a unique identifier is generated, the time stamp used is the + time the request arrived at the web server. The counter is + incremented every time an identifier is generated (and allowed + to roll over).</p> + + <p>The kernel generates a pid for each process as it forks the + process, and pids are allowed to roll over (they're 16-bits on + many Unixes, but newer systems have expanded to 32-bits). So + over time the same pid will be reused. However unless it is + reused within the same second, it does not destroy the + uniqueness of our quadruple. That is, we assume the system does + not spawn 65536 processes in a one second interval (it may even + be 32768 processes on some Unixes, but even this isn't likely + to happen).</p> + + <p>Suppose that time repeats itself for some reason. That is, + suppose that the system's clock is screwed up and it revisits a + past time (or it is too far forward, is reset correctly, and + then revisits the future time). In this case we can easily show + that we can get pid and time stamp reuse. The choice of + initializer for the counter is intended to help defeat this. + Note that we really want a random number to initialize the + counter, but there aren't any readily available numbers on most + systems (<em>i.e.</em>, you can't use rand() because you need + to seed the generator, and can't seed it with the time because + time, at least at one second resolution, has repeated itself). + This is not a perfect defense.</p> + + <p>How good a defense is it? Suppose that one of your machines + serves at most 500 requests per second (which is a very + reasonable upper bound at this writing, because systems + generally do more than just shovel out static files). To do + that it will require a number of children which depends on how + many concurrent clients you have. But we'll be pessimistic and + suppose that a single child is able to serve 500 requests per + second. There are 1000 possible starting counter values such + that two sequences of 500 requests overlap. So there is a 1.5% + chance that if time (at one second resolution) repeats itself + this child will repeat a counter value, and uniqueness will be + broken. This was a very pessimistic example, and with real + world values it's even less likely to occur. If your system is + such that it's still likely to occur, then perhaps you should + make the counter 32 bits (by editing the code).</p> + + <p>You may be concerned about the clock being "set back" during + summer daylight savings. However this isn't an issue because + the times used here are UTC, which "always" go forward. Note + that x86 based Unixes may need proper configuration for this to + be true -- they should be configured to assume that the + motherboard clock is on UTC and compensate appropriately. But + even still, if you're running NTP then your UTC time will be + correct very shortly after reboot.</p> + + <p>The <code>UNIQUE_ID</code> environment variable is + constructed by encoding the 112-bit (32-bit IP address, 32 bit + pid, 32 bit time stamp, 16 bit counter) quadruple using the + alphabet <code>[A-Za-z0-9@-]</code> in a manner similar to MIME + base64 encoding, producing 19 characters. The MIME base64 + alphabet is actually <code>[A-Za-z0-9+/]</code> however + <code>+</code> and <code>/</code> need to be specially encoded + in URLs, which makes them less desirable. All values are + encoded in network byte ordering so that the encoding is + comparable across architectures of different byte ordering. The + actual ordering of the encoding is: time stamp, IP address, + pid, counter. This ordering has a purpose, but it should be + emphasized that applications should not dissect the encoding. + Applications should treat the entire encoded + <code>UNIQUE_ID</code> as an opaque token, which can be + compared against other <code>UNIQUE_ID</code>s for equality + only.</p> + + <p>The ordering was chosen such that it's possible to change + the encoding in the future without worrying about collision + with an existing database of <code>UNIQUE_ID</code>s. The new + encodings should also keep the time stamp as the first element, + and can otherwise use the same alphabet and bit length. Since + the time stamps are essentially an increasing sequence, it's + sufficient to have a <em>flag second</em> in which all machines + in the cluster stop serving and request, and stop using the old + encoding format. Afterwards they can resume requests and begin + issuing the new encodings.</p> + + <p>This is a relatively portable solution. It is extended to + multithreaded systems like Windows NT, which add the thread-id + to the ID, producing a 144-bit (including 32-bit tid) quadruple + that generates a 24 character UNIQUE_ID value. The identifiers + generated have essentially an infinite life-time because future + identifiers can be made longer as required. Essentially no + communication is required between machines in the cluster (only + NTP synchronization is required, which is low overhead), and no + communication between httpd processes is required (the + communication is implicit in the pid value assigned by the + kernel). In very specific situations the identifier can be + shortened, but more information needs to be assumed (for + example the 32-bit IP address is overkill for any site, but + there is no portable shorter replacement for it). This module + may be extended to include an entire IPv6 address, but that is + overkill for nearly all server configurations. + <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_unique_id.html.html b/htdocs/manual/mod/mod_unique_id.html.html new file mode 100644 index 0000000000..609eab006c --- /dev/null +++ b/htdocs/manual/mod/mod_unique_id.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_unique_id.html.en" --> + diff --git a/htdocs/manual/mod/mod_unique_id.html.ja.jis b/htdocs/manual/mod/mod_unique_id.html.ja.jis new file mode 100644 index 0000000000..4cc22e1af3 --- /dev/null +++ b/htdocs/manual/mod/mod_unique_id.html.ja.jis @@ -0,0 +1,203 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache module mod_unique_id</title> + + </head> + <!-- English revision: 1.9 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_unique_id モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪蓮△修譴れのリクエストに対して + 一意な永婿劼鮖調超竸瑤鯆鷆,靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯齡癆⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑緕皷闔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼絖粡笏譯齒竇肅跂⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖蜻煢筮礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪m閼繪粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊∵繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + unique_id_module<br /> + <a href="module-dict.html#Compatibility" + rel="help"><strong>互換性:</strong></a> Apache 1.3 + 以降で使用可能。</p> + + <h2>概要</h2> + + <p>このモジュ・踉札襪枠鵙苳誌に制限された魴鏖で、 + それう苳擦譴離螢┘好箸法屬垢戮董廚離螢┘好箸紡个靴鹿粡寂蝟赱齠洲痲筵娼一意に決まることが保擇気譴討い詼睨,離函クンを提供します。 + この一意な永婿劼蓮擇棒瀋蠅気譴織薀好燭任亙瑤鹿粡寂蝟赱齠洲痲筵娼マシンの間でさえも一意になります。それう苳擦譴離螢┘好箸紡个靴憧超竸鹿粡寂蝟赱齠洲痲筵娼竢粤嬶頻嫖濾彫踉晒竢粤ぢに永婿劼瀋蠅気譴泙后鹿粡寂蝟赱齠洲痲筵娼一意な永婿劼慷瞥海呂い蹐い蹐△蠅泙垢鹿粡寂蝟赱齠洲痲筵娼このドキュメントの目的からは外れるため、ここでは説明しません。</p> + + <h2>ディレクティブ</h2> + + <p>このモジュ・踉札襪砲魯妊譽謄屬呂△蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢理論</h2> + + <p>まずはじめに、Apache サ・踉札个鉗蝟昭粡竚癈鷭п粐Ьぢマシンでどのよう瘢雹に動作をするかを簡単に説明します。 + Unix マシンでは Apache はいくつかの子プロセスを作成し、 + その子プロセスが一つずつリクエストを処理します。それう苳擦譴了劵廛蹈札垢蓮鹿粡寂蝟赱齠洲痲筵娼生存期間中に複数のリクエストを扱う瘢雹ことができます。 + この議論では子プロセス間では一切デ・踉札燭魘逅四靴覆い海箸砲靴泙后鹿粡寂蝟赱齠洲痲筵娼以後、この子プロセスのことを httpd プロセスと呼びます。</p> + + <p>あなたのウ瘢雹ェブサイトにはあなたが管理するいくつかのマシンがあるとします。 + それらをまとめてクラスタと呼ぶことにします。それう苳擦譴離泪轡鵑亙瑤鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢを孫圓垢襪海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼これらすべてをまとめたものが「宇宙」であると考えられます。 + いくつかの王苳残蠅硫で、クラスタのマシン間がたくさん通信をすることなく、 + この宇宙の中でそれう苳擦譴離螢┘好箸飽谿佞弗踉傘別子を生成できることを┐靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢクラスタにあるマシンは以王踉擦陵弋瓩鯔燭気覆韻譴个覆蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼ぢマシンが一つだけだとしても、NTP で時計を合わせる方が良いです。)</p> + + <ul> + <li>NTP や側苳擦離優奪肇錙ク紊濃屬鮃腓錣擦襯廛蹈肇灰襪砲茲辰鹿粡寂蝟赱齠洲痲筵娼各マシンの時間の同期が茲蕕譴討い襪海函薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢモジュ・踉札襪曠好般を引いて違う瘢雹 IP + アドレスを右踉肢ることができるよう瘢雹に、 + クラスタのそれう苳擦譴離泪轡鵑離曠好般が違う瘢雹こと。</li> + </ul> + + <p>オペレ・踉札謄鵐哀轡好謄爐砲い討蓮韈ぢプロセス ID) が + 32 ビットの範囲内であることを王苳残蠅靴泙后撻譟ティングシステムの + pid が 32 ビットを超える豺腓蓮蔽韻塀だ気任呂△蠅泙垢鹿粡寂蝟赱齠洲痲筵娼コ・踉札匹鯤儿垢垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこれらの王苳残蠅燭気譴討い襪函△△觧世砲い董鹿粡寂蝟赱齠洲痲筵娼クラスタ内のどのマシンのどの httpd + プロセスでも、一意に同定することができます。これはマシンの IP + アドレスと httpd プロセスの pid で十分に行なう瘢雹ことができます。 + ですから、リクエストに一意な永婿劼鮴言垢襪燭瓩砲蓮鹿粡寂蝟赱齠洲痲筵娼時刻を区別する必要があるだけです。</p> + + <p>時刻を区別するために、Unix のタイムスタンプ (UTC の 1970 年 + 1 月 1 日からの秒数) と、16 ビットのカウ瘢雹ンタを使います。 + タイムスタンプの粒度は一秒ですので、一秒間の 65536 + までの値を表現するためにカウ瘢雹ンタを使用します。四つの値 + <em>( ip_addr, pid, time_stamp, counter )</em> で各 httpd + プロセスで一秒の間に 65536 リクエストを数えあげることができます。 + 時間が経つと pid が再利用されるという瘢雹問題がありますが、 + この問題を解決するためにカウ瘢雹ンタが使用されます。</p> + + <p>httpd の子プロセスが作成されると、カウ瘢雹ンタは + (その時点のマイクロ秒 ÷ 10) modulo 65536 で初期化されます + (この阿呂い弔離轡好謄爐砲△襦▲泪ぅ輊辰鹿粡寂蝟赱齠洲痲筵娼タイマの王踉三魅咼奪箸曚覆襪箸い逅嗣簑蠅魏魴茲垢襪燭瓩冒个譴泙靴ぢ。 + 一意な永婿劼言気譴燭箸∋藩僂気譴襯織ぅ爛好織鵐廚鹿粡寂蝟赱齠洲痲筵娼ウ瘢雹ェブサ・踉札个縫螢┘好箸紊靴浸錣砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼カウ瘢雹ンタは永婿劼言気譴襪燭咾冒辰靴泙蝟昭粡竚癈鷭п粐Ьあふれた豺腓ぢに戻ります)。</p> + + <p>カ・踉札優襪魯廛蹈札垢鬟侫クすると、それう苳擦譴離廛蹈札垢里燭瓩鹿粡寂蝟赱齠洲痲筵娼韈を生成します。pid は繰り返されることが許可されています + (pid の値は多くの Unix では 16 ビットですが、新しいシステムでは + 32 ビットに拡張されています)。 + ですから、ある程度の時間が経過すると同じ pid が再び使用されます。 + しかし、一秒内に再使用されなければ、 + 四つの値の一意性は保たれます。つまり、我々はシステムが一秒間 + に 65536 個のプロセスを起動しないと王苳残蠅靴討い泙いくつかの Unix + では 32768 プロセスですが、それですらほとんどあり得ないでしょう瘢雹)。</p> + + <p>何らかの理由で、同じ時刻が繰り返されたとしましょう瘢雹。 + つまり、システムの時計が狂っていて、もう瘢雹一度過去の時刻になってしまった + (もしくは進みすぎていたときに、 + 正しい時刻に戻したために再び茲了錣砲覆辰討靴泙辰とします。 + この豺隋韈とタイムスタンプが再使用されることが簡単に┐気譴泙后鹿粡寂蝟赱齠洲痲筵娼カウ瘢雹ンタ初期化用の関数は、この問題の回避を蟒韻靴茲逅擦帆鬚気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼本当はカウ瘢雹ンタの初期化をするためにランダムな数字を使いたいのですが、 + ほとんどのシステムでは簡単に使用できる数は無いことに注意してください + (<em>すなわち</em>、rand ()は使えません。rand () には seed + を与える必要があり、seed には時刻を使えません。一秒単位では、 + その時刻はすでに繰り返されているからです)。 + これは、完璧な対策ではありません。</p> + + <p>この対策はどのくらい効果があるでしょう瘢雹か? + ここでは、マシン群の中の一つは最大で一秒に 500 + リクエストを扱う瘢雹と王苳残蠅靴泙これを書いている時点では妥当な絽造任后鹿粡寂蝟赱齠洲痲筵娼通錺轡好謄爐垢襪海箸論電淵侫.ぅ襪鬢踉肢りだすだけではありませんから)。 + それを行なう瘢雹ために、そのマシンは並行して来るクライアントの数に + 応じた数の子プロセスを要求します。 + しかしながら、悲観的に考えて、一つの子プロセスが一秒に 500 + リクエストを扱えるとします。そう瘢雹すると、(一秒の精度において) + 時刻が同じ時を繰り返すと、この子プロセスがカウ瘢雹ンタの値を再び使い、 + 一意性が壊れる可能性が 1.5% あります。 + これは非錣鉾甦囘蔑磴如▽踉斬世界瘢雹の値では、ほとんど起こりそう瘢雹にありません。 + それでもこれが起こる可能性のあるよう瘢雹なシステムなら、 + (プログラムコ・踉札匹鯤埆犬靴鹿粡寂蝟赱齠洲痲筵娼カウ瘢雹ンタを 32 ビットにするのが良いでしょう瘢雹。 + </p> + + <p>サマ・踉札織ぅ爐砲茲蟷廚嵬瓩気譴襦廚海箸魑い砲靴討い訖佑鹿粡寂蝟赱齠洲痲筵娼いるかもしれません。ここで使用される時間は UTC であり、 + それは「錣法弯覆爐里任海海任鰐簑蠅砲覆蠅泙擦鵝紊鉗蝟昭粡竚癈鷭п粐Ьぢはこの魴錣鯔燭垢燭瓩謀擇弊瀋蠅廚發靴譴覆い海箸鹿粡寂蝟赱齠洲痲筵娼注意してください。マザ・踉札棔ドの時計は UTC になっていて、 + 側苳擦了屬呂修海蘚擇吠篝気気譴襪海箸魏定できるよう瘢雹に + 設定されなければなりません。そのよう瘢雹な豺腓任気─淋仄蝟昭粡竚癈鷭п粐Ьぢを使っているならばリブ・踉札噺紊砲垢粟気靴埣ぢの時間になるでしょう瘢雹。</p> + + <p><code>UNIQUE_ID</code> 環境変数は 112 ビット (32 ビット IP + アドレス、32 ビット pid, 32 ビットタイムスタンプ、16 + ビットカウ瘢雹ンタの四つの組) をアルファベット <code>[A-Za-z0-9@-]</code> + を用いて MIME の base64 符号化と同様の方法により符号化し、19 + の文字を生成することにより作成されます。MIME の base64 + のアルファベットは尊櫃踉祉閼絋苳斯銑旻悪巷閼絋苳ですが、 + <code>+</code> と <code>/</code> とは URL + では特別な符号化が必要なので、あまり胞苳擦泙靴△蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼全ての値はネットワ・踉札丱ぅ肇ダで符号化されますので、 + 符号は違ったバイトオ・踉札世離◆キテクチャ間で比較可能です。 + 尊櫃良箙羃修僚臠屬タイムスタンプ、IP アドレス、pid, + カウ瘢雹ンタです。この順には目的がありますが、 + アプリケ・踉札轡腑鵑鷲箙罎魏鮴呂垢襪戮任呂覆い海箸魘瓦靴討泙后鹿粡寂蝟赱齠洲痲筵娼アプリケ・踉札轡腑鵑鷲箙羃修気譴踉祉閼絋苳師良冲冬苗閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢ全体を透過的なト・踉札鵑箸靴動靴逅擦戮任后鹿粡寂蝟赱齠洲痲筵娼竢粤嬶頻嫖濾彫踉晒竢粤ぢは側苳擦踉祉閼絋苳師良冲冬苗閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢとの等価性を調べるためだけにのみ使用できます。</p> + + <p>この順番は茵犬踉祉閼絋苳師良冲冬苗閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢのデ・踉札織戞スとの彳佑鮨看曚垢襪海箸覆箙罎鯤儿垢垢襪海箸鹿粡寂蝟赱齠洲痲筵娼可能になるよう瘢雹に選択しています。 + 新しい符号はタイムスタンプを最初の要素として残すのが胞苳擦泙靴鹿粡寂蝟赱齠洲痲筵娼それ以外は同じアルファベットとビット長を使う瘢雹ことができます。 + タイムスタンプは本租冒歎藁鵑任垢里如鹿粡寂蝟赱齠洲痲筵娼クラスタの全てのマシンがリクエストとサ・踉札亠’修鯆篁澆靴董鹿粡寂蝟赱齠洲痲筵娼古い符号化方阿鮖藩僂垢襪里鬚笋瓩纃フラグ秒</em>があれば十分です。 + その後は、リクエストを再開し、 + 新しい符号を発行することができるよう瘢雹になります。</p> + + <p>我々はこれが、 + この問題における比較的移植性の高い解決法だと考えています。 + Windows NT のよう瘢雹に、スレッドid を ID に追加して、24 文字の + UNIQUE_ID の 4 倍にあたる 144-bit (32 ビットの tid を含む) の ID + を作り出すよう瘢雹なマルチスレッドシステム用に拡張することができます。 + 茲は必要に応じて長くすることができますので、生成された ID + は側踉餐紂¬妓造僕任后泙拭▲薀好燭離泪轡鶸屬猟命盪踉斬緝廚覆鹿粡寂蝟赱齠洲痲筵娼墅ぢによる同期のみが必要で、これはオ・踉札丱悒奪匹呂△泙蠅△蠅泙擦ぢ、httpd + プロセス間の通信も必要ありません (通信はカ・踉札優襪砲茲螻笋蠹討蕕譴鹿粡寂蝟赱齠洲痲筵娼韈の値により暗黙の内に行なわています)。 + さらに限られた群では、ID はさらに短くすることができますが、 + より多くの霾鵑魏定する必要がでてきます (例えば、32 ビット + IP アドレスはどのサイトにおいても過蠅弗苳諮報ですが、 + それの代わりになる移植性のあるものはありません)。 + このモジュ・踉札襪蓮賓ぢアドレス全体を含むよう瘢雹にも拡張できますが、 + ほとんどすべてのサ・踉札弌にとっては過蠅弗苳諮報です。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/mod_userdir.html.en b/htdocs/manual/mod/mod_userdir.html.en new file mode 100644 index 0000000000..73f286b72d --- /dev/null +++ b/htdocs/manual/mod/mod_userdir.html.en @@ -0,0 +1,140 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_userdir</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_userdir</h1> + + <p>This module provides for user-specific directories.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_userdir.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + userdir_module</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#userdir">UserDir</a></li> + </ul> + <hr /> + + <h2><a id="userdir" name="userdir">UserDir</a> directive</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> UserDir + <em>directory-filename</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>UserDir + public_html</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Base<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_userdir<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> All forms except + the <code>UserDir public_html</code> form are only available in + Apache 1.1 or above. Use of the <samp>enabled</samp> keyword, + or <samp>disabled</samp> with a list of usernames, is only + available in Apache 1.3 and above. + + <p>The UserDir directive sets the real directory in a user's + home directory to use when a request for a document for a user + is received. <em>Directory-filename</em> is one of the + following:</p> + + <ul> + <li>The name of a directory or a pattern such as those shown + below.</li> + + <li>The keyword <samp>disabled</samp>. This turns off + <em>all</em> username-to-directory translations except those + explicitly named with the <samp>enabled</samp> keyword (see + below).</li> + + <li>The keyword <samp>disabled</samp> followed by a + space-delimited list of usernames. Usernames that appear in + such a list will <em>never</em> have directory translation + performed, even if they appear in an <samp>enabled</samp> + clause.</li> + + <li>The keyword <samp>enabled</samp> followed by a + space-delimited list of usernames. These usernames will have + directory translation performed even if a global disable is + in effect, but not if they also appear in a + <samp>disabled</samp> clause.</li> + </ul> + + <p>If neither the <samp>enabled</samp> nor the + <samp>disabled</samp> keywords appear in the + <samp>Userdir</samp> directive, the argument is treated as a + filename pattern, and is used to turn the name into a directory + specification. A request for + <code>http://www.foo.com/~bob/one/two.html</code> will be + translated to:</p> +<pre> +UserDir public_html -> ~bob/public_html/one/two.html +UserDir /usr/web -> /usr/web/bob/one/two.html +UserDir /home/*/www -> /home/bob/www/one/two.html +</pre> + + <p>The following directives will send redirects to the + client:</p> +<pre> +UserDir http://www.foo.com/users -> http://www.foo.com/users/bob/one/two.html +UserDir http://www.foo.com/*/usr -> http://www.foo.com/bob/usr/one/two.html +UserDir http://www.foo.com/~*/ -> http://www.foo.com/~bob/one/two.html +</pre> + + <blockquote> + <strong>Be careful when using this directive; for instance, + <samp>"UserDir ./"</samp> would map + <samp>"/~root"</samp> to <samp>"/"</samp> - which is probably + undesirable. If you are running Apache 1.3 or above, it is + strongly recommended that your configuration include a + "<samp>UserDir disabled root</samp>" declaration. + See also the <a + href="core.html#directory"><Directory></a> directive + and the <a href="../misc/security_tips.html">Security + Tips</a> page for more information.</strong> + </blockquote> + +<p>Additional examples:</p> + +<p>To allow a few users to have <code>UserDir</code> directories, but +not anyone else, use the following:</p> + +<pre> +UserDir disabled +UserDir enabled user1 user2 user3 +</pre> + +<p>To allow most users to have <code>UserDir</code> directories, but +deny this to a few, use the following:</p> + +<pre> +UserDir enabled +UserDir disabled user4 user5 user6 +</pre> + + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_userdir.html.html b/htdocs/manual/mod/mod_userdir.html.html new file mode 100644 index 0000000000..9f07c498d3 --- /dev/null +++ b/htdocs/manual/mod/mod_userdir.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="mod_userdir.html.en" --> + diff --git a/htdocs/manual/mod/mod_userdir.html.ja.jis b/htdocs/manual/mod/mod_userdir.html.ja.jis new file mode 100644 index 0000000000..80db90122d --- /dev/null +++ b/htdocs/manual/mod/mod_userdir.html.ja.jis @@ -0,0 +1,139 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache module mod_userdir</title> + </head> + <!-- English revision: 1.20 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">mod_userdir モジュ・踉札右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このモジュ・踉札襪蓮▲罅ザのホ・踉札爛妊譽肇蠅縫▲札垢垢覽’修鯆鷆,靴泙鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹閼絖粡笏譯囈癆⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳ぢステ・踉札織墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪S阨鱆綟蛹紜鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑ソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼迴籖纈粡鬯礒踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴糒跂蜒蔗迪M閼緝粤銓蜀蜈鬆鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑モジュ・踉札襴踉傘別子:</strong></a> + userdir_module</p> + + <h2>ディレクティブ</h2> + + <ul> + <li><a href="#userdir">UserDir</a></li> + </ul> + <hr /> + + <h2><a id="userdir" name="userdir">UserDir</a> ディレクティブ</h2> + + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> UserDir + <em>directory-filename</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>UserDir + public_html</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> サ・踉札仞瀋螢侫.ぅ襦ぢバ・踉札船礇襯曠好碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹≫蜥繝蜒蔗迪S鵞鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑囈癆墾踉晒齡鳫鈑癈絋踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯酪糒跂⊆蝟昭粡竚癈鷭п粐Ь繻就斐跟▽苳殺踉雌闔胼苳四閼綺闔胼苳殺踉晒瓲苳迴籖纈粡鬢踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就粡鱚笏蝟絖粡笏譯衷逅癆蛯蛹蜚鹿粡寂蝟赱齠洲痲筵娼鱚貊繻陟齡鳫鈑衷逅癆蛯蛹蜚闔胼苳殺踉晒瓲苳竢粤專纈堤頤碎蜒煦讀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼といった形旭奮阿蓮草痺蒹ぢ以降でのみ有効です。 + <samp>enabled</samp> や <samp>disabled</samp> という瘢雹キ・踉札錙ドの記述及び、 + ユ・踉札玉の列挙に関しては、Apache 1.3 以降でのみ対応しています。 + + <p>UserDir ディレクティブは、 + ユ・踉札兇離疋絅瓮鵐箸紡个垢詬弋瓩△辰榛櫃忙藩僂垢襦鹿粡寂蝟赱齠洲痲筵娼ユ・踉札兇離曄ムディレクトリの中の尊櫃離妊譽肇蠅量前を指定します。 + <em>directory-filename</em> には、以王踉擦里匹譴鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚ディレクトリ巳苳擦焚に述べる形阿離僖拭ン。</li> + + <li><samp>disabled</samp> という瘢雹キ・踉札錙ド。<br /> + この設定は、<samp>enabled</samp> キ・踉札錙ド (以王踉算王苳使) + において指定されたユ・踉札彊奮亜鹿粡寂蝟赱齠洲痲筵娼纃すべて</em>のユ・踉札玉をディレクトリに変換しないよう瘢雹にします。</li> + + <li><samp>disabled</samp> という瘢雹キ・踉札錙ドと、 + その後にスペ・踉札攻萓擇蠅妊罅ザ巳苳擦鯲鶺鵝碣鹿粡寂蝟赱齠洲痲筵娼指定されたユ・踉札兇蓮黶逅緕痰跂筅踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼において記述がされていたとしても、 + ディレクトリへの変換が<em>されなく</em>なります。</li> + + <li><samp>enabled</samp> + という瘢雹キ・踉札錙ドと、スペ・踉札攻萓擇蠅妊罅ザ巳苳擦鯲鶺碣鹿粡寂蝟赱齠洲痲筵娼指定されたユ・踉札兇蓮∧儡垢気譴覆い茲逅擦棒瀋蠅気譴討い燭箸靴討癲鹿粡寂蝟赱齠洲痲筵娼ディレクトリへの変換を行います。 + ただし、<samp>disabled</samp> + において明記されている豺腓砲蓮∧儡垢覆気譴泙擦鵝薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌瘢隍苳糸釶碎繖瘢隍苳や <samp>disabled</samp> + といったキ・踉札錙ドでない豺腓砲蓮鹿粡寂蝟赱齠洲痲筵娼ファイル巳苳擦離僖拭ンとして扱われ、 + 巳苳餐阿薀妊譽肇蠅悗諒儡垢鮖慊蠅垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼竢粤蔗痕闖闕硼皴闔絲鎬蔗迪閼絋苳への URL + の豺腓諒儡垢砲弔い童討澆泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь黼鯆蜥跚窰蔗迪逅紫硼皴頤碎蜒煦豁闔絲鎬蔗迪鹿粡寂蝟赱齠洲痲筵娼專纈堤齟繧瘢雹苳齟繧閧鈬貅蝟昭粡竚癈鷭п粐Ь黼鯆蜥蓖辣逅紫蓖辣閧鈬貅蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮以王踉擦里茲逅擦縫妊譽謄屬鮴瀋蠅垢襪函鹿粡寂蝟赱齠洲痲筵娼クライアントへはリダイレクトが送出されます。</p> +<pre> +UserDir http://www.foo.com/users -> http://www.foo.com/users/bob/one/two.html +UserDir http://www.foo.com/*/usr -> http://www.foo.com/bob/usr/one/two.html +UserDir http://www.foo.com/~*/ -> http://www.foo.com/~bob/one/two.html +</pre> + + <blockquote> + <strong> + このディレクティブを利用する際、<samp>"UserDir ./"</samp> + といった設定をすると、<samp>"/~root"</samp> は <samp>"/"</samp> + にマッピングされることに気をつけてください。 + これは非錣頬ましくありません。 + Apache 1.3 以降を利用しているのであれば、"UserDir disabled root" + という瘢雹記述を設定ファイル中に含めることを強く推靴泙后鹿粡寂蝟赱齠洲痲筵娼畆蝟昭粡竚癈鷭п粐Ь鱚羹≪闥絎蔗迪d蜥繝鴒▽苳殺瘢雹踉残蜥繝鴒逅紫ぢディレクティブや、 + <a href="../misc/security_tips.html">セキュリティに関する覚書</a> + も参箸靴討世気ぁ闔胼苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢその側苳擦寮瀋衫墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮瑤離罅ザには <code>UserDir</code> +ディレクトリを利用させるものの、残りのユ・踉札兇砲呂気擦燭覆う苳詞合:</p> + +<pre> +UserDir disabled +UserDir enabled user1 user2 user3 +</pre> + +<p>大部分のユ・踉札兇砲踉祉閼絋苳師黼鯆蜥閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢディレクトリを利用させ、一部のユ・踉札兇里潴妓砲垢襴苳詞合:</p> + +<pre> +UserDir enabled +UserDir disabled user4 user5 user6 +</pre> + + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mod/mod_usertrack.html b/htdocs/manual/mod/mod_usertrack.html new file mode 100644 index 0000000000..9283f535db --- /dev/null +++ b/htdocs/manual/mod/mod_usertrack.html @@ -0,0 +1,296 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_usertrack</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_usertrack</h1> + + <p>This module uses cookies to provide for a + <em>clickstream</em> log of user activity on a site.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_usertrack.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + usertrack_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Known as + mod_cookies prior to Apache 1.3.</p> + + <h2>Summary</h2> + + <p>Previous releases of Apache have included a module which + generates a 'clickstream' log of user activity on a site using + cookies. This was called the "cookies" module, mod_cookies. In + Apache 1.2 and later this module has been renamed the "user + tracking" module, mod_usertrack. This module has been + simplified and new directives added.</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#cookiedomain">CookieDomain</a></li> + + <li><a href="#cookieexpires">CookieExpires</a></li> + + <li><a href="#cookieformat">CookieFormat</a></li> + + <li><a href="#cookiename">CookieName</a></li> + + <li><a href="#cookieprefix">CookiePrefix</a></li> + + <li><a href="#cookiestyle">CookieStyle</a></li> + + <li><a href="#cookietracking">CookieTracking</a></li> + </ul> + + <h2>Logging</h2> + + <p>Previously, the cookies module (now the user tracking + module) did its own logging, using the <tt>CookieLog</tt> + directive. In this release, this module does no logging at all. + Instead, a configurable log format file should be used to log + user click-streams. This is possible because the logging module + now allows <a href="../multilogs.html">multiple log files</a>. + The cookie itself is logged by using the text + <tt>%{cookie}n</tt> in the log file format. For example:</p> +<pre> +CustomLog logs/clickstream "%{cookie}n %r %t" +</pre> + For backward compatibility the configurable log module + implements the old <tt>CookieLog</tt> directive, but this + should be upgraded to the above <tt>CustomLog</tt> directive. + + <h2>2-digit or 4-digit dates for cookies?</h2> + (the following is from message + <022701bda43d$9d32bbb0$1201a8c0@christian.office.sane.com> + in the new-httpd archives) +<pre> +From: "Christian Allen" <christian@sane.com> +Subject: Re: Apache Y2K bug in mod_usertrack.c +Date: Tue, 30 Jun 1998 11:41:56 -0400 + +Did some work with cookies and dug up some info that might be useful. + +True, Netscape claims that the correct format NOW is four digit dates, and +four digit dates do in fact work... for Netscape 4.x (Communicator), that +is. However, 3.x and below do NOT accept them. It seems that Netscape +originally had a 2-digit standard, and then with all of the Y2K hype and +probably a few complaints, changed to a four digit date for Communicator. +Fortunately, 4.x also understands the 2-digit format, and so the best way to +ensure that your expiration date is legible to the client's browser is to +use 2-digit dates. + +However, this does not limit expiration dates to the year 2000; if you use +an expiration year of "13", for example, it is interpreted as 2013, NOT +1913! In fact, you can use an expiration year of up to "37", and it will be +understood as "2037" by both MSIE and Netscape versions 3.x and up (not sure +about versions previous to those). Not sure why Netscape used that +particular year as its cut-off point, but my guess is that it was in respect +to UNIX's 2038 problem. Netscape/MSIE 4.x seem to be able to understand +2-digit years beyond that, at least until "50" for sure (I think they +understand up until about "70", but not for sure). + +Summary: Mozilla 3.x and up understands two digit dates up until "37" +(2037). Mozilla 4.x understands up until at least "50" (2050) in 2-digit +form, but also understands 4-digit years, which can probably reach up until +9999. Your best bet for sending a long-life cookie is to send it for some +time late in the year "37". +</pre> + <hr /> + + <h2><a id="cookiedomain" name="cookiedomain">CookieDomain</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><b>Syntax:</b></a> CookieDomain <i>domain</i><br /> + <a href="directive-dict.html#Context" + rel="Help"><b>Context:</b></a> server config, virtual host, + directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><b>Status:</b></a> optional<br /> + <a href="directive-dict.html#Module" + rel="Help"><b>Module:</b></a> mod_usertrack <a + href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.21 + and later + + <p>This directive controls the setting of the domain to which + the tracking cookie applies. If not present, no domain is + included in the cookie header field.</p> + + <p>The domain string <b>must</b> begin with a dot, and + <b>must</b> include at least one embedded dot. That is, + ".foo.com" is legal, but "foo.bar.com" and ".com" are not.</p> + <hr /> + + <h2><a id="cookieexpires" + name="cookieexpires">CookieExpires</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CookieExpires + <em>expiry-period</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> <b>1.3.20 and + earlier:</b> server config, virtual host; <b>1.3.21 and + later:</b> server config, virtual host, directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> optional<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_usertrack + + <p>When used, this directive sets an expiry time on the cookie + generated by the usertrack module. The <em>expiry-period</em> + can be given either as a number of seconds, or in the format + such as "2 weeks 3 days 7 hours". Valid denominations are: + years, months, weeks, hours, minutes and seconds. If the expiry + time is in any format other than one number indicating the + number of seconds, it must be enclosed by double quotes.</p> + + <p>If this directive is not used, cookies last only for the + current browser session.</p> + <hr /> + + <h2><a id="cookieformat" + name="cookieformat">CookieFormat</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CookieFormat + <em>Normal | Compact</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual host, directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> optional<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_usertrack <a + href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.28 + and later + + <p>When used, this directive determines whether the cookie + used for user tracking is created using the default ("normal") + format (eg: decimal values for items like the PID) or + using a more compact format (eg: hexidecimal values).</p> + + <hr /> + + <h2><a id="cookiename" name="cookiename">CookieName</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CookieName + <em>token</em> <br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <em>Apache</em> <br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> optional<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_usertrack <br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.7 and + later + + <p>This directive allows you to change the name of the cookie + this module uses for its tracking purposes. By default the + cookie is named "<code>Apache</code>".</p> + + <p>You must specify a valid cookie name; results are + unpredictable if you use a name containing unusual characters. + Valid characters include A-Z, a-z, 0-9, "_", and "-".</p> + <hr /> + + <h2><a id="cookieprefix" + name="cookieprefix">CookiePrefix</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CookiePrefix + <em>"string"</em><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual host, directory, + .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> optional<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_usertrack <a + href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Apache 1.3.28 + and later + + <p>When used, this directive allows for the <em>"string"</em> + to be prepended to the user tracking cookie. Care must be + taken not to prepend a string that would result in a bogus + cookie.</p> + + <hr /> + + <h2><a id="cookiestyle" name="cookiestyle">CookieStyle</a> + directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><b>Syntax:</b></a> CookieStyle + <i>Netscape|Cookie|Cookie2|RFC2109|RFC2965</i><br /> + <a href="directive-dict.html#Context" + rel="Help"><b>Context:</b></a> server config, virtual host, + directory, .htaccess<br /> + <a href="directive-dict.html#Status" + rel="Help"><b>Status:</b></a> optional<br /> + <a href="directive-dict.html#Module" + rel="Help"><b>Module:</b></a> mod_usertrack + + <p>This directive controls the format of the cookie header + field. The three formats allowed are:</p> + + <ul> + <li><b>Netscape</b>, which is the original but now deprecated + syntax. This is the default, and the syntax Apache has + historically used.</li> + + <li><b>Cookie</b> or <b>RFC2109</b>, which is the syntax that + superseded the Netscape syntax.</li> + + <li><b>Cookie2</b> or <b>RFC2965</b>, which is the most + current cookie syntax.</li> + </ul> + + <p>Not all clients can understand all of these formats. but you + should use the newest one that is generally acceptable to your + users' browsers.</p> + <hr /> + + <h2><a id="cookietracking" + name="cookietracking">CookieTracking</a> directive</h2> + <a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CookieTracking + on|off<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host, directory, .htaccess<br /> + <a href="directive-dict.html#Override" + rel="Help"><strong>Override:</strong></a> FileInfo<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> optional<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_usertrack + + <p>When the user track module is compiled in, and + "CookieTracking on" is set, Apache will start sending a + user-tracking cookie for all new requests. This directive can + be used to turn this behavior on or off on a per-server or + per-directory basis. By default, compiling mod_usertrack will + not activate cookies. <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/mod/mod_vhost_alias.html b/htdocs/manual/mod/mod_vhost_alias.html new file mode 100644 index 0000000000..94559e65d3 --- /dev/null +++ b/htdocs/manual/mod/mod_vhost_alias.html @@ -0,0 +1,325 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache module mod_vhost_alias</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Module mod_vhost_alias</h1> + + <p>This module provides support for <a + href="../vhosts/mass.html">dynamically configured mass virtual + hosting</a>.</p> + + <p><a href="module-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="module-dict.html#SourceFile" + rel="Help"><strong>Source File:</strong></a> + mod_vhost_alias.c<br /> + <a href="module-dict.html#ModuleIdentifier" + rel="Help"><strong>Module Identifier:</strong></a> + vhost_alias_module<br /> + <a href="module-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> Available in + Apache 1.3.7 and later.</p> + + <h2>Summary</h2> + + <p>This module creates dynamically configured virtual hosts, by + allowing the IP address and/or the <code>Host:</code> header of + the HTTP request to be used as part of the pathname to + determine what files to serve. This allows for easy use of a + huge number of virtual hosts with similar configurations.</p> + + <h2>Directives</h2> + + <ul> + <li><a + href="#virtualdocumentroot">VirtualDocumentRoot</a></li> + + <li><a + href="#virtualdocumentrootip">VirtualDocumentRootIP</a></li> + + <li><a href="#virtualscriptalias">VirtualScriptAlias</a></li> + + <li><a + href="#virtualscriptaliasip">VirtualScriptAliasIP</a></li> + </ul> + + <p>See also: <a + href="core.html#usecanonicalname">UseCanonicalName</a>.</p> + + <h2>Directory Name Interpolation</h2> + + <p>All the directives in this module interpolate a string into + a pathname. The interpolated string (henceforth called the + "name") may be either the server name (see the <a + href="core.html#usecanonicalname"><code>UseCanonicalName</code></a> + directive for details on how this is determined) or the IP + address of the virtual host on the server in dotted-quad + format. The interpolation is controlled by specifiers inspired + by <code>printf</code> which have a number of formats:</p> + + <dl> + <dt><code>%%</code></dt> + + <dd>insert a <code>%</code></dd> + + <dt><code>%p</code></dt> + + <dd>insert the port number of the virtual host</dd> + + <dt><code>%N.M</code></dt> + + <dd>insert (part of) the name</dd> + </dl> + + <p><code>N</code> and <code>M</code> are used to specify + substrings of the name. <code>N</code> selects from the + dot-separated components of the name, and <code>M</code> + selects characters within whatever <code>N</code> has selected. + <code>M</code> is optional and defaults to zero if it isn't + present; the dot must be present if and only if <code>M</code> + is present. The interpretation is as follows:</p> + + <dl> + <dt><code>0</code></dt> + + <dd>the whole name</dd> + + <dt><code>1</code></dt> + + <dd>the first part</dd> + + <dt><code>2</code></dt> + + <dd>the second part</dd> + + <dt><code>-1</code></dt> + + <dd>the last part</dd> + + <dt><code>-2</code></dt> + + <dd>the penultimate part</dd> + + <dt><code>2+</code></dt> + + <dd>the second and all subsequent parts</dd> + + <dt><code>-2+</code></dt> + + <dd>the penultimate and all preceding parts</dd> + + <dt><code>1+</code> and <code>-1+</code></dt> + + <dd>the same as <code>0</code></dd> + </dl> + + <p>If <code>N</code> or <code>M</code> is greater than the + number of parts available a single underscore is + interpolated.</p> + + <h3>Examples</h3> + + <p>For simple name-based virtual hosts you might use the + following directives in your server configuration file:</p> +<pre> + UseCanonicalName Off + VirtualDocumentRoot /usr/local/apache/vhosts/%0 +</pre> + + <p>A request for + <code>http://www.example.com/directory/file.html</code> will be + satisfied by the file + <code>/usr/local/apache/vhosts/www.example.com/directory/file.html</code>.</p> + + <p>For a very large number of virtual hosts it is a good idea + to arrange the files to reduce the size of the + <code>vhosts</code> directory. To do this you might use the + following in your configuration file:</p> +<pre> + UseCanonicalName Off + VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2 +</pre> + A request for + <code>http://www.example.isp.com/directory/file.html</code> + will be satisfied by the file + <code>/usr/local/apache/vhosts/isp.com/e/x/a/example/directory/file.html</code>. + A more even spread of files can be achieved by hashing from the + end of the name, for example: +<pre> + VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.-1/%2.-2/%2.-3/%2 +</pre> + The example request would come from + <code>/usr/local/apache/vhosts/isp.com/e/l/p/example/directory/file.html</code>. + Alternatively you might use: +<pre> + VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+ +</pre> + + <p>The example request would come from + <code>/usr/local/apache/vhosts/isp.com/e/x/a/mple/directory/file.html</code>.</p> + + <p>For IP-based virtual hosting you might use the following in + your configuration file:</p> +<pre> + UseCanonicalName DNS + VirtualDocumentRootIP /usr/local/apache/vhosts/%1/%2/%3/%4/docs + VirtualScriptAliasIP /usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin +</pre> + + <p>A request for + <code>http://www.example.isp.com/directory/file.html</code> + would be satisfied by the file + <code>/usr/local/apache/vhosts/10/20/30/40/docs/directory/file.html</code> + if the IP address of <code>www.example.com</code> were + 10.20.30.40. A request for + <code>http://www.example.isp.com/cgi-bin/script.pl</code> would + be satisfied by executing the program + <code>/usr/local/apache/vhosts/10/20/30/40/cgi-bin/script.pl</code>.</p> + + <p>If you want to include the <code>.</code> character in a + <code>VirtualDocumentRoot</code> directive, but it clashes with + a <code>%</code> directive, you can work around the problem in + the following way:</p> +<pre> + VirtualDocumentRoot /usr/local/apache/vhosts/%2.0.%3.0 +</pre> + + <p>A request for + <code>http://www.example.isp.com/directory/file.html</code> + will be satisfied by the file + <code>/usr/local/apache/vhosts/example.isp/directory/file.html</code>.</p> + + <p>The <a href="mod_log_config.html#formats">LogFormat + directives</a> <code>%V</code> and <code>%A</code> are useful + in conjunction with this module.</p> + <hr /> + + <h2><a id="virtualdocumentroot" + name="virtualdocumentroot">VirtualDocumentRoot + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> VirtualDocumentRoot + <em>interpolated-directory</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_vhost_alias<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + VirtualDocumentRoot is only available in 1.3.7 and later.</p> + + <p>The <code>VirtualDocumentRoot</code> directive allows you to + determine where Apache will find your documents based on the + value of the server name. The result of expanding + <em>interpolated-directory</em> is used as the root of the + document tree in a similar manner to the <a + href="core.html#documentroot"><code>DocumentRoot</code></a> + directive's argument. If <em>interpolated-directory</em> is + <code>none</code> then <code>VirtualDocumentRoot</code> is + turned off. This directive cannot be used in the same context + as <a + href="#virtualdocumentrootip"><code>VirtualDocumentRootIP</code></a>.</p> + <hr /> + + <h2><a id="virtualdocumentrootip" + name="virtualdocumentrootip">VirtualDocumentRootIP + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> VirtualDocumentRootIP + <em>interpolated-directory</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_vhost_alias<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + VirtualDocumentRootIP is only available in 1.3.7 and later.</p> + + <p>The <code>VirtualDocumentRootIP</code> directive is like the + <a + href="#virtualdocumentroot"><code>VirtualDocumentRoot</code></a> + directive, except that it uses the IP address of the server end + of the connection instead of the server name.</p> + <hr /> + + <h2><a id="virtualscriptalias" + name="virtualscriptalias">VirtualScriptAlias directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> VirtualScriptAlias + <em>interpolated-directory</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_vhost_alias<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + VirtualScriptAlias is only available in 1.3.7 and later.</p> + + <p>The <code>VirtualScriptAlias</code> directive allows you to + determine where Apache will find CGI scripts in a similar + manner to <a + href="#virtualdocumentroot"><code>VirtualDocumentRoot</code></a> + does for other documents. It matches requests for URIs starting + <code>/cgi-bin/</code>, much like <code><a + href="mod_alias.html#scriptalias">ScriptAlias</a> + /cgi-bin/</code> would.</p> + <hr /> + + <h2><a id="virtualscriptaliasip" + name="virtualscriptaliasip">VirtualScriptAliasIP + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> VirtualScriptAliasIP + <em>interpolated-directory</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> None<br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> Extension<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_vhost_alias<br /> + <a href="directive-dict.html#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + VirtualScriptAliasIP is only available in 1.3.7 and later.</p> + + <p>The <code>VirtualScriptAliasIP</code> directive is like the + <a + href="#virtualscriptalias"><code>VirtualScriptAlias</code></a> + directive, except that it uses the IP address of the server end + of the connection instead of the server name.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/module-dict.html.en b/htdocs/manual/mod/module-dict.html.en new file mode 100644 index 0000000000..151105d074 --- /dev/null +++ b/htdocs/manual/mod/module-dict.html.en @@ -0,0 +1,115 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Definitions of terms used to describe Apache + modules</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Terms Used to Describe Apache Modules</h1> + + <p>Each Apache module is described using a common format that + looks like this:</p> + + <dl> + <dd><a href="#Status" rel="Help"><strong>Status:</strong></a> + <em>status</em><br /> + <a href="#SourceFile" rel="Help"><strong>Source + File:</strong></a> <em>source-file</em><br /> + <a href="#ModuleIdentifier" rel="Help"><strong>Module + Identifier:</strong></a> <em>module-identifier</em><br /> + <a href="#Compatibility" + rel="Help"><strong>Compatibility:</strong></a> + <em>compatibility notes</em></dd> + </dl> + + <p>Each of the attributes, complete with values where possible, + are described in this document.</p> + + <h2>Module Terms</h2> + + <ul> + <li><a href="#Status">Status</a></li> + + <li><a href="#SourceFile">Source File</a></li> + + <li><a href="#ModuleIdentifier">Module Identifier</a></li> + + <li><a href="#Compatibility">Compatibility</a></li> + </ul> + <hr /> + + <h2><a id="Status" name="Status">Status</a></h2> + + <p>This indicates how tightly bound into the Apache Web server + the module is; in other words, you may need to recompile the + server in order to gain access to the module and its + functionality. Possible values for this attribute are:</p> + + <dl> + <dt><strong>Base</strong></dt> + + <dd>A module labeled as having "Base" status is compiled and + loaded into the server by default, and is therefore normally + available unless you have taken steps to remove the module + from your configuration.</dd> + + <dt><strong>Extension</strong></dt> + + <dd>A module with "Extension" status is not normally compiled + and loaded into the server. To enable the module and its + functionality, you may need to change the server build + configuration files and re-compile Apache.</dd> + + <dt><strong>Experimental</strong></dt> + + <dd>"Experimental" status indicates that the module is + available as part of the Apache kit, but you are on your own + if you try to use it. The module is being documented for + completeness, and is not necessarily supported.</dd> + + <dt><strong>External</strong></dt> + + <dd>Modules which are not included with the base Apache + distribution ("third-party modules") may use the "External" + status. We are not responsible, nor do we support such + modules.</dd> + </dl> + <hr /> + + <h2><a id="SourceFile" name="SourceFile">Source File</a></h2> + + <p>This quite simply lists the name of the source file which + contains the code for the module. This is also the name used by + the <a + href="core.html#ifmodule"><code><IfModule></code></a> + directive.</p> + <hr /> + + <h2><a id="ModuleIdentifier" name="ModuleIdentifier">Module + Identifier</a></h2> + + <p>This is a string which identifies the module for use in the + <a href="mod_so.html#loadmodule">LoadModule</a> directive when + dynamically loading modules. In particular, it is the name of + the external variable of type module in the source file.</p> + <hr /> + + <h2><a id="Compatibility" + name="Compatibility">Compatibility</a></h2> + + <p>If the module was not part of the original Apache version 1 + distribution, the version in which it was introduced should be + listed here.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/mod/module-dict.html.html b/htdocs/manual/mod/module-dict.html.html new file mode 100644 index 0000000000..7a1ff898ce --- /dev/null +++ b/htdocs/manual/mod/module-dict.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="module-dict.html.en" --> + diff --git a/htdocs/manual/mod/module-dict.html.ja.jis b/htdocs/manual/mod/module-dict.html.ja.jis new file mode 100644 index 0000000000..2ba6fd6ecb --- /dev/null +++ b/htdocs/manual/mod/module-dict.html.ja.jis @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache モジュ・踉札襪硫鮴發濃藩僂垢詬儻蜚跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察鈑跚鼈纐蜩蜿邵苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆草痺蒹ぢモジュ・踉札襪硫鮴發濃藩僂垢詬儻右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢモジュ・踉札襪砲弔い討硫鮴發蓮鹿粡寂蝟赱齠洲痲筵娼いずれも以王踉擦龍逅残未僚颱踉三で記述されています:</p> + + <dl> + <dd><a href="#status" rel="help"><strong>ステ・踉札織墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼纃齡癆蹙苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就s阨鱆繙蛹紜繻就蒹跟▽苳殺踉雌闔胼苳ぢソ・踉札好侫.ぅ墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼纃齒竇蛹絋踉晒纃碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹■迴糒跂蜆緕肅纈⊆蝟昭粡竚癈鷭п粐Ь繻就蒹跟▽苳殺踉雌闔胼苳ぢモジュ・踉札襴踉傘別子:</strong></a> + <em>module-identifier</em><br /> + <a href="#Compatibility" + rel="help"><strong>互換性:</strong></a> + <em>compatibility notes</em></dd> + </dl> + <p>このドキュメントではそれう苳擦譴梁粟鮴睫世靴討い泙后鹿粡寂蝟赱齠洲痲筵娼茲蠧世襪垢戮討涼佑盖劼靴討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢モジュ・踉札襪陵儻王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■齡癆▽苳ぢステ・踉札織薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■齒竇肅跂▽苳ぢソ・踉札好侫.ぅ薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■迴糒跂蜆緕肅纈▽苳ぢモジュ・踉札襴踉傘別子</a></li> + + <li><a href="#Compatibility">互換性</a></li> + </ul> + <hr /> + + <h2><a id="status" name="status">ステ・踉札織王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これは、そのモジュ・踉札襪鞜竏綣蝟昭粡竚癈鷭п粐Ьぢウ瘢雹ェブサ・踉札个砲匹譴蕕ぬ椶冒箸濆泙譴討い襪鬢踉雑します。 + 言い換えれば、モジュ・踉札襪鯀箸濆漾△修竜’修鰺僂垢襪燭瓩法鹿粡寂蝟赱齠洲痲筵娼サ・踉札个鮑謄灰鵐僖ぅ襪垢詆廚△襪發靴譴覆い箸い逅擦海箸鬢踉雑します。 + この属性が茲蠧世訝佑楼焚のものです:</p> + <dl> + <dt><strong>Base</strong></dt> + + <dd>ステ・踉札織垢瘢雹髟阡斬癈絋瘢雹髟阡纂蝟昭粡竚癈鷭п粐Ьぢのモジュ・踉札襪蓮▲妊侫襯箸妊灰鵐僖ぅ襪気譴董△錣兇錣鏡瀋蠅鹿粡寂蝟赱齠洲痲筵娼モジュ・踉札襪鮑鐔靴討い覆じ造蝓巳苳誌は利用可能です。 + </dd> + + <dt><strong>Extension</strong></dt> + + <dd>ステ・踉札織垢瘢雹髟阡仕緕皷闔逅資ぢのモジュ・踉札襪蓮鹿粡寂蝟赱齠洲痲筵娼デフォルトではコンパイルされず、サ・踉札个砲眛匹濆泙譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼そのモジュ・踉札襪箸修竜’修鰺砲垢襪砲蓮鹿粡寂蝟赱齠洲痲筵娼サ・踉札个鬟咼襯匹垢襪燭瓩寮瀋蠅鯤儿垢靴董草痺蒹鹿粡寂蝟赱齠洲痲筵娼を再コンパイルする必要があります。</dd> + <dt><strong>Experimental</strong></dt> + + <dd>ステ・踉札織垢瘢雹髟阡仕纈蜊緕讀瘢雹髟阡のモジュ・踉札襪蓮鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢ配布物に同梱されていますが、 + 使用する豺腓櫓踉捌己責任で行なう瘢雹必要があります。 + そのモジュ・踉札襪蓮▲疋絅瓮鵐箸盍粟妨韻萄鄒罎任垢掘鹿粡寂蝟赱齠洲痲筵娼サポ・踉札箸気譴襪討い襪箸聾造蠅泙擦鵝筅苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳仕纈釶讀踉晒齡鳫鈑熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢステ・踉札織垢瘢雹髟阡仕纈釶讀瘢雹髟阡のモジュ・踉札襪蓮靄鞜竏綣蝟昭粡竚癈鷭п粐Ьぢ配布に同梱されません ("サ・踉札疋僉ティ・踉札皀献紂ル")。 + そのため、我々に責任はありませんし、 + そのモジュ・踉札襪離汽檗トもしていません。</dd> + </dl> + <hr /> + + <h2><a id="sourcefile" name="sourcefile">ソ・踉札好侫.ぅ王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮これは単純に、 + そのモジュ・踉札襪防廚淵魁ドを含むソ・踉札好侫.ぅ襪量前を列挙したものです。 + これは、<a href="core.html#ifmodule"><code><IfModule></code></a> + ディレクティブで使用される巳苳餐阿任發△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就迴糒跂蜆緕肅纈⊆蝟昭粡竚癈鷭п粐Ь瘢綵閼繪粤銓蜀蜈鬆モジュ・踉札襴踉傘別子</a></h2> + + <p>この文字列は、モジュ・踉札襪瞭暗匹濆澆鮃圓覆逅擦箸忙藩僂垢踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴籖齒譯跫痲迴糒跂▽苳嗣閨簍閼絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブにおいて使用されるモジュ・踉札襪陸踉傘別子です。 + 椶靴颪函▲宗スファイル内の module タイプの外部変数の巳苳餐阿任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就衷逅癆蛯蛹蜚瘢綵闕鞜砠跚▽苳ぢ互換性</a></h2> + + <p>あるモジュ・踉札襪鞜竏バ・踉札献腑鹿粡寂蝟赱齠洲痲筵娼の配布に含まれていなかった豺隋鹿粡寂蝟赱齠洲痲筵娼そのモジュ・踉札襪各気譴織弌ジョンがここに書かれています。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/mpeix.html b/htdocs/manual/mpeix.html new file mode 100644 index 0000000000..14d7a58549 --- /dev/null +++ b/htdocs/manual/mpeix.html @@ -0,0 +1,420 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> + <meta name="GENERATOR" + content="Mozilla/4.75 [en] (Win98; U) [Netscape]" /> + <meta name="Author" content="Mark Bixby - mark@bixby.org" /> + + <title>Using Apache with HP MPE/iX</title> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + </head> + + <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <center> + <h1>Using Apache With HP MPE/iX</h1> + </center> + This document explains how to compile, install, configure and + run Apache 1.3 under HP MPE/iX. + + <p>The bug reporting page and new-httpd mailing list are NOT + provided to answer questions about configuration or running + Apache. Before you submit a bug report or request, first + consult this document, the <a href="misc/FAQ.html">Frequently + Asked Questions</a> page and the other relevant documentation + topics. If you still have a question or problem, post it to the + <a href="news:comp.sys.hp.mpe">comp.sys.hp.mpe</a> newsgroup or + the associated <a + href="http://jazz.external.hp.com/papers/hp3000-info.html">HP3000-L + mailing list</a>, where many Apache users and several + contributors are more than willing to answer new and obscure + questions about using Apache on MPE/iX.</p> + + <p><a + href="http://groups.google.com/groups?hl=en&lr=&safe=off&group=comp.sys.hp.mpe"> + groups.google.com's newsgroup archive</a> offers easy browsing + of previous questions. Searching the newsgroup archives, you + will usually find your question was already asked and answered + by other users!</p> + <hr /> + + <ul> + <li><a href="#req">Requirements</a></li> + + <li><a href="#implement">Implementation + Considerations</a></li> + + <li><a href="#binaries">Binary Distributions</a></li> + + <li><a href="#accounting">Create the Accounting + Structure</a></li> + + <li><a href="#down">Downloading Apache</a></li> + + <li><a href="#compile">Compiling Apache</a></li> + + <li><a href="#inst">Installing Apache</a></li> + + <li><a href="#config">Configuring Apache</a></li> + + <li><a href="#run">Running Apache</a></li> + + <li><a href="#control">Controlling Apache</a></li> + </ul> + <hr /> + + <h2><a id="req" name="req"></a>Requirements</h2> + Apache 1.3 requires MPE/iX 6.0 or greater. It will NOT + run on earlier releases of MPE/iX. The following MPE/iX + patches (or their superseding descendants) are relevant to + Apache: + + <ul> + <li>MPE/iX 6.0:</li> + + <li style="list-style: none"> + <ul> + <li>MPEKXT3B - fixes an MPE bug that results in transient + "permission denied" errors being returned by the server + to the browser.</li> + + <li>MPELX36A - enhances the kill() function so that MPE + users with SM capability can send signals to Apache for + shutdown, restart, etc.</li> + + <li>MPELX44C - fixes an MPE bug that prevents DSO modules + from being dynamically loaded.</li> + + <li>MPELX51C - enhances the kill() function so that + Apache can use it when the Apache parent UID is different + from the Apache children UID (strongly recommended).</li> + + <li>NSTxxxxx - the latest network transport patch should + always be installed when using TCP/IP applications such + as Apache.</li> + </ul> + </li> + + <li>MPE/iX 6.5:</li> + + <li style="list-style: none"> + <ul> + <li>MPELX44D - fixes an MPE bug that prevents DSO modules + from being dynamically loaded.</li> + + <li>MPELX51D - enhances the kill() function so that + Apache can use it when the Apache parent UID is different + from the Apache children UID (strongly recommended).</li> + + <li>NSTxxxxx - the latest network transport patch should + always be installed when using TCP/IP applications such + as Apache.</li> + </ul> + </li> + </ul> + <hr width="100%" /> + + <h2><a id="implement" name="implement"></a>Implementation + Considerations</h2> + While MPE has a very good POSIX implementation that enables + fairly simple porting of Unix applications such as Apache, + there are some Unix concepts which just don't exist or aren't + fully implemented in MPE, and so this may force some + functionality changes in the package being ported. + + <h3>Significant MPE vs. Unix OS differences</h3> + + <ul> + <li>MPE lacks the concept of a Unix UID=0 root user with + special privileges. Where Unix functions require a user + to be executing as root, MPE requires the user to be + executing in priv mode, so the program file must be linked + with PM (Priv Mode) capability, and the Unix function calls + must be bracketed by GETPRIVMODE() and GETUSERMODE() + calls. The following Unix functions used by Apache are + affected:</li> + + <li style="list-style: none"> + <ul> + <li>bind() for ports less than 1024</li> + + <li>setgid()</li> + + <li>setuid()</li> + </ul> + </li> + + <li>MPE's support for UIDs and GIDs is more limited than + Unix. Every MPE account maps to a unique GID. + Each MPE account can contain multiple MPE users, and every + MPE user maps to a unique UID (UID 0 is not supported). + The current UID for a process must correspond to an MPE user + within the MPE account that corresponds to the current GID of + the process.</li> + + <li>MPE child processes cannot survive the death of their + parent. When the parent terminates, any remaining + children will be killed.</li> + + <li>MPE doesn't initialize the envp parameter when invoking + the main() of a new process. Use the global variable + environ instead of envp.</li> + + <li>MPE link() exists, but always returns EIMPL. Use + rename() or symlinks instead of hard links.</li> + + <li>MPE doesn't allow the @ character in filenames.</li> + + <li>MPE lacks support for TCP_NODELAY, but that's the default + anyway.</li> + + <li>MPE lacks support for SO_KEEPALIVE.</li> + + <li>MPE lacks support for process groups.</li> + + <li>MPE inetd only passes stdin (and NOT stdout) to the + invoked service. But you can write to stdin just + fine.</li> + </ul> + + <h3>Major Apache functionality issues</h3> + + <ul> + <li>Beginning with HP-supported Apache 1.3.9 and HP WebWise + MPE/iX Secure Web Server A.01.00 (based on Apache 1.3.9), the + User and Group directives in httpd.conf are now + unconditionally executed as corresponding setuid()/setgid() + calls. Previously this was only done if HTTPD was being + run as MANAGER.SYS. This functionality change was + submitted back to the 1.3.13-dev source tree at + www.apache.org. The Apache for Unix behavior is to only + honor User and Group if running as root.</li> + + <li>Beginning with HP-supported Apache 1.3.9 and HP WebWise + MPE/iX Secure Web Server A.01.00 (based on Apache 1.3.9), the + SVIPC shared memory macros SHM_R and SHM_W have been modified + from their traditional owner-only-read and owner-only-write + values to be owner-and-group-read and owner-and-group-write + on MPE/iX in order to allow increased parent/child + flexibility in spite of MPE's limited POSIX UID/GID + support. This functionality change was submitted back + to the 1.3.13-dev source tree at www.apache.org. The + Apache for Unix behavior uses the traditional owner-only + values of SHM_R and SHM_W.</li> + </ul> + + <h3>Minor Apache functionality issues</h3> + + <ul> + <li>Apache for Unix must be run as root to bind to TCP ports + 1-1023. Apache for MPE must call GETPRIVMODE() to bind to TCP + ports 1-1023; PM is not used for ports greater than 1023. The + standard web server HTTP port is 80.</li> + + <li>Apache for Unix in standalone mode will detach itself and + run in the background as a system-type process. Apache for + MPE in standalone mode cannot detach itself and run in the + background because MPE POSIX doesn't allow this (the detached + child would be killed when the parent terminated). + Therefore you must use an MPE batch job to run Apache in + standalone mode.</li> + + <li>Apache for Unix uses process groups to manage child + processes. Apache for MPE cannot use process groups because + MPE POSIX doesn't support this. The implications of this are + unknown.</li> + + <li>Apache for Unix uses the setsockopt() option TCP_NODELAY. + Apache for MPE does not, because MPE doesn't support it. But + TCP_NODELAY is the default MPE behavior anyway.</li> + + <li>Apache for Unix uses the setsockopt() option + SO_KEEPALIVE. Apache for MPE does not, because MPE + doesn't support it.</li> + + <li>Apache for Unix under inetd reads from the socket via + stdin and writes via stdout. Apache for MPE under inetd reads + *AND* writes the socket via stdin. I consider MPE 5.5 inetd + to be broken and poorly documented, so I submitted SR + 5003355016 to address this. If HP ever alters the MPE inetd + to pass the socket the way HPUX inetd does (not likely in the + grand scheme of things), the existing Apache for MPE code + will break.</li> + + <li>Apache for Unix will use the @ character in proxy cache + filenames, but since @ is illegal in MPE filenames, Apache + for MPE uses the % character instead.</li> + </ul> + <hr width="100%" /> + + <h2><a id="binaries" name="binaries"></a>Binary + Distributions</h2> + HP ships a fully supported Apache binary distribution with the + Fundamental Operating System (FOS) in MPE/iX 6.5 and + later. This distribution can be found in the APACHE + account. + + <p>HP supplies fully supported Apache binary distributions for + MPE/iX 6.0 or later available for downloading from <a + href="http://jazz.external.hp.com/src/apache/">http://jazz.external.hp.com/src/apache/</a>.</p> + + <p>Mark Bixby supplies Apache binary distributions for MPE/iX + available for downloading from <a + href="http://www.bixby.org/mark/apacheix.html">http://www.bixby.org/mark/apacheix.html</a>. + Binaries from bixby.org are NOT supported by HP. HP only + supports binaries distributed by HP.</p> + + <p>All of the binary distributions mentioned above may possibly + include functionality that hasn't yet been submitted back to + the Apache Software Foundation (though submitting back is the + intended goal). Please read the documentation that comes + with these binaries in order to determine functionality + differences (if any) compared to the latest sources available + from the ASF.</p> + + <p>If you will be using one of these binary distributions, + please stop reading this document and start reading the + specific distribution documentation for installation + details.</p> + <hr width="100%" /> + + <h2><a id="accounting" name="accounting"></a>Create the + Accounting Structure</h2> + Apache can be installed under the account of your choice. + For the purposes of this document, the APACHE account will be + used: + + <ol> + <li><tt><font size="+1">:HELLO MANAGER.SYS</font></tt></li> + + <li><tt><font size="+1">:NEWACCT APACHE,MGR</font></tt></li> + + <li><tt><font size="+1">:ALTACCT + APACHE;PASS=xxxxxxxx;CAP=AM,AL,ND,SF,BA,IA,PM,PH</font></tt></li> + + <li><tt><font size="+1">:ALTGROUP + PUB.APACHE;CAP=BA,IA,PM,PH;ACCESS=(R,L,X:AC;W,A,S:AL)</font></tt></li> + + <li><tt><font size="+1">:ALTUSER + MGR.APACHE;CAP=AM,AL,ND,SF,BA,IA,PM,PH;HOME=PUB</font></tt></li> + + <li><tt><font size="+1">:NEWUSER + SERVER.APACHE</font></tt></li> + + <li><tt><font size="+1">:ALTUSER + SERVER.APACHE;CAP=ND,SF,BA,IA,PH;HOME=PUB</font></tt></li> + </ol> + + <h2><a id="down" name="down"></a>Downloading Apache</h2> + Use your web browser to download the Apache source tarball from + <a + href="http://www.apache.org/dist/httpd/">http://www.apache.org/dist/httpd/</a>. + Then ftp upload the tarball to your e3000 as show below: +<pre> +C:\Temp>ftp 3000.host.name +Connected to 3000.host.name. +220 HP ARPA FTP Server [A0009H09] (C) Hewlett-Packard Co. 1990 +User (3000.host.name:(none)): MGR.APACHE +331 Password required for MGR.APACHE. Syntax: acctpass +Password:xxxxxxxx +230 User logged on +ftp> quote type L 8 +200 Type set to L (byte size 8). +ftp> put apache_v.u.ff.tar.Z /tmp/apache.tar.Z +200 PORT command ok. +150 File: /tmp/apache.tar.Z opened; data connection will be opened +226 Transfer complete. +ftp: 2685572 bytes sent in 2.75Seconds 976.57Kbytes/sec. +ftp> quit +221 Server is closing command connection +</pre> + Unpack the tarball: + + <ol> + <li><tt>:HELLO MGR.APACHE</tt></li> + + <li><tt>:XEQ SH.HPBIN.SYS -L</tt></li> + + <li><tt>$ mkdir src</tt></li> + + <li><tt>$ chmod 700 src</tt></li> + + <li><tt>$ cd src</tt></li> + + <li><tt>$ tar xvfopz /tmp/apache.tar.Z</tt></li> + </ol> + + <h2><a id="compile" name="compile"></a>Compiling Apache</h2> + It is STRONGLY recommended to use gcc instead of the HP C/iX + compiler. You can obtain gcc from <a + href="http://jazz.external.hp.com/src/gnu/gnuframe.html">http://jazz.external.hp.com/src/gnu/gnuframe.html</a>. + + + <ol> + <li><tt>$ cd apache_v.uu.ff</tt></li> + + <li><tt>$ ./configure --prefix=/APACHE/PUB + --enable-module=xxx --enable-module=yyy ...etc...</tt></li> + + <li><tt>$ make</tt></li> + </ol> + + <h2><a id="inst" name="inst"></a>Installing Apache</h2> + + <ol> + <li><tt>$ make install</tt></li> + + <li><tt>$ cd /APACHE/PUB</tt></li> + + <li><tt>$ mv bin/httpd HTTPD</tt></li> + + <li><tt>$ ln -s HTTPD bin/httpd</tt></li> + + <li><tt>$ callci "xeq linkedit.pub.sys 'altprog + HTTPD;cap=ia,ba,ph,pm'"</tt></li> + </ol> + + <h2><a id="config" name="config"></a>Configuring Apache</h2> + Edit /APACHE/PUB/conf/httpd.conf and customize as needed for + your environment. Be sure to make the following mandatory + changes: + + <ul> + <li>User SERVER.APACHE</li> + + <li>Group APACHE</li> + </ul> + + <h2><a id="run" name="run"></a>Running Apache</h2> + Simply create and :STREAM the following standalone server job + in order to start Apache: +<pre> +!JOB JHTTPD,MGR.APACHE;OUTCLASS=,2 +!XEQ SH.HPBIN.SYS "-c 'umask 007; ./HTTPD -f /APACHE/PUB/conf/httpd.conf'" +!eoj +</pre> + + <h2><a id="control" name="control"></a>Controlling Apache</h2> + Log on as MGR.APACHE (or MANAGER.SYS or any other SM user if + you've installed MPELX36A on 6.0) in order to shutdown or + restart Apache via the use of signals. + + <p>To shut down Apache from the POSIX shell:</p> +<pre> +$ kill `cat /APACHE/PUB/logs/httpd.pid` +</pre> + To shut down Apache from the CI: +<pre> +:XEQ SH.HPBIN.SYS '-c "kill `cat /APACHE/PUB/logs/httpd.pid`"' +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/multilogs.html b/htdocs/manual/multilogs.html new file mode 100644 index 0000000000..7f3c33486a --- /dev/null +++ b/htdocs/manual/multilogs.html @@ -0,0 +1,113 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Multiple Log Files</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Multiple Log Files</h1> + It is now possible to specify multiple log files, each with a + fully customizable format. This is compatible with existing + configurations. Multiple log files are implemented as part of + the <a href="mod/mod_log_config.html">mod_log_config</a> module + which as of Apache 1.2 is the default log module. + <hr /> + + <h2>Using Multiple Log Files</h2> + Multiple log files be created with either the + <code>TransferLog</code> or <code>CustomLog</code> directive. + These directives can be repeated to create more than one log + file (in previous releases, only one logfile could be given per + server configuration). The <code>TransferLog</code> directive + creates a log file in the standard "common log format", + although this can be customized with <code>LogFormat</code>. + The syntax of these two directives is the same as for the + config log module in previous Apache releases. + + <p>The real power of multiple log files come from the ability + to create log files in different formats. For example, as well + as a CLF transfer log, the server could log the user agent of + each client, or the referrer information, or any other aspect + of the request, such as the language preferences of the + user.</p> + + <p>The new <code>CustomLog</code> directive takes both a + filename to log to, and a log file format.</p> + <hr /> + <a href="mod/directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CustomLog <em>filename + "format"</em><br /> + <a href="mod/directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="mod/directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> base<br /> + <a href="mod/directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> mod_log_config + + <p>The first argument is the filename to log to. This is used + exactly like the argument to <code>TransferLog</code>, that is, + it is either a file as a full path or relative to the current + server root, or |programname. Be aware that anyone who can + write to the directory where a log file is written can gain + access to the uid that starts the server. See the <a + href="misc/security_tips.html">security tips</a> document for + details.</p> + + <p>The format argument specifies a format for each line of the + log file. The options available for the format are exactly the + same as for the argument of the <code>LogFormat</code> + directive. If the format includes any spaces (which it will do + in almost all cases) it should be enclosed in double + quotes.</p> + + <h3>Use with Virtual Hosts</h3> + If a <VirtualHost> section does not contain any + <code>TransferLog</code> or <code>CustomLog</code> directives, + the logs defined for the main server will be used. If it does + contain one or more of these directives, requests serviced by + this virtual host will only be logged in the log files defined + within its definition, not in any of the main server's log + files. See the examples below. + <hr /> + + <h3>Examples</h3> + To create a normal (CLF) format log file in logs/access_log, + and a log of user agents: +<pre> +TransferLog logs/access_log +CustomLog logs/agents "%{user-agent}i" +</pre> + To define a CLF transfer log and a referrer log which log all + accesses to both the main server and a virtual host: +<pre> +TransferLog logs/access_log +CustomLog logs/referer "%{referer}i" + +<VirtualHost> + DocumentRoot /whatever + ServerName my.virtual.host +</VirtualHost> +</pre> + Since no TransferLog or CustomLog directives appear inside the + <VirtualHost> section, any requests for this virtual host + will be logged in the main server's log files. If however the + directive +<pre> +TransferLog logs/vhost_access_log +</pre> + was added inside the virtual host definition, then accesses to + this virtual host will be logged in vhost_access_log file (in + common log format), and <em>not</em> in logs/access_log or + logs/referer. <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/netware.html b/htdocs/manual/netware.html new file mode 100644 index 0000000000..2822d3a5ea --- /dev/null +++ b/htdocs/manual/netware.html @@ -0,0 +1,402 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Using Apache with Novell NetWare</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <div align="CENTER"> + <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> + + <h1 align="CENTER">Using Apache With Novell NetWare</h1> + + <p>This document explains how to install, configure and run + Apache 1.3 under Novell NetWare 5.x and above. If you find any bugs, + or wish to contribute in other ways, please + use our <a HREF="http://httpd.apache.org/bug_report.html">bug reporting + page.</a></p> + + <p>The bug reporting page and new-httpd mailing list are <em>not</em> + provided to answer questions about configuration or running Apache. + Before you submit a bug report or request, first consult this document, the + <a HREF="misc/FAQ.html">Frequently Asked Questions</a> page and the other + relevant documentation topics. If you still have a question or problem, + post it to the <a HREF="news://devforums.novell.com/novell.devsup.webserver"> + novell.devsup.webserver</a> newsgroup, where many + Apache users are more than willing to answer new + and obscure questions about using Apache on NetWare.</p> + + Most of this document assumes that you are installing Apache + from a binary distribution. If you want to compile Apache + yourself (possibly to help with development, or to track down + bugs), see the section on <a href="#comp">Compiling Apache for + NetWare</a> below. + <hr /> + + <ul> + <li><a href="#req">Requirements</a></li> + + <li><a href="#down">Downloading Apache for NetWare</a></li> + + <li><a href="#inst">Installing Apache for NetWare</a></li> + + <li><a href="#run">Running Apache for NetWare</a></li> + + <li><a href="#use">Configuring Apache for NetWare</a></li> + + <li><a href="#comp">Compiling Apache for NetWare</a></li> + </ul> + <hr /> + + <h2><a id="req" name="req">Requirements</a></h2> + Apache 1.3 is designed to run on NetWare 5.x and above and is + installed by default on all NetWare 6 servers. + + <p><strong>If running on NetWare 5.0 you must install Service + Pack 5 or above.</strong></p> + + <p><strong>If running on NetWare 5.1 you must install Service + Pack 1 or above.</strong></p> + + <p>NetWare service packs are available <a + href="http://support.novell.com/misc/patlst.htm#nw">here.</a></p> + + <h2><a id="down" name="down">Downloading Apache for NetWare</a></h2> + + <p>Information on the latest version of Apache can be found on + the Apache web server at <a + href="http://www.apache.org/">http://www.apache.org/</a>. This + will list the current release, any more recent alpha or + beta-test releases, together with details of mirror web and + anonymous ftp sites.</p> + + <h2><a id="inst" name="inst">Installing Apache for + NetWare</a></h2> + There is no Apache install program for NetWare currently. You + will need to compile apache and copy the files over to the + server manually. An install program will be posted at a later + date. If you are running NetWare 6, Apache for NetWare has been + installed by default. + + <p>Follow these steps to install Apache on NetWare from the + binary download (assuming you will install to sys:/apache):</p> + + <ul> + <li>Unzip the binary download file to the root of the SYS: + volume (may be installed to any volume)</li> + + <li>Edit the httpd.conf file setting ServerRoot and + ServerName to reflect your correct server settings</li> + + <li>Add SYS:/APACHE to the search path. EXAMPLE: SEARCH ADD + SYS:\APACHE</li> + </ul> + + <p>Follow these steps to install Apache on NetWare manually + from your own build source (assuming you will install to + sys:/apache):</p> + + <ul> + <li>Create a directory called <code>Apache</code> on a + NetWare volume</li> + + <li>Copy Apache.nlm, Apachec.nlm, htdigest.nlm, htpasswd.nlm, + xmlparse.nlm, and xmltok.nlm to sys:/apache</li> + + <li>Create a directory under SYS:/APACHE called CONF</li> + + <li>Copy all the *.CONF-DIST-NW files to the SYS:/APACHE/CONF + directory and rename them all as *.CONF files</li> + + <li>Copy the MIME.TYPES and magic files to SYS:/APACHE/CONF + directory</li> + + <li>Copy all files and subdirectories in \apache-1.3\icons to + SYS:/APACHE/ICONS</li> + + <li>Create the directory SYS:/APACHE/LOGS on the server</li> + + <li>Create the directory SYS:/APACHE/CGI-BIN on the + server</li> + + <li>Create the directory SYS:/APACHE/MODULES and copy all nlm + modules built into the modules directory</li> + + <li>Edit the HTTPD.CONF file setting ServerRoot and + ServerName to reflect your correct server settings</li> + + <li>Add SYS:/APACHE to the search path. EXAMPLE: SEARCH ADD + SYS:\APACHE</li> + </ul> + + <p>Apache may be installed to other volumes besides the default + <code>sys</code> volume.</p> + + <h2><a id="run" name="run">Running Apache for NetWare</a></h2> + To start Apache just type <strong>apache</strong> at the + console. This will load apache in the OS address space. If you + prefer to load Apache in a protected address space you may + specify the address space with the load statement as follows: +<pre> + load address space = apache apache +</pre> + + <p>This will load Apache into an address space called apache. + Running multiple instances of Apache concurrently on NetWare is + possible by loading each instance into its own protected + address space.</p> + + <p>After starting Apache it will be listening to port 80 + (unless you changed the <samp>Port</samp>, <samp>Listen</samp> + or <samp>BindAddress</samp> directives in the configuration + files). To connect to the server and access the default page, + launch a browser and enter the server's name or address. This + should respond with a welcome page, and a link to the Apache + manual. If nothing happens or you get an error, look in the + <samp>error_log</samp> file in the <samp>logs</samp> + directory.</p> + + <p>Once your basic installation is working, you should + configure it properly by editing the files in the + <samp>conf</samp> directory.</p> + + <p>To unload Apache running in the OS address space just type + the following at the console:</p> +<pre> + unload apache +</pre> + If apache is running in a protected address space specify the + address space in the unload statement: +<pre> + unload address space = apache apache +</pre> + + <p>When working with Apache it is important to know how it will + find the configuration files. You can specify a configuration + file on the command line in two ways:</p> + + <ul> + <li>-f specifies a path to a particular configuration + file</li> + </ul> +<pre> + apache -f "vol:/my server/conf/my.conf" +</pre> +<pre> + apache -f test/test.conf +</pre> + In these cases, the proper ServerRoot should be set in the + configuration file. + + <p>If you don't specify a configuration file name with -f, + Apache will use the file name compiled into the server, usually + "conf/httpd.conf". Invoking Apache with the -V switch will + display this value labeled as SERVER_CONFIG_FILE. Apache will + then determine its ServerRoot by trying the following, in this + order:</p> + + <ul> + <li>A ServerRoot directive via a -C switch.</li> + + <li>The -d switch on the command line.</li> + + <li>Current working directory</li> + + <li>The server root compiled into the server.</li> + </ul> + + <p>The server root compiled into the server is usually + "sys:/apache". invoking apache with the -V switch will display + this value labeled as HTTPD_ROOT.</p> + + <h2><a id="use" name="use">Configuring Apache for + NetWare</a></h2> + Apache is configured by files in the <samp>conf</samp> + directory. These are the same as files used to configure the + Unix version, but there are a few different directives for + Apache on NetWare. See the <a href="./">Apache + documentation</a> for all the available directives. + + <p>The main differences in Apache for NetWare are:</p> + + <ul> + <li> + <p>Because Apache for NetWare is multithreaded, it does not + use a separate process for each request, as Apache does + with Unix. Instead there are only threads running: a parent + thread, and a child which handles the requests. Within the + child each request is handled by a separate thread.</p> + + <p>So the "process"-management directives are + different:</p> + + <p><a + href="mod/core.html#maxrequestsperchild">MaxRequestsPerChild</a> + - Like the Unix directive, this controls how many requests + a process will serve before exiting. However, unlike Unix, + a process serves all the requests at once, not just one, so + if this is set, it is recommended that a very high number + is used. The recommended default, <code>MaxRequestsPerChild + 0</code>, does not cause the process to ever exit.</p> + + <p><a + href="mod/core.html#threadsperchild">ThreadsPerChild</a> - + This directive is new, and tells the server how many + threads it should use. This is the maximum number of + connections the server can handle at once; be sure and set + this number high enough for your site if you get a lot of + hits. The recommended default is <code>ThreadsPerChild + 50</code>.</p> + <a href="mod/core.html#threadstacksize">ThreadStackSize</a> + - This directive tells the server what size of stack to use + for the individual threads. The recommended default is + <code>ThreadStackSize 65536</code>. + <p>LogRotateDaily - This directive allows all custom logs to be rotated + on a daily basis. The file name of each log will contain the date + and time that the log was created. The default for this directive + is "Off".</p> + <p>LogRotateInterval - This directive allows all custom logs to be + rotated on a specified interval. The file name of each log will + contain the date and time that the log was created. The interval + is specified as N minutes. The default is no interval or + "0".</p> + <p> + </li> + + <li> + <p>The directives that accept filenames as arguments now + must use NetWare filenames instead of Unix ones. However, + because Apache uses Unix-style names internally, you must + use forward slashes, not backslashes. Volumes can be used; + if omitted, the drive with the Apache executable will be + assumed.</p> + </li> + + <li> + <p>Apache for NetWare has the ability to load modules at + runtime, without recompiling the server. If Apache is + compiled normally, it will install a number of optional + modules in the <code>\Apache\modules</code> directory. To + activate these, or other modules, the new <a + href="mod/mod_so.html#loadmodule">LoadModule</a> directive + must be used. For example, to active the status module, use + the following (in addition to the status-activating + directives in <code>access.conf</code>):</p> +<pre> + LoadModule status_module modules/status +</pre> + + <p>Information on <a + href="mod/mod_so.html#creating">creating loadable + modules</a> is also available.</p> + </li> + </ul> + + <H2><A id="comp" NAME="comp">Compiling Apache for NetWare</A></H2> + <H3><FONT SIZE=3>Requirements:</FONT></H3> + The following development tools are required to build Apache + 1.3 for NetWare:<BR> + <UL> + <LI> + Metowerks CodeWarrior 6.0 or higher with + <A HREF="http://developer.novell.com/ndk/cwpdk.htm">NetWare + PDK 3.0</A> or higher. + </LI> + + <LI> + <a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries + for C (LibC)</a> + </LI> + <LI> + <a href="http://developer.novell.com/ndk/cldap.htm">LDAP Libraries + for C</a> + </LI> + <LI> + AWK, SED and gmake(ver. 3.78.1) utilties available at + <A HREF="http://developer.novell.com/ndk/apache.htm">http://developer.novell.com/ndk/apache.htm</A> + </LI> + </UL> + + <H3><FONT SIZE=3>Building Apache using the NetWare makefiles:</FONT></H3> + <UL> + <LI> + Set the following environment variables: + <UL> + <LI> + <code>set METROWERKS=<Base location of the MW CodeWarrior + tools></code> + </LI> + <LI> + <code>set NWSDKDIR=c:\Novell\NDK\nwsdk</code> - Location of the NetWare CLib SDK + </LI> + <LI> + <code>set LDAPSDK=c:\Novell\NDK\cldapsdk</code> - Location of the NetWare LDAP SDK + </LI> + <LI> + <code>set AP_WORK=<Base location of the apache-1.3 source + files></code> + </LI> + <LI> + <code>set GNUTOOLS=<Location of the AWK, SED and GMAKE + utilities></code> + </LI> + </UL> + <LI> + Unpack the Apache source code distribution into an + appropriate directory. + </LI> + <LI> + Change directory to \apache-1.3 and build Apache by envoking + the <samp>gmake -f nwgnumakefile</samp> command. You can create a + distribution directory by adding the <samp>install</samp> + parameter to the command. + </LI> + </UL> + + <H3><FONT SIZE=3>Other Environment Variables:</FONT></H3> + <UL> + <LI> + <code>set DEBUG=1</code> – Builds debug versions + of all of the binaries and copies them to a <code>\debug</code> destination + directory. + </LI> + <LI> + <code>set MULTIPROC=1</code> – Builds multi-processor aware versions + of all of the binaries. + </LI> + </UL> + + <H3><FONT SIZE=3>Additional make options:</FONT></H3> + <UL> + <LI> + <code>gmake -f nwgnumakefile</code> – Builds release versions of all + of the binaries and copies them to a <code>\release</code> destination + directory. + </LI> + <LI> + <code>gmake -f nwgnumakefile install</code> – Creates a complete + Apache distribution with binaries, docs and additional support + files in a <code>\dist\apache</code> directory. + </LI> + <LI> + <code>gmake -f nwgnumakefile clean</code> – Cleans all object files + and binaries from the <code>\release</code> or <code>\debug</code> build areas depending on + whether <code>DEBUG</code> has been defined. + </LI> + </UL> + + <HR /> + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="images/index.gif" alt="Index" /></a> + </body> +</html> + diff --git a/htdocs/manual/new_features_1_0.html b/htdocs/manual/new_features_1_0.html new file mode 100644 index 0000000000..54d8fedb27 --- /dev/null +++ b/htdocs/manual/new_features_1_0.html @@ -0,0 +1,134 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache extra features</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Overview of new features</h1> + + <h2>New Features with Apache 1.0</h2> + + <p>New features with this release, as extensions of the Apache + functionality (see also more detailed <code>CHANGES</code> + file) in the source directory. Because the core code has + changed so significantly, there are certain liberties that + earlier versions of Apache (and the NCSA daemon) took that + Apache 1.0 is pickier about - please check the <a + href="misc/compat_notes.html">compatibility notes</a> if you + have any problems.</p> + + <ul> + <li> + API for server extensions --- see below for a brief sermon + on philosophy, or see <a + href="misc/API.html">src/API.html</a> for an actual + overview. Most server functionality (including includes, + CGI, and most forms of access control) are actually + implemented as API-conformant modules; you can also do + other neat stuff (we've included a sample module, for + instance, which one of us is using to track click-trails + using the <a + href="http://home.netscape.com/newsref/std/cookie_spec.html"> + Netscape cookie mechanism</a>, for visitors who come in + through Netscape clients). <a + href="mod/mod_dld.html">Modules</a> can also be loaded + dynamically using GNU DLD. + + <p>The API is not yet quite stable (see src/TODO for some + possible changes), but anything done now will be easily + adapted for future versions --- after all, we have more + modules to adapt than you do.</p> + </li> + + <li><a href="process-model.html">New Process Model - much + less forking, no fixed number of children.</a> We found that + many people were using values for "MaxServers" either too + high or too low, and were hanging themselves on it. The model + we adopted is still based on long-lived minimal-forking + processes, but instead of specifying one number of persistent + processes, the web-master specifies a maximum and minimum + number of processes to be "spare" - every couple of seconds + the parent checks the actual number of spare servers and + adjusts accordingly. This should keep the number of servers + concurrently running relatively low while still ensuring + minimal forking.</li> + + <li><a href="vhosts/"><VirtualHost> (the configuration + directive for multiple-homed servers)</a> is more general + now. Just about any srm.conf or httpd.conf command can go in + a <Virtualhost> section, with the following specific + exceptions: ServerType, UserId, GroupId, StartServers, + MaxRequestsPerChild, BindAddress, PidFile, TypesConfig, + ServerRoot.</li> + + <li><a href="content-negotiation.html">Support for content + negotiation of languages through MultiViews</a> (*.fr, *.de, + *.en suffixes), via the new AddLanguage and LanguagePriority + commands (code written by Florent Guillaume, + guillaum@clipper.ens.fr).</li> + + <li>Significant internal cleanups and rearrangements. The two + externally visible consequences of this are that just about + all of the unchecked fixed limits are gone, and that the + server is somewhat pickier about config file syntax (noting + and complaining about extraneous command arguments or other + stuff at the end of command lines).</li> + + <li>XBITHACK is a run-time option, and can be selectively + enabled per directory --- the -DXBITHACK compile-time option + just changes the default. The command which configures it is + "XBitHack", which is allowed everywhere "Options" is; this + takes an argument --- "XBitHack Off" turns it off; "XBitHack + On" gets you the NCSA -DXBITHACK behavior; and "XBitHack + Full" gets you the Apache GXBIT stuff on top of that. + (-DXBITHACK makes "Full" the default; otherwise, it defaults + "Off").</li> + + <li>TransferLog can specify a program which gets the log + entries piped to it, a la 'TransferLog "| + /var/www/my-perl-script -arg valu"' --- this should give the + same SIGTERM/pause/SIGKILL treatment to the logging process + on server restarts that a CGI script gets on an aborted + request. NB the server is counting on the logging process to + work, and will probably hang or worse if it dies.</li> + + <li><a href="mod/mod_log_config.html">Configurable logging + module</a> --- this is a replacement for the standard + plane-jane Common Log Format code, which supports a LogFormat + directive which allows you to control the formatting of + entries in the TransferLog, and add some new items if you + like (in particular, Referer and User-Agent). + EXPERIMENTAL.</li> + </ul> + <hr /> + + <h2>Other features of Apache</h2> + + <ul> + <li><a href="mod/mod_dld.html">Dynamically loading modules + using GNU DLD</a></li> + + <li><a href="mod/mod_imap.html">Imagemap Module</a></li> + + <li><a href="mod/mod_dir.html#directoryindex">Multiple + DirectoryIndex filenames</a></li> + + <li><a href="mod/mod_asis.html">"Send as is" file + types</a></li> + + <li><a href="mod/mod_include.html#xbithack">XBITHACK last + modified</a></li> + </ul> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/new_features_1_1.html b/htdocs/manual/new_features_1_1.html new file mode 100644 index 0000000000..240558c764 --- /dev/null +++ b/htdocs/manual/new_features_1_1.html @@ -0,0 +1,243 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>New features with Apache 1.1</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Overview of new features</h1> + + <h2>API Changes</h2> + A few changes to the Apache API were made for 1.1. It is + possible that some third-party modules will no longer work with + 1.1, though we have made every effort to provide + backwards-compatibility. If you encounter a module that does + not work with 1.1, please <a + href="http://httpd.apache.org/bug_report.html">let us know</a>. + + + <h2>New Features with Apache 1.1</h2> + + <p>New features with this release, as extensions of the Apache + functionality (see also more detailed <code>CHANGES</code> file + in the source directory.) Because the core code has changed so + significantly, there are certain liberties that earlier + versions of Apache (and the NCSA daemon) took that recent + Apache versions are pickier about - please check the <a + href="misc/compat_notes.html">compatibility notes</a> if you + have any problems.</p> + <hr /> + + <p>In addition to a number of bug fixes and internal + performance enhancements, <a + href="http://www.apache.org/dist/httpd/">Apache 1.1</a> has the + following specific new user features:</p> + + <ul> + <li><strong><a href="keepalive.html">Support for Keep-Alive + Persistent Connections</a></strong><br /> + Apache now has (optional) support for persistent + connections, as defined by the HTTP/1.1 draft. This protocol, + supported by a number of current HTTP servers and browsers + (including Netscape Navigator 2.0) has been shown to increase + speed of document transfer by up to 50% in certain + cases.</li> + + <li><strong><a href="vhosts/">New non-IP + Intensive-VirtualHost Support</a></strong><br /> + Apache's support for virtual hosts has been enhanced to be + able to use information sent by some new Web browsers to + determine the server being accessed, without requiring an + additional IP address for each host.</li> + + <li><strong><a href="bind.html">Listen to Multiple Addresses + and Ports</a></strong><br /> + Using the new <code>Listen</code> directive, Apache can + listen to more than one port and IP address, using the same + configuration set.</li> + + <li><strong><a href="mod/mod_status.html">Status + Module</a></strong><br /> + Apache now contains a module that gives the web-master + accurate, up-to-date information about the server's status + and its resource consumption. It also gives the current state + of each server process including the current URL being + processed. For an example, check out <a + href="http://www.apache.org/server-status">the status of the + www.apache.org server</a>.</li> + + <li><strong><a href="mod/mod_info.html">Server Information + Module</a></strong> This module gives a plethora of + information about the other modules installed, their + directives, and their configurations. It is extremely helpful + in debugging configuration problems. For an example, check + out <a href="http://www.apache.org/server-info">information + about the www.apache.org server</a>.</li> + + <li><strong><a href="mod/mod_proxy.html">Experimental Caching + Proxy Server</a></strong><br /> + Apache can now act as an HTTP proxy server, allowing clients + behind firewalls to use the server to access the outside + world. In addition, it can cache documents it proxies, + speeding up access to frequently requested documents.</li> + + <li><strong><a href="location.html">URL-based Access + Protection</a></strong><br /> + In addition to access checking and authorization by filename + (with <code><a + href="mod/core.html#directory"><Directory></a></code>), + the new <code><Location></code> directive allows + protection by URL.</li> + + <li><strong><a href="mod/mod_actions.html">Filetype-based + Script "Actions"</a></strong><br /> + You can now run CGI scripts whenever a file of a certain + type is requested. This makes it much easier to execute + scripts that process files. In addition, you can use the new + <a href="mod/mod_actions.html#script">Script</a> directive to + enable scripts for files called with HTTP methods Apache does + not natively support.</li> + + <li><strong><a href="handler.html">New "Handler" + Directives</a></strong><br /> + The new <code>AddHandler</code> and <code>SetHandler</code> + directive allows "handlers" to be defined for filename + extensions or directories. These handlers, which can either + be built into Apache or added with the <a + href="mod/mod_actions.html">Action</a> directive, extend + Apache's range of usability, and almost entirely remove the + "magic" media types.</li> + + <li><strong><a href="mod/mod_env.html">Customizable CGI + Environment Variables</a></strong><br /> + New <code>PassEnv</code> and <code>SetEnv</code> directives + allow you to modify the environment variables passed to CGI + scripts.</li> + + <li><strong><a href="mod/mod_cern_meta.html">CERN Metafile + Support</a></strong><br /> + Now emulates the CERN httpd's support for metafiles + containing additional HTTP headers to be supplied with a + document.</li> + + <li><strong><a href="mod/mod_imap.html">Improved Imagemap + Support</a></strong><br /> + The internal imagemap handling code has been rewritten and + reorganized, adding new handling of default, base and + relative URLs, and support for creating non-graphical menus + for use with clients that do not support imagemaps.</li> + + <li><strong><a href="mod/mod_userdir.html">Improved UserDir + Directive</a></strong><br /> + Now supports the ability to point user's files (as specified + by URLs beginning with the "<code>~</code>" character) at + directories other than those specified by the Unix password + file.</li> + + <li><strong>Minimal DNS Now Runtime Option</strong><br /> + New <code>HostnameLookups</code> server configuration + directive can be used to turn <code>On</code> or + <code>Off</code> DNS lookups. This supersedes the + -DMINIMAL_DNS compile-time configuration option. This option + can be set per-directory.</li> + + <li><strong>IdentityCheck Now Per-Directory + Option</strong><br /> + The <code>IdentityCheck</code> directive, which controls the + use of ident to check the remote user name, can now be set + per directory. The ident support is also RFC + 1413-compliant.</li> + + <li><strong>Redirect Now Usable in <code>.htaccess</code> + Files</strong><br /> + The <a + href="mod/mod_alias.html#redirect"><code>Redirect</code></a> + directive can now be used in <code>.htaccess</code> files + when the <code>FileInfo</code> directive has been set on. + This allows users to redirect parts of their directories + without requiring CGI scripts</li> + + <li><strong>ErrorDocument Now Usable in + <code>.htaccess</code> Files</strong><br /> + The <a + href="custom-error.html"><code>ErrorDocument</code></a> + directive can now be used in <code>.htaccess</code> files + when the <code>FileInfo</code> directive has been set on. + This allows users to have different error messages for + different sections of a site.</li> + + <li><strong><code>ForceType</code> Directive</strong><br /> + This new directive, in <code><Directory></code> + sections or .htaccess files, allows you to override the + filename extensions and force a single content type. + (<em>e.g.</em>, <code>ForceType + application/octet-stream</code>)</li> + + <li><strong>File Owner Available to Included CGI + Scripts</strong><br /> + Server-side includes that call CGI scripts will now set a + <code>USER_NAME</code> environment variable that contains the + owner of the file which included it.</li> + + <li><strong>Improved Icons</strong><br /> + Thanks to <a href="mailto:kevinh@eit.com">Kevin Hughes</a>, + Apache's nifty color GIF icons for directory listings have + been updated. In addition, the <a + href="../apache_pb.gif">Powered by Apache</a> + (<code>apache_pb.gif</code>) logo has been included.</li> + </ul> + <hr /> + + <h3>New Authentication Modules</h3> + + <p><strong>Note:</strong> These modules are not compiled into + the server by default, as they require special support on the + host system. They must be enabled specifically in the + <code>Configuration</code> file.</p> + + <ul> + <li><strong><a href="mod/mod_auth_anon.html">Anonymous HTTP + Logins</a></strong><br /> + New options allow you to allow, using Basic HTTP + Authentication, anonymous logins, like those of FTP. This + allows you to collect email addresses of people accessing + your site.</li> + + <li><strong><a href="mod/mod_digest.html">Support for Digest + Authentication</a></strong><br /> + Apache now supports digest authentication using RSA MD5 + encryption. When used with a supporting web browser, this + provides a more secure alternative to Basic + authentication.</li> + + <li><strong><a href="mod/mod_auth_db.html">Support for Unix + DB Authentication</a></strong> - + <code>mod_auth_db.c</code><br /> + In addition to <a href="mod/mod_auth_dbm.html">DBM</a> + support, Apache now contains optional support for Berkeley DB + databases.</li> + + <li><strong>mSQL Database Authentication</strong> - + <code>mod_auth_msql.html</code><br /> + Support for the use of mSQL databases for user + authentication via HTTP is now supported.</li> + </ul> + <hr /> + + <h3>OS/2 Support</h3> + + <p>Apache now includes support for OS/2, thanks to <a + href="http://www.slink.com/ApacheOS2/">Softlink + Services</a>.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/new_features_1_2.html b/htdocs/manual/new_features_1_2.html new file mode 100644 index 0000000000..dae0f84a85 --- /dev/null +++ b/htdocs/manual/new_features_1_2.html @@ -0,0 +1,237 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>New features with Apache 1.2</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Overview of new features</h1> + + <h2>API Changes</h2> + + <p>Some non-compatible changes were made to the Apache API in + order to deal with HTTP/1.1 compatibility. It is possible that + some modules will no longer work (specifically, those that + process input using the POST or PUT methods). If you encounter + a module that does not work, please contact the author. A <a + href="misc/client_block_api.html">programmer's note</a> on the + subject is available.</p> + + <h2>New Features with Apache 1.2</h2> + + <p>New features with this release, as extensions of the Apache + functionality. Because the core code has changed so + significantly, there are certain liberties that earlier + versions of Apache (and the NCSA daemon) took that recent + Apache versions are pickier about - please check the <a + href="misc/compat_notes.html">compatibility notes</a> if you + have any problems.</p> + <hr /> + + <p>In addition to a number of bug fixes and internal + performance enhancements, <a + href="http://www.apache.org/dist/httpd/">Apache 1.2</a> has the + following specific new user features:</p> + + <ul> + <!-- change the "name" to an "href" if/when there's such a document --> + + <li><strong><a id="http11.html" name="http11.html">HTTP/1.1 + Compliance</a></strong> [Documentation to be written]<br /> + Aside from the optional proxy module (which operates as + HTTP/1.0), Apache is conditionally compliant with the + HTTP/1.1 proposed standard, as approved by the IESG and the + <a href="http://www.ics.uci.edu/pub/ietf/http/">IETF HTTP + working group</a>. HTTP/1.1 provides a much-improved + protocol, and should allow for greater performance and + efficiency when transferring files. Apache does, however, + still work great with HTTP/1.0 browsers. We are very close to + being unconditionally compliant; if you note any deviance + from the proposed standard, please report it as a bug.</li> + + <li><strong><a href="mod/mod_include.html">eXtended Server + Side Includes (XSSI)</a></strong><br /> + A new set of server-side include directives allows the user + to better create WWW pages. This includes number of powerful + new features, such as the ability to set variables and use + conditional HTML.</li> + + <li><strong><a href="mod/core.html#files">File-based and + Regex-enabled Directive Sections</a></strong><br /> + The new <a + href="mod/core.html#files"><code><Files></code></a> + section allows directives to be enabled based on full + filename, not just directory and URL. In addition, + <code><Files></code> sections can appear in + <code>.htaccess</code> files. <code><Files></code>, + along with <a + href="mod/core.html#directory"><code><Directory></code></a> + and <a + href="mod/core.html#location"><code><Location></code></a>, + can also now be based on regular expressions, not just simple + prefix matching.</li> + + <li><strong><a href="mod/mod_browser.html">Browser-based + Environment Variables</a></strong><br /> + Environment variables can now be set based on the + <code>User-Agent</code> string of the browser. Combined with + <a href="mod/mod_include.html">XSSI</a>, this allows you to + write browser-based conditional HTML documents.</li> + + <li><strong><a href="suexec.html">SetUID CGI + Execution</a></strong><br /> + Apache now supports the execution of CGI scripts as users + other than the server user. A number of security checks are + built in to try and make this as safe as possible.</li> + + <li><strong><a href="mod/mod_rewrite.html">URL Rewriting + Module</a></strong><br /> + The optional <code>mod_rewrite</code> module is now + included. This module can provide powerful URL mapping, using + regular expressions. There's nothing this module can't + do!</li> + + <li><strong><a href="mod/mod_log_config.html">Enhanced, + Configurable Logging</a></strong><br /> + The optional <code>mod_log_config</code> included with + earlier versions of Apache is now standard, and has been + enhanced to allow logging of much more detail about the + transaction, and can be used to open <a + href="multilogs.html">more than one log file</a> at once + (each of which can have a different log format). If you have + Apache write any logs to a directory which is writable by + anyone other than the user that starts the server, see the <a + href="misc/security_tips.html">security tips</a> document to + be sure you aren't putting the security of your server at + risk.</li> + + <li><strong><a href="mod/mod_usertrack.html">User Tracking + (Cookies) Revisions</a></strong><br /> + The <code>mod_cookies</code> included with previous versions + of Apache has been renamed <code>mod_usertrack</code>, to + more accurately reflect its function (some people + inadvertently thought it enabled cookie support in Apache, + which is not true - Apache supports the use of cookies + directly). It is also now possible to disable the generation + of cookies, even when the cookie module is compiled in. Also, + an expiry time can be set on the cookies.</li> + + <li><strong><a + href="mod/core.html#virtualhost"><VirtualHost> + Enhancements</a></strong><br /> + The <VirtualHost> directive can now take more than one + IP address or hostname. This lets a single vhost handles + requests for multiple IPs or hostnames. Also the special + section <VirtualHost _default_> can be used to handle + requests normally left for the main server + configuration.</li> + + <li><strong><a href="mod/mod_cgi.html#cgi_debug">CGI + Debugging Environment</a></strong><br /> + <code>ScriptLog</code> allows you to now set up a log that + records all input and output to failed CGI scripts. This + includes environment variables, input headers, POST data, + output, and more. This makes CGI scripts much easier to + debug.</li> + + <li><strong><a href="mod/core.html#rlimit">Resource Limits + for CGI Scripts</a></strong><br /> + New directives allow the limiting of resources used by CGI + scripts (<em>e.g.</em>, max CPU time). This is helpful in + preventing 'runaway' CGI processes.</li> + + <li><strong><a href="mod/mod_alias.html">Redirect Directive + Can Return Alternate Status</a></strong><br /> + The Redirect directive can return permanent or temporary + redirects, "Gone" or "See Other" HTTP status. For + NCSA-compatibility, RedirectTemp and RedirectPermanent are + also implemented.</li> + + <li><strong><a href="install.html">Simplified + Compilation</a></strong><br /> + The process of configuring Apache for compilation has been + simplified.</li> + + <li><strong><a href="mod/core.html#options">Add or Remove + Options</a></strong><br /> + The <code>Options</code> directive can now add or remove + options from those currently in force, rather than always + replacing them.</li> + + <li><strong><a href="invoking.html#help">Command-line + Help</a></strong><br /> + The <code>-h</code> command-line option now lists all the + available directives.</li> + + <li><strong><a href="mod/mod_headers.html">Optional Headers + Module to Set or Remove HTTP Headers</a></strong><br /> + The optional <code>mod_headers</code> module can be used to + set custom headers in the HTTP response. It can append to + existing headers, replace them, or remove headers from the + response.</li> + + <li><strong><a href="mod/core.html#ifmodule">Conditional + Config Directives</a></strong><br /> + A new <code><IfModule></code> section allows + directives to be enabled only if a given module is loaded + into the server.</li> + + <li><strong><a href="mod/core.html#satisfy">NCSA Satisfy + authentication directive now implemented</a></strong><br /> + <code>Satisfy</code> allows for more flexible access control + configurations.</li> + + <li><strong>Better NCSA Compatibility</strong><br /> + Apache directives are now more compatible with NCSA 1.5 to + make moving between servers easier. In particular, Apache now + implements the <a + href="mod/core.html#satisfy"><code>Satisfy</code></a>, <a + href="mod/core.html#maxkeepaliverequests">MaxKeepAliveRequests</a>, + <a + href="mod/mod_alias.html#redirectperm">RedirectPermanent</a> + and <a + href="mod/mod_alias.html#redirecttemp">RedirectTemp</a>, + directives, and the following directives are now + syntax-compatible with NCSA: <a + href="mod/mod_auth.html#authuserfile">AuthUserFile</a>, <a + href="mod/mod_auth.html#authgroupfile">AuthGroupFile</a>, <a + href="mod/mod_digest.html#authdigestfile">AuthDigestFile</a>, + <a href="mod/core.html#keepalive">KeepAlive</a> and <a + href="mod/core.html#keepalivetimeout">KeepAliveTimeout</a>.</li> + + <li> + <strong><a href="mod/mod_proxy.html">Optional proxy + module</a></strong><br /> + An improved FTP, HTTP, and CONNECT mode SSL proxy is + included with Apache 1.2. Some of the changes visible to + users: + + <dl> + <dd> + <dl> + <dt>- Improved FTP proxy supporting PASV mode</dt> + + <dt>- ProxyBlock directive for excluding sites to + proxy</dt> + + <dt>- NoCache * directive for disabling proxy + caching</dt> + + <dt>- Numerous bug fixes</dt> + </dl> + </dd> + </dl> + </li> + </ul> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/new_features_1_3.html.en b/htdocs/manual/new_features_1_3.html.en new file mode 100644 index 0000000000..60f298e2fa --- /dev/null +++ b/htdocs/manual/new_features_1_3.html.en @@ -0,0 +1,890 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>New features with Apache 1.3</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Overview of New Features in Apache 1.3</h1> + + <p>New features with this release, as extensions of the Apache + functionality. Because the core code has changed so + significantly, there are certain liberties that earlier + versions of Apache (and the NCSA daemon) took that recent + Apache versions are pickier about - please check the <a + href="misc/compat_notes.html">compatibility notes</a> if you + have any problems.</p> + + <p>If you're upgrading from Apache 1.2, you may wish to read + the <a href="upgrading_to_1_3.html">upgrade notes</a>.</p> + + <p>Enhancements: <a href="#core">Core</a> | <a + href="#performance">Performance</a> | <a + href="#config">Configuration</a> | <a href="#mod">Modules</a> | + <a href="#api">API</a> | <a href="#misc">Misc</a></p> + <hr /> + + <h2><a id="core" name="core">Core Enhancements:</a></h2> + + <dl> + <dt><strong><a href="dso.html">Dynamic Shared Object (DSO) + support</a></strong></dt> + + <dd>Apache modules may now be loaded at runtime; this means + that modules can be loaded into the server process space only + when necessary, thus overall memory usage by Apache will be + significantly reduced. DSO currently is supported on FreeBSD, + OpenBSD, NetBSD, Linux, Solaris, SunOS, Digital UNIX, IRIX, + HP/UX, UnixWare, NetWare, AIX, ReliantUnix and generic SVR4 + platforms.</dd> + + <dt><strong><a href="windows.html">Support for Windows + NT/95</a></strong></dt> + + <dd>Apache now supports the Windows NT and Windows 2000 + operating systems. While Apache may run on Windows 95, 98, or + ME, these consumer products are never recommended for + production environments, and their use remains experimental. + All versions of Apache running on Windows prior to 1.3.15 + should be considered beta quality releases.</dd> + + <dt><strong><a href="cygwin.html">Support for + Cygwin</a></strong></dt> + + <dd>Apache now supports the Cygwin platform for the Windows + NT and Windows 2000 operating systems. The Cygwin versions + should be considered as stable and reliable as the <a + href="windows.html">Windows</a> native counterpart.</dd> + + <dt><strong><a href="netware.html">Support for NetWare + 5.x</a></strong></dt> + + <dd>Apache now supports NetWare 5.x and above + operating systems.</dd> + + <dt><strong><a href="sourcereorg.html">Re-organized + Sources</a></strong></dt> + + <dd>The source files for Apache have been re-organized. The + main difference for Apache users is that the "Module" lines + in <code>Configuration</code> have been replaced with + "AddModule" with a slightly different syntax. For module + authors there are some changes designed to make it easier for + users to add their module.</dd> + + <dt><strong>Reliable Piped Logs</strong></dt> + + <dd>On almost all Unix architectures Apache now implements + "reliable" piped logs in <a + href="mod/mod_log_config.html">mod_log_config</a>. Where + reliable means that if the logging child dies for whatever + reason, Apache will recover and respawn it without having to + restart the entire server. Furthermore if the logging child + becomes "stuck" and isn't reading its pipe frequently enough + Apache will also restart it. This opens up more opportunities + for log rotation, hit filtering, real-time splitting of + multiple vhosts into separate logs, and asynchronous DNS + resolving on the fly.</dd> + </dl> + <hr /> + + <h2><a id="performance" name="performance">Performance + Improvements</a></h2> + + <ul> + <li>IP-based virtual hosts are looked up via hash table.</li> + + <li><Directory> parsing speedups.</li> + + <li>The critical path for static requests has fewer system + calls. This generally helps all requests. (45 syscalls for a + static request in 1.2 versus 22 in 1.3 in a well tuned + configuration).</li> + + <li><a + href="mod/mod_proxy.html#proxyreceivebuffersize"><code>ProxyReceiveBufferSize</code></a> + directive gives <code>mod_proxy</code>'s outgoing connections + larger network buffers, for increased throughput.</li> + + <li>The low level I/O routines use <code>writev</code> (where + available) to issue multiple writes with a single system + call. They also avoid copying memory into buffers as much as + possible. The result is less CPU time spent on transferring + large files.</li> + + <li>Static requests are served using <code>mmap</code>, which + means bytes are only copied from the disk buffer to the + network buffer directly by the kernel. The program never + copies bytes around, which reduces CPU time. (Only where + available/tested.)</li> + + <li>When presented with a load spike, the server quickly + adapts by spawning children at faster rates.</li> + + <li>The code which dispatches modules was optimized to avoid + repeatedly skipping over modules that don't implement certain + phases of the API. (This skipping showed up as 5% of the CPU + time on profiles of a server with the default module + mix.)</li> + + <li>Revamp of the Unix scoreboard management code so that + less time is spent counting children in various states. + Previously a scan was performed for each hit, now it is + performed only once per second. This should be noticeable on + servers running with hundreds of children and high + loads.</li> + + <li>New serialization choices improve performance on Linux, + and IRIX.</li> + + <li><code><a + href="mod/mod_log_config.html">mod_log_config</a></code> can + be compile-time configured to buffer writes.</li> + + <li>Replaced <code>strncpy()</code> with + <code>ap_cpystrn()</code>, a routine which doesn't have to + zero-fill the entire result. This has dramatic effects on + <code>mod_include</code> speed.</li> + + <li>Additions to the internal "table" API (used for keeping + lists of key/value string pairs) provide for up to 20% + performance improvement in many situations.</li> + </ul> + + <p>See <a href="misc/perf-tuning.html">the new performance + documentation</a> for more information.</p> + <hr /> + + <h2><a id="config" name="config">Configuration + Enhancements</a></h2> + + <dl> + <dt><strong>Unified Server Configuration Files</strong></dt> + + <dd><em>(Apache 1.3.4)</em> The contents of the three server + configuration files (<samp>httpd.conf</samp>, + <samp>srm.conf</samp>, and <samp>access.conf</samp>) have + been merged into a single <samp>httpd.conf</samp> file. The + <samp>srm.conf</samp> and <samp>access.conf</samp> files are + now empty except for comments directing the Webmaster to look + in <samp>httpd.conf</samp>. In addition, the merged + <samp>httpd.conf</samp> file has been restructured to allow + directives to appear in a hopefully more intuitive and + meaningful order.</dd> + + <dt><strong>Continuation Lines in config files</strong></dt> + + <dd>Directive lines in the server configuration files may now + be split onto multiple lines by using the canonical Unix + continuation mechanism, namely a '\' as the last non-blank + character on the line to indicate that the next line should + be concatenated.</dd> + + <dt><strong>Apache Autoconf-style Interface + (APACI)</strong></dt> + + <dd>Until Apache 1.3 there was no real out-of-the-box + batch-capable build and installation procedure for the + complete Apache package. This is now provided by a top-level + <code>configure</code> script and a corresponding top-level + <code>Makefile.tmpl</code> file. The goal is to provide a GNU + Autoconf-style frontend which is capable to both drive the + old <code>src/Configure</code> stuff in batch and + additionally installs the package with a GNU-conforming + directory layout. Any options from the old configuration + scheme are available plus a lot of new options for flexibly + customizing Apache.<br /> + <strong>Note:</strong> The default installation layout has + changed for Apache 1.3.4. See the files + <code>README.configure</code> and <code>INSTALL</code> for + more information.</dd> + + <dt><strong>APache eXtenSion (APXS) support + tool</strong></dt> + + <dd>Now that Apache provides full support for loading modules + under runtime from dynamic shared object (DSO) files, a new + support tool <code>apxs</code> was created which provides + off-source building, installing and activating of those + DSO-based modules. It completely hides the platform-dependent + DSO-build commands from the user and provides an easy way to + build modules outside the Apache source tree. To achieve this + APACI installs the Apache C header files together with the + <code>apxs</code> tool.</dd> + + <dt><a href="install.html#installing"><strong>Default Apache + directory path changed to + <code>/usr/local/apache/</code></strong></a><br /> + </dt> + + <dd>The default directory for the Apache ServerRoot changed + from the NCSA-compatible <code>/usr/local/etc/httpd/</code> + to <code>/usr/local/apache/</code>. This change covers only + the default setting (and the documentation); it is of course + possible to override it using the <a href="invoking.html">-d + <em>ServerRoot</em> and -f <em>httpd.conf</em></a> switches + when starting apache.</dd> + + <dt><strong>Improved HTTP/1.1-style Virtual + Hosts</strong></dt> + + <dd>The new <a + href="mod/core.html#namevirtualhost"><code>NameVirtualHost</code></a> + directive is used to list IP address:port pairs on which + HTTP/1.1-style virtual hosting occurs. This is vhosting based + on the <code>Host:</code> header from the client. Previously + this address was implicitly the same as the "main address" of + the machine, and this caused no end of problems for users, + and was not powerful enough. Please see the <a + href="vhosts/">Apache Virtual Host documentation</a> for + further details on configuration.</dd> + + <dt><strong><code>Include</code> directive</strong></dt> + + <dd>The <a + href="mod/core.html#include"><code>Include</code></a> + directive includes other config files immediately at that + point in parsing.</dd> + + <dt><strong>-S command line option for debugging vhost + setup</strong></dt> + + <dd>If Apache is invoked with the <code>-S</code> command + line option it will dump out information regarding how it + parsed the <code>VirtualHost</code> sections. This is useful + for folks trying to debug their virtual host + configuration.</dd> + + <dt><strong>Control of HTTP methods</strong></dt> + + <dd><a href="mod/core.html#limitexcept"><LimitExcept> + and </LimitExcept></a> are used to enclose a group of + access control directives which will then apply to any HTTP + access method not listed in the arguments; i.e., it is the + opposite of a <Limit> section and can be used to + control both standard and nonstandard/unrecognized + methods.</dd> + </dl> + <hr /> + + <h3><a id="mod" name="mod">Module Enhancements</a></h3> + + <dl> + <dt><a href="mod/mod_negotiation.html"><strong>Improved + mod_negotiation</strong></a><br /> + </dt> + + <dd>The optional content negotiation (MultiViews) module has + been completely overhauled for Apache 1.3.4, incorporating + the latest HTTP/1.1 revisions and the experimental + Transparent Content Negotion features of RFC 2295 and RFC + 2296.</dd> + + <dt><a href="mod/mod_speling.html"><strong>NEW - Spelling + correction module</strong></a><br /> + </dt> + + <dd>This optional module corrects frequently occurring + spelling and capitalization errors in document names + requested from the server.</dd> + + <dt><a href="mod/mod_setenvif.html"><strong>NEW - Conditional + setting of environment variables</strong></a><br /> + </dt> + + <dd>The addition of <a + href="mod/mod_setenvif.html#setenvif"><code>SetEnvIf</code></a> + and <a + href="mod/mod_setenvif.html#setenvifnocase"><code>SetEnvIfNoCase</code></a>. + These allow you to set environment variables for server and + CGI use based upon attributes of the request.</dd> + + <dt><strong><a href="mod/mod_mime_magic.html">NEW - "Magic" + MIME-typing</a></strong></dt> + + <dd>The optional <code>mod_mime_magic</code> has been added. + It uses "magic numbers" and other hints from a file's + contents to figure out what the contents are. It then uses + this information to set the file's media type, if it cannot + be determined by the file's extension.</dd> + + <dt><strong><a href="mod/mod_unique_id.html">NEW - Unique + Request Identifiers</a></strong></dt> + + <dd><a href="mod/mod_unique_id.html">mod_unique_id</a> can be + included to generate a unique identifier that distinguishes a + hit from every other hit. ("Unique" has some restrictions on + it.) The identifier is available in the environment variable + <code>UNIQUE_ID</code>.</dd> + + <dt><strong>mod_proxy enhancements:</strong></dt> + + <dd> + <ul> + <li>Easier and safer authentication for ftp proxy logins: + When no ftp user name and/or password is specified in the + URL, but the destination ftp server requires one, Apache + now returns a "[401] Authorization Required" status. This + status code usually makes the client browser pop up an + "Enter user name and password" dialog, and the request is + retried with the given user authentification. That is + slightly more secure than specifying the authentication + information as part of the request URL, where it could be + logged in plaintext by older proxy servers.</li> + + <li>The new <samp>AllowCONNECT</samp> directive allows + configuration of the port numbers to which the proxy + CONNECT method may connect. That allows proxying to + https://some.server:8443/ which resulted in an error + message prior to Apache version 1.3.2.</li> + + <li>The proxy now supports the HTTP/1.1 "Via:" header as + specified in RFC2068. The new <a + href="mod/mod_proxy.html#proxyvia"><code>ProxyVia</code></a> + directive allows switching "Via:" support off or on, or + suppressing outgoing "Via:" header lines altogether for + privacy reasons.</li> + + <li>The "Max-Forwards:" TRACE header specified in + HTTP/1.1 is now supported. With it, you can trace the + path of a request along a chain of proxies (if they, too, + support it).</li> + + <li><a + href="mod/mod_proxy.html#noproxy"><code>NoProxy</code></a> + and <a + href="mod/mod_proxy.html#proxydomain"><code>ProxyDomain</code></a> + directives added to proxy, useful for intranets.</li> + + <li>New <code><a + href="mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> + directive. It lets Apache adjust the URL in the + <tt>Location</tt> header on HTTP redirect responses.</li> + + <li>Easier navigation in ftp server directory trees.</li> + </ul> + </dd> + + <dt><a href="mod/mod_include.html#flowctrl"><strong>Enhanced + <code>mod_include</code> string + comparisons</strong></a><br /> + </dt> + + <dd>The string-based server-side include (SSI) flow-control + directives now include comparison for less-than (<), + less-than-or-equal (<=), greater-than (>), and + greater-than-or-equal (>=). Previously comparisons could + only be made for equality or inequality.</dd> + + <dt><strong>ServerRoot relative auth filenames</strong></dt> + + <dd>Auth filenames for the various authentication modules are + now treated as relative to the ServerRoot if they are not + full paths.</dd> + + <dt><a href="mod/mod_autoindex.html"><strong>Enhancements to + directory indexing:</strong></a></dt> + + <dd> + <ul> + <li><strong>Code split:</strong>The <code>mod_dir</code> + module has been split in two, with <a + href="mod/mod_dir.html">mod_dir</a> handling directory + index files, and <a + href="mod/mod_autoindex.html">mod_autoindex</a> creating + directory listings. Thus allowing folks to remove the + indexing function from critical servers.</li> + + <li><strong>Sortable:</strong> Clicking on a column title + will now sort the listing in order by the values in that + column. This feature can be disabled using the + <code>SuppressColumnSorting</code> <a + href="mod/mod_autoindex.html#indexoptions">IndexOptions</a> + keyword.</li> + + <li><a + href="mod/mod_autoindex.html#indexoptions:suppresshtmlpreamble"> + <code><strong>SuppressHTMLPreamble</strong></code></a> + can be used if your README.html file includes its own + HTML header.</li> + + <li>The <a + href="mod/mod_autoindex.html#indexoptions"><code><strong>IndexOptions</strong></code></a> + directive now allows the use of incremental prefixes (+/- + to add/remove the respective keyword feature, as was + already possible for the <a + href="mod/core.html#options">Options</a> directive) to + its keyword arguments. Multiple IndexOptions directives + applying to the same directory will now be merged.</li> + + <li><a + href="mod/mod_autoindex.html#indexoptions:iconheight"><strong> + <code>IconHeight</code></strong></a> and <a + href="mod/mod_autoindex.html#indexoptions:iconwidth"><strong> + <code>IconWidth</code></strong></a> let you set height + and width attributes to the <code><IMG></code> tag + in directory listings.</li> + + <li>The new <a + href="mod/mod_autoindex.html#indexoptions:namewidth"><strong> + <code>NameWidth</code></strong></a> keyword to the <a + href="mod/mod_autoindex.html#indexoptions">IndexOptions</a> + directive lets you set the number of columns for <a + href="mod/mod_autoindex.html#indexoptions:fancyindexing">"fancy" + directory listings</a>. If set to an '*' asterisk, the + name width will be adjusted automatically.</li> + + <li>The <a + href="mod/mod_autoindex.html#fancyindexing"><samp>FancyIndexing</samp></a> + directive now correctly has the same impact as <a + href="mod/mod_autoindex.html#indexoptions:fancyindexing"><samp> + IndexOptions FancyIndexing</samp></a> without + replacing the effect of any existing + <samp>IndexOptions</samp> directive.</li> + + <li>Starting with 1.3.15, the server will satisfy + directory requests with the cache controls ETag and + LastModified, if IndexOptions includes the <a + href="mod/mod_autoindex.html#indexoptions:trackmodified"><samp>TrackModified</samp></a> + directive. The server will not need to generate the + listing if the client determines the request has not + changed, improving performance. Due to its experimental + nature, this feature is not enabled by default.</li> + </ul> + </dd> + + <dt><strong>Less Buffering of CGI Script Output</strong></dt> + + <dd>In previous versions of Apache, the output from CGI + scripts would be internally buffered by the server, and + wouldn't be forwarded to the client until either the buffers + were full or the CGI script completed. As of Apache 1.3, the + buffer to the client is flushed any time it contains + something and the server is waiting for more information from + the script. This allows CGI script to provide partial status + reports during long processing operations.</dd> + + <dt><strong><a href="mod/mod_alias.html">Regular Expression + support for <code>Alias</code> and + <code>Redirect</code></a></strong></dt> + + <dd>New <a + href="mod/mod_alias.html#aliasmatch"><code>AliasMatch</code></a>, + <a + href="mod/mod_alias.html#scriptaliasmatch"><code>ScriptAliasMatch</code></a>, + and <a + href="mod/mod_alias.html#redirectmatch"><code>RedirectMatch</code></a> + directives allow for the use of regular expression matching. + Additionally, new <a + href="mod/core.html#directorymatch"><code><DirectoryMatch></code></a>, + <a + href="mod/core.html#locationmatch"><code><LocationMatch></code></a>, + and <a + href="mod/core.html#filesmatch"><code><FilesMatch></code></a> + sections provide a new syntax for regular expression + sectioning.</dd> + + <dt><strong><a + href="mod/mod_info.html#addmoduleinfo"><code>AddModuleInfo</code></a> + directive added to <a + href="mod/mod_info.html">mod_info</a></strong></dt> + + <dd>Allows additional information to be listed along with a + specified module.</dd> + + <dt><strong>Absence of any <code>TransferLog</code> disables + logging</strong></dt> + + <dd>If no <a + href="mod/mod_log_config.html#transferlog"><code>TransferLog</code></a> + directive is given then no log is written. This supports + co-existence with other logging modules.</dd> + + <dt><strong>Ability to name logging formats</strong></dt> + + <dd>The <a + href="mod/mod_log_config.html#logformat"><code>LogFormat</code></a> + directive has been enhanced to allow you to give nicknames to + specific logging formats. You can then use these nicknames in + other <code>LogFormat</code> and <a + href="mod/mod_log_config.html#customlog"><code>CustomLog</code></a> + directives, rather than having to spell out the complete log + format string each time.</dd> + + <dt><strong>Conditional logging</strong></dt> + + <dd><a + href="mod/mod_log_config.html#customlog-conditional">mod_log_config</a> + now supports logging based upon environment variables. + mod_log_referer and mod_log_agent are now deprecated.</dd> + + <dt><strong>mod_cern_meta configurable + per-directory</strong></dt> + + <dd><a href="mod/mod_cern_meta.html">mod_cern_meta</a> is now + configurable on a per-directory basis.</dd> + + <dt><strong>New map types for <a + href="mod/mod_rewrite.html#RewriteMap"><code>RewriteMap</code></a> + directive</strong></dt> + + <dd>The new map types `Randomized Plain Text' and `Internal + Function' were added to the <code>RewriteMap</code> directive + of mod_rewrite. They provide two new features: First, you now + can randomly choose a sub-value from a value which was + looked-up in a rewriting map (which is useful when choosing + between backend servers in a Reverse Proxy situation). + Second, you now can translate URL parts to fixed (upper or + lower) case (which is useful when doing mass virtual hosting + by the help of mod_rewrite).</dd> + + <dt><strong>CIDR and Netmask access control</strong></dt> + + <dd><a href="mod/mod_access.html">mod_access</a> directives + now support CIDR (Classless Inter-Domain Routing) style + prefixes, and netmasks for greater control over IP access + lists.</dd> + </dl> + <hr /> + + <h3><a id="api" name="api">API Additions and Changes</a></h3> + + <p>For all those module writers and code hackers:</p> + + <dl> + <dt><strong><code>child_init</code></strong></dt> + + <dd>A new phase for Apache's API is called once per + "heavy-weight process," before any requests are handled. This + allows the module to set up anything that need to be done + once per processes. For example, connections to + databases.</dd> + + <dt><strong><code>child_exit</code></strong></dt> + + <dd>A new phase called once per "heavy-weight process," when + it is terminating. Note that it can't be called in some fatal + cases (such as segfaults and kill -9). The + <code>child_init</code> and <code>child_exit</code> functions + are passed a pool whose lifetime is the same as the lifetime + of the child (modulo completely fatal events in which Apache + has no hope of recovering). In contrast, the module + <code>init</code> function is passed a pool whose lifetime + ends when the parent exits or restarts.</dd> + + <dt><strong><code>child_terminate</code></strong></dt> + + <dd>Used in the child to indicate the child should exit after + finishing the current request.</dd> + + <dt><strong><code>register_other_child</code></strong></dt> + + <dd>See <code>http_main.h</code>. This is used in the parent + to register a child for monitoring. The parent will report + status to a supplied callback function. This allows modules + to create their own children which are monitored along with + the httpd children.</dd> + + <dt><strong><code>piped_log</code></strong></dt> + + <dd>See <code>http_log.h</code>. This API provides the common + code for implementing piped logs. In particular it implements + a reliable piped log on architectures supporting it + (<em>i.e.</em>, Unix at the moment).</dd> + + <dt><strong>scoreboard format changed</strong></dt> + + <dd>The scoreboard format is quite different. It is + considered a "private" interface in general, so it's only + mentioned here as an FYI.</dd> + + <dt><strong><code>set_last_modified</code> split into + three</strong></dt> + + <dd>The old function <code>set_last_modified</code> performed + multiple jobs including the setting of the + <code>Last-Modified</code> header, the <code>ETag</code> + header, and processing conditional requests (such as IMS). + These functions have been split into three functions: + <code>set_last_modified</code>, <code>set_etag</code>, and + <code>meets_conditions</code>. The field <code>mtime</code> + has been added to <code>request_rec</code> to facilitate + <code>meets_conditions</code>.</dd> + + <dt><strong>New error logging function: + <code>ap_log_error</code></strong></dt> + + <dd>All old logging functions are deprecated, we are in the + process of replacing them with a single function called + <code>ap_log_error</code>. This is still a work in + progress.</dd> + + <dt><strong><code>set_file_slot</code> for config + parsing</strong></dt> + + <dd>The <code>set_file_slot</code> routine provides a + standard routine that prepends ServerRoot to non-absolute + paths.</dd> + + <dt><strong><code>post_read_request</code> module + API</strong></dt> + + <dd>This request phase occurs immediately after reading the + request (headers), and immediately after creating an internal + redirect. It is most useful for setting environment variables + to affect future phases.</dd> + + <dt><strong><code>psocket</code>, and + <code>popendir</code></strong></dt> + + <dd>The <code>psocket</code> and <code>pclosesocket</code> + functions allow for race-condition free socket creation with + resource tracking. Similarly <code>popendir</code> and + <code>pclosedir</code> protect directory reading.</dd> + + <dt><strong><code>is_initial_req</code></strong></dt> + + <dd>Test if the request is the initial request + (<em>i.e.</em>, the one coming from the client).</dd> + + <dt><strong><code>kill_only_once</code></strong></dt> + + <dd>An option to <code>ap_spawn_child</code> functions which + prevents Apache from aggressively trying to kill off the + child.</dd> + + <dt><strong><code>alloc debugging code</code></strong></dt> + + <dd>Defining <code>ALLOC_DEBUG</code> provides a rudimentary + memory debugger which can be used on live servers with low + impact -- it sets all allocated and freed memory bytes to + 0xa5. Defining <code>ALLOC_USE_MALLOC</code> will cause the + alloc code to use <code>malloc()</code> and + <code>free()</code> for each object. This is far more + expensive and should only be used for testing with tools such + as Electric Fence and Purify. See <code>main/alloc.c</code> + for more details.</dd> + + <dt><strong><code>ap_cpystrn</code></strong></dt> + + <dd>The new <code>strncpy</code> "lookalike", with slightly + different semantics is much faster than <code>strncpy</code> + because it doesn't have to zero-fill the entire buffer.</dd> + + <dt><strong><code>table_addn</code>, <code>table_setn</code>, + <code>table_mergen</code></strong></dt> + + <dd>These new functions do <strong>not</strong> call + <code>pstrdup</code> on their arguments. This provides for + big speedups. There is also some debugging support to ensure + code uses them properly. See <code>src/CHANGES</code> for + more information.</dd> + + <dt><strong><code>construct_url</code></strong></dt> + + <dd>The function prototype for this changed from taking a + <code>server_rec *</code> to taking a <code>request_rec + *</code>.</dd> + + <dt><strong><code>get_server_name</code>, + <code>get_server_port</code></strong></dt> + + <dd>These are wrappers which deal with the <a + href="mod/core.html#usecanonicalname">UseCanonicalName</a> + directive when retrieving the server name and port for a + request.</dd> + + <dt><strong>Change to prototype for + <code>ap_bspawn_child</code> and + <code>ap_call_exec</code></strong></dt> + + <dd>Added a <code>child_info *</code> to <code>spawn</code> + function (as passed to <code>ap_bspawn_child</code>) and to + <code>ap_call_exec</code> to allow children to work correctly + on Win32. We also cleaned up the nomenclature a bit, + replacing <code>spawn_child_err</code> with simply + <code>ap_spawn_child</code> and + <code>spawn_child_err_buff</code> with simply + <code>ap_bspawn_child</code>.</dd> + + <dt> + <strong><code>ap_add_version_component()</code></strong></dt> + + <dd>This API function allows for modules to add their own + additional server tokens which are printed on the on the + <code>Server:</code> header line. Previous 1.3beta versions + had used a <code>SERVER_SUBVERSION</code> compile-time + <code>#define</code> to perform this function. Whether the + tokens are actually displayed is controlled by the new + <code>ServerTokens</code> directive.</dd> + </dl> + <hr /> + + <h3><a id="misc" name="misc">Miscellaneous + Enhancements</a></h3> + + <dl> + <dt><strong><a href="ebcdic.html">Port to EBCDIC mainframe + machine running BS2000/OSD</a></strong></dt> + + <dd>As a premiere, this version of Apache comes with a beta + version of a port to a mainframe machine which uses the + EBCDIC character set as its native codeset (It is the SIEMENS + family of mainframes running the BS2000/OSD operating system + on a IBM/390 compatible processor. This mainframe OS nowadays + features a SVR4-like POSIX subsystem).</dd> + + <dt><strong><a + href="mod/core.html#accessfilename"><code>AccessFileName</code> + Enhancement</a></strong></dt> + + <dd>The <code>AccessFileName</code> directive can now take + more than one filename. This lets sites serving pages from + network file systems and more than one Apache web server, + configure access based on the server through which shared + pages are being served.</dd> + + <dt><strong><code>HostnameLookups</code> now defaults to + "Off"</strong></dt> + + <dd>The <a + href="mod/core.html#hostnamelookups"><code>HostnameLookups</code></a> + directive now defaults to "Off". This means that, unless + explicitly turned on, the server will not resolve IP + addresses into names. This was done to spare the Internet + from unnecessary DNS traffic.</dd> + + <dt><strong>Double-Reverse DNS enforced</strong></dt> + + <dd>The <a + href="mod/core.html#hostnamelookups"><code>HostnameLookups</code></a> + directive now supports double-reverse DNS. (Known as + <em>PARANOID</em> in the terminology of tcp_wrappers.) An IP + address passes a double-reverse DNS test if the forward map + of the reverse map includes the original IP. Regardless of + the HostnameLookups setting, <a + href="mod/mod_access.html">mod_access</a> access lists using + DNS names <strong>require</strong> all names to pass a + double-reverse DNS test. (Prior versions of Apache required a + compile-time switch to enable double-reverse DNS.)</dd> + + <dt><strong>LogLevel and syslog support</strong></dt> + + <dd>Apache now has <a + href="mod/core.html#loglevel">configurable error logging + levels</a> and supports <a + href="mod/core.html#errorlog">error logging via + syslogd(8)</a>.</dd> + + <dt><strong>Detaching from stdin/out/err</strong></dt> + + <dd>On boot Apache will now detach from stdin, stdout, and + stderr. It does not detach from stderr until it has + successfully read the config files. So you will see errors in + the config file. This should make it easier to start Apache + via rsh or crontab.</dd> + + <dt><a id="y2k" name="y2k"><strong>Year-2000 + Improvements</strong></a></dt> + + <dd>The default <code>timefmt</code> string used by <a + href="mod/mod_include.html"><code>mod_include</code></a> has + been modified to display the year using four digits rather + than the two-digit format used previously. The <a + href="mod/mod_autoindex.html"><code>mod_autoindex</code></a> + module has also been modified to display years using four + digits in FancyIndexed directory listings.</dd> + + <dt><strong>Common routines Moving to a Separate + Library</strong></dt> + + <dd>There are a number of functions and routines that have + been developed for the Apache project that supplement or + supersede library routines that differ from one operating + system to another. While most of these are used only by the + Apache server itself, some are referenced by supporting + applications (such as <code>htdigest</code>), and these other + applications would fail to build because the routines were + built only into the server. These routines are now being + migrated to a separate subdirectory and library so they can + be used by other applications than just the server. See the + <code>src/ap/</code> subdirectory.</dd> + + <dt><strong>New <code><a + href="mod/core.html#serversignature">ServerSignature</a></code> + directive</strong></dt> + + <dd>This directive optionally adds a line containing the + server version and virtual host name to server-generated + pages (error documents, ftp directory listings, mod_info + output <em>etc.</em>). This makes it easier for users to tell + which server produced the error message, especially in a + proxy chain (often found in intranet environments).</dd> + + <dt><strong>New <code><a + href="mod/core.html#usecanonicalname">UseCanonicalName</a></code> + directive</strong></dt> + + <dd>This directive gives control over how Apache creates + self-referential URLs. Previously Apache would always use the + <a href="mod/core.html#servername">ServerName</a> and <a + href="mod/core.html#port">Port</a> directives to construct a + "canonical" name for the server. With <code>UseCanonicalName + off</code> Apache will use the hostname and port supplied by + the client, if available.</dd> + + <dt><strong><code>SERVER_VERSION</code> definition + abstracted, and server build date added</strong></dt> + + <dd>In earlier versions, the Apache server version was + available to modules through the <code>#define</code>d value + for <code>SERVER_VERSION</code>. In order to keep this value + consistent when modules and the core server are compiled at + different times, this information is now available through + the core API routine <code>ap_get_server_version()</code>. + The use of the <code>SERVER_VERSION</code> symbol is + deprecated. Also, <code>ap_get_server_built()</code> returns + a string representing the time the core server was + linked.</dd> + + <dt><a href="mod/core.html#servertokens"><strong>Including + the operating system in the server + identity</strong></a><br /> + </dt> + + <dd>A new directive, <code>ServerTokens</code>, allows the + Webmaster to change the value of the <code>Server</code> + response header field which is sent back to clients. The + <code>ServerTokens</code> directive controls whether the + server will include a non-specific note in the server + identity about the type of operating system on which the + server is running as well as included module information. As + of Apache 1.3, this additional information is included by + default.<br /> + <br /> + </dd> + + <dt><strong>Support for Netscape style SHA1 encrypted + passwords</strong><br /> + </dt> + + <dd>To facilitate migration or integration of BasicAuth + password schemes where the password is encrypted using SHA1 + (as opposed to Apache's built in MD5 and/or the OS specific + crypt(3) function ) passwords prefixed with with + <code>{SHA1}</code> are taken as Base64 encoded SHA1 + passwords. More information and some utilities to convert + Netscape ldap/ldif entries can be found in support/SHA1.</dd> + </dl> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/new_features_1_3.html.html b/htdocs/manual/new_features_1_3.html.html new file mode 100644 index 0000000000..87669a107d --- /dev/null +++ b/htdocs/manual/new_features_1_3.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="new_features_1_3.html.en" --> + diff --git a/htdocs/manual/new_features_1_3.html.ja.jis b/htdocs/manual/new_features_1_3.html.ja.jis new file mode 100644 index 0000000000..23ffd49443 --- /dev/null +++ b/htdocs/manual/new_features_1_3.html.ja.jis @@ -0,0 +1,890 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>New features with Apache 1.3</title> + + </head> + <!-- English revision: 1.91 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache 1.3 の新機能の概要</h1> + + <p>今回のリリ・踉札垢任凌靴靴て団Г箸靴董草痺蒹鹿粡寂蝟赱齠洲痲筵娼の機能性の拡張についてここでは説明します。 + コア部分のコ・踉札匹腓僂錣蠅泙靴燭里如⊇藉離弌ジョンの Apache + (および NCSA httpd) が栄佞韻燭發里任癲⊃靴靴鞜竏綣蝟昭粡竚癈鷭п粐Ьぢでは韻弔韻覆い發里△蠅泙后覆鵑蕕量簑蠅△襴苳詞合には + <a href="misc/compat_notes.html">互換性に関して</a> + でチェックしてください。</p> + + <p>Apache 1.2 からのアップグレ・踉札匹蓿繙就苒痲蜴艤澑潦譬鹿粡寂蝟赱齠洲痲筵娼「アップグレ・踉札匹亡悗靴董を読むと良いでしょう瘢雹。</p> + + <p>拡張: <a href="#core">コア</a> | <a + href="#performance">パフォ・踉札泪鵐踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就c闔肅腆設定</a> | <a href="#mod">モジュ・踉札鹿粡寂蝟赱齠洲痲筵娼蓿繙就a韈▽苳餐佗踉氏鱚羹■迚黹▽苳ぢその側苳鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就竢鱚釶辣就竢鱚▽苳ぢコアの拡張:</a></h2> + + <dl> + <dt><strong><a href="dso.html">Dynamic Shared Object (DSO) + のサポ・踉札闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐孫垰草痺蒹ぢのモジュ・踉札襪鬟蹇ドすることが可能になりました。 + これにより、モジュ・踉札襪鷲廚覆箸世吋機バのメモリ領域に + 読みこまれることになり、Apache + 全体のメモリの使用をかなり減らすことになります。DSO は現在 + FreeBSD, OpenBSD, NetBSD, Linux, Solaris, SunOS, Digital UNIX, + IRIX, HP/UX, UnixWare, NetWare, AIX, ReliantUnix, 純粋な SVR4 + プラットフォ・踉札爐妊汽檗トされています。</dd> + + <dt><strong><a href="windows.html">Windows NT/95 のサポ・踉札鹿粡寂蝟赱齠洲痲筵娼闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐草痺蒹ぢは Windows NT と Windows 2000 をサポ・踉札箸垢襪茲逅擦砲覆蠅泙靴拭鹿粡寂蝟赱齠洲痲筵娼怏鈔阯控晃妖ぢでも Apache は動作するかもしれませんが、 + これらのコンシュ・踉札淦宿覆隆超任了藩僂録筅苳皐していません。 + そして、その使用についての屬蓮▽踉斬験的なものとしたままです。 + Windows 紊覇虻遒靴討いより前のすべてのバ・踉札献腑鵑鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢは、ベ・踉札身派弗踉餐のリリ・踉札垢世塙佑┐討世気ぁ筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉氏鱚羹≪隨蔗迪▽苳暫郤蝟昭粡竚癈鷭п粐Ьぢのサポ・踉札闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉私筅苳餐鞜竏は Windows NT と Windows 2000 紊郤蝟昭粡竚癈鷭п粐Ьぢをサポ・踉札箸垢襪茲逅擦砲覆蠅泙靴拭0堕蠕篆蠕量未蕁鹿粡寂蝟赱齠洲痲筵娼蓿繙就鈔阯鶤蔗迪▽苳思蜴粹ぢ里畔擦擦郤蝟昭粡竚癈鷭п粐Ьぢのバ・踉札献腑鵑鮃洋犬垢戮任后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉氏鱚羹續鱚譬励癇貴蝟昭粡竚癈鷭п粐Ьぢのサポ・踉札闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐草痺蒹ぢは NetWare 5.x + をサポ・踉札箸垢襪茲逅擦砲覆蠅泙靴拭筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉氏鱚羹‰阨鱆纈繽鱧譬鹿粡寂蝟赱齠洲痲筵娼ソ・踉札垢虜胴柔闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐草痺蒹ぢのソ・踉札好侫.ぅ襪郎胴柔気譴泙靴拭草痺蒹鹿粡寂蝟赱齠洲痲筵娼のユ・踉札兇砲箸辰豆踉紫要な変更点は <code>Configuration</code> + における "Module" 行が "AddModule" で置き換わり、 + 構文が景僂錣辰燭海箸任后皀献紂ルの作圓砲箸辰討蓮鹿粡寂蝟赱齠洲痲筵娼ユ・踉札兇皀献紂ルを容易に追加できるよう瘢雹にするための変更が + いくつかなされています。</dd> + + <dt><strong>信頼性のあるパイプされたログ</strong></dt> + + <dd>ほとんどすべての Unix ア・踉札謄船磴鞜竏綣蝟昭粡竚癈鷭п粐Ьぢは「信頼性のある」パイプされたログを <a + href="mod/mod_log_config.html">mod_log_config</a> で汰靴討い泙后鹿粡寂蝟赱齠洲痲筵娼ここで、信頼性のあるとは、ログを犬靴討い觧劵廛蹈札垢鹿粡寂蝟赱齠洲痲筵娼何らかの理由で死んだときに、Apache はサ・踉札仭澗里鮑撞阿垢襪海箸覆鹿粡寂蝟赱齠洲痲筵娼そこから回復してログ用プロセスを再起動することができるという瘢雹意味です。 + 更に、ログを犬靴討い觧劵廛蹈札垢詰まって" しまい、 + パイプを十分な回数読んでいないときも Apache はそれを再起動します。 + これで、ログのロ・踉札董ションやヒットの選別をしたり、複数の vhost + (訳注: バ・踉札船礇襯曠好のログを別々にリアルタイムで分けたり、 + その譴任糧麁唄林ぢ解決をしたりする機会ができます。</dd> + </dl> + <hr /> + + <h2><a id="performance" name="performance">性能の改善</a></h2> + + + <ul> + <li>IP に基づいたバ・踉札船礇襯曠好箸魯魯奪轡絅董ブルを用いて調べられます。</li> + + <li><Directory> 解析の速度向紂薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢ静的なリクエストに対するクリティカルパスのシステムコ・踉札鹿粡寂蝟赱齠洲痲筵娼数が減りました。これは通錣垢戮討離螢┘好箸婆鯲舛泙后鹿粡寂蝟赱齠洲痲筵娼ぢよくチュ・踉札鵑気譴神瀋蠅砲い董窺では静的なリクエストでシステムコ・踉札襪鹿粡寂蝟赱齠洲痲筵娼患ぢあったのに対して、1.3 では 22 です)。</li> + + <li>スル・踉札廛奪噺苳糸のために<a + href="mod/mod_proxy.html#proxyreceivebuffersize"> + <code>ProxyReceiveBufferSize</code></a> ディレクティブは、 + <code>mod_proxy</code> からの外部接続に対して、 + より大きなネットワ・踉札丱奪侫,鰺燭┐泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢ複数の書き込みを一つのシステムコ・踉札襪任垢泙擦襪燭瓩膨礇譽戰鹿粡寂蝟赱齠洲痲筵娼逼のル・踉札船鵑任使用可能であれば) <code>writev</code> + を使う瘢雹よう瘢雹になっています。このル・踉札船鵑任魯瓮皀蠅離丱奪侫,悗鹿粡寂蝟赱齠洲痲筵娼コピ・踉擦發任襪世曳鬚韻討い泙后修侶覯漫腓淵侫.ぅ襪療送に使われる + CPU 時間が覆覆蠅泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢ静的なリクエストは <code>mmap</code> を用いて処理されます。 + これで、バイトはカ・踉札優襪砲茲螢妊好離丱奪侫,薀優奪肇錙クの + バッファへ彫苳酸椒灰圈されるだけになります。プログラムは、 + バイトのあちこちへのコピ・踉擦鬚靴泙擦鵝ぢ使用可能かつテスト + されているときのみ。) それは CPU 時間を減気擦討靴泙い泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢ負荷が急激に増加したとき、サ・踉札个和劵廛蹈札垢魑阿靴董鹿粡寂蝟赱齠洲痲筵娼素早く適応します。</li> + + <li>モジュ・踉札襪鬟妊好僖奪舛垢襯魁ドは API + の特定の部分を汰靴覆ぅ皀献紂ルを繰り返しスキップ + するのを避けるよう瘢雹最適化されています。(デフォルトのモジュ・踉札鹿粡寂蝟赱齠洲痲筵娼を組合せたサ・踉札个離廛蹈侫.ぅ襪任蓮△海離好奪廚侖ぢ時間の + 5% を使用していました。)</li> + + <li>Unix のスコアボ・踉札匹隆浜魁ドを再構成しました。 + これにより、多くの豺腓濃劵廛蹈札垢凌瑤鮨瑤┐觧屬擦覆蠅泙靴拭鹿粡寂蝟赱齠洲痲筵娼以前は各ヒットに対してスキャンが孫圓気譴討い泙靴燭∈鹿粡寂蝟赱齠洲痲筵娼秒に 1 回孫圓気譴泙后B燭了劵廛蹈札垢里△詆蕾戮旅發ぅ機バでは、 + その違いが顕著だと思います。</li> + + <li>新しいシリアライズの方法を選択したことで Linux と IRIX + での性能が改善されました。</li> + + <li><code><a + href="mod/mod_log_config.html">mod_log_config</a></code> はコンパイル時に + バッファへ書き込みをするよう瘢雹に設定できるよう瘢雹になりました。</li> + + <li><code>strncpy()</code> を結果全体を 0 で埋める必要のない + <code>ap_cpystrn()</code> で置き換えました。これは + <code>mod_include</code> の速度に劇的な効果があります。 + </li> + + <li>内部の "table" API (キ・踉ぢ値 の文字列の対を保持するのに使われています) + への追加により、多くの靴悩蚤哀ぢの性能の改善をもたらすよう瘢雹に + なりました。</li> + </ul> + + <p>椶靴う苳諮報は<a href="misc/perf-tuning.html" + >性能についての新しいドキュメント</a> を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就竢鈕蜃釶辣就竢鈕蜃▽苳ぢ設定の拡張</a></h2> + + + <dl> + <dt><strong>サ・踉札个寮瀋螢侫.ぅ襪琉豸飢闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐纃鞜竏窺凱刊蹙苳三つのサ・踉札仞瀋螢侫.ぅ鹿粡寂蝟赱齠洲痲筵娼└踉雌瘢隍苳肢鞣闔网踉晒黶逅黶逅齟蹼竢鈕瘢隍苳錆蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳氏窿纉鶤竢鈕瘢隍苳皐ぢが <samp>httpd.conf</samp> + ファイル一つにまとめられました。<samp>srm.conf</samp> と + <samp>access.conf</samp> ファイルは、ウ瘢雹ェブマスタ・踉擦鹿粡寂蝟赱齠洲痲筵娼黶逅蔗筮竢鈕瘢隍苳を見るよう瘢雹コメントがあるだけで、 + 後は空になっています。 + 更に、まとめられた <samp>httpd.conf</samp> ファイルでは、 + ディレクティブ + がより彫苳惨凝念嫐里△觸臠屬砲覆襪茲逅擦忘胴柔気譴泙靴拭筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳ぢ設定ファイルでの継続した行</strong></dt> + + <dd>設定ファイルにおけるディレクティブの行は Unix + の継続行を扱う瘢雹通錣諒 △垢覆錣棗鹿粡寂蝟赱齠洲痲筵娼をその行の空白以外の最後の文字として置くことで、 + ,旅圓鬚弔覆扱薦踉三を用いて、 + 複数の行に分けることができるよう瘢雹になりました。</dd> + + <dt><strong>Apache Autoconf-style Interface + (APACI)</strong></dt> + + <dd>Apache 1.3 になるまでは、 Apache + パッケ・踉札諺管瑤鯏験靴燭蕕垢阿法▲咼襯匹靴謄ぅ鵐好函ル + するよう瘢雹なバッチ的蟒腓歪鷆,気譴討い泙擦鵑任靴拭鹿粡寂蝟赱齠洲痲筵娼しかし、トップディレクトリにある <code>configure</code> + スクリプトと、それに対応するトップディレクトリの + <code>Makefile.tmpl</code> ファイルで、それが存修気譴泙靴拭鹿粡寂蝟赱齠洲痲筵娼この目的は、GNU の Autoconf 形阿離侫蹈鵐肇┘鵐匹鯆鷆,垢襪海箸任后鹿粡寂蝟赱齠洲痲筵娼そして、これまでの <code>src/Configure</code> 関連要素のバッチ処理と、 + GNU 流のディレクトリ構成でのパッケ・踉札献ぅ鵐好函ルの陸苳司椎修砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼古い設定方法で可能だったものオプションすべてに加えて、Apache + を柔軟にカスタマイズするためのたくさんの新しいオプションが + 使用可能です。<br /> + <strong>注意:</strong> デフォルトのインスト・踉札襪旅柔鞜竏綣蝟昭粡竚癈鷭п粐Ьぢで変更されました。楮戮砲弔い討踉祉閼絋苳子伝塚溺竢鈕蜃絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼と <code>INSTALL</code> ファイルを参箸靴討世気ぁ筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳餐倚竏縢醵蜿俟唏鹿粡寂蝟赱齠洲痲筵娼サポ・踉札肇帖ル</strong></dt> + + <dd>Apache は孫垰瘢蜒葹鱚閧裙笏柘路ぢファイルから + モジュ・踉札襪鬟蹇ドすることを完全にサポ・踉札箸垢襪茲逅擦砲覆蠅泙靴拭鹿粡寂蝟赱齠洲痲筵娼そこで、DSO に基づいたモジュ・踉札襪鞜竏のソ・踉札垢箸亙未陸苳詞所で + ビルド、インスト・踉札襦▲▲謄峅修鮃圓覆逅賛靴靴ぅ汽檗トツ・踉札蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳氏頽鵙踉晒竢粤ぢが作成されました。これにより、プラットフォ・踉札鹿粡寂蝟赱齠洲痲筵娼に依存した DSO ビルド用のコマンドはユ・踉札兇藉袷瓦鳳気譟草痺蒹鹿粡寂蝟赱齠洲痲筵娼のソ・踉札好張蝓の外でモジュ・踉札襪鬟咼襯匹垢襪海箸動廚砲覆辰討い泙后鹿粡寂蝟赱齠洲痲筵娼これを達成するために、APACI は Apache の C のヘッダファイルを + <code>apxs</code> と一緒にインスト・踉札襪靴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹∫銖跛譯蜴齡瘡跚鈑▽苳殺踉雌闔胼苳餐鞜竏綣蝟昭粡竚癈鷭п粐Ьぢのデフォルトディレクトリパスを <code>/usr/local/apache/</code> + へ変更</strong></a><br /> + </dt> + + <dd>Apache のデフォルトの ServerRoot ディレクトリが、NCSA 互換の + <code>/usr/local/etc/httpd/</code>から + <code>/usr/local/apache/</code> に変更されました。 + これはデフォルトの設定 (とドキュメント) の変更だけです。もちろん、 + Apache を起動するときに <a href="invoking.html">-d + <em>ServerRoot</em> と -f <em>httpd.conf</em></a> + を指定することで変更することができます。</dd> + + <dt><strong>HTTP/1.1 + 形阿離弌チャルホストの改善</strong></dt> + + <dd><a + href="mod/core.html#namevirtualhost"><code>NameVirtualHost</code></a> + という瘢雹新しいディレクティブを使用して IP アドレス:ポ・踉札鹿粡寂蝟赱齠洲痲筵娼の対を指定することで、HTTP/1.1 形阿離弌チャルホストを存修靴泙后鹿粡寂蝟赱齠洲痲筵娼これはクライアントからの <code>Host:</code> ヘッダに基づく + バ・踉札船礇襯曠好箸任后0柄阿呂海離▲疋譽垢楼徒曚里逅擦舛縫泪轡鵑鹿粡寂蝟赱齠洲痲筵娼ぢメインアドレス" と同じにしていましたが、これは数多くの問題を引き起こし、 + また機能も十分ではありませんでした。設定の楮戮砲弔い鹿粡寂蝟赱齠洲痲筵娼蓿繙就闢「Apache バ・踉札船礇襯曠好肇疋絅瓮鵐函鹿粡寂蝟赱齠洲痲筵娼を参箸靴討世気ぁ筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳刺釿跿粤閼絋苳ディレクティブ</strong></dt> + + <dd>設定ファイルのパ・踉札垢療喘罎踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯蜴竚紜竢粤侮竚絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブに出会う瘢雹と、 + 彫苳擦舛紡の設定ファイルをその貊蠅冒淨靴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳ぢバ・踉札船礇襯曠好箸寮瀋蠅離妊丱奪阿里燭瓩喙蝟昭粡竚癈鷭п粐Ьぢコマンドラインオプション</strong></dt> + + <dd>コマンドラインオプション <code>-S</code> を付けて Apache + を起動すると、<code>VirtualHost</code> + をどのよう瘢雹にパ・踉札垢靴燭箸い逅殺苳諮報を表┐靴泙后鹿粡寂蝟赱齠洲痲筵娼これはバ・踉札船礇襯曠好箸寮瀋蠅鬟妊丱奪阿靴茲逅擦箸垢襴苳詞合に便利です。 + </dd> + + <dt><strong>HTTP メッソドの制御</strong></dt> + + <dd><a href="mod/core.html#limitexcept"><LimitExcept> + と </LimitExcept></a> はアクセス制御命令のグル・踉札廚魄呂漾鹿粡寂蝟赱齠洲痲筵娼引数として指定していない HTTP + アクセスメソッドについてそのアクセス制御命令が適用されます。 + すなわち、これは <Limit> セクションの逆で、 + 標準のメソッドと非標準ないしは認韻任覆鹿粡寂蝟赱齠洲痲筵娼メソッドの陸苳司鮴罎垢襪燭瓩忙箸逅擦海箸任泙后筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就迴笄瘢綵閼▽苳ぢモジュ・踉札襪粒板界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閼閼燻繚阡蛛闔譬齡鳫鈑迴籖鈬苡癆蜿郤蝟昭粡竚癈鷭п粐Ьぢの改善</strong></a><br /> + </dt> + + <dd>オプショナルのコンテントネゴシエ・踉札轡腑藍踉蛄蜈蝟昭粡竚癈鷭п粐Ьぢモジュ・踉札襪鞜竏窺凱で全体的に修正され、最新の HTTP/1.1 + 改訂版と存嚇特温と RFC 2296 の Transparent Content + Negotiation 機能が追加されました。 + </dd> + + <dt><a href="mod/mod_speling.html"><strong>NEW - + 綴り修正モジュ・踉札訳注: mod_speling)</strong></a><br /> + </dt> + + <dd>このオプショナルなモジュ・踉札襪蓮▲機バから要求された + ドキュメントのパス巳苳擦任靴个靴亳蕕譴訥屬蠅簑臺源苳皿文字の + 間違いを修正します。</dd> + + <dt><a href="mod/mod_setenvif.html"><strong>NEW - + 魴鑄佞超竸瑤寮瀋訳注: mod_setenvif)</strong></a><br /> + </dt> + + <dd><a + href="mod/mod_setenvif.html#setenvif"><code>SetEnvIf</code></a> + ディレクティブと <a href="mod/mod_setenvif.html#setenvifnocase"> + <code>SetEnvIfNoCase</code></a> ディレクティブが追加されました。 + これにより、リクエストの属性に応じてサ・踉札个派鹿粡寂蝟赱齠洲痲筵娼の環境変数を設定することができます。</dd> + + <dt><strong><a href="mod/mod_mime_magic.html">NEW - "Magic" + MIME タイプ (訳注: mod-mime_magic)</a></strong></dt> + + <dd>オプショナルな <code>mod_mime_magic</code> が追加されました。 + このモジュ・踉札襪蓮ぢマジックナンバ・踉やファイルの内容から + 得られる霾鵑鮖藩僂靴董丶苳旨となるコンテンツの属性を調べます。 + この霾鵑蓮▲侫.ぅ襪粒板セ劼蕕修離侫.ぅ襪離瓮妊▲織ぅ廚鹿粡寂蝟赱齠洲痲筵娼決定できない豺腓忙藩僂気譴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉氏鱚羹閼閼熾鉗髟縷蜆譬療蝟昭粡竚癈鷭п粐Ьぢ一意に永眠椎修ぢ訳注: mod_unique_id)</a></strong></dt> + + <dd><a href="mod/mod_unique_id.html">mod_unique_id</a> + mod_unique_id を組み込むことで、あるヒットと側苳擦離劵奪箸箸魘菠未垢鹿粡寂蝟赱齠洲痲筵娼ユニ・踉札弗踉傘別子を生成するよう瘢雹になります (ここでの 「ユニ・踉札福鹿粡寂蝟赱齠洲痲筵娼にはいくつか制限があります。) その永婿劼蓮超竸鹿粡寂蝟赱齠洲痲筵娼竢粤嬶頻嫖濾彫踉晒竢粤ぢとして参箸垢襪海箸任泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳詩閼熕鳫ぢの拡張:</strong></dt> + + <dd> + <ul> + <li>ftp proxy のログインでのより簡単かつ安全な認ぢ接続先の + ftp サ・踉札个弋瓩靴討い襪里法孀として ftp にユ・踉札玉と + パスワ・踉札匹慊蠅気譴討い覆う苳詞合、Apache は "[401] Authorization + Required" ステ・踉札織垢鯤屬垢茲逅擦砲覆蠅泙靴拭海離好董タスコ・踉札匹鹿粡寂蝟赱齠洲痲筵娼クライアントが右踉肢ると、通錣蓮屮罅ザ巳苳擦肇僖好錙ドを入力 + してください」という瘢雹ダイアログを表┐掘△修海覇呂気譴鹿粡寂蝟赱齠洲痲筵娼ユ・踉札暁Е苳孜を用いたリクエストが再び行なわれます。こう瘢雹することで、 + リクエスト URL に認擘苳諮報を含ませて指定する方法 (古い proxy + サ・踉札个任亙進犬妊蹈阿傍燭気譴討靴泙逅参椎柔△蠅泙蝟昭粡竚癈鷭п粐Ьぢよりも禊外汰瓦砲覆辰討い泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢ新規の <samp>AllowCONNECT</samp> ディレクティブにより、proxy + CONNECT メソッドが接続可能なポ・踉札箸慊蠅任襪茲逅擦砲覆蠅泙靴拭鹿粡寂蝟赱齠洲痲筵娼これにより、Apache 1.3.2 以前ではエラ・踉札瓮奪察ジが返されていた + https://some.server:8443/ について proxy + することができるよう瘢雹になります。</li> + + <li>RFC2068 で指定されている HTTP/1.1 の "Via:" ヘッダを + サポ・踉札箸垢襪茲逅擦砲覆蠅泙靴拭卦踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖頏陂蔗迪p鳫瓣竢粤會陂蛛閼絋苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブで "Via:" のサポ・踉札箸離ぢオフを切り替えることができます。 + また、プライバシ・踉殺苳糸の理由から、外に出て行くヘッダから "Via:" + を削るよう瘢雹にすることができます。</li> + + <li>HTTP/1.1 で規定されている "Max-Forwards:" TRACE + ヘッダをサポ・踉札箸垢襪茲逅擦砲覆蠅泙靴拭修譴砲茲蝓ぢ側苳擦鳫鹿粡寂蝟赱齠洲痲筵娼サ・踉札个任皀汽檗トしていれば) プロキシ・踉擦力∈燭鬚燭匹辰鹿粡寂蝟赱齠洲痲筵娼リクエストのパスをトレ・踉札垢垢襪海箸任泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹閼閼熕鳫譯鈿頏陂竢粤麗會陂踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブと <a href="mod/mod_proxy.html#proxydomain"><code + >ProxyDomain</code></a>ディレクティブが追加されました。 + イントラネットでの利用に便利です。</li> + + + <li><code><a href="mod/mod_proxy.html#proxypassreverse" + >ProxyPassReverse</a></code> ディレクティブ命令が新規に追加されました。 + これにより、HTTP のリダイレクトレスポンスにおける <tt>Location:</tt> + ヘッダ中の URL を調整することができます。</li> + + <li>FTP サ・踉札个離妊譽肇螢張蝓での移動が、より簡単になりました。</li> + </ul> + </dd> + + <dt><a href="mod/mod_include.html#flowctrl"><strong><code + >mod_include</code>の文字列比較の拡張</strong></a><br /> + </dt> + + + <dd>文字列に基づいた server-side include (SSI) のフロ・踉酸鹿粡寂蝟赱齠洲痲筵娼ディレクティブに未満 (<)、以王踉逅詞秋、より大きい (>)、 + 以逅紫秋ぢが含められました。以前は等しいか等しくないかの + 比較しかできませんでした。</dd> + + + <dt><strong>ServerRoot からの相対パスでの auth ファイル巳苳算慊闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐様々な認撻皀献紂ルの auth ファイル巳苳擦了慊蠅蓮鹿粡寂蝟赱齠洲痲筵娼フルパスで無い豺腓纈鰔闖からの相対パスとして + 扱われるよう瘢雹になりました。</dd> + + + <dt><a href="mod/mod_autoindex.html"><strong + >ディレクトリのインデックスの拡張:(訳注: mod_autoindex)</strong></a></dt> + + <dd> + <ul> + <li><strong>コ・踉札匹諒墾踉晒齡鳫鈑踉祉閼絋苳詩閼焙蜥閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢモジュ・踉札襪▲妊譽肇蠅離ぅ鵐妊奪好侫.ぅ襪魄靴逅踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖粡鬯蔗迪▽苳詩閼焙蜥ぢと、 + ディレクトリ内のファイル一覧を作成する <a + href="mod/mod_autoindex.html">mod_autoindex</a> + の二つに分割されました。これにより、クリティカルなサ・踉札个鹿粡寂蝟赱齠洲痲筵娼インデックスの機能を外すことができます。</li> + + <li><strong>ソ・踉札伐椎墾踉晒齡鳫鈑ぢカラムのタイトルを + クリックするとそのカラム値によるリストのソ・踉札箸鮃圓覆い泙后鹿粡寂蝟赱齠洲痲筵娼この機能は <a href="mod/mod_autoindex.html#indexoptions" + >IndexOptions</a> の <code>SuppressColumnSorting</code> + キ・踉札錙ドで無効にできます。 + </li> + + <li>README.html ファイルに HTML のヘッダが記述されている豺腓蓮鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖癜蜴粤蔗迪i鈔纔關闔鷓齦韶鱚齠蔗迪頏縺轤跂⊆蝟昭粡竚癈鷭п粐Ь苳殺踉祉閼絋苳殺踉雌闔胼苳屍頏纉麋塒茂鱚瘢碎絋踉晒齡鳫鈑閼絋苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢを使う瘢雹ことができます。 + </li> + + <li>The <a href="mod/mod_autoindex.html#indexoptions" + ><code><strong>IndexOptions</strong></code></a> + ディレクティブは、キ・踉札錙ド引数に対して + インクリメンタルプレフィックスを使用できるよう瘢雹になりました + (<a href="mod/core.html#options">Options</a> ディレクティブと同様に、 + 機能に対するキ・踉札錙ドの機能の追加を +/- で指定します)。 + これにより、同じディレクトリに適用される複数の IndexOptions + ディレクティブを一つにまとめることができます。</li> + + <li><a href="mod/mod_autoindex.html#indexoptions:iconheight" + ><strong><code>IconHeight</code></strong></a> と <a + href="mod/mod_autoindex.html#indexoptions:iconwidth" + ><strong><code>IconWidth</code></strong></a> + でディレクトリの一覧表┐任踉祉閼絋苳殺瘢雹踉刺庸逅紫閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢタグの height 属性と width 属性を設定できます。 + </li> + + <li><a href="mod/mod_autoindex.html#indexoptions">IndexOptions</a> + ディレクティブに新規に追加された <a + href="mod/mod_autoindex.html#indexoptions:namewidth" + ><strong><code>NameWidth</code></strong></a> キ・踉札錙ドで、<a + href="mod/mod_autoindex.html#indexoptions:fancyindexing" + >"凝った" ディレクトリ内容一覧</a> の桁数を設定できます。 + アスタリスク `*' に設定すると、巳苳餐訳注: Name の部分) + の幅は暗膨汗阿気譴泙后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹閼閼焉濶鈔纔譯聲釿鈔纔蜴腆鹿粡寂蝟赱齠洲痲筵娼黶逅那釿鈔纔蜴胼踉晒黶逅ぢディレクティブは設定済みの + <samp>IndexOptions</samp> + ディレクティブの効果を置き換えてしまう瘢雹ことなく、正しく + <a href="mod/mod_autoindex.html#indexoptions:fancyindexing" + ><samp>IndexOptions FancyIndexing</samp></a> + と同じ効果になるよう瘢雹になりました。</li> + + <li>1.3.15 からは、IndexOptions に <a + href="mod/mod_autoindex.html#indexoptions:trackmodified"><samp>TrackModified</samp + ></a> ディレクティブが含まれている豺腓蓮▲機バはディレクトリの + リクエストを韻燭箸法▲礇奪轡紊鮴罎垢壤と LastModified + を付けて返します。そのリクエストが変更されていないとクライアント + が判断したときには、サ・踉札个呂修琉賤鮴言垢詆廚△蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼これにより、性能が向紊靴泙后海竜’修櫓踉斬験的なものなので、 + デフォルトでは使用可能にはなっていません。</li> + </ul> + </dd> + + <dt><strong>CGI スクリプトの出力のバッファリングの減闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐以前のバ・踉札献腑鵑鞜竏では、CGI スクリプトからの出力は、 + サ・踉札个睇縫丱奪侫,鬚靴討い董▲丱奪侫,貲佞砲覆襪派鹿粡寂蝟赱齠洲痲筵娼スクリプトが終了するまではクライアントに送られませんでした。 + Apache 1.3 では、クライアントへのデ・踉札燭離丱奪侫,蓮鹿粡寂蝟赱齠洲痲筵娼バッファ中に何かがあって、サ・踉札个好螢廛箸蕕里気蕕覆觸侘呂鹿粡寂蝟赱齠洲痲筵娼待っているときにいつでもフラッシュされます。これにより、CGI + スクリプトは長い処理操作の間に部分的なステ・踉札織絞鷙陲椎修砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉氏鱚羹閼閼焉跚癈譬竢粤糟蛛鵙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼と <code>Redirect</code> での正規表現のサポ・踉札闔胼苳纂蝟昭粡竚癈鷭п粐Ь踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐新規の <a + href="mod/mod_alias.html#aliasmatch"><code>AliasMatch</code></a>, + <a + href="mod/mod_alias.html#scriptaliasmatch"><code>ScriptAliasMatch</code></a>, + と <a + href="mod/mod_alias.html#redirectmatch"><code>RedirectMatch</code></a> + ディレクティブで、正規表現でのパタ・踉札鵐泪奪舛鮖慊蠅任襪茲逅擦砲覆蠅泙靴拭鹿粡寂蝟赱齠洲痲筵娼更に、新規の <a + href="mod/core.html#directorymatch"><code><DirectoryMatch></code></a>, + <a + href="mod/core.html#locationmatch"><code><LocationMatch></code></a>, + <a + href="mod/core.html#filesmatch"><code><FilesMatch></code></a> + セクションにより、 + 正規表現を用いたセクション指定ができる新しい構文が提供されます。</dd> + + <dt><strong><a + href="mod/mod_info.html">mod_info</a> への <a + href="mod/mod_info.html#addmoduleinfo"><code>AddModuleInfo</code></a> + ディレクティブの追加</strong></dt> + + <dd>指定されたモジュ・踉札襪砲弔い董拾踉雑させる追加霾鵑鮖慊蠅任襪茲逅擦鹿粡寂蝟赱齠洲痲筵娼なりました。</dd> + + <dt><strong><code>TransferLog</code> が無い豺腓離蹈愛踉持集の抑制</strong> + </dt> + + <dd><a href="mod/mod_log_config.html#transferlog" + ><code>TransferLog</code></a> ディレクティブが無い豺腓魯蹈阿鹿粡寂蝟赱齠洲痲筵娼犬気譴泙擦鵝海譴和のログ用モジュ・踉札襪箸龍逅四僂鬟汽檗トします。 + </dd> + + <dt><strong>ログの書阿北前を付ける機能</strong></dt> + + <dd><a + href="mod/mod_log_config.html#logformat"><code>LogFormat</code></a> + ディレクティブが拡張され、特定のログフォ・踉札泪奪箸縫縫奪諭ムを + 付けることを可能になりました。毎回ログフォ・踉札泪奪箸諒源鵑鮟颪紊錣蠅法鹿粡寂蝟赱齠洲痲筵娼このニックネ・踉札爐鯊の <code>LogFormat</code> ディレクティブの指定や + <a href="mod/mod_log_config.html#customlog" + ><code>CustomLog</code></a> ディレクティブの指定で使う瘢雹ことができます。 + </dd> + + <dt><strong>魴鑄佞蹈愛踉持集</strong></dt> + + <dd><a href="mod/mod_log_config.html#customlog-conditional" + >mod_log_config</a> が環境変数に基づいたログ犬鬟汽檗ト + するよう瘢雹になりました。mod_log_referer と mod_log_agent + は使用しないことが推気譴討い泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳詩閼焜纈釼辣鹿粡寂蝟赱齠洲痲筵娼をディレクトリ毎に設定可能</strong></dt> + + <dd><a href="mod/mod_cern_meta.html">mod_cern_meta</a> + をディレクトリ毎に設定することができるよう瘢雹になりました。</dd> + + <dt><strong><a href="mod/mod_rewrite.html#rewritemap" + ><code>RewriteMap</code></a>ディレクティブの新しいマップタイプ</strong> + </dt> + + <dd>mod_rewrite の <code>RewriteMap</code> + ディレクティブに新しいマップ型 `Randomized Plain Text' と + `Internal Function' が追加されました。これらのマップ型は + 二つの機能を提供します: 一つは、書き換え用マップで参箸気譴鹿粡寂蝟赱齠洲痲筵娼値から対応する値をランダムに選択することができるよう瘢雹になりました + (Reverse Proxy において、バックエンドのサ・踉札个鯀乢苳詞合に便利です)。 + もう瘢雹一つは、URL の一部を大文字か源里匹舛蕕吠儡垢垢襪海箸鹿粡寂蝟赱齠洲痲筵娼できるよう瘢雹になりました (mod_rewrite を用いて大規模な + バ・踉札船礇襯曠好謄鵐阿鮃圓覆逅殺苳詞合に便利です)。</dd> + + <dt><strong>CIDR と Netmask によるアクセス制御</strong></dt> + + <dd><a href="mod/mod_access.html">mod_access</a> + ディレクティブは CIDR (Classless Inter-Domain Routing) + 形阿離廛譽侫奪垢了慊蠅函賓ぢのアクセスリストの制御を + より細かく設定できるネットマスクをサポ・踉札箸垢襪茲逅擦砲覆蠅泙靴拭筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就瘰蘂瘢綵≡韈▽苳餐佗ぢの追加と変更</a></h3> + + <p>モジュ・踉札觝遉踉市とコ・踉札疋魯奪向け霾墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳祉蓍趙煢鉗熙踉晒竢粤闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐∵縺繪艾頏閭纉鵞ぢにつき1回呼ばれる Apache API + の新規フェ・踉札困任后海慮紊妊螢┘好箸僚萢鮃圓覆い泙后鹿粡寂蝟赱齠洲痲筵娼これをすることで、モジュ・踉札襪廛蹈札綱茲帽圓覆逅刺廚里△襪海箸鹿粡寂蝟赱齠洲痲筵娼すべて設定することができます。 + たとえば、デ・踉札織戞スへの接続があります。</dd> + + <dt><strong><code>child_exit</code></strong></dt> + + <dd>"heavy-weight process" につき1回呼ばれる新規のフェ・踉札困如鹿粡寂蝟赱齠洲痲筵娼プロセスの終了時に呼ばれます。致命的な靴任鹿粡寂蝟赱齠洲痲筵娼ぢたとえばセグメンテ・踉札轡腑鵐侫ルトや kill -9 された豺蝟昭粡竚癈鷭п粐Ьぢ呼ばれないことに注意してください。<code>child_init</code> 関数と + <code>child_exit</code> 関数は、子プロセスの生存期間と (Apache + が回復できる見込みのない完全に致命的なイベントを除いて) + 同じ生存期間を持つプ・踉札襪鯏呂気譴泙后B丶苳使的に、モジュ・踉札襪鹿粡寂蝟赱齠洲痲筵娼竢粤蜴蜚閼絋苳関数は親プロセスが終了したり再起動したりすると + 談任垢襯廖ルを渡されます。</dd> + + <dt><strong><code>child_terminate</code></strong></dt> + + <dd>現在のリクエストを終了した後に子プロセスが終了すべきであることを + ┐垢燭瓩忙劵廛蹈札垢濃箸錣譴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳賜繚蜩鰡阡蒹鰡竏蛹筅踉晒竢粤闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐竢粤蔗熏瘟隨荀踉晒竢粤ぢを参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼これは親プロセスで使用し、監視する子プロセスを登録します。 + 親プロセスは与えられたコ・踉札襯丱奪愎瑤胞苳歯態を報告します。 + この関数を使用すると、モジュ・踉札襪言垢觧劵廛蹈札垢蓮鹿粡寂蝟赱齠洲痲筵娼蔗の側苳擦了劵廛蹈札垢閥逅擦亡道襪気譴襪茲逅擦砲覆蠅泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳諮蜷繖煬閾閼絋苳殺踉晒齡鳫鈑熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉祉閼絋苳肢鞏跫膊荀踉晒竢粤ぢを参箸靴討世気ぁ海佗鹿粡寂蝟赱齠洲痲筵娼は、パイプされたログを汰垢襪燭瓩龍逅残未離魁ドを提供します。 + 特に、ア・踉札謄船磴汽檗トしている豺腓纃つまり</em> + 現時点では Unix)、信頼性のあるパイプされたログを汰靴討い泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳ぢスコアボ・踉札匹侶薦踉三変更</strong></dt> + + <dd>スコアボ・踉札匹侶薦踉三はかなり変更されました。 + 普通スコアボ・踉札匹頏蝟癆紜ぢなインタ・踉札侫Аスだとされているので、 + ここでは匆陲垢襪砲箸匹瓩討泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳雌續煬癈迴粡肅繖閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢを三つに分割</strong></dt> + + <dd>古い <code>set_last_modified</code> 関数は、 + <code>Last-Modified</code> ヘッダや、<code>Etag</code> ヘッダの設定、 + (If-Modified-Since のよう瘢雹な ) 魴鑄佞螢┘好箸僚萢覆鼻鹿粡寂蝟赱齠洲痲筵娼複数の仕事をしていました。これらの機能は三つの関数、 + <code>set_last_modified</code>, <code>set_etag</code>, + <code>meets_conditions</code> に分割されました。 + <code>meets_conditions</code> 関数の処理を簡単にするために + <code>requrest_rec</code> 構造体に <code>mtime</code> + がフィ・踉札襯匹媛辰気譴泙靴拭筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳ぢエラ・踉札蹈愛踉持集用の新規関数: + <code>ap_log_error</code></strong></dt> + + <dd>ログ戸僂慮鼎ご愎瑤呂垢戮独鷽筅苳皐となっています。 + これらの関数を <code>ap_log_error</code> + という瘢雹単独の関数で置き換えよう瘢雹としています。 + これはまだ作業中です。</dd> + + <dt><strong>設定解析のための + <code>set_file_slot</code></strong></dt> + + <dd><code>set_file_slot</code> ル・踉札船鵑蓮鹿粡寂蝟赱齠洲痲筵娼絶対パスになっていないパスの前に ServerRoot + を追加するための標準ル・踉札船鵑鯆鷆,靴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳諮闢鱚痲熬繿齡閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢモジュ・踉札佗闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐このリクエストフェ・踉札困魯螢┘好ヘッダ) + を読み込んだ彫苳燦紊筺睇凜螢瀬ぅ譽箸鮑鄒靴芯後に起こります。 + その後の段階に影響する環境変数を設定するために一番役に立ちます。 + </dd> + + <dt><strong><code>psocket</code> と + <code>popendir</code></strong></dt> + + <dd>socket の生成において、競合屬海蕕覆い茲逅擦縫螢宗スの + トラッキングをする <code>psocket</code> 関数と <code>pclosesocket</code> + 関数が用意されました。同様に、<code>popendir</code> 関数と + <code>pclosedir</code> 関数はディレクトリの読み込みを保護します。</dd> + + <dt><strong><code>is_initial_req</code></strong></dt> + + <dd>リクエストが初期リクエスト (<em>すなわち</em>、 + クライアントから来るもの)であるかどう瘢雹かを判定します。</dd> + + <dt><strong><code>kill_only_once</code></strong></dt> + + <dd><code>ap_spawn_child</code> 関数のオプションで、 + Apache が子プロセスを積極的に kill しよう瘢雹とすることを抑制します。 + </dd> + + <dt><strong><code>alloc デバッグ用コ・踉札閼絋苳殺踉晒齡鳫鈑熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳殺踉祉閼絋苳餐面話瀋殿嫻閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢを定義すると原始的なメモリデバッガが提供されます。 + これを使う瘢雹豺隋∪限乎罎離機バに与える影響が覆僂澆泙后鹿粡寂蝟赱齠洲痲筵娼それは、割り当てられてるメモリおよび解放されるメモリのバイト数をすべて + 0xa5 に設定します。<code>ALLOC_USE_MALLOC</code> を定義すると、 + alloc コ・踉札匹修譴れのオブジェクトに対して <code>malloc()</code> + と <code>free()</code> を使う瘢雹よう瘢雹になります。これはずっとコストが高く、 + Electric Fence や Purify のよう瘢雹なツ・踉札襪鮖箸辰謄謄好箸鬚垢襪箸砲里鹿粡寂蝟赱齠洲痲筵娼使われるべきものです。楮戮踉祉閼絋苳詩瘟遲瘡跫祟礒踉晒竢粤ぢを参箸靴討世気ぁ筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳氏鞏竦遉踉晒竢粤闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐新しい <code>strncpy</code> のよう瘢雹なものですが、バッファ全体を + 0 で満たす必要が無いために <code>strncpy</code> + よりずっと速い点で禊外磴い泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳飼痰跂焉粐遉踉晒竢粤竢粤碎縷黼閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼竢粤碎縷辣鱧緕閼絋苳殺踉晒齡鳫鈑熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢこれらの新しい関数は、引数に対して <code>pstrdup</code> + を呼び<strong>ません</strong>。これは大きな速度向紊鬚發燭蕕靴泙后鹿粡寂蝟赱齠洲痲筵娼コ・踉札匹修譴蕕鯏擇忙藩僂靴討い襪海箸魍里瓩襪燭瓩離妊丱奪阿鹿粡寂蝟赱齠洲痲筵娼サポ・踉札箸發△蠅泙后苳施しい霾鵑踉祉閼絋苳雌鱆帆稜途閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢを参箸靴討世気ぁ筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳祉闔齡鴣笏熾鳰閼絋苳殺踉晒齡鳫鈑熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢこの関数のプロトタイプが <code>server_rec *</code> から + <code>request_rec *</code> を引数として茲襪茲逅擦吠僂錣蠅泙靴拭鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳紫續燗纈鰡釶辣閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼竢粤艱黼鴟纈熕闥熙踉晒竢粤闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐リクエストに対応するサ・踉札侈とポ・踉札犯峭罎鬢踉肢得する際に + <a href="mod/core.html#usecanonicalname">UseCanonicalName</a> + ディレクティブを扱う瘢雹ためのラッパ・踉擦任后鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉祉閼絋苳氏鞏碵鞜焜蓍趙閼絋苳と + <code>ap_call_exec</code> のプロトタイプの変更</strong></dt> + + <dd>Win32 で子プロセスが正しく動作するよう瘢雹に、 + <code>spawn</code> 関数 (<code>ap_bspawn_child</code> + に渡される) と <code>ap_call_exec</code> 関数に + <code>child_info *</code> を追加しました。 + また、<code>spawn_child_err</code> を単に + <code>ap_spawn_child</code> で置き換え、 + <code>spawn_child_err_buff</code> を単に + <code>ap_bspawn_child</code> で置き換えることで、 + 関数巳苳擦鬢苳晒し整理しました。</dd> + + <dt><strong><code>ap_add_version_component()</code></strong> + </dt> + + <dd>この API 関数は <code>Server:</code> + ヘッダに出力されるサ・踉札丱函クンを、 + モジュ・踉札襴踉捌身が追加できるよう瘢雹にします。以前の 1.3beta + バ・踉札献腑鵑任魯灰鵐僖ぅ觧踉祉閼絋苳撮粤肅鈬閼絋苳された + <code>SERVER_SUBVERSION</code> を定義してこの機能を存修靴討い泙靴拭鹿粡寂蝟赱齠洲痲筵娼ト・踉札鵑踉斬際に表┐気譴襪匹逅擦録靴靴踉祉閼絋苳屍纐纈夬諷銖閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブで制御されます。</dd> + </dl> + <hr /> + + <h3><a name="misc" id="misc">その側苳擦粒板界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私讀苳纂蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳殺踉氏鱚羹√矣粡祟蔗迪▽苳斬啣旭渥腕を孫圓靴討い鹿粡寂蝟赱齠洲痲筵娼殿団秒ぢメインフレ・踉札爛泪轡鵑悗琉椰闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐ぢ訳注: メインフレ・踉札爛泪轡鵑悗琉椰△ぢ蟷呂瓩箸靴董鹿粡寂蝟赱齠洲痲筵娼このバ・踉札献腑鵑鞜竏では、EBCDIC 文字セットを + ネイティブコ・踉札疋札奪箸箸靴道藩僂垢襯瓮ぅ鵐侫譟ムマシンへの + 移植のベ・踉札身任佞い討い泙病湧街互換のプロセッサ・踉殺苳糸で + BS2000/OSD オペレ・踉札謄鵐哀轡好謄爐鬢踉斬行している SIEMENS + のメインフレ・踉札爛侫.潺蝓です。このメインフレ・踉札爐喙蝟昭粡竚癈鷭п粐Ьぢは、最近では SVR4 ライクの POSIX のサブシステムの機能があります)。</dd> + + <dt><strong><a + href="mod/core.html#accessfilename"><code>AccessFileName</code> + の拡張</a></strong></dt> + + <dd><code>AccessFileName</code> ディレクティブは、複数のファイル巳苳擦鹿粡寂蝟赱齠洲痲筵娼栄佞韻襪茲逅擦砲覆蠅泙靴拭海譴砲茲蝓瞭を用いて複数の Apache + サ・踉札个妊據ジを提供しているサ・踉札个任寮瀋蠅鳳犬織▲札垢鮴瀋鹿粡寂蝟赱齠洲痲筵娼できるよう瘢雹になります。(訳注: NFS を用いて、同じコンテンツ空間を複数の + サ・踉札个廼逅四靴討い襪函△修譴蕕離機バの AccessFileName が同じとは限りません。 + 共瘢雹有しているコンテンツに対するアクセス制御は同じ設定を使いたいときに、 + この機能が役に立ちます)。</dd> + + <dt><strong><code>HostnameLookups</code> のデフォルトを "Off" に変更</strong></dt> + + <dd><a + href="mod/core.html#hostnamelookups"><code>HostnameLookups</code></a> + ディレクティブはデフォルトで "Off" になりました。明郤蝟昭粡竚癈鷭п粐Ьぢにしない限り、サ・踉札个アドレスの巳苳餐芦魴茲鮃圓覆錣覆い箸い逅擦海箸任后鹿粡寂蝟赱齠洲痲筵娼この変更はインタ・踉札優奪箸砲い討鯢塢廚林ぢトラフィックを + 発生させないために行なわれました。</dd> + + <dt><strong>DNS の二重逆引きの強制機能</strong></dt> + + <dd><a + href="mod/core.html#hostnamelookups"><code>HostnameLookups</code></a> + ディレクティブは DNS の二重逆引きをサポ・踉札箸垢襪茲逅擦砲覆蠅泙靴拭鹿粡寂蝟赱齠洲痲筵娼竦燉鱇韶纈ぢの用語では <em>PARANOID</em> として知られているものです)。 + IP アドレスに対して逆引きを行ない、さらに正引きして得られる IP + アドレスのリストに元の IP アドレスが含まれていれば、 + 二重逆引きのテストを通過します。HostnameLookup の設定に関わらず、 + <a href="mod/mod_access.html">mod_access</a> アクセス制御の設定で DNS + 巳苳擦鮖藩僂靴討い襴苳詞合、すべての巳苳餐阿林ぢの二重逆引きテストに合格する + ことを<strong>要求</strong>します。(以前のバ・踉札献腑鵑鞜竏では、DNS + の二重逆引きを可能にするためにコンパイル時のスイッチが必要でした。)</dd> + + <dt><strong>LogLevel と syslog のサポ・踉札闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐草痺蒹ぢは<a + href="mod/core.html#loglevel">エラ・踉擦離蹈愛踉持集レベルを設定</a> + できる機能が追加されました。また、<a href="mod/core.html#errorlog">syslogd(8) + によるエラ・踉擦離蹈愛踉持集</a>をサポ・踉札箸垢襪茲逅擦砲覆蠅泙靴拭筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳ぢ標準入力/標準出力/標準エラ・踉蚕侘呂蕕寮變イ闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐草痺蒹ぢは、ブ・踉札隼防現狷ぢ標準出力/標準エラ・踉蚕侘呂鹿粡寂蝟赱齠洲痲筵娼切り離すよう瘢雹になりました。標準エラ・踉蚕侘呂蓮∪瀋螢侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼読み込みに成功するまで切り離しません。ですから、設定ファイルの + エラ・踉擦鰐椶砲垢襪海箸砲覆襪任靴腓逅察海譴砲茲蝓鴦や crontab + で Apache を起動しやすくなっているはずです。</dd> + + <dt><a name="y2k" id="y2k"><strong>2000 年問題の改善</strong></a></dt> + + <dd><a + href="mod/mod_include.html"><code>mod_include</code></a> + で使われるデフォルトの <code>timefmt</code> + 文字列が、以前使われていた 2 桁ではなく 4 桁を使う瘢雹よう瘢雹に + 修正されました。<a href="mod/mod_autoindex.html" + ><code>mod_autoindex</code></a> モジュ・踉札襪瘤笙侮粤蝟昭粡竚癈鷭п粐Ьぢされたディレクトリ一覧表┐ぢ桁の年を表┐垢襪茲逅擦暴だ気気譴泙靴拭鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳ぢ共瘢雹通のル・踉札船鵑鯑販靴織薀ぅ屮薀蠅吠闔胼苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐オペレ・踉札謄鵐哀轡好謄爐砲茲襯薀ぅ屮薀蠅離襦チンの違いを + 補完したり置き換えたりする関数やル・踉札船鵑草痺蒹鹿粡寂蝟赱齠洲痲筵娼プロジェクトのために数多く開発されています。ほとんどのものは + Apache サ・踉札丶踉捌身でのみで使用されていますが、中には + <code>htdigest</code> + のよう瘢雹なサポ・踉札藩僖▲廛螢院ションで参箸気譴討い襪發里發△蠅泙后鹿粡寂蝟赱齠洲痲筵娼そして、そのル・踉札船鵑魯機バにのみ組込まれているために、 + このよう瘢雹な別アプリケ・踉札轡腑鵑魯咼襯匹胞踉産敗します。これらのル・踉札船鵑鹿粡寂蝟赱齠洲痲筵娼別のサブディレクトリで別のライブラリに移動しました。これにより、 + サ・踉札个世韻任覆のアプリケ・踉札轡腑鵑蕕盪箸┐襪茲逅擦砲覆蠅泙靴拭鹿粡寂蝟赱齠洲痲筵娼竢粤齟祚瘰踉晒竢粤ぢサブディレクトリを参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳ぢ新しい <code><a + href="mod/core.html#serversignature">ServerSignature</a></code> + ディレクティブ</strong></dt> + + <dd>このディレクティブはサ・踉札个鄒靴織據ジ (エラ・踉札疋絅瓮鵐函鹿粡寂蝟赱齠洲痲筵娼瀞のディレクトリ内容一覧、mod_info の出力 <em>など</em>) + にサ・踉札个離弌ジョンとバ・踉札船礇襯曠好般を含む行をオプションで追加します。 + これにより、特に pxory の連鎖 (イントラネットの環境ではよくあります) + があるときに、どのサ・踉札个┘蕁メッセ・踉札犬鮟个靴燭里鬟罅ザが + 簡単に知ることができるよう瘢雹になります。</dd> + + <dt><strong>新しい <code><a href="mod/core.html#usecanonicalname" + >UseCanonicalName</a></code> ディレクティブ</strong> + </dt> + + <dd>このディレクティブは、Apache がどのよう瘢雹に踉捌身を参箸垢鹿粡寂蝟赱齠洲痲筵娼孀を作成するかを制御します。以前の Apache では、<a + href="mod/core.html#servername"> ServerName</a> ディレクティブと <a + href="mod/core.html#port">Port</a> ディレクティブを錣忙慊蠅垢襪海箸鹿粡寂蝟赱齠洲痲筵娼ぢ正規化された" サ・踉札个量を生成していました。<code>UseCanonicalName + off</code> で、クライアントから提供されたホスト巳苳擦肇檗ト番号がある豺隋鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢはそれを使用するよう瘢雹になります。</dd> + + <dt><strong><code>SERVER_VERSION</code> の定義の抽櫺修鹿粡寂蝟赱齠洲痲筵娼サ・踉札个離咼襯鋲猟媛闔胼苳熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳ぢ以前のバ・踉札献腑鵑任蓮竢粤單雙賭炒賭喇藁閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢで定義された値を通じて、モジュ・踉札襪鞜竏綣蝟昭粡竚癈鷭п粐Ьぢサ・踉札个離弌ジョンを参箸垢襪海箸任泙靴拭鹿粡寂蝟赱齠洲痲筵娼コアサ・踉札个肇皀献紂ルが違う瘢雹時にコンパイルされた豺腓任鹿粡寂蝟赱齠洲痲筵娼この値の一貫性を保つために、この霾鵑魯灰佗ぢル・踉札船鹿粡寂蝟赱齠洲痲筵娼竢粤瘰熈續燗纈鰡鴦蜿遖踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼で得ることができるよう瘢雹になりました。<code>SERVER_VERSION</code> + シンボルの仕様は非推任后鹿粡寂蝟赱齠洲痲筵娼また、<code>ap_get_server_built()</code> はコアサ・踉札个螢鵐気譴鹿粡寂蝟赱齠洲痲筵娼時刻を表す文字列を返します。</dd> + + <dt><a href="mod/core.html#servertokens"><strong>サ・踉札个勅蝟昭粡竚癈鷭п粐Ьぢにオペレ・踉札謄鵐哀轡好謄爐魎泙瓩闔胼苳殺踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐新しいディレクティブ <code>ServerTokens</code> により、 + クライアントに送り返される <code>Server</code> + レスポンスヘッダフィ・踉札襯匹涼佑鬟逅札Д屮泪好拭が + 変更できるよう瘢雹になりました。<code>ServerTokens</code> + ディレクティブでは、サ・踉札个虻遒靴討い襯撻譟ティングシステムの + 鑪爐砲弔い討陸苳施しすぎない程度の霾鵑髻▲皀献紂ル霾鵑汎瑛佑縫機バ + ID に含めるかどう瘢雹かを制御します。Apache 1.3 では、 + この追加の霾鵑妊侫襯箸粘泙泙譴襪茲逅擦砲覆辰討い泙后鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉雌闔胼苳士續黹瘰形阿帆閏蝟昭粡竚癈鷭п粐Ьぢで暗号化されたパスワ・踉札匹離汽檗ト</strong><br /> + </dt> + + <dd>(Apache に組込まれている MD5 や、OS 固有の crypt(3) + 関数と異なり) パスワ・踉札匹帆で暗号化されるよう瘢雹な BasicAuth + パスワ・踉札品踉三の移行や統合を促進するため、<code>{SHA1}</code> + が前に付いているパスワ・踉札匹癈絛で符号化された SHA1 + パスワ・踉札匹箸靴堂鬢踉氏されます。さらなる霾鵑續黹瘰の + ldap/ldif エントリを変換するためのユ・踉札謄螢謄は、 + support/SHA1 にあります。</dd> + </dl> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/process-model.html.en b/htdocs/manual/process-model.html.en new file mode 100644 index 0000000000..ff61cf5027 --- /dev/null +++ b/htdocs/manual/process-model.html.en @@ -0,0 +1,67 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Server Pool Management</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Server Pool Management</h1> + <hr /> + + <p>We found that many people were using values for "MaxServers" + either too high or too low, and were hanging themselves on it. + The model we adopted is still based on long-lived + minimal-forking processes, but instead of specifying one number + of persistent processes, the web-master specifies a maximum and + minimum number of processes to be "spare" - every couple of + seconds the parent checks the actual number of spare servers + and adjusts accordingly. This should keep the number of servers + concurrently running relatively low while still ensuring + minimal forking.</p> + + <p>We renamed the current StartServers to MinSpareServers, + created separate StartServers parameter which means what it + says, and renamed MaxServers to MaxSpareServers (though the old + name still works, for NCSA 1.4 back-compatibility). The old + names were generally regarded as too confusing.</p> + + <p>The defaults for each variable are:</p> +<pre> +MinSpareServers 5 +MaxSpareServers 10 +StartServers 5 +</pre> + There is an absolute maximum number of simultaneous children + defined by a compile-time limit which defaults to 256 and a + "MaxClients" directive which specifies the number of + simultaneous children that will be allowed. MaxClients can be + adjusted up to the compile-time limit (HARD_SERVER_LIMIT, + defined in httpd.h). If you need more than 256 simultaneous + children, you need to modify both HARD_SERVER_LIMIT and + MaxClients. + + <p>In versions before 1.2, HARD_SERVER_LIMIT defaulted to + 150.</p> + + <p>We do not recommend changing either of these values + unless:</p> + + <ol> + <li>You know you have the server resources to handle + more</li> + + <li>You use the machine for other purposes and must limit the + amount of memory Apache uses</li> + </ol> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/process-model.html.html b/htdocs/manual/process-model.html.html new file mode 100644 index 0000000000..08fc55427c --- /dev/null +++ b/htdocs/manual/process-model.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="process-model.html.en" --> + diff --git a/htdocs/manual/process-model.html.ja.jis b/htdocs/manual/process-model.html.ja.jis new file mode 100644 index 0000000000..e800ef5e73 --- /dev/null +++ b/htdocs/manual/process-model.html.ja.jis @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Server Pool Management</title> + + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <!-- English revision: 1.12 --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">予備サ・踉札个隆浜右苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮多くの人が "MaxServers" + に対して高すぎるまたは低すぎる値を設定し、 + それを使い続けていたという瘢雹ことがわかりました。 + 私達が採用しているモデルは、 + なるべく fork を最砲掘▲廛蹈札垢垢限犬垢襪茲逅擦癖,鹿粡寂蝟赱齠洲痲筵娼基づいたままですが、 + 以前の決まった数の持続的なプロセスを指定するという瘢雹方法の代わりに、 + 「予備」となるプロセスの最大値と最佑鬟逅札Д屮泪好拭が + 指定できるよう瘢雹にしました。つまり、親プロセスが数秒ごとに予備の + サ・踉札个陸踉斬際の数をチェックし、それに応じてサ・踉札个凌瑤鯆汗阿靴泙后鹿粡寂蝟赱齠洲痲筵娼これにより、fork の数を最造僕泙┐弔帖鹿粡寂蝟赱齠洲痲筵娼サ・踉札个凌瑤鯣羈單苳晒ない屬吠櫃弔海箸任襪呂困任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ現在の StartServers は MinSpareServers という瘢雹巳苳餐阿砲覆蝓鹿粡寂蝟赱齠洲痲筵娼別個に、巳苳餐阿猟未蠅琉嫐鬚發帖囈癇纈鴦ぢパラメ・踉札燭鄒気譟鹿粡寂蝟赱齠洲痲筵娼浴纈鴦ぢは MaxSpareServers という瘢雹巳苳餐阿砲覆蠅泙靴古い巳苳餐阿鹿粡寂蝟赱齠洲痲筵娼涼啻ぢからの互換性を保つためにまだ動作します)。 + 古い巳苳餐阿楼貳未吠兇蕕錣靴垢襪塙佑┐蕕譴討い泙靴拭鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢそれう苳擦譴離妊侫襯箸涼佑楼焚のとおりです</p> +<pre> +MinSpareServers 5 +MaxSpareServers 10 +StartServers 5 +</pre> + <p>同時に許容される子プロセスの数はコンパイル時に制限される + 絶対的な最大値 (デフォルトで 256 となっています) と + "MaxClients" ディレクティブにより定義されます。 + MaxClients は最大でコンパイル時の制限値 (httpd.h で定義される + HARD_SERVER_LIMIT) まで調整できます。同時に 256 + 以紊了劵廛蹈札垢廚弗苳詞合は HARD_SERVER_LIMIT と MaxClients + の陸苳司鯤儿垢垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳傘ぢ以前のバ・踉札献腑鵑任倉吊單雙賭潴浜不ぢのデフォルトは + 150 になっています。</p> + + <p>以王踉擦討呂泙蕕覆う苳詞合は、 + この値のどちらかを変更することは薦瘢雹められません。</p> + + <ol> + <li>より多くを扱う瘢雹ためのサ・踉札个離螢宗スが有ることが分かっている。 + </li> + + <li>マシンを側苳擦量榲砲盪藩僂垢襪里鞜竏が使用する + メモリの量を制限しなくてはならない。</li> + </ol> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/programs/ab.html b/htdocs/manual/programs/ab.html new file mode 100644 index 0000000000..652fff0389 --- /dev/null +++ b/htdocs/manual/programs/ab.html @@ -0,0 +1,153 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Manual Page: ab - Apache HTTP Server</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Manual Page: ab</h1> + <!-- This document was autogenerated from the man page --> +<pre> +<strong>NAME</strong> + ab - Apache HTTP server benchmarking tool + +<strong>SYNOPSIS</strong> + <strong>ab</strong> [ -<strong>k</strong> ] [ -<strong>i</strong> ] [ -<strong>n</strong> <em>requests</em> ] [ -<strong>t</strong> <em>timelimit</em> ] [ -<strong>c</strong> <em>con-</em> + <em>currency</em> ] [ -<strong>p</strong> <em>POST file</em> ] [ -<strong>A</strong> <em>Authenticate</em> + <em>username</em>:<em>password </em> ] [ -<strong>P </strong> <em>Proxy Authenticate</em> + <em>username</em>:<em>password</em> ] [ -<strong>H</strong> <em>Custom header</em> ] [ -<strong>C</strong> <em>Cookie</em> + <em>name</em>=<em>value</em> ] [ -<strong>T</strong> <em>content</em>-<em>type</em> ] [ -<strong>v</strong> <em>verbosity</em> ] [ -<strong>w</strong> + <em>output HTML</em> ] [ -<strong>x</strong> <<em>table</em>> <em>attributes</em> ] [ -<strong>X</strong> <em>proxy[:port]</em> ] + [ -<strong>y</strong> <<em>tr</em>> <em>attributes </em> ] [ -<strong>z</strong> <<em>td</em>> <em>attributes </em> ] + [<em>http</em>://]<em>hostname</em>[:<em>port</em>]/<em>path</em> + + <strong>ab</strong> [ -<strong>V</strong> ] [ -<strong>h</strong> ] + +<strong>DESCRIPTION</strong> + <strong>ab</strong> is a tool for benchmarking the performance of your Apache + HyperText Transfer Protocol (HTTP) server. It does this by + giving you an indication of how many requests per second + your Apache installation can serve. + +<strong>OPTIONS</strong> + -<strong>k </strong> Enable the HTTP KeepAlive feature; that is, per- + form multiple requests within one HTTP session. + Default is no KeepAlive. + + -<strong>i </strong> Use an HTTP 'HEAD' instead of the GET method. + Cannot be mixed with POST. + + -<strong>n</strong> <em>requests</em> The number of requests to perform for the bench- + marking session. The default is to perform just + one single request, which will not give + representative benchmarking results. + + -<strong>t</strong> <em>timelimit</em> + The number of seconds to spend benchmarking. + Using this option automatically set the number + of requests for the benchmarking session to + 50000. Use this to benchmark the server for a + fixed period of time. By default, there is no + timelimit. + + -<strong>c</strong> <em>concurrency</em> + The number of simultaneous requests to perform. + The default is to perform one HTTP request at a + time, that is, no concurrency. + + -<strong>p</strong> <em>POST file</em> + A file containing data that the program will + send to the Apache server in any HTTP POST + requests. The contents of the file should look + like <code>name=value&something=other</code>, with special + characters URL encoded. + + -<strong>A</strong> <em>Authorization username</em>:<em>password</em> + Supply Basic Authentication credentials to the + server. The username and password are separated + by a single ':', and sent as uuencoded data. + The string is sent regardless of whether the + server needs it; that is, has sent a 401 Authen- + tication needed. + + -<strong>P</strong> <em>Proxy</em>-<em>Authorization username</em>:<em>password</em> + Supply Basic Authentication credentials to a + proxy en-route. The username and password are + separated by a single ':', and sent as uuencoded + data. The string is sent regardless of whether + the proxy needs it; that is, has sent a 407 + Proxy authentication needed. + + -<strong>C</strong> <em>Cookie name</em>=<em>value</em> + Add a 'Cookie:' line to the request. The argu- + ment is typically a 'name=value' pair. This + option may be repeated. + + -<strong>H</strong> <em>Header string</em> + Append extra headers to the request. The argu- + ment is typically in the form of a valid header + line, usually a colon separated field value + pair, for example, 'Accept-Encoding: + zip/zop;8bit'. + + -<strong>T</strong> <em>content</em>-<em>type</em> + The content-type header to use for POST data. + + -<strong>v </strong> Sets the verbosity level. Level 4 and above + prints information on headers, level 3 and above + prints response codes (for example, 404, 200), + and level 2 and above prints warnings and infor- + mational messages. + + -<strong>w </strong> Print out results in HTML tables. The default + table is two columns wide, with a white back- + ground. + + -<strong>x</strong> <em>attributes</em> + The string to use as attributes for <table>. + Attributes are inserted <table <strong>here</strong> > + + -<strong>X</strong> <em>proxy:port</em> + Use the specified proxy server, running on the + specified port. + + -<strong>y</strong> <em>attributes</em> + The string to use as attributes for <tr>. + + -<strong>z</strong> <em>attributes</em> + The string to use as attributes for <td>. + + -<strong>V </strong> Display the version number and exit. + + -<strong>h </strong> Display usage information. + +<strong>BUGS</strong> + There are various statically declared buffers of fixed + length. Combined with inefficient parsing of the command + line arguments, the response headers from the server, and + other external inputs, these buffers might overflow. + + <strong>Ab</strong> does not implement HTTP/1.x fully; instead, it only + accepts some 'expected' forms of responses. + + The rather heavy use of <strong>strstr(3)</strong> by the program may skew + performance results, since it uses significant CPU + resources. Make sure that performance limits are not hit by + <strong>ab</strong> before your server's limit is reached. + +<strong>SEE ALSO</strong> + <strong>httpd(8)</strong> + +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/programs/apachectl.html.en b/htdocs/manual/programs/apachectl.html.en new file mode 100644 index 0000000000..3fe276f62c --- /dev/null +++ b/htdocs/manual/programs/apachectl.html.en @@ -0,0 +1,95 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Manual Page: apachectl - Apache HTTP Server</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Manual Page: apachectl</h1> + <!-- This document was autogenerated from the man page --> +<pre> +<strong>NAME</strong> + apachectl - Apache HTTP server control interface + +<strong>SYNOPSIS</strong> + <strong>apachectl</strong> <em>command</em> [...] + +<strong>DESCRIPTION</strong> + <strong>apachectl</strong> is a front end to the Apache HyperText Transfer + Protocol (HTTP) server. It is designed to help the adminis- + trator control the functioning of the Apache <strong>httpd</strong> daemon. + + <strong>NOTE:</strong> If your Apache installation uses non-standard paths, + you will need to edit the <strong>apachectl</strong> script to set the + appropriate paths to your PID file and your <strong>httpd</strong> binary. + See the comments in the script for details. + + The <strong>apachectl</strong> script returns a 0 exit value on success, and + >0 if an error occurs. For more details, view the comments + in the script. + + Full documentation for Apache is available at + <strong>http://www.apache.org/</strong> + +<strong>OPTIONS</strong> + The <em>command</em> can be any one or more of the following options: + + <strong>start </strong> Start the Apache daemon. Gives an error if it + is already running. + + <strong>stop </strong> Stops the Apache daemon. + + <strong>restart </strong> Restarts the Apache daemon by sending it a + SIGHUP. If the daemon is not running, it is + started. This command automatically checks the + configuration files via <strong>configtest</strong> before ini- + tiating the restart to make sure Apache doesn't + die. + + <strong>fullstatus</strong> Displays a full status report from <strong>mod_status.</strong> + For this to work, you need to have mod_status + enabled on your server and a text-based browser + such as <em>lynx</em> available on your system. The URL + used to access the status report can be set by + editing the <strong>STATUSURL</strong> variable in the script. + + <strong>status </strong> Displays a brief status report. Similar to the + fullstatus option, except that the list of + requests currently being served is omitted. + + <strong>graceful </strong> Gracefully restarts the Apache daemon by sending + it a SIGUSR1. If the daemon is not running, it + is started. This differs from a normal restart + in that currently open connections are not + aborted. A side effect is that old log files + will not be closed immediately. This means that + if used in a log rotation script, a substantial + delay may be necessary to ensure that the old + log files are closed before processing them. + This command automatically checks the configura- + tion files via <strong>configtest</strong> before initiating the + restart to make sure Apache doesn't die. + + <strong>configtest</strong> Run a configuration file syntax test. It parses + the configuration files and either reports <strong>Syn-</strong> + <strong>tax Ok</strong> or detailed information about the partic- + ular syntax error. + + <strong>help </strong> Displays a short help message. + +<strong>SEE ALSO</strong> + <strong>httpd(8)</strong> + +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/programs/apachectl.html.html b/htdocs/manual/programs/apachectl.html.html new file mode 100644 index 0000000000..b782c2ad5e --- /dev/null +++ b/htdocs/manual/programs/apachectl.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="apachectl.html.en" --> + diff --git a/htdocs/manual/programs/apachectl.html.ja.jis b/htdocs/manual/programs/apachectl.html.ja.jis new file mode 100644 index 0000000000..9680dd04a2 --- /dev/null +++ b/htdocs/manual/programs/apachectl.html.ja.jis @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Manual Page: apachectl - Apache HTTP Server</title> + + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <!-- English revision: 1.5 --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Manual Page: apachectl</h1> + <!-- This document was autogenerated from the man page --> +<pre> +<strong>巳苳殺苳士</strong> + apachectl - Apache HTTP サ・踉札丱灰鵐肇蹇ルインタ・踉札侫Аス + +<strong>書闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑瘰痺蒹笏闔胼苳殺踉糸蹙苳祉闕轣鈔踉晒纃朞歇蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢ解説</strong> + <strong>apachectl</strong> は Apache HyperText Transfer Protocol + (HTTP) サ・踉札个離侫蹈鵐肇┘鵐匹任后4浜踉市が Apache <strong>httpd</strong> + デ・踉札皀鵑鬟灰鵐肇蹇ルする機能を助けるよう瘢雹に設計されています。 + + <strong>NOTE:</strong> Apache のインスト・踉札襪派現爐任呂覆ぅ僖鹿粡寂蝟赱齠洲痲筵娼ぢを使用する豺隋佗ファイルと <strong>httpd</strong> バイナリを + 適切なパスに設定するため <strong>apachectl</strong> スクリプト + を編集する必要があります。楮戮魯好螢廛汎發離灰瓮鵐箸鮓討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳氏鞜竏繝闔胼苳スクリプトは成功した豺腓ぢ終了値、 + エラ・踉擦海辰職苳詞合 0 以紊鯤屬靴泙后鹿粡寂蝟赱齠洲痲筵娼ぢさらなる楮戮魯好螢廛汎發離灰瓮鵐箸鬚澆討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鞜竏のための全文呂踉雌闔胼苳肢雕瘰痺蒹鱧踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼ぢで利用可能です。 + +<strong>オプション</strong> + <em>command</em> は,離廛轡腑鶲譴弔泙燭呂修谿弗苳糸をつけて、 + 孫圓垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳雌鶯踉晒齡鳫鈑草痺蒹ぢデ・踉札皀鵑魑阿靴泙后鹿粡寂蝟赱齠洲痲筵娼ぢ既に孫圓気譴討い襴苳詞合は、エラ・踉擦鯤屬靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳雌踉晒齡鳫鈑草痺蒹ぢデ・踉札皀鵑鯆篁澆靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳賜纉鶯踉晒齡鳫鈑草痺蒹ぢデ・踉札皀鵑蒜晩仄蝟昭粡竚癈鷭п粐Ьを送ることにより再起動させます。 + デ・踉札皀鵑踉斬行されていない豺腓狼阿靴泙后鹿粡寂蝟赱齠洲痲筵娼ぢこのコマンドは Apache が停止しないことを確認するため + 再起動を開始する前に <strong>configtest</strong> + によりファイルを暗縫船Д奪靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳紙踈閼燗踉晒齡鳫鈑により全屬鯤鷙陲靴泙后鹿粡寂蝟赱齠洲痲筵娼ぢこれが機能するためには、サ・踉札丶苳糸で mod_status が利用可能で + システム紊砲踉糸蹙苳詞踉晒纃ぢのよう瘢雹なテキストベ・踉札垢鹿粡寂蝟赱齠洲痲筵娼ぢブラウ瘢雹ザが必要です。嵎鷙陲鯑世襪燭瓩忙藩僂気譴厂ぢは、 + スクリプトで <strong>STATUSURL</strong> 変数を編集する + ことによって設定されます。 + + <strong>status </strong>短い嵎鷙陲鯢拾踉雑します。 + 現在提供されているリクエストのリストを蔑垢襪鹿粡寂蝟赱齠洲痲筵娼ぢいう瘢雹ことを除けば、 fullstatus オプションと似ています。 + + <strong>graceful </strong>Apache デ・踉札皀鵑蒜孑勹ぢを送ること + により段階的に再起動します。 + デ・踉札皀鵑踉斬行されていない豺腓狼阿靴泙后鹿粡寂蝟赱齠洲痲筵娼ぢ現在利用中の接続は中断されないという瘢雹点で通錣鹿粡寂蝟赱齠洲痲筵娼ぢ再起動とは異なります。副作用は、すぐには古い + ログファイルを閉じることができないことです。 + これはログの交換スクリプトを使用する豺隋▽踉斬際の遅延が、 + ログファイルを処理する前に閉じられることを保擇垢襪里鹿粡寂蝟赱齠洲痲筵娼ぢ必要かもしれないことを意味します。 + このコマンドは Apache が停止しないことを確認するため + 再起動を開始する前に <strong>configtest</strong> + によりファイルを暗縫船Д奪靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳祉闔肅苳纉踉晒齡鳫鈑設定ファイルの文法テストを行います。 + 設定ファイルを分析して <strong>Syntax Ok</strong> か、 + 特定の文法エラ・踉擦砲弔い討陸苳施細霾鵑鯤鷙陲靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳肢繻踉晒齡鳫鈑短いヘルプメッセ・踉札犬鯢拾踉雑します。 + +<strong>関連項目</strong> + <strong>httpd(8)</strong> + +</pre> + + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/programs/apxs.html b/htdocs/manual/programs/apxs.html new file mode 100644 index 0000000000..577df8b9fd --- /dev/null +++ b/htdocs/manual/programs/apxs.html @@ -0,0 +1,280 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Manual Page: apxs - Apache HTTP Server</title> + </head> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Manual Page: apxs</h1> + <!-- This document was autogenerated from the man page --> +<pre> +<strong>NAME</strong> + apxs - APache eXtenSion tool + +<strong>SYNOPSIS</strong> + <strong>apxs</strong> -<strong>g</strong> [ -<strong>S</strong> <em>variable</em>=<em>value</em> ] -<strong>n</strong> <em>name</em> + + <strong>apxs</strong> -<strong>q</strong> [ -<strong>S</strong> <em>variable</em>=<em>value</em> ] <em>query</em> ... + + <strong>apxs</strong> -<strong>c</strong> [ -<strong>S</strong> <em>variable</em>=<em>value</em> ] [ -<strong>o</strong> <em>dsofile</em> ] [ -<strong>I</strong> <em>incdir</em> ] [ + -<strong>D</strong> <em>variable</em>[=<em>value</em>] ] [ -<strong>L</strong> <em>libdir</em> ] [ -<strong>l</strong> <em>libname</em> ] [ + -<strong>Wc,</strong><em>compiler</em>-<em>flags</em> ] [ -<strong>Wl,</strong><em>linker</em>-<em>flags</em> ] <em>files</em> ... + + <strong>apxs</strong> -<strong>i</strong> [ -<strong>S</strong> <em>variable</em>=<em>value</em> ] [ -<strong>n</strong> <em>name</em> ] [ -<strong>a</strong> ] [ -<strong>A</strong> ] <em>dso-</em> + <em>file</em> ... + + <strong>apxs</strong> -<strong>e</strong> [ -<strong>S</strong> <em>variable</em>=<em>value</em> ] [ -<strong>n</strong> <em>name</em> ] [ -<strong>a</strong> ] [ -<strong>A</strong> ] <em>dso-</em> + <em>file</em> ... + +<strong>DESCRIPTION</strong> + <strong>apxs</strong> is a tool for building and installing extension modules + for the Apache HyperText Transfer Protocol (HTTP) server. + This is achieved by building a Dynamic Shared Object (DSO) + from one or more source or object <em>files</em> which then can be + loaded into the Apache server under runtime via the <strong>LoadMo-</strong> + <strong>dule</strong> directive from <strong>mod_so.</strong> + + So to use this extension mechanism, your platform has to + support the DSO feature and your Apache <strong>httpd</strong> binary has to + be built with the <strong>mod_so</strong> module. The <strong>apxs</strong> tool automati- + cally complains if this is not the case. You can check this + yourself by manually running the command + + $ httpd -l + + The module <strong>mod_so</strong> should be part of the displayed list. If + these requirements are fulfilled, you can easily extend your + Apache server's functionality by installing your own modules + with the DSO mechanism by the help of this <strong>apxs</strong> tool: + + $ apxs -i -a -c mod_foo.c + gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c + ld -Bshareable -o mod_foo.so mod_foo.o + cp mod_foo.so /path/to/apache/libexec/mod_foo.so + chmod 755 /path/to/apache/libexec/mod_foo.so + [activating module `foo' in /path/to/apache/etc/httpd.conf] + $ apachectl restart + /path/to/apache/sbin/apachectl restart: httpd not running, trying to start + [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module + /path/to/apache/sbin/apachectl restart: httpd started + $ _ + + The arguments <em>files</em> can be any C source file (.c), a object + file (.o) or even a library archive (.a). The <strong>apxs</strong> tool + automatically recognizes these extensions and automatically + uses the C source files for compilation while it just uses + the object and archive files for the linking phase. But when + using such pre-compiled objects, make sure they are compiled + for Position Independent Code (PIC) to be able to use them + for a DSO. For instance with GCC you always just have to use + <strong>-fpic</strong>. For other C compilers please consult its manual page + or watch for the flags <strong>apxs</strong> uses to compile the object + files. + + For more details about DSO support in Apache, first read the + background information about DSO in htdocs/manual/dso.html, + then read the documentation of <strong>mod_so</strong>. + +<strong>OPTIONS</strong> + Common options: + + -<strong>n</strong> <em>name </em> This explicitly sets the module name for the -<strong>i</strong> + (install) and -<strong>g</strong> (template generation) option. + Use this to explicitly specify the module name. + For option -<strong>g</strong> this is required, for option -<strong>i</strong> + the <strong>apxs</strong> tool tries to determine the name from + the source or (as a fallback) at least by guess- + ing it from the filename. + + Query options: + + -<strong>q </strong> Performs a query for <strong>apxs</strong>'s knowledge about cer- + tain settings. The <em>query</em> parameters can be one + or more of the following variable names: + CC TARGET + CFLAGS SBINDIR + CFLAGS_SHLIB INCLUDEDIR + LD_SHLIB LIBEXECDIR + LDFLAGS_SHLIB SYSCONFDIR + LIBS_SHLIB PREFIX + Use this for manually determining settings. For + instance use + INC=-I`apxs -q INCLUDEDIR` + inside your own Makefiles if you need manual + access to Apache's C header files. + + Configuration options: + + -<strong>S</strong> <em>variable</em>=<em>value</em> + This option changes the <strong>apxs</strong> settings described + above. + + Template Generation options: + -<strong>g </strong> This generates a subdirectory <em>name</em> (see option + -<strong>n</strong>) and there two files: A sample module source + file named <strong>mod_</strong><em>name</em>.<em>c</em> which can be used as a + template for creating your own modules or as a + quick start for playing with the <strong>apxs</strong> mechanism. + And a corresponding <strong>Makefile</strong> for even easier + building and installing of this module. + + DSO compilation options: + + -<strong>c </strong> This indicates the compilation operation. It + first compiles the C source files (.c) of <em>files</em> + into corresponding object files (.o) and then + builds a DSO in <em>dsofile</em> by linking these object + files plus the remaining object files (.o and + .a) of <em>files</em> If no -<strong>o</strong> option is specified the + output file is guessed from the first filename + in <em>files</em> and thus usually defaults to + <strong>mod_</strong><em>name</em>.<em>so</em> + + -<strong>o</strong> <em>dsofile</em> Explicitly specifies the filename of the created + DSO file. If not specified and the name cannot + be guessed from the <em>files</em> list, the fallback + name <strong>mod_unknown.so</strong> is used. + + -<strong>D</strong> <em>variable</em>[=<em>value</em>] + This option is directly passed through to the + compilation command(s). Use this to add your + own defines to the build process. + + -<strong>I</strong> <em>incdir</em> This option is directly passed through to the + compilation command(s). Use this to add your + own include directories to search to the build + process. + + -<strong>L</strong> <em>libdir</em> This option is directly passed through to the + linker command. Use this to add your own + library directories to search to the build pro- + cess. + + -<strong>l</strong> <em>libname</em> This option is directly passed through to the + linker command. Use this to add your own + libraries to search to the build process. + + -<strong>Wc,</strong><em>compiler</em>-<em>flags</em> + This option passes <em>compiler</em>-<em>flags</em> as additional + flags to the compiler command. Use this to add + local compiler-specific options. + + -<strong>Wl,</strong><em>linker</em>-<em>flags</em> + This option passes <em>linker</em>-<em>flags</em> as additional + flags to the linker command. Use this to add + local linker-specific options. + + DSO installation and configuration options: + + -<strong>i </strong> This indicates the installation operation and + installs one or more DSOs into the server's + <em>libexec</em> directory. + + -<strong>a </strong> This activates the module by automatically + adding a corresponding <strong>LoadModule</strong> line to + Apache's <strong>httpd.conf</strong> configuration file, or by + enabling it if it already exists. + + -<strong>A </strong> Same as option -<strong>a</strong> but the created <strong>LoadModule</strong> + directive is prefixed with a hash sign (#), i.e. + the module is just prepared for later activation + but initially disabled. + + -<strong>e </strong> This indicates the editing operation, which can + be used with the -<strong>a</strong> and -<strong>A</strong> options similarly to + the -<strong>i</strong> operation to edit Apache's <strong>httpd.conf</strong> + configuration file without attempting to install + the module. + +<strong>EXAMPLES</strong> + Assume you have an Apache module named mod_foo.c available + which should extend Apache's server functionality. To accom- + plish this you first have to compile the C source into a DSO + suitable for loading into the Apache server under runtime + via the following command: + + $ apxs -c mod_foo.c + gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c + ld -Bshareable -o mod_foo.so mod_foo.o + $ _ + + Then you have to update the Apache configuration by making + sure a <strong>LoadModule</strong> directive is present to load this DSO. To + simplify this step <strong>apxs</strong> provides an automatic way to install + the DSO in the "libexec" directory and updating the + <strong>httpd.conf</strong> file accordingly. This can be achieved by run- + ning: + + $ apxs -i -a mod_foo.c + cp mod_foo.so /path/to/apache/libexec/mod_foo.so + chmod 755 /path/to/apache/libexec/mod_foo.so + [activating module `foo' in /path/to/apache/etc/httpd.conf] + $ _ + + This way a line named + + LoadModule foo_module libexec/mod_foo.so + + is added to the configuration file if still not present. If + you want to have this operation to be disabled, use the -<strong>A</strong> + option, i.e. + + $ apxs -i -A mod_foo.c + + For a quick test of the <strong>apxs</strong> mechanism you can create a sam- + ple Apache module template plus a corresponding <strong>Makefile</strong> + via: + + $ apxs -g -n foo + Creating [DIR] foo + Creating [FILE] foo/Makefile + Creating [FILE] foo/mod_foo.c + $ _ + + Then you can immediately compile this sample module into a + DSO and load it into the Apache server: + + $ cd foo + $ make all reload + apxs -c mod_foo.c + gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c + ld -Bshareable -o mod_foo.so mod_foo.o + apxs -i -a -n "foo" mod_foo.so + cp mod_foo.so /path/to/apache/libexec/mod_foo.so + chmod 755 /path/to/apache/libexec/mod_foo.so + [activating module `foo' in /path/to/apache/etc/httpd.conf] + apachectl restart + /path/to/apache/sbin/apachectl restart: httpd not running, trying to start + [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module + /path/to/apache/sbin/apachectl restart: httpd started + $ _ + + You can even use <strong>apxs</strong> to compile complex modules outside the + Apache source tree, like PHP3, because <strong>apxs</strong> automatically + recognized C source files and object files. + + $ cd php3 + $ ./configure --with-shared-apache=../apache-1.3 + $ apxs -c -o libphp3.so mod_php3.c libmodphp3-so.a + gcc -fpic -DSHARED_MODULE -I/tmp/apache/include -c mod_php3.c + ld -Bshareable -o libphp3.so mod_php3.o libmodphp3-so.a + $ _ + + Only C source files are compiled while remaining object + files are used for the linking phase. + +<strong>SEE ALSO</strong> + <strong>apachectl(1), httpd(8).</strong> + +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/programs/dbmmanage.html b/htdocs/manual/programs/dbmmanage.html new file mode 100644 index 0000000000..409b8822b5 --- /dev/null +++ b/htdocs/manual/programs/dbmmanage.html @@ -0,0 +1,115 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Manual Page: dbmmanage - Apache HTTP Server</title> + </head> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Manual Page: dbmmanage</h1> + <!-- This document was autogenerated from the man page --> +<pre> +<strong>NAME</strong> + dbmmanage - Create and update user authentication files in + DBM format + +<strong>SYNOPSIS</strong> + <strong>dbmmanage</strong> <em>filename</em> [ <em>command</em> ] [ <em>username</em> [ <em>encpasswd</em> ] ] + +<strong>DESCRIPTION</strong> + <strong>dbmmanage</strong> is used to create and update the DBM format files + used to store usernames and password for basic authentica- + tion of HTTP users. Resources available from the <strong>httpd</strong> + Apache web server can be restricted to just the users listed + in the files created by <strong>dbmmanage.</strong> This program can only be + used when the usernames are stored in a DBM file. To use a + flat-file database see <strong>htpasswd</strong>. + + This manual page only lists the command line arguments. For + details of the directives necessary to configure user + authentication in <strong>httpd</strong> see the Apache manual, which is part + of the Apache distribution or can be found at + http://www.apache.org/. + +<strong>OPTIONS</strong> + <em>filename</em> + The filename of the DBM format file. Usually without + the extension .db, .pag, or .dir. + + <em>command</em> + This selects the operation to perform: + + <strong>add </strong> Adds an entry for <em>username</em> to <em>filename</em> using the + encrypted password <em>encpassword</em>. + + <strong>adduser </strong> Asks for a password and then adds an entry for + <em>username</em> to <em>filename</em> . + + <strong>check </strong> Asks for a password and then checks if <em>username</em> + is in <em>filename</em> and if it's password matches the + specified one. + + <strong>delete </strong> Deletes the <em>username</em> entry from <em>filename</em>. + + <strong>import </strong> Reads username:password entries (one per line) + from STDIN and adds them to <em>filename</em>. The pass- + words already has to be crypted. + + <strong>update </strong> Same as the "adduser" command, except that it + makes sure <em>username</em> already exists in <em>filename</em>. + + <strong>view </strong> Just displays the complete contents of the DBM + file. + + <em>username </em> The user for which the update operation is per- + formed. + +<strong>BUGS</strong> + One should be aware that there are a number of different DBM + file formats in existence, and with all likelihood, + libraries for more than one format may exist on your system. + The three primary examples are NDBM, the GNU project's GDBM, + and Berkeley DB 2. Unfortunately, all these libraries use + different file formats, and you must make sure that the file + format used by <em>filename</em> is the same format that <strong>dbmmanage</strong> + expects to see. <strong>dbmmanage</strong> currently has no way of determin- + ing what type of DBM file it is looking at. If used against + the wrong format, will simply return nothing, or may create + a different DBM file with a different name, or at worst, it + may corrupt the DBM file if you were attempting to write to + it. + + <strong>dbmmanage</strong> has a list of DBM format preferences, defined by + the <strong>@AnyDBM::ISA</strong> array near the beginning of the program. + Since we prefer the Berkeley DB 2 file format, the order in + which <strong>dbmmanage</strong> will look for system libraries is Berkeley + DB 2, then NDBM, and then GDBM. The first library found + will be the library <strong>dbmmanage</strong> will attempt to use for all + DBM file transactions. This ordering is slightly different + than the standard <strong>@AnyDBM::ISA</strong> ordering in perl, as well as + the ordering used by the simple dbmopen() call in Perl, so + if you use any other utilities to manage your DBM files, + they must also follow this preference ordering. Similar + care must be taken if using programs in other languages, + like C, to access these files. + + Apache's <strong>mod_auth_db.c</strong> module corresponds to Berkeley DB 2 + library, while <strong>mod_auth_dbm.c</strong> corresponds to the NDBM + library. Also, one can usually use the <strong>file</strong> program sup- + plied with most Unix systems to see what format a DBM file + is in. + +<strong>SEE ALSO</strong> + <strong>httpd(8)</strong> + +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/programs/footer.html b/htdocs/manual/programs/footer.html new file mode 100644 index 0000000000..10a731d148 --- /dev/null +++ b/htdocs/manual/programs/footer.html @@ -0,0 +1,6 @@ + <hr /> + + <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> + <a href="./"><img src="../images/index.gif" alt="Index" /></a> + <a href="../"><img src="../images/home.gif" alt="Home" /></a> + diff --git a/htdocs/manual/programs/header.html b/htdocs/manual/programs/header.html new file mode 100644 index 0000000000..09a28d8ca6 --- /dev/null +++ b/htdocs/manual/programs/header.html @@ -0,0 +1,5 @@ + <div align="CENTER"> + <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> + + <h3>Apache HTTP Server Version 1.3</h3> + </div> diff --git a/htdocs/manual/programs/htdigest.html b/htdocs/manual/programs/htdigest.html new file mode 100644 index 0000000000..303b2a5db0 --- /dev/null +++ b/htdocs/manual/programs/htdigest.html @@ -0,0 +1,63 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Manual Page: htdigest - Apache HTTP Server</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Manual Page: htdigest</h1> + <!-- This document was autogenerated from the man page --> +<pre> +<strong>NAME</strong> + htdigest - Create and update user authentication files + +<strong>SYNOPSIS</strong> + <strong>htdigest</strong> [ -<strong>c</strong> ] <em>passwdfile realm username</em> + +<strong>DESCRIPTION</strong> + <strong>htdigest</strong> is used to create and update the flat-files used to + store usernames, realm and password for digest authentica- + tion of HTTP users. Resources available from the <strong>httpd</strong> + Apache web server can be restricted to just the users listed + in the files created by <strong>htdigest.</strong> + + This manual page only lists the command line arguments. For + details of the directives necessary to configure digest + authentication in <strong>httpd</strong> see the Apache manual, which is part + of the Apache distribution or can be found at + http://www.apache.org/. + +<strong>OPTIONS</strong> + -c Create the <em>passwdfile</em>. If <em>passwdfile</em> already exists, it + is deleted first. + + <em>passwdfile</em> + Name of the file to contain the username, realm and + password. If -c is specified, this file is created if + it does not already exist, or deleted and recreated if + it does exist. + + <em>realm</em> + The realm name to which the user name belongs. + + <em>username</em> + The user name to create or update in <strong>passwdfile</strong>. If + <em>username</em> does not exist is this file, an entry is + added. If it does exist, the password is changed. + +<strong>SEE ALSO</strong> + <strong>httpd(8)</strong> + +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/programs/htpasswd.html.en b/htdocs/manual/programs/htpasswd.html.en new file mode 100644 index 0000000000..67de07d286 --- /dev/null +++ b/htdocs/manual/programs/htpasswd.html.en @@ -0,0 +1,174 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Manual Page: htpasswd - Apache HTTP Server</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Manual Page: htpasswd</h1> + <!-- This document was autogenerated from the man page --> +<pre> +<strong>NAME</strong> + htpasswd - Create and update user authentication files + +<strong>SYNOPSIS</strong> + <strong>htpasswd</strong> [ -<strong>c</strong> ] [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>passwdfile username</em> + <strong>htpasswd</strong> -<strong>b</strong> [ -<strong>c</strong> ] [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>passwdfile username</em> + <em>password</em> + <strong>htpasswd</strong> -<strong>n</strong> [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>username</em> + <strong>htpasswd</strong> -<strong>nb</strong> [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>username password</em> + +<strong>DESCRIPTION</strong> + <strong>htpasswd</strong> is used to create and update the flat-files used to + store usernames and password for basic authentication of + HTTP users. If <strong>htpasswd</strong> cannot access a file, such as not + being able to write to the output file or not being able to + read the file in order to update it, it returns an error + status and makes no changes. + + Resources available from the <strong>httpd</strong> Apache web server can be + restricted to just the users listed in the files created by + <strong>htpasswd.</strong> This program can only manage usernames and pass- + words stored in a flat-file. It can encrypt and display + password information for use in other types of data stores, + though. To use a DBM database see <strong>dbmmanage</strong>. + + <strong>htpasswd</strong> encrypts passwords using either a version of MD5 + modified for Apache, or the system's <em>crypt</em>() routine. Files + managed by <strong>htpasswd</strong> may contain both types of passwords; + some user records may have MD5-encrypted passwords while + others in the same file may have passwords encrypted with + <em>crypt</em>(). + + This manual page only lists the command line arguments. For + details of the directives necessary to configure user + authentication in <strong>httpd</strong> see the Apache manual, which is part + of the Apache distribution or can be found at + <URL:http://www.apache.org/>. + +<strong>OPTIONS</strong> + -b Use batch mode; <em>i</em>.<em>e</em>., get the password from the command + line rather than prompting for it. <strong>This option should</strong> + <strong>be used with extreme care, since the password is</strong> + <strong>clearly visible on the command line.</strong> + + -c Create the <em>passwdfile</em>. If <em>passwdfile</em> already exists, it + is rewritten and truncated. This option cannot be com- + bined with the <strong>-n</strong> option. + + -n Display the results on standard output rather than + updating a file. This is useful for generating pass- + word records acceptable to Apache for inclusion in + non-text data stores. This option changes the syntax + of the command line, since the <em>passwdfile</em> argument + (usually the first one) is omitted. It cannot be com- + bined with the <strong>-c</strong> option. + + -m Use Apache's modified MD5 algorithm for passwords. + Passwords encrypted with this algorithm are transport- + able to any platform (Windows, Unix, BeOS, et cetera) + running Apache 1.3.9 or later. On Windows and TPF, + this flag is the default. + + -d Use crypt() encryption for passwords. The default on + all platforms but Windows and TPF. Though possibly sup- + ported by <strong>htpasswd</strong> on all platforms, it is not sup- + ported by the <strong>httpd</strong> server on Windows and TPF. + + -s Use SHA encryption for passwords. Faciliates migration + from/to Netscape servers using the LDAP Directory + Interchange Format (ldif). + + -p Use plaintext passwords. Though <strong>htpasswd</strong> will support + creation on all platforms, the <strong>httpd</strong> deamon will only + accept plain text passwords on Windows and TPF. + + <em>passwdfile</em> + Name of the file to contain the user name and password. + If -c is given, this file is created if it does not + already exist, or rewritten and truncated if it does + exist. + + <em>username</em> + The username to create or update in <strong>passwdfile</strong>. If + <em>username</em> does not exist in this file, an entry is + added. If it does exist, the password is changed. + + <em>password</em> + The plaintext password to be encrypted and stored in + the file. Only used with the -<em>b</em> flag. + +<strong>EXIT STATUS</strong> + <strong>htpasswd</strong> returns a zero status ("true") if the username and + password have been successfully added or updated in the + <em>passwdfile</em>. <strong>htpasswd</strong> returns 1 if it encounters some prob- + lem accessing files, 2 if there was a syntax problem with + the command line, 3 if the password was entered interac- + tively and the verification entry didn't match, 4 if its + operation was interrupted, 5 if a value is too long (user- + name, filename, password, or final computed record), and 6 + if the username contains illegal characters (see the <strong>RES-</strong> + <strong>TRICTIONS</strong> section). + +<strong>EXAMPLES</strong> + <strong>htpasswd /usr/local/etc/apache/.htpasswd-users jsmith</strong> + + Adds or modifies the password for user <em>jsmith</em>. The user + is prompted for the password. If executed on a Windows + system, the password will be encrypted using the modi- + fied Apache MD5 algorithm; otherwise, the system's + <em>crypt</em>() routine will be used. If the file does not + exist, <strong>htpasswd</strong> will do nothing except return an error. + + <strong>htpasswd -c /home/doe/public_html/.htpasswd jane</strong> + + Creates a new file and stores a record in it for user + <em>jane</em>. The user is prompted for the password. If the + file exists and cannot be read, or cannot be written, + it is not altered and <strong>htpasswd</strong> will display a message + and return an error status. + + <strong>htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve</strong> + + Encrypts the password from the command line (<em>Pwd4Steve</em>) + using the MD5 algorithm, and stores it in the specified + file. + +<strong>SECURITY CONSIDERATIONS</strong> + Web password files such as those managed by <strong>htpasswd</strong> should + <strong>not</strong> be within the Web server's URI space -- that is, they + should not be fetchable with a browser. + + The use of the -<em>b</em> option is discouraged, since when it is + used the unencrypted password appears on the command line. + +<strong>RESTRICTIONS</strong> + On the Windows and MPE platforms, passwords encrypted with + <strong>htpasswd</strong> are limited to no more than 255 characters in + length. Longer passwords will be truncated to 255 charac- + ters. + + The MD5 algorithm used by <strong>htpasswd</strong> is specific to the Apache + software; passwords encrypted using it will not be usable + with other Web servers. + + Usernames are limited to 255 bytes and may not include the + character ':'. + +<strong>SEE ALSO</strong> + <strong>httpd(8)</strong> and the scripts in support/SHA1 which come with the + distribution. + +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/programs/htpasswd.html.html b/htdocs/manual/programs/htpasswd.html.html new file mode 100644 index 0000000000..4b9d23c03e --- /dev/null +++ b/htdocs/manual/programs/htpasswd.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="htpasswd.html.en" --> + diff --git a/htdocs/manual/programs/htpasswd.html.ja.jis b/htdocs/manual/programs/htpasswd.html.ja.jis new file mode 100644 index 0000000000..a68a01c89f --- /dev/null +++ b/htdocs/manual/programs/htpasswd.html.ja.jis @@ -0,0 +1,173 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Manual Page: htpasswd - Apache HTTP Server</title> + + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <!-- English revision: 1.3 --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Manual Page: htpasswd</h1> + <!-- This document was autogenerated from the man page --> +<pre> +<strong>巳苳殺苳士</strong> + htpasswd - ユ・踉札暁Е苳孜ファイルの作成と更新 + +<strong>書闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑蔗鞜齠闔胼苳踉雌闔胼苳祉闔胼苳踉雌闔胼苳詩闔胼苳踉雌闔胼苳私闔胼苳踉雌闔胼苳雌闔胼苳踉雌闔胼苳諮闔胼苳纃鞜齠肅跂黼鴈瘢絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳肢癈齬筅踉晒齡鳫鈑齡鳫鈑皃踉晒齡鳫鈑齡鳫鈑礒踉晒齡鳫鈑齡鳫鈑蹙踉晒齡鳫鈑齡鳫鈑筅踉晒齡鳫鈑齡鳫鈑鵙踉晒齡鳫鈑齡鳫鈑隍踉晒齡鳫鈑踉糸蹙苳諮癈齬粭蛹纈釶辣蹙苳纂蝟昭粡竚癈鷭п粐Ь纃鞜齠鰾蹙苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑蔗鞜齠闔胼苳踉雌闔胼苳試闔胼苳踉雌闔胼苳詩闔胼苳踉雌闔胼苳私闔胼苳踉雌闔胼苳雌闔胼苳踉雌闔胼苳諮闔胼苳纃纈釶辣蹙苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑蔗鞜齠闔胼苳踉雌闔胼苳試皃踉晒齡鳫鈑齡鳫鈑蹙踉晒齡鳫鈑齡鳫鈑筅踉晒齡鳫鈑齡鳫鈑鵙踉晒齡鳫鈑齡鳫鈑隍踉晒齡鳫鈑踉糸蹙苳歯黼鴈瘢鞜齠鰾蹙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢ解説</strong> + <strong>htpasswd </strong>は、HTTP ユ・踉札兇隆靄槐Е苳孜のためユ・踉札玉と + パスワ・踉札匹魑燭垢襪燭瓩離侫薀奪肇侫.ぅ襪虜鄒塙洪靴忙藩僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳肢癈齬筅踉晒齡鳫鈑が出力ファイルに書き込めない、また更新するために + 読みとることができないなど、ファイルにアクセスすることができない豺隋鹿粡寂蝟赱齠洲痲筵娼ぢエラ・踉札好董タスを返し、変更を行いません。 + + <strong>httpd</strong> Apache ウ瘢雹ェブサ・踉札个ぢリソ・踉札垢了藩僂踉雌闔胼苳肢癈齬筅踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼ぢによって作成されるファイルにリストされたユ・踉札兇世韻棒造垢鹿粡寂蝟赱齠洲痲筵娼ぢことができます。このプログラムはフラットファイルに記録された + ユ・踉札玉とパスワ・踉札匹隆浜里澆鮃圓覆逅擦海箸任泙后鹿粡寂蝟赱齠洲痲筵娼ぢとは言っても、側苳擦離織ぅ廚離如タの記録のために使用しても + パスワ・踉札髭苳諮報を暗号化して表┐垢襪海箸任泙后蝟昭粡竚癈鷭п粐Ь賃デ・踉札織戞スを使用するためには <strong>dbmmanage</strong> を見てください。 + + <strong>htpasswd</strong> は Apache 用に改造されたバ・踉札献腑鵑諜ぢかまたは + システムの <em>crypt()</em> ル・踉札船鵑鮖藩僂靴謄僖好錙ドを暗号化します。 + <strong>htpasswd</strong> で管理されたファイルは陸苳司離織ぅ廚離僖好錙ド + を含むかもしれません; あるユ・踉札競譽魁ドが MD5 で暗号化された + パスワ・踉札匹任△襪里紡个掘韻献侫.ぅ襪梁のユ・踉札兇踉糸蹙苳祉鴒頸┤蹙苳により + 暗号化されたパスワ・踉札匹任△襪發靴譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼ぢこのマニュアルペ・踉札犬魯灰泪鵐疋薀ぅ鵑琉瑤魑鵑欧討い襪世韻任后鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳肢鞣闔胼苳のユ・踉札暁Е苳孜設定に必要なディレクティブ の楮戮蓮鹿粡寂蝟赱齠洲痲筵娼鞜竏配布物や <URL:http://www.apache.org/> で見つけることができる + Apache マニュアルを参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑オプション</strong> + -b バッチモ・踉札匹了藩踉糸蹙苳ぢすなわち</em> 、プロンプトではなく + コマンドラインからパスワ・踉札匹鯑世泙后齡鳫鈑パスワ・踉札匹闔胼苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢコマンドライン紊婆棲里北椶妨┐襪里如闔胼苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢこのオプションは極めて注意して使用されるべきです。</strong> + + -c <em>パスワ・踉札疋侫.ぅ蹙苳ぢを作成します。<em>パスワ・踉札疋侫.ぅ蹙苳纂蝟昭粡竚癈鷭п粐Ьぢがすでにある豺隋▽苳糸書きされて切り里討蕕譴泙后ぢこのオプションは + <strong>-n </strong>オプションと組み合わせることができません。 + + -n ファイルを更新するのではなく標準出力に結果を表┐靴泙后鹿粡寂蝟赱齠洲痲筵娼非テキストデ・踉札燭泙泙譴討い鞜竏に影譴蕕譴鹿粡寂蝟赱齠洲痲筵娼パスワ・踉札疋譽魁ドを生成するのに有益です。 + このオプションは<em>パスワ・踉札疋侫.ぅ蹙苳ぢの引数 + (通錣郎能蕕里發ぢが蔑気譴襪里如▲灰泪鵐疋薀ぅ鵑諒庫,鹿粡寂蝟赱齠洲痲筵娼切り替わります。 + <strong>-c </strong>オプションと組み合わせることはできません。 + + -m パスワ・踉札匹鞜竏用に改造された MD5 アルゴリズムを使用 + します。このアルゴリズムにより暗号化されたパスワ・踉札匹蓮鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢまたはそれ以降が動いているあらゆるプラット + ホ・踉札怏鈔阯鵺鉗縅哮ぢその側苳に移植可能です。 + Windows と TPF ではこのフラグがデフォルトです。 + + -d パスワ・踉札匹鴒頸┤ぢ暗号化を使用します。Windows と TPF + 以外のすべてのプラットフォ・踉札爐妊妊侫襯箸任后鹿粡寂蝟赱齠洲痲筵娼おそらくすべてのプラットフォ・踉札爐任踉雌闔胼苳肢癈齬筅踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼によりサポ・踉札箸気譴泙垢怏鈔阯と TPF の <strong>httpd</strong> + サ・踉札个砲茲襯汽檗トはありません。 + + -s パスワ・踉札匹帆ぢ暗号化を使用します。LDAP ディレクトリ + 変換フォ・踉札泪奪趙蜀を使用する Netscape サ・踉札鹿粡寂蝟赱齠洲痲筵娼からの/への 移行を容易にします。 + + -p プレ・踉札鵐謄好肇僖好錙ドを使用します。 <strong>htpasswd</strong> + がすべてのプラットフォ・踉札爐任虜鄒鬟汽檗トしても <strong>httpd</strong> + デ・踉札皀鵑蜴粹ぢと TPF 紊任蓮▲廛譟ンテキストのパスワ・踉札鹿粡寂蝟赱齠洲痲筵娼のみ佞韻襪任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉糸蹙苳諮癈齬粭蛹絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼ユ・踉札玉とパスワ・踉札匹泙泙譴討い襯侫.ぅ詭です。 + もし -c が与えられた豺隋▲侫.ぅ襪減澆靴覆い覆蕕鹿粡寂蝟赱齠洲痲筵娼ファイルを作成し、また存在しているなら、綵颪気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉糸蹙苳歯黼鴈瘢絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑鞜齠肅跂闔胼苳に作成または更新するユ・踉札玉です。 + <em>username</em> が存在しない豺腓魯┘鵐肇蠅鯆媛辰靴泙后鹿粡寂蝟赱齠洲痲筵娼存在する豺腓砲魯僖好錙ドを変更します。 + + <em>password</em> + ファイルに暗号化されて記録されるプレ・踉札鵐謄好箸鹿粡寂蝟赱齠洲痲筵娼パスワ・踉札匹任后纃皃踉晒纃ぢフラグでのみ使用されます。 + +<strong>終了ステ・踉札織闔胼苳纂蝟昭粡竚癈鷭п粐Ьユ・踉札玉とパスワ・踉札匹踉雌尾よく <em>passwdfile</em> に追加または更新 + された豺隋齡鳫鈑蔗鞜齠闔胼苳はウ踉札蹈好董タス ("真") を返します。 + <strong>htpasswd</strong> は、ファイルアクセスの問題に遭遇した豺腓、 + コマンドラインに関する文法の問題があった豺腓、 + 対話阿妊僖好錙ドを入力した際に確認のエントリがマッチしなかった豺腓、 + 操作が中断された豺腓、(ユ・踉札玉、ファイル巳苳察▲僖好錙ド、または + 最後に計算されたレコ・踉札において値が長すぎる豺腓、 + ユ・踉札玉に不正な文字が含まれている(<strong>RESTRICTIONS</strong> + セクションを見てください) 豺腓ぢを返します。 + +<strong>例</strong> + <strong>htpasswd /usr/local/etc/apache/.htpasswd-users jsmith</strong> + + ユ・踉札踉糸蹙苳至鼾蜚荀踉晒纃ぢのパスワ・踉札匹鯆媛辰泙燭禄だ気靴泙后鹿粡寂蝟赱齠洲痲筵娼ユ・踉札兇魯僖好錙ドの入力を促されます。Windows システム紊鹿粡寂蝟赱齠洲痲筵娼孫圓気譴職苳詞合、パスワ・踉札匹鞜竏幼アルゴリズムを使用して + 暗号化されるでしょう瘢雹。側苳擦陸苳詞合は、システムの <em>crypt()</em> + ル・踉札船鵑藩僂気譴襪任靴腓逅察侫.ぅ襪減澆靴覆う苳詞合、 + <strong>htpasswd</strong> はエラ・踉擦鯤屬弘奮阿砲浪燭發靴覆い任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳肢癈齬蓖辣閻跚窰蔗迪蔗鞜齠瘤絋踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼新しいファイルを作成し、ユ・踉札踉糸蹙苳至瘤絋踉晒纃ぢのレコ・踉札匹魑燭靴泙后鹿粡寂蝟赱齠洲痲筵娼ユ・踉札兇魯僖好錙ドの入力を促されます。 + ファイルが存在するけれど読めないまたは書き込みができない豺腓鹿粡寂蝟赱齠洲痲筵娼変更されず、<strong>htpasswd</strong> はメッセ・踉札犬鯢拾踉雑して + エラ・踉札好董タスを返すでしょう瘢雹。 + + <strong>htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve</strong> + + MD5 アルゴリズムを使ってコマンドラインからのパスワ・踉札鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳姉貫蹙苳皐ぢを暗号化し、指定されたファイルに記録します。 + +<strong>セキュリティの重要性</strong> + <strong>htpasswd</strong> によって管理されるよう瘢雹なウ瘢雹ェブパスワ・踉札疋侫.ぅ鹿粡寂蝟赱齠洲痲筵娼ぢはウ瘢雹ェブサ・踉札个夘ぢの貊蠧發砲△襪戮任呂△蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼ぢすなわち、ウ瘢雹ェブブラウ瘢雹ザによって呼び出し可能とするべきではありません。 + + -<em>b</em> オプションの使用する方法は、暗号化されていないパスワ・踉札匹鹿粡寂蝟赱齠洲痲筵娼ぢコマンドラインに現れたときから抑止されます。 + +<strong>制限</strong> + Windows と MPE プラットフォ・踉札爐踉雌闔胼苳肢癈齬筅踉晒齡鳫鈑ぢで暗号化された + パスワ・踉札匹亀ぢ文字の長さだけに制限されています。 + より長いパスワ・踉札匹亀ぢ文字に切り里討蕕譴襪任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳肢癈齬闔胼苳ぢによって使用される MD5 アルゴリズムは Apache + ソフトウ瘢雹ェアに特有で、それを用いて暗号化されたパスワ・踉札匹鹿粡寂蝟赱齠洲痲筵娼ぢ側苳擦離逅札Д屮機バでは使用できないでしょう瘢雹。 + + ユ・踉札玉は 255 バイトに制限され、キャラクタ ':' を含まれな + いかもしれません。 + +<strong>関連項目</strong> + SHA1 サポ・踉札箸踉雌闔胼苳肢鞣┯踉晒齡鳫鈑ぢとスクリプトは配布物と共瘢雹に + 出来紊蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡鳫苒瘢鶩蔗筮蔗迪皴蔗粹笂瘤豁頏閾鱇逑鞣谺緕錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭鹸粃筝羇甦錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁頏閾鱇逑鞣谺緕粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁頏閾鱇逑鞣谺緕鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐外声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂浴銛瘡瘍綺鞣鞜竏挽墅纈鬢踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■聿聿聿就0旭旭唖蜴觸■旭旭聿⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就f羂旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳四瘤倚艱蔗筅踉晒莟鹿粡寂蝟赱齠洲痲筵娼´壽蜩閭緕癜艱鈬鱇胙闕蒹瘤瘍鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳士鼠摘踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鞣鞜竏蔔鞳鶯纔瘤黽纈鳫竢黼鴟纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑噎力佯瓶闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑蔗筅踉晒齡鳫鈑齡鳫鈑悧踉晒齡鳫鈑齡鳫鈑勁踉晒齡鳫鈑踉糸蹙苳詞蛯纔繝粡鬢踉晒纃齡鳫鈑筅踉晒齡鳫鈑踉糸蹙苳雌纈鴪闖熙踉晒纃齡鳫鈑网踉晒齡鳫鈑踉糸蹙苳祉闔肅胼踉晒纃鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑脱踉晒齡鳫鈑踉糸蹙苳私蜥繝蹙苳踉雌闔胼苳祉闔胼苳纃粡鱚笏蝟絋踉晒纃齡鳫鈑彫踉晒齡鳫鈑踉糸蹙苳諮癇瘢續纈蹙苳歇蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь齡鳫鈑蔗筅踉晒齡鳫鈑齡鳫鈑荀踉晒齡鳫鈑齡鳫鈑讀踉晒齡鳫鈑齡鳫鈑巳踉晒齡鳫鈑齡鳫鈑踉晒齡鳫鈑齡鳫鈑乢踉晒齡鳫鈑齡鳫鈑哘踉晒齡鳫鈑齡鳫鈑熙踉晒齡鳫鈑踉雌闔胼苳市闔胼苳纂蝟昭粡竚癈鷭п粐Ь歇蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳残途智賓塢藁闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑蔗筅踉晒齡鳫鈑蒹草痺蒹微鞳鰓纔鱇銖聽鳫竢挽墅蝟昭粡竚癈鷭п粐Ь黼鴟纈頏閾鱇蹼部蜩粤皷芬繖矼齡瘤籬跫鈬鹿粡寂蝟赱齠洲痲筵娼痳迴頏閭纉鶤蒹繖蜍蜩跛鱚癆竟闌羲蝟昭粡竚癈鷭п粐Ь竏蛹鳫竇齠纉葹鈔跂繿齡鶤齡關緕堙厖鹿粡寂蝟赱齠洲痲筵娼蜃釶蒹鉗瘡鞜鱚銓頏閭纉鶤蒹苗蜩鳫蝟昭粡竚癈鷭п粐Ь竇齠蜩蜚肅跂芍蜴蒹闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼蛹絎糟鴈癆蝟繻齡鳫鈑蔗筅踉晒齡鳫鈑癨蜴諷蒹侮鴈續鹿粡寂蝟赱齠洲痲筵娼痳迴鈬┯痺辣闔鈬笏蜿蒹墺黼鴟蜒綣蝟昭粡竚癈鷭п粐Ь蜩痲絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓍轣銛瘡瘍闔踟蜩蒹闕轣鈔蜴癇苺辣銓鶤楠鮗蝟昭粡竚癈鷭п粐Ь粤蛹蒹蜥繝鈬竇齠癇闔肅苺鱚踉雌闔胼苳肢鞣闔胼苳黼綣蝟昭粡竚癈鷭п粐Ь草痺蒹瘤讙蓍竏鞜鶯草痺蒹粡齡鱸碯闔鹿粡寂蝟赱齠洲痲筵娼瘤矼肬蔗痕鞜竏絎闥膀倚蜴蓍鷦蝟昭粡竚癈鷭п粐Ь轣銛瘡癨阡繙跂笏蓖黼闕韈跂蜴踉雌闔胼苳肢鞣踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑椀塢藁哘踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑勁踉晒齡鳫鈑踉糸蹙苳詞蛯纔繝粡鬢踉晒纃鹿粡寂蝟赱齠洲痲筵娼蓍關闔鉤蛹痰跂蜀草痺蒹鷦蝟昭粡竚癈鷭п粐Ь碯蛹蜚蒹纃喩倉田蹙苳止纃地凖蹙苳鴣跂釶碎繖蓍竏鹿粡寂蝟赱齠洲痲筵娼闥竇草痺蒹闥竢粤矼赱竇蜴畆蝟昭粡竚癈鷭п粐Ь糯釶迚葹鱚礪繝嗜肅跂壽蜩蛹蜩鹿粡寂蝟赱齠洲痲筵娼縺鱆蒹蜴癇粃閼繖鞜粤纈鰔闖蝟昭粡竚癈鷭п粐Ь鞳繙癜踉黼蜩關闔蜀阨瘤鹿粡寂蝟赱齠洲痲筵娼鴪蜆蜚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳私闔胼苳纃黼鴟纈鳫阡蹙苳纂蝟昭粡竚癈鷭п粐Ь嚆蜴蜚蛛跿肬嚆鴟纈呰阡粡鱚祗鹿粡寂蝟赱齠洲痲筵娼蝟踉糸蹙苳雌纈鴪闖熙踉晒纃蓍竅矼鴪蜆粤磔鹿粡寂蝟赱齠洲痲筵娼蒹嚆鴟纈呰阡竢迯瘤蒹竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь肅跂壽粤聲蜩踉雌闔胼苳晒鬲跫竅豁瘰痺蒹闔胼苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑网踉晒齡鳫鈑踉糸蹙苳祉闔肅胼踉晒纃笊蒹竢迯瘤糂蜴蛹踉糸蹙苳祉闔肅胼踉晒纃闔鹿粡寂蝟赱齠洲痲筵娼鶯膚踉糸蹙苳祉闔肅胼踉晒纃閻鈿矼芍緕鹿粡寂蝟赱齠洲痲筵娼蜩瘠緕矼癆鱚赱嚆鴟纈蝟昭粡竚癈鷭п粐Ь呰阡壽粤聲蜩踉雌闔胼苳祉闔罸蔗筮竢鈕闔胼苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑脱踉晒齡鳫鈑踉糸蹙苳私蜥繝蹙苳纂蝟昭粡竚癈鷭п粐Ь會閭纉竢鈕蜃癆蜿纃粡鱚笏蝟絋踉晒纃繙闥鱚痲蝟昭粡竚癈鷭п粐Ь蜴竢鈕蜃蛹纉蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳祉闔胼苳纃粡鱚笏蝟絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼鳫竇齠蒹闔肅苺鱇闔踉糸蹙苳私蜥繝蹙苳瘋縺筬鹿粡寂蝟赱齠洲痲筵娼鈑闔肅肅跂鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑彫踉晒齡鳫鈑踉糸蹙苳諮癇瘢續纈蹙苳纂蝟昭粡竚癈鷭п粐Ь嚆闔肅苺鱇闔踉糸蹙苳諮癇瘢續纈蹙苳蜒竅矼黼篌蝟昭粡竚癈鷭п粐Ь逅詞膚偵肅鈬逅紫瘢雹踉晒膚偵肅鈬逅紫黼笏蜿銖蜴蒹鹿粡寂蝟赱齠洲痲筵娼闔肅苺鱇闔蛹纉竢鈔蜚蜿釶跛謇鮗蝟昭粡竚癈鷭п粐Ь頏閭纉竢迯瘤糂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳肢踉晒齡鳫鈑頤鼈闥齦迯癇閹蛹痰跂闕轣鈔蜴綣蝟昭粡竚癈鷭п粐Ь關闔鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑闔胼苳跚齡閹迴糒跂闕韈跂銓蒹鹿粡寂蝟赱齠洲痲筵娼纈鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑闔胼苳蜩蜥繝閾續蒹鹿粡寂蝟赱齠洲痲筵娼繝鱧緕瘤韭痺纉蒹鱚蒹蜥繝蝟昭粡竚癈鷭п粐Ь跚筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑闔胼苳嚠阯蒹續鈑癈癇黼胙闕蒹闔肅肅跂鹿粡寂蝟赱齠洲痲筵娼笊鴪緕闔踟蓖蒹蜥瘡蓖齡續鈑鶇蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳飼踉晒齡鳫鈑齡肬竢鈕蜃癆蜿蛹纉闔踟蝟昭粡竚癈鷭п粐Ь壽頏閾鱇蜊辣粡癆繻纔蜚瘋纉齷銓癢鹿粡寂蝟赱齠洲痲筵娼癇皷鈑蜚繪纈續竢粤蝟昭粡竚癈鷭п粐Ь亘續閼阡繿囮銓癢鹿粡寂蝟赱齠洲痲筵娼鴪闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑闔胼苳噤辣關闔齡鳫鈑熙踉晒齡鳫鈑閻鈿竏繝竢鈕蜃蝟昭粡竚癈鷭п粐Ь繖閭緕鳫阡鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑闔胼苳咐蜴蜴芟絖頏閭纉迴粤肬蜴鴈瘡粤碯膈鹿粡寂蝟赱齠洲痲筵娼蜴竟黼鉤蒹痳迴粹纉阡續痺莠蝟昭粡竚癈鷭п粐Ь胙闕蒹纈迚釶闥闥瘤竏蛹糅緕鹿粡寂蝟赱齠洲痲筵娼黼蓍迴粤頏阮蜆闥粡釶鴒繧纈竇蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳事踉晒齡鳫鈑鱸銓蒹纈皷闔齡鳫鈑蔗筅踉晒齡鳫鈑鈔蒹纔蜚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳志踉晒齡鳫鈑鱸銓蒹纈皷闔鈔趙癇瘢續纈閹齡鳫鈑蔗筅踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鈔蒹纔蜚蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳仔斌途闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑齟閭瘡鞜竏絲竢鈕鞣闔网踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳晒鬲跫竅豁瘰痺蒹闔罸齟蹼竢鈕闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑齟閭瘡鞜竏絲竢鈕窿纉鶤竢鈕闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑齟閭瘡鞜竏絲竢鈕蜊絎鞳鵙踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳晒鬲跫竅豁瘰痺蒹闔罸轣芍礒踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳晒鬲跫竅豁瘰痺蒹閾鶩纈鳫鰡跫胼踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳晒鬲跫竅豁瘰痺蒹閾鶩痺竇齠煬閾闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑齟閭瘡鞜竏絲跫苴鞣蜆闔胼苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍電毛櫓踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳脂鈬闔胼苳雑県蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁頏閾鱇逑鞣谺蔗迪閭鶩轣銛瘡鳫苒瘢鶩蔗筮蔗迪貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握綛芦禮羞羲碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡鳫苒瘢鶩蔗筮蔗迪貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡鳫苒瘢鶩蔗筮蔗迪貅昭蝟昭粡竚癈鷭ц襷樟卯誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺囈鱸笏杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈蜒糘笄鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵鞣谺緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡鳫苒瘢鶩蔗筮蔗迪甌裼皴蔗粹笂瘤豁頏閾鱇逑鞣谺裃蜩錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭屋倶傾群傑錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁頏閾鱇逑鞣谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁頏閾鱇逑鞣谺裃蜩鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐卸声蝟昭粡竚癈鷭п粐Ь踉賛鴦蜿扈緕竢粡鈑就蜩鎰屋臆陟職苳纂蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬迪碕瘤臀∬瓣瘤臀∬瓣鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳四瘤倚艱蔗鞜竏挽墅纈鬢踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь踉察鈑跚鼈纐蜩蜿邵苳纂蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■聿聿聿就0旭旭唖蜴觸■旭旭聿⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就f羂旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳四瘤倚艱蔗筅踉晒莟鹿粡寂蝟赱齠洲痲筵娼´壽蜩閭緕癜艱鈬鱇胙闕蒹瘤瘍鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢ巳苳殺苳士</strong> + httpd - Apache ハイパ・踉札謄好氾送プロトコル (HTTP) サ・踉札鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑書闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑蔗筅踉晒齡鳫鈑齡鳫鈑悧踉晒齡鳫鈑齡鳫鈑勁踉晒齡鳫鈑踉糸蹙苳詞蛯纔繝粡鬢踉晒纃齡鳫鈑筅踉晒齡鳫鈑踉糸蹙苳雌纈鴪闖熙踉晒纃齡鳫鈑网踉晒齡鳫鈑踉糸蹙苳祉闔肅胼踉晒纃鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑脱踉晒齡鳫鈑踉糸蹙苳私蜥繝蹙苳踉雌闔胼苳祉闔胼苳纃粡鱚笏蝟絋踉晒纃齡鳫鈑彫踉晒齡鳫鈑踉糸蹙苳諮癇瘢續纈蹙苳歇蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь齡鳫鈑蔗筅踉晒齡鳫鈑齡鳫鈑荀踉晒齡鳫鈑齡鳫鈑讀踉晒齡鳫鈑齡鳫鈑巳踉晒齡鳫鈑齡鳫鈑踉晒齡鳫鈑齡鳫鈑乢踉晒齡鳫鈑齡鳫鈑哘踉晒齡鳫鈑齡鳫鈑熙踉晒齡鳫鈑踉雌闔胼苳市闔胼苳纂蝟昭粡竚癈鷭п粐Ь歇蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢ解説</strong> + <strong>httpd</strong> は Apache ハイパ・踉札謄好氾送プロトコル (HTTP) サ・踉札鹿粡寂蝟赱齠洲痲筵娼ぢプログラムです。スタンドアロンデ・踉札皀鵐廛蹈札垢箸靴豆踉斬行するよう瘢雹 + 設計されています。そのよう瘢雹に利用される豺隋▲螢┘好箸鮟萢垢鹿粡寂蝟赱齠洲痲筵娼ぢために子プロセスのプ・踉札襪鮑鄒靴泙后D篁澆気擦襪燭瓩砲賭夕蝟昭粡竚癈鷭п粐Ьシグナルを最初の (親) プロセスへ送ってください。親プロセスの + PID は、設定ファイル中で指定されたファイルに書き込まれます。 + <strong>httpd</strong> は、スタンドアロンデ・踉札皀鵐廛蹈札垢箸靴鹿粡寂蝟赱齠洲痲筵娼ぢではなく、HTTP サ・踉札咼垢慇楝海気譴襪燭咾縫ぅ鵐拭ネットス・踉札僉 + サ・踉札鈬┯から起動させることもできます。 + + このマニュアルペ・踉札犬魯灰泪鵐疋薀ぅ鵑琉瑤鬟螢好箸靴討い襪世韻任后鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳肢鞣闔胼苳の設定に必要なディレクティブの楮戮蓮草痺蒹ぢ配布物や + http://www.apache.org/ で見つけることができる Apache マニュアルを + 参箸靴討世気ぁ海離泪縫絅▲襪離僖垢蓮齡鳫鈑蔗筅踉晒齡鳫鈑ぢにコンパイルされているものとは違う瘢雹かもしれません。 + +<strong>オプション</strong> + -<strong>R</strong> <em>libexecdir</em> + このオプションは Apache を <em>SHARED</em>_<em>CORE</em> ル・踉札襪魏椎修鹿粡寂蝟赱齠洲痲筵娼ぢしてビルドした豺腓里瀝儔椎修任后修陸苳詞合、Apache コアコ・踉札鹿粡寂蝟赱齠洲痲筵娼ぢに動的な共瘢雹有オブジェクト (DSO) ファイルに置かれます。 + そのファイルはデフォルトで ServerRoot 配王踉擦鹿粡寂蝟赱齠洲痲筵娼ぢハ・踉札疋魁ドされたパス中から検索されます。 + それを綵颪靴燭う苳詞合にこのオプションを使用してください。 + + -<strong>d</strong> <em>serverroot</em> + ServerRoot ディレクティブの初期値を <em>serverroot</em> で設定 + します。この値は設定ファイルの Server-Root コマンドで + 綵颪椎修任后妊侫襯箸踉雌闔胼苳晒鬲跫竅豁瘰痺蒹闔胼苳です。 + + -<strong>f</strong> <em>config</em> + 起動時に、<em>config</em> で指定されたファイル中のコマンドを + 孫圓靴泙后纃竢鈕蜃蹙苳が / で始まらない豺隋嚆鴟纈呰阡鹿粡寂蝟赱齠洲痲筵娼ぢからの相対パスと解瓩靴泙后鹿粡寂蝟赱齠洲痲筵娼ぢデフォルトは <strong>conf/httpd.conf</strong> です。 + + -<strong>C</strong> <em>directive</em> + 設定ファイルを読みこむ前に <em>directive</em> を処理します。 + + -<strong>c</strong> <em>directive</em> + 設定ファイルを読みこんだ後に <em>directive</em> を処理します。 + + -<strong>D</strong> <em>parameter</em> + 設定ファイルで魴錣砲茲辰謄灰泪鵐匹鬟好奪廚泙燭禄萢鹿粡寂蝟赱齠洲痲筵娼ぢする <IfDefine>...</IfDefine> セクションと共瘢雹に使用する + ことができる <em>parameter</em> を設定します。 + + -<strong>h </strong> + 利用可能なコマンドラインオプションの短い要約を出力します。 + + -<strong>l </strong> + サ・踉札个縫灰鵐僖ぅ襪気譴討い襯皀献紂ルのリストを出力します。 + + -<strong>L </strong> + ディレクティブのリストを期待される引数とディレクティブが + 有効な貊蠅閥逅擦暴侘呂靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼ぢ設定ファイルから解析された設定を表┐靴泙鹿粡寂蝟赱齠洲痲筵娼現在はバ・踉札船礇襯曠好箸寮瀋蠅里澆鯢拾踉雑します)。 + + -<strong>t </strong> + 設定ファイルの文法テストのみを行ないます。プログラムは + 文法解析により 0 のリタ・踉札鵐魁ド (文法 OK) か非 0 の + 終了コ・踉札文法エラ・踉を返してすぐに終了します。 + + -<strong>T </strong> + オプション -<strong>t</strong> と同様ですが、設定されたドキュメント + ル・踉札箸鬟船Д奪靴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼ぢ内部のデバッグ目的のためのみのシングルプロセスモ・踉札匹鹿粡寂蝟赱齠洲痲筵娼ぢ孫圓靴泙后如モンはタ・踉札潺淵襪蚓イ譴此∋劵廛蹈札鹿粡寂蝟赱齠洲痲筵娼ぢを fork しません。通錣離逅札Д屮機ビスを行なう瘢雹豺隋鹿粡寂蝟赱齠洲痲筵娼ぢこのモ・踉札匹鮖藩僂靴討呂い韻泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑鞣闔胼苳のバ・踉札献腑鵑鮟侘呂靴峠擦靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑鞣闔胼苳のバ・踉札献腑鵑肇咼襯疋僖薀瓠タを出力して終了します。 + +<strong>関連ファイル</strong> + <strong>/usr/local/apache/conf/httpd.conf</strong> + <strong>/usr/local/apache/conf/srm.conf</strong> + <strong>/usr/local/apache/conf/access.conf</strong> + <strong>/usr/local/apache/conf/mime.types</strong> + <strong>/usr/local/apache/conf/magic</strong> + <strong>/usr/local/apache/logs/error_log</strong> + <strong>/usr/local/apache/logs/access_log</strong> + <strong>/usr/local/apache/logs/httpd.pid</strong> + +<strong>関連項目</strong> + <strong>inetd</strong>(8) + +</pre> + + + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/programs/index.html.en b/htdocs/manual/programs/index.html.en new file mode 100644 index 0000000000..3da74a516d --- /dev/null +++ b/htdocs/manual/programs/index.html.en @@ -0,0 +1,71 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache HTTP Server and Supporting Programs</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Server and Supporting Programs</h1> + + <p>This page documents all the executable programs included + with the Apache HTTP Server.</p> + + <dl> + <dt><a href="httpd.html">httpd</a></dt> + + <dd>Apache hypertext transfer protocol server</dd> + + <dt><a href="apachectl.html">apachectl</a></dt> + + <dd>Apache HTTP server control interface</dd> + + <dt><a href="ab.html">ab</a></dt> + + <dd>Apache HTTP server benchmarking tool</dd> + + <dt><a href="apxs.html">apxs</a></dt> + + <dd>APache eXtenSion tool</dd> + + <dt><a href="dbmmanage.html">dbmmanage</a></dt> + + <dd>Create and update user authentication files in DBM format + for basic authentication</dd> + + <dt><a href="htdigest.html">htdigest</a></dt> + + <dd>Create and update user authentication files for digest + authentication</dd> + + <dt><a href="htpasswd.html">htpasswd</a></dt> + + <dd>Create and update user authentication files for basic + authentication</dd> + + <dt><a href="logresolve.html">logresolve</a></dt> + + <dd>Resolve hostnames for IP-addresses in Apache + logfiles</dd> + + <dt><a href="rotatelogs.html">rotatelogs</a></dt> + + <dd>Rotate Apache logs without having to kill the server</dd> + + <dt><a href="suexec.html">suexec</a></dt> + + <dd>Switch User For Exec</dd> + + <dt><a href="other.html">Other Programs</a></dt> + </dl> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/programs/index.html.html b/htdocs/manual/programs/index.html.html new file mode 100644 index 0000000000..f2710912dc --- /dev/null +++ b/htdocs/manual/programs/index.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="index.html.en" --> + diff --git a/htdocs/manual/programs/index.html.ja.jis b/htdocs/manual/programs/index.html.ja.jis new file mode 100644 index 0000000000..c5a844fea8 --- /dev/null +++ b/htdocs/manual/programs/index.html.ja.jis @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache HTTP Server and Supporting Programs</title> + + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <!-- English revision: 1.3 --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">サ・踉札个肇汽檗トプログラム</h1> + + <p>このペ・踉札犬任蓮草痺蒹墺サ・踉札个箸箸發膨鷆,気譴討い襴踉斬行 + プログラムを全て載せています。</p> + + <dl> + <dt><a href="httpd.html">httpd</a></dt> + + <dd>Apache ハイパ・踉札謄好氾送プロトコルサ・踉札筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹≡鞜竏繝譬瘰痺蒹笏讀踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐草痺蒹墺サ・踉札丱灰鵐肇蹇ルインタ・踉札侫Аス</dd> + + <dt><a href="ab.html">ab</a></dt> + + <dd>Apache HTTP サ・踉札丱戰鵐船沺クツ・踉札筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹≡頽鶤蔗迪▽苳氏頽鵙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐草痺蒹ぢ拡張ツ・踉札筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹≫硴轣釶艱譬籵迯瘤瘍絋踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐逮皷認擇砲い突僂垢騨ぢ書阿任離罅ザ認斃僖侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼作成と更新</dd> + + <dt><a href="htdigest.html">htdigest</a></dt> + + + <dd>Digest 認擇砲い突僂垢襯罅ザ認斃僖侫.ぅ襪虜鄒塙洪筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹∵癈齬筮蔗迪▽苳肢癈齬筅踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐逮皷認擇砲い突僂垢襯罅ザ認斃僖侫.ぅ襪虜鄒塙洪筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹閾鱚齒踝絎蔗迪▽苳詞閾鱚齒踝絋踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐草痺蒹ぢログファイル内における IP アドレスのホスト巳苳参魴筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹Å阡癆繻閾鶤蔗迪▽苳賜阡癆繻閾鵙踉晒瓲苳殺踉晒糘鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粐サ・踉札个髻謇跛ぢしないで Apache ログをロ・踉札董トする</dd> + + <dt><a href="suexec.html">suexec</a></dt> + + <dd>Apache が Exec する際のユ・踉札鏡畋筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉氏鱚羹纈譬その側苳擦離廛蹈哀薀熙苳纂蝟昭粡竚癈鷭п粐Ь踉晒粲鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡鳫苒瘢鶩跫苒纉闌皴蔗粹笂瘤豁頏閾鱇逑閾鱚齒踝絎蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭俄憶畊官箒錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁頏閾鱇逑閾鱚齒踝絎蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁頏閾鱇逑閾鱚齒踝絎蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳四瘤倚艱跫苒纉闌鞜竏挽墅纈鬢踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉察蓍粹笊辣銓癈閾緕纈癆繖鳫轣鞜艱苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆浴銛瘡瘍綺閾鱚齒踝絋踉晒莟鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳士鼠摘踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼閾鱚齒踝鱚齒踝蓖齡釶辣闥賓粐鱚齠纉蜴草痺蒹鹿粡寂蝟赱齠洲痲筵娼閾肅跂鷦蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍拯椀喇哘踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳詞閾鱚齒踝絋踉晒齡鳫鈑齡鳫鈑鵙踉晒齡鳫鈑纃肅跂釶辣蹙苳齡鳫鈑礒踉晒齡鳫鈑瘢雹踉纃痺竇齠蹙苳止纃跫胼踉晒纃瘢雹苳纂蝟昭粡竚癈鷭п粐Ь纃痺竇齠蹙苳止纃跫胼踉晒纃踉糸蹙苳試纓蹙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳残途智賓塢藁闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑跫苒纉闌闔胼苳蜩闢頏閭纉皷鈑頏閾鱇纉闌賓蝟昭粡竚癈鷭п粐Ь痲糅纉黼蜴鞜竏紮痺竇齠閾肅跂鶤夬蜴蜊蝴蜊鞜笏郤蝟昭粡竚癈鷭п粐Ь瘢纉纈鬪閾鱚齒踝葹蜚鴒銓纈釶癈茘鹿粡寂蝟赱齠洲痲筵娼痰跂竅竏絎壽蜩辣瘤葹縺竏銛轤纈蛹闔踟綣蝟昭粡竚癈鷭п粐Ь跫闍繖肅鴦辣蜩阨鈔跫肅跂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳始來貧林闔胼苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳雌闔胼苳纃肅跂釶辣蹙苳嚼繝蜀蜈肅跂釶辣鱚竢鰾齡蜒鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑闔胼苳壽蜩癜黼齡鳫鈑跫苒纉闌闔胼苳韶踟闕栂竏繝謫瑳蝟昭粡竚癈鷭п粐Ь瘋蜴粡鈑蒹闢瘢胙闕蒹痲糅纉鵺鹿粡寂蝟赱齠洲痲筵娼跫闍蒹痲糅纉黼闥闢瘢綣蝟昭粡竚癈鷭п粐Ь瘤蒹站癆鈬纉轣蒹闥蜃薛鹿粡寂蝟赱齠洲痲筵娼瘡粐鱚齠蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍電毛櫓踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳肢鞣┯踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡鳫苒瘢鶩阡蒹鬯蔗迪閭鶩轣銛瘡鳫苒瘢鶩阡蒹鬯蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭畄幻梓袈扱錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁頏閾鱇逑纈貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡鳫苒瘢鶩阡蒹鬯蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳始纈鳫苒瘢草痺蒹墺嚆鴟纈蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆蒹會閾鱇逑右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽肬跛阯蜴頏閾鱇逑鱚蜊韭齦韶闥頏閾鱇逑釿跿粤篌蝟昭粡竚癈鷭п粐Ь蜚草痺蒹墺嚆鴟纈蓍竏鈿葹蒹蜥瘤貅蝟昭粡竚癈鷭п粐Ь瘍纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏閾燗纈鰡齡癆⊆蝟昭粡竚癈鷭п粐Ь瘢綵閾燗纈鰡齡癆▽苳詞閾燗纈鰡齡癆王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩纈黹鱸頸粤皷芬繖矼胙繿銓鹿粡寂蝟赱齠洲痲筵娼蜴鴟瘡齒辣蜴跚諷鳫隨竢銕繝黼鴟纈鈔鹿粡寂蝟赱齠洲痲筵娼粹跫痲齡癆鈕闥轣闔部繙闥轣蒹鈕闥轣闔鹿粡寂蝟赱齠洲痲筵娼蜴芟跚鈬鈔閾蜚肅跂槍褫齡蒹癇蛛碎纉蝟昭粡竚癈鷭п粐Ь蒹關黹鱸頸齔繝蜀跫竅闔鱚齦踉蜴膽蝟昭粡竚癈鷭п粐Ь閾肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏‰韭蜚閾肅跂⊆蝟昭粡竚癈鷭п粐Ь瘢綵‰韭蜚閾肅跂▽苳雌韭蜚閾肅跂王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩纈黹鱸頸蛹諷闕砠鈬怛黼鴟纈窿纉跫膽蝟昭粡竚癈鷭п粐Ь蛹瘤碣縺蜚竢銓緕銓黼鞜鱇蛹纉部齠纉鹿粡寂蝟赱齠洲痲筵娼癆蒹蜥齡蜈趙縺竏蜴蜩蒹蜥瘡闢蜆緕鹿粡寂蝟赱齠洲痲筵娼蒹鱚▲鈔葹跫艷蛹纉蓖矼瘢繖鹿粡寂蝟赱齠洲痲筵娼癆閾蜴蒹鱚銓蜥繝鴒踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽竢轤蜴繖閾蛹蜩縺胙闕蜴吶竢鰾鱚痲蛹貅蝟昭粡竚癈鷭п粐Ь瘰鞳鈔繖瘤纔蜩鈑閾蛹纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁頏閾鱇逑阡癆繻閾鶤蔗迪閭鶩轣銛瘡鳫苒瘢鶩鳫跫苴貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握峨唄矚橋梗碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡鳫苒瘢鶩鳫跫苴貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡鳫苒瘢鶩鳫跫苴貅昭蝟昭粡竚癈鷭ц襷樟卯彊声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂浴銛瘡瘍綺阡癆繻閾草痺蒹墺嚆鴟纈蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆浴銛瘡瘍綺阡癆繻閾鵙踉晒莟鹿粡寂蝟赱齠洲痲筵娼´壽蜩閭緕癜艱鈬鱇胙闕蒹瘤瘍鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳士鼠摘踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼阡癆繻閾鳫鞜竏跫苴蜚蓖癘蜴謇跛綣蝟昭粡竚癈鷭п粐Ь黼鴟纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑噎力佯瓶闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑鳫跫苴闔胼苳纃跫艷蛹鳫闔辣蹙苳纃閹胝續蹙苳歇蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳残途智賓塢藁闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑鳫跫苴闔胼苳蜩蜊韭頏閾鱇肬蜴竢鉅笏蜿蜚莠蝟昭粡竚癈鷭п粐Ь草痺蒹蜷繖閾肅跂縺鱚蓍竏瘤繖蜍蜩瑳蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鱇銖聽鯡閾阡癆繻閾癆莚閾鶩痺竇齠煬閾挟旭⊆蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь壽蜩鱚癆纉蒹蛹纉癆莚閾鶩痺竇齠煬閾銕蒹鱚鹿粡寂蝟赱齠洲痲筵娼銕蒹齷齡纃蜊癆蓍竏蒹閾闕蜴瘡踟鶯鷦蝟昭粡竚癈鷭п粐Ь蓍辣蛹瘡逡踉蜷跂阡癆蜿蜊絳鹿粡寂蝟赱齠洲痲筵娼竅齷釿蓿闔蝴竰闔竰蜷蜚蜚藻蒹鈔羲蝟昭粡竚癈鷭п粐Ь縺竏阡癆蜿辣蒹鱚瘋阨鴦鈬閾蜩鹿粡寂蝟赱齠洲痲筵娼鶯繖蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳始來貧林闔胼苳纂蝟昭粡竚癈鷭п粐Ь纃跫艷蛹絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼壽鞜跿矚黼釶辣跫艷蛹絎蒹肅銕郤蝟昭粡竚癈鷭п粐Ь癜轣竅跛痲粤筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉糸蹙苳賜阡癆蜿銓蜊絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼壽鳫闔蜊蜴繝闔糂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь纃閹胝續蹙苳纂蝟昭粡竚癈鷭п粐Ь蒹矼閹蜴纉聿黼胙闕埣膚迚繖鳫鹿粡寂蝟赱齠洲痲筵娼蜩齠繖鈔埣繖闥逅跂黼閭瘡鹿粡寂蝟赱齠洲痲筵娼辣鈬埣蓖鵺鞳竕胱瘡旭鹿粡寂蝟赱齠洲痲筵娼肬蜩鱧緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑單遡嗜闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑蔗筥県闔胼苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁頏閾鱇逑祟蔗迪皴蔗粹笂瘤豁頏閾鱇逑祟蔗迪郤碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握恰弦羇弘畆碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡鳫苒瘢鶩齦纔繝谺緕粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁頏閾鱇逑祟蔗迪郤昭蝟昭粡竚癈鷭ц襷樟卯官声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂浴銛瘡瘍綺草痺蒹墺嚆鴟纈蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆浴銛瘡瘍綺礒踉晒莟鹿粡寂蝟赱齠洲痲筵娼´壽蜩閭緕癜艱鈬鱇胙闕蒹瘤瘍鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳士鼠摘踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼囓蜚竏黼楠祷繝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑噎力佯瓶闔胼苳纂蝟昭粡竚癈鷭п粐Ь麗關皷肬瘍絳繝癜黼蓍頏閾鱇蜩繖蜴鬮鹿粡寂蝟赱齠洲痲筵娼瘡踟草痺蒹鉤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑津喘夘來貧陸踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳雌礒踉晒齡鳫鈑瘰鞳鬆齦韶闥鳫苒瘢肬蒹齦努澱鹿粡寂蝟赱齠洲痲筵娼繹癘蜿肬草痺蒹蜩鳫蜴鞜竏癜轣鹿粡寂蝟赱齠洲痲筵娼竅跛纈蒹瘤纈釶頏閾鱇葹綣蝟昭粡竚癈鷭п粐Ь鴣鈔纈蜀聽鱚銓纈闥迴鱚鈕闥轣闔硼鹿粡寂蝟赱齠洲痲筵娼愿繞閭緕草痺蒹齦努澱囎韶闥粤鮗蝟昭粡竚癈鷭п粐Ь蔗痕鞜竏絎闥膀粹笂祟蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑單遡嗜闔胼苳纂蝟昭粡竚癈鷭п粐Ь齡鳫鈑蔗筥県闔胼苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁頏閾鱇逑祟蔗迪皴蔗粹笂瘤豁頏閾鱇逑祟蔗迪貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握亀堰聲箒啓碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡鳫苒瘢鶩齦纔繝谺蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁頏閾鱇逑祟蔗迪貅昭蝟昭粡竚癈鷭ц襷樟卯誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺囈鱸笏杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈蜒糘笄鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊‰祟蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁頏閾鱇逑祟蔗迪甌裼皴蔗粹笂瘤豁頏閾鱇逑祟蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握聽唄欝禧綣碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡鳫苒瘢鶩齦纔繝谺裃蜩粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁頏閾鱇逑祟蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯完声蝟昭粡竚癈鷭п粐Ь踉賛鴦蜿扈緕竢粡鈑就蜩鎰屋臆陟職苳纂蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬迪碕瘤臀∬瓣瘤臀∬瓣鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳四瘤倚艱齦纔繝草痺蒹墺嚆鴟纈蜚跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩鱚皷闔窺鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆浴銛瘡瘍綺礒踉晒莟鹿粡寂蝟赱齠洲痲筵娼´壽蜩閭緕癜艱鈬鱇胙闕蒹瘤瘍鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢ巳苳殺苳士</strong> + suexec - Apache が Exec する際のユ・踉札鏡畋鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑書闔胼苳纂蝟昭粡竚癈鷭п粐Ь使用方法の書阿呂△蠅泙擦鵝覆ならこのプログラムは + Apache 内部でのみ使用されるからです。 + +<strong>解説</strong> + <strong>suexec</strong> は Apache の suEXEC 作用のための "wrapper" サポ・踉札鹿粡寂蝟赱齠洲痲筵娼ぢプログラムです。外部のプログラムが異なるユ・踉札兇硫で孫圓気鹿粡寂蝟赱齠洲痲筵娼ぢなければならないとき、Apache 内から暗縫罅ザの切替が孫鹿粡寂蝟赱齠洲痲筵娼ぢされます。 suEXEC についての更なる霾鵑蓮鹿粡寂蝟赱齠洲痲筵娼雕瘰痺蒹鱧閭鶩齦纔繝以王踉擦離疋絅瓮鵐鹿粡寂蝟赱齠洲痲筵娼草痺蒹愿囎韶闥ぢを見てください。 + +<strong>関連項目</strong> + <strong>httpd(8)</strong> + +</pre> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/readme-tpf.html b/htdocs/manual/readme-tpf.html new file mode 100644 index 0000000000..5d2d5ac3f7 --- /dev/null +++ b/htdocs/manual/readme-tpf.html @@ -0,0 +1,788 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta http-equiv="Content-Type" + content="text/html; charset=us-ascii" /> + + <title>The Apache TPF Port</title> + <style type="text/css"> + /*<![CDATA[*/ + <!-- + .indented { margin-left: 25pt; } + .output { padding-left: 20px; padding-right: 20px; background-color: #dadada; } + .nobr { white-space: nowrap; } + --> + /*]]>*/ + </style> +</head> + +<body> + <center> + <h2><a id="top" + name="top"></a> Overview of the Apache TPF Port</h2> + <hr /> + [ + <a href="#configuration_files">Configuration Files</a> + | <a href="#whats_available">What's Available</a> | + <a href="#cgi">CGI Scripts</a> | + <a href="#options">Options</a> | + <a href="#syslog">Syslog</a> | + <a href="#porting_notes">Porting Notes</a> ] + <hr /> + </center> + + <p>Apache includes changes allowing it to run on IBM's + EBCDIC-based + <a href="http://www.ibm.com/software/ts/tpf/index.html">TPF</a> + (Transaction Processing Facility) operating system. This builds + on the + <a href="http://httpd.apache.org/docs/ebcdic.html">EBCDIC + changes</a> previously made to Apache.</p> + + <p>Refer to either the <a href="install-tpf.html">TPF4.1 + installation</a> or <a href="install-ztpf.html">z/TPF1.1 + installation</a> documents for step-by-step build + instructions.</p> + + <p>If you would like to be notified when new versions of Apache + are released consider joining the + <a href="http://httpd.apache.org/lists.html">announcements + list</a>.</p><br /> + + + <center> + <h2><a id="configuration_files" + name="configuration_files"></a>Apache Configuration + Files</h2> + </center> + + <p>The distributed configuration files (httpd.conf-dist and + mime.types, both located in the conf subdirectory) work on TPF + with the following caveats:</p> + + <ul> + <li>Apache on TPF does not support listening on multiple + ports.</li> + + <li>Performance considerations may dictate setting + KeepAlive to "Off" (the default is "On") or lowering the + Timeout value from the default 300 seconds (5 minutes) in + order to reduce the number of active ECBs on your + system.</li> + + <li>The default value of MaxRequestsPerChild is zero + (infinity). A non-zero value is recommended on TPF to + control resource utilization (such as heap storage) by the + long running Apache child ECBs.</li> + + <li>Unlike on Unix systems, newly created Apache child + processes on TPF re-read the various configuration files + (such as httpd.conf and mime.types). Be sure to stop and + restart Apache after changing configuration files so that + the Apache parent process and all child processes are in + sync.</li> + </ul><br /> + + + <center> + <h2><a id="whats_available" + name="whats_available"></a> What's Available in this + Version</h2> + </center> + + <p>Unless otherwise noted either TPF4.1 PUT09 or z/TPF1.1 + is required for the server to function on TPF.</p> + + <p>The Apache organization provides + <a href="http://httpd.apache.org/docs/">online + documentation</a> describing the various modules and components + of the server.</p> + + <h3>Components/modules tested on TPF:</h3> + + <ul> + <li>alloc.c</li> + + <li>ap_base64.c</li> + + <li>ap_checkpass.c</li> + + <li>ap_cpystrn.c</li> + + <li>ap_ebcdic.c</li> + + <li>ap_fnmatch.c</li> + + <li>ap_md5c.c</li> + + <li>ap_sha1.c</li> + + <li>ap_signal.c</li> + + <li>ap_slack.c</li> + + <li>ap_snprintf.c</li> + + <li>buff.c</li> + + <li>buildmark.c</li> + + <li>http_config.c</li> + + <li>http_core.c</li> + + <li>http_log.c</li> + + <li>http_main.c</li> + + <li>http_protocol.c</li> + + <li>http_request.c</li> + + <li>http_vhost.c</li> + + <li>logresolve.c <em>(requires TPF4.1 PUT 10 or + z/TPF1.1)</em></li> + + <li>mod_access.c <em>(Use of mod_access directives + "<tt>allow from</tt>" & "<tt>deny from</tt>" + with host <u>names</u> (versus ip addresses) requires + TPF4.1 PUT 10 or z/TPF1.1)</em></li> + + <li>mod_actions.c</li> + + <li>mod_alias.c</li> + + <li>mod_asis.c</li> + + <li>mod_auth.c</li> + + <li>mod_auth_anon.c</li> + + <li>mod_autoindex.c</li> + + <li>mod_cern_meta.c</li> + + <li>mod_cgi.c <em>(requires TPF4.1 PUT 10 or + z/TPF1.1)</em></li> + + <li>mod_digest.c</li> + + <li>mod_dir.c</li> + + <li>mod_env.c</li> + + <li>mod_example.c</li> + + <li>mod_expires.c</li> + + <li>mod_headers.c</li> + + <li>mod_imap.c</li> + + <li>mod_include.c <em>(CGI execution requires + TPF4.1 PUT 10 or z/TPF1.1)</em></li> + + <li>mod_info.c</li> + + <li>mod_log_agent.c</li> + + <li>mod_log_config.c</li> + + <li>mod_log_forensic.c</li> + + <li>mod_log_referer.c</li> + + <li>mod_mime.c</li> + + <li>mod_mime_magic.c</li> + + <li>mod_negotiation.c</li> + + <li> + <a href="http://hpwww.ec-lyon.fr/~vincent/apache/mod_put.html" + >mod_put.c</a> <em>(third party module)</em></li> + + <li>mod_setenvif.c</li> + + <li>mod_speling.c</li> + + <li>mod_status.c</li> + + <li>mod_tpf_shm_static.c <em>(third party module, requires + TPF4.1 PUT 10 or z/TPF1.1)</em></li> + + <li>mod_unique_id.c <em>(requires TPF4.1 PUT 10 or + z/TPF1.1)</em></li> + + <li>mod_userdir.c</li> + + <li>mod_usertrack.c</li> + + <li>os.c</li> + + <li>os-inline.c</li> + + <li>regular expression parser <em>(used only on + TPF4.1)</em></li> + + <li>regular expression test tool <em>(used only on TPF4.1; + requires TPF4.1 PUT 10 )</em></li> + + <li>rfc1413.c</li> + + <li>rotatelogs.c <em>(requires TPF4.1 PUT 10 or + z/TPF1.1; on TPF4.1, if PJ27214 is implemented be sure to + apply PJ28367)</em></li> + + <li>syslog <em>(requires TPF4.1 PUT13 or z/TPF1.1; see + <a href="#syslog">usage</a> instructions)</em></li> + + <li>util.c</li> + + <li>util_date.c</li> + + <li>util_md5.c</li> + + <li>util_script.c</li> + + <li>util_uri.c</li> + </ul> + + <h3>Components/modules not yet supported on TPF:</h3> + + <ul> + <li>htdigest.c</li> + + <li>htpasswd.c</li> + + <li>lib/expat-lite</li> + + <li>lib/sdbm</li> + + <li>mod_auth_digest.c</li> + + <li>mod_proxy.c</li> + + <li>mod_rewrite.c</li> + + <li>mod_vhost_alias.c</li> + + <li>proxy_cache.c</li> + + <li>proxy_connect.c</li> + + <li>proxy_ftp.c</li> + + <li>proxy_http.c</li> + + <li>proxy_util.c</li> + </ul> + + <h3>Components/modules that don't apply or that probably won't + ever be available on TPF:</h3> + + <ul> + <li>ab.c</li> + + <li>ap_getpass.c</li> + + <li>mod_auth_db.c</li> + + <li>mod_auth_dbm.c</li> + + <li>mod_auth_db.module</li> + + <li>mod_mmap_static.c</li> + + <li>mod_so.c</li> + + <li>suexec.c</li> + </ul><br /> + + + <center> + <h2><a id="cgi" + name="cgi"></a>How to Use CGI Scripts</h2> + </center> + + <p>The following is a very simple example of a CGI script + ("Hello World") and the necessary steps to run it.<br /> + Refer to the + <a href="http://httpd.apache.org/docs/mod/mod_cgi.html">mod_cgi + module</a> for additional information.</p> + + <h3>Add necessary directives to httpd.conf:</h3> + + <p>Example:</p> + + <p class="indented"><tt>ScriptLog logs/script_log<br /> + ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/</tt></p> + + <p>A request for + <tt>http://</tt><i>myserver</i><tt>/cgi-bin/filename.cgi</tt> + would cause the server to run the script + <span class="nobr"><tt>/usr/local/apache/cgi-bin/filename.cgi</tt></span></p> + + <h3>Create the CGI script:</h3> + + <p>For this example <tt>QZZ1</tt> is the name of the TPF + program that will be executed by the CGI script.<br /> + The directory path must match what is in the httpd.conf file + for <tt>ScriptAlias</tt> directive.</p> + + <p class="indented"><b><tt>zfile echo "#!QZZ1" > + /usr/local/apache/cgi-bin/filename.cgi<br /> + zfile cat + /usr/local/apache/cgi-bin/filename.cgi </tt></b> + (expected output: <tt>#!QZZ1</tt>)</p> + + <h3>Mark the script as executable:</h3> + + <p class="indented"><b><tt>zfile chmod 755 + /usr/local/apache/cgi-bin/filename.cgi</tt></b></p> + + <h3>Create, load, and activate the CGI program (QZZ1) on + TPF:</h3> + + <table class="indented"> + <tr> + <td class="output"> + <pre> +/* QZZ1-- simple "Hello world" program to demonstrate basic CGI output */ + +#include <stdio.h> +#include <stdlib.h> + +int main() { + + /* Print the CGI response header, required for all HTML output. */ + /* Note the extra \n, to send the blank line. */ + /* Print the HTML response page to STDOUT. */ + printf("Content-type: text/html\n\n"); + + printf("<html>\n"); + printf("<head><title>CGI Output<title><head>\n"); + printf("<body>\n"); + printf("<h1>Hello world.<h1>\n"); + printf("<body>\n"); + printf("<html>\n"); + + exit(0); +} + </pre> + </td> + </tr> + </table> + + <h3>Request the CGI script from a browser:</h3> + + <p class="indented"> + <tt>http://</tt><i>myserver</i><tt>/cgi-bin/filename.cgi</tt></p> + + <center> + <br /> + + + <h2><a id="options" + name="options">How to Use Apache's "Dash" + Options</a></h2> + </center> + + <h3>Overview of Apache's "dash" options:</h3> + + <p>Apache can be invoked with various options, such as "-f". + Some of these options display information about the server or + perform syntax checks but they don't actually start the server. + These "information only" options are useful with TPF's ZFILE + command line feature: -h, -l, -L, -S, -t, -T, -v, and -V.</p> + + <p>Another option, -X, is used when actually running the + server. It is passed to Apache through the ZINET XPARM field + since ZINET is the only way to start the server on TPF.</p> + + <p>A third group of options apply to both the informational + displays (ZFILE) and running the server (ZINET XPARM): -d, -D + and -f.</p> + + <p>The rest of Apache's options are either not applicable or + are not supported on TPF.</p> + + <p>On TPF4.1 using dash options requires PJ27277 which shipped + on PUT13.</p> + + <h3>Table of supported Apache options</h3> + + <table border="1" + cellpadding="5"> + <tr> + <td> + <b>Option </b></td> + + <td><b>ZFILE</b></td> + + <td><b>ZINET</b></td> + + <td><b>Description</b></td> + </tr> + + <tr> + <td valign="top"><b>-d</b> <i>path</i></td> + + <td valign="top">ZFILE</td> + + <td valign="top">ZINET</td> + + <td valign="top">Set the initial value for the + ServerRoot directive.</td> + </tr> + + <tr> + <td valign="top"><b>-D</b> <i>define</i></td> + + <td valign="top">ZFILE</td> + + <td valign="top">ZINET</td> + + <td valign="top">Set a configuration parameter which + can be used with <IfDefine>...</IfDefine> + sections in the configuration file to conditionally + skip or process commands.</td> + </tr> + + <tr> + <td valign="top"><b>-f</b> <i>filename</i></td> + + <td valign="top">ZFILE</td> + + <td valign="top">ZINET</td> + + <td valign="top">Use an alternate configuration file + instead of the default conf/httpd.conf file.</td> + </tr> + + <tr> + <td valign="top"><b>-h</b></td> + + <td valign="top">ZFILE</td> + + <td valign="top"> </td> + + <td valign="top">List a short summary of available + command line options then exit. Note that this outputs + all options, not just those supported on TPF.</td> + </tr> + + <tr> + <td valign="top"><b>-l</b></td> + + <td valign="top">ZFILE</td> + + <td valign="top"> </td> + + <td valign="top">List modules compiled into the server + then exit.</td> + </tr> + + <tr> + <td valign="top"><b>-L</b></td> + + <td valign="top">ZFILE</td> + + <td valign="top"> </td> + + <td valign="top">List available configuration + directives then exit. Note that this outputs all + configuration directives, not just those supported on + TPF.</td> + </tr> + + <tr> + <td valign="top"><b>-S</b></td> + + <td valign="top">ZFILE</td> + + <td valign="top"> </td> + + <td valign="top">Show the settings as parsed from the + configuration file then exit. Currently Apache only + shows the virtual host settings.</td> + </tr> + + <tr> + <td valign="top"><b>-t</b></td> + + <td valign="top">ZFILE</td> + + <td valign="top"> </td> + + <td valign="top">Run syntax tests for configuration + files with document root checks then exit.</td> + </tr> + + <tr> + <td valign="top"><b>-T</b></td> + + <td valign="top">ZFILE</td> + + <td valign="top"> </td> + + <td valign="top">Run syntax tests for configuration + files <i>without</i> document root checks then + exit.</td> + </tr> + + <tr> + <td valign="top"><b>-v</b></td> + + <td valign="top">ZFILE</td> + + <td valign="top"> </td> + + <td valign="top">Show the version number then + exit.</td> + </tr> + + <tr> + <td valign="top"><b>-V</b></td> + + <td valign="top">ZFILE</td> + + <td valign="top"> </td> + + <td valign="top">Show the version number and various + compile settings then exit.</td> + </tr> + + <tr> + <td valign="top"><b>-X</b></td> + + <td valign="top"> </td> + + <td valign="top">ZINET</td> + + <td valign="top">Run in single-process mode for + internal debugging purposes only. The parent process + does not tpf_fork any children.</td> + </tr> + </table> + + <p>See + <a href="http://httpd.apache.org/docs/programs/httpd.html">http://httpd.apache.org/docs/programs/httpd.html</a> + for more information about these command line options.</p> + + <h3>Setup for ZFILE examples:</h3> + + <p>Ensure Apache (CHTA) is loaded.</p> + + <p>Create the httpd script:</p> + + <p class="indented"><b><tt>zfile echo "#!CHTA" > + /bin/httpd<br /> + zfile cat /bin/httpd </tt></b> (expected + output: <tt>#!CHTA</tt>)</p> + + <p class="indented">(See "ZFILE-Activate a TPF Segment or + Script" in the + <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM TPF + Information Center</a> for additional information.)</p> + + <p>Mark the script as executable:</p> + + <p class="indented"><b><tt>zfile chmod 755 + /bin/httpd</tt></b></p> + + <h3>ZFILE example 1:</h3> + + <p class="indented"><b><tt>zfile httpd -v</tt></b></p> + + <table class="indented"> + <tr> + <td class="output"> + <pre> +FILE0001I 11.43.09 START OF DISPLAY FROM httpd -v +Server version: Apache/1.3.20 (TPF) +Server built: May 23 2001 09:39:22 +END OF DISPLAY + </pre> + </td> + </tr> + </table> + + <h3>ZFILE example 2:</h3> + + <p class="indented"><b><tt>zfile httpd -t -f + /usr/local/apache/conf/alt.conf</tt></b></p> + + <table class="indented"> + <tr> + <td class="output"> + <pre> +FILE0002I 11.47.26 START OF ERROR DISPLAY FROM httpd -t ... +Syntax OK +END OF DISPLAY + </pre> + </td> + </tr> + </table> + + <h3>ZINET XPARM example:</h3> + + <p>This example uses an alternate configuration file called + /usr/local/apache/conf/alt.conf.</p> + + <p>Create and transfer your alternate configuration file to + your TPF test system.</p> + + <p>Add and start Apache using <tt>zinet</tt> commands:</p> + + <p class="indented"><b><tt>zinet add s-apache pgm-chta + model-daemon user-root xparm--f conf/alt.conf<br /> + zinet start s-apache</tt></b></p> + + <p>(See "ZINET ADD-Add an Internet Server Application Entry" + and "ZINET ALTER-Change an Internet Server Application Entry" + in the <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM + TPF Information Center</a> for more information about using the + XPARM field.)</p> + + <center> + <h2><a id="syslog" + name="syslog"></a>Syslog Daemon</h2> + </center> + + <h3>Syslog overview:</h3> + + <p>The syslog daemon is a server process that provides a + message logging facility for application and system processes. + It can be used to write messages to log files or to tapes. See + "Operating the Syslog Daemon" in the + <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">IBM TPF + Information Center</a>. And see the Apache ErrorLog + <a href="http://httpd.apache.org/docs/mod/core.html">directive + documentation</a> for details on how to use syslog with + Apache.</p> + + <p>On TPF4.1 syslog capabilities were added with PJ27214 which + shipped with PUT13. You must follow the + <a href="install-tpf.html#syslog">TPF4.1 syslog-specific + installation instructions</a> in order to have the option of + using syslog with Apache on a TPF4.1 system. No additional + installation steps are needed for z/TPF1.1 systems.</p> + + <h3>Tips on using syslog with your Apache error log:</h3> + + <p>This section provides some tips on using syslog with Apache. + It is not meant to replace the syslog documentation in the TPF + TCP/IP publication.</p> + + <ul> + <li>The syslog daemon will not create files. If you are + logging to a file (as specified in the <tt>syslog.conf</tt> + configuration file) that file must already exist and have + permissions that allow the syslog daemon to write to + it.</li> + + <li>You must restart the syslog daemon for it to recognize + changes to its <tt>syslog.conf</tt> configuration + file.</li> + + <li>The syslog daemon must be active prior to starting + Apache.</li> + + <li>To indicate you want to use syslog with your Apache + error log add the following directive to your + <tt>httpd.conf</tt> file: + "<tt>ErrorLog syslog:</tt><i>facility</i>" where + <i>facility</i> is "local0" through "local7".</li> + + <li>Apache will default the facility to "local7" if you + omit the facility name from the ErrorLog directive (that is + "<tt>ErrorLog syslog</tt>").</li> + + <li>The syslog facility name must be one that is recognized + by both Apache and the syslog.h header file. The facility + names "local0" through "local7" are explicitly set aside + for your use.</li> + + <li>Although "local0" through "local7" are recommended user + facility names, here is the complete list of names + recognized by both Apache and TPF's syslog.h: auth, cron, + daemon, kern, local0, local1, local2, local3, local4, + local5, local6, local7, lpr, mail, news, syslog, user, and + uucp.</li> + + <li>You won't see the normal Apache startup/shutdown + messages when you use syslog with your Apache error + log.</li> + + <li>Syslog does not support TCP/IP Offload devices (ZCLAW; + <em>used only on TPF4.1</em>)</li> + </ul><br /> + + + <center> + <h2><a id="porting_notes" + name="porting_notes"></a>Porting Notes</h2> + </center> + + <h3>Changes made due to differences between UNIX and TPF's + process models:</h3> + + <ul> + <li> + <p><b>Signals</b>: On TPF a signal that is sent to a + process remains unhandled until the process explicitly + requests that signals be handled using the + <tt>tpf_process_signals()</tt> function. Additionally, + the default action for an alarm on TPF is to take an + OPR-7777 dump and exit. (On UNIX the default is the + equivalent of <tt>exit()</tt> with no dump taken.) + These differences necessitated a few modifications:</p> + + <ul> + <li>bypass the use of <tt>ap_block_alarms()</tt> + & <tt>ap_unblock_alarms()</tt></li> + + <li>add <tt>tpf_process_signals()</tt> calls</li> + + <li>add <tt>select()</tt> calls to prevent + blocking.<br /></li> + </ul> + </li> + + <li style="list-style: none"><br /></li> + + <li> + <p><b>Find that function...</b> Some simple functions + & definitions needed to be added on TPF. They are + in src/os/tpf/os.h.</p> + </li> + + <li> + <p><b>EBCDIC changes:</b> TPF-specific conversion + tables between US-ASCII and EBCDIC (character set + IBM-1047 to be exact) were created.</p> + </li> + + <li> + <p><b>Miscellaneous, minor changes:</b> Various minor + changes (such as casting) were made due to differences + in how some functions are implemented on TPF.</p> + </li> + </ul> + <hr /> + + <center> + [ <a href="#top">top</a> | + <a href="#configuration_files">Configuration Files</a> + | <a href="#whats_available">What's Available</a> | + <a href="#cgi">CGI Scripts</a> | + <a href="#options">Options</a> | + <a href="#syslog">Syslog</a> | + <a href="#porting_notes">Porting Notes</a> ] + </center> +</body> +</html> diff --git a/htdocs/manual/sections.html.en b/htdocs/manual/sections.html.en new file mode 100644 index 0000000000..c3a149831a --- /dev/null +++ b/htdocs/manual/sections.html.en @@ -0,0 +1,155 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>How Directory, Location and Files sections work</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">How Directory, Location and Files sections + work</h1> + + <p>The sections <a + href="mod/core.html#directory"><code><Directory></code></a>, + <a + href="mod/core.html#location"><code><Location></code></a> + and <a + href="mod/core.html#files"><code><Files></code></a> can + contain directives which only apply to specified directories, + URLs or files respectively. Also htaccess files can be used + inside a directory to apply directives to that directory. This + document explains how these different sections differ and how + they relate to each other when Apache decides which directives + apply for a particular directory or request URL.</p> + + <h2>Directives allowed in the sections</h2> + + <p>Everything that is syntactically allowed in + <code><Directory></code> is also allowed in + <code><Location></code> (except a + sub-<code><Files></code> section). Semantically, however + some things, most notably <code>AllowOverride</code> and the + two options <code>FollowSymLinks</code> and + <code>SymLinksIfOwnerMatch</code>, make no sense in + <code><Location></code>, + <code><LocationMatch></code> or + <code><DirectoryMatch></code>. The same for + <code><Files></code> -- syntactically everything is fine, + but semantically some things are different.</p> + + <h2>How the sections are merged</h2> + + <p>The order of merging is:</p> + + <ol> + <li><code><Directory></code> (except regular + expressions) and .htaccess done simultaneously (with + .htaccess, if allowed, overriding + <code><Directory></code>)</li> + + <li><code><DirectoryMatch></code>, and + <code><Directory></code> with regular expressions</li> + + <li><code><Files></code> and + <code><FilesMatch></code> done simultaneously</li> + + <li><code><Location></code> and + <code><LocationMatch></code> done simultaneously</li> + </ol> + + <p>Apart from <code><Directory></code>, each group is + processed in the order that they appear in the configuration + files. <code><Directory></code> (group 1 above) is + processed in the order shortest directory component to longest. + If multiple <code><Directory></code> sections apply to + the same directory they are processed in the configuration + file order. The configuration files are read in the order + httpd.conf, srm.conf and access.conf. Configurations included + via the <code>Include</code> directive will be treated as if + they were inside the including file at the location of the + <code>Include</code> directive.</p> + + <p>Sections inside <code><VirtualHost></code> sections + are applied <em>after</em> the corresponding sections outside + the virtual host definition. This allows virtual hosts to + override the main server configuration. (Note: this only works + correctly from 1.2.2 and 1.3a2 onwards. Before those releases + sections inside virtual hosts were applied <em>before</em> the + main server).</p> + + <p>Later sections override earlier ones.</p> + + <h2>Notes about using sections</h2> + + <p>The general guidelines are:</p> + + <ul> + <li>If you are attempting to match objects at the filesystem + level then you must use <code><Directory></code> and/or + <code><Files></code>.</li> + + <li>If you are attempting to match objects at the URL level + then you must use <code><Location></code></li> + </ul> + + <p>But a notable exception is:</p> + + <ul> + <li>proxy control is done via <code><Directory></code>. + This is a legacy mistake because the proxy existed prior to + <code><Location></code>. A future version of the config + language should probably switch this to + <code><Location></code>.</li> + </ul> + + <p>Note about .htaccess parsing:</p> + + <ul> + <li>Modifying .htaccess parsing during Location doesn't do + anything because .htaccess parsing has already occurred.</li> + </ul> + + <p><code><Location></code> and symbolic links:</p> + + <ul> + <li>It is not possible to use "<code>Options + FollowSymLinks</code>" or "<code>Options + SymLinksIfOwnerMatch</code>" inside a + <code><Location></code>, + <code><LocationMatch></code> or + <code><DirectoryMatch></code> section (the options are + simply ignored). Using the options in question is only + possible inside a <code><Directory></code> section (or + a <code>.htaccess</code> file).</li> + </ul> + + <p><code><Files></code> and <code>Options</code>:</p> + + <ul> + <li>Apache won't check for it, but using an + <code>Options</code> directive inside a + <code><Files></code> section has no effect.</li> + </ul> + + <p>Another note:</p> + + <ul> + <li>There is actually a + <code><Location></code>/<code><LocationMatch></code> + sequence performed just before the name translation phase + (where <code>Aliases</code> and <code>DocumentRoots</code> + are used to map URLs to filenames). The results of this + sequence are completely thrown away after the translation has + completed.</li> + </ul> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/sections.html.html b/htdocs/manual/sections.html.html new file mode 100644 index 0000000000..3a717ebdd4 --- /dev/null +++ b/htdocs/manual/sections.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="sections.html.en" --> + diff --git a/htdocs/manual/sections.html.ja.jis b/htdocs/manual/sections.html.ja.jis new file mode 100644 index 0000000000..41f08c5e7e --- /dev/null +++ b/htdocs/manual/sections.html.ja.jis @@ -0,0 +1,155 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>How Directory, Location and Files sections work</title> + + </head> + <!-- English revision: 1.13 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Directory, Location, Files + セクションの動作方法</h1> + + <p>セクション <a + href="mod/core.html#directory"><code><Directory></code></a>, + <a + href="mod/core.html#location"><code><Location></code></a>, <a + href="mod/core.html#files"><code><Files></code></a> + には、それう苳擦貉慊蠅気譴織妊譽肇蝓孀蓑鹿粡寂蝟赱齠洲痲筵娼ファイルにのみ適用されるディレクティブを書くことができます。 + また、ディレクトリにディレクティブを適用するためにディレクトリ中に + .htaccess ファイルを使用することもできます。このドキュメントは + これらのセクションの違いを説明し、それらと、ディレクトリや + リクエストされた URL に Apache がどのディレクティブを + 適用するかを決定する方法との関係を説明します。</p> + + <h2>セクション中に許可されているディレクティブ</h2> + + <p>構文踉祉閼絋苳殺瘢雹踉残蜥繝鴒逅紫閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢに書けるものはすべて <code><Location></code> + にも書くことができます (<code><Files></code> + セクションは例外です)。しかし、中には + <code>AllowOverride</code> や <code>FollowSymLinks</code> + と <code>SymLinksIfOwnerMatch</code> + という瘢雹二つのオプションのよう瘢雹に、<code><Location></code>, + <code><LocationMatch></code>, + <code><DirectoryMatch></code> 中では意味のないものもあります。 + 同様のことが <code><Files></code> + にも言えます。構文的にはすべて大翩廚任垢鹿粡寂蝟赱齠洲痲筵娼意味的にはそう瘢雹でないものもあります。</p> + + <h2>セクションのマ・踉札己王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮マ・踉札犬僚臠屬楼焚のよう瘢雹になっています:</p> + + <ol> + <li><code><Directory></code> (正規表現無し) と + .htaccess を同時に (.htaccess が許可されていれば、それが + <code><Directory></code> を 綵颪靴泙蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚竢粤逅詞堤鱚笏闥癆竏逅紫閼絋苳と正規表現のある + <code><Directory></code></li> + + <li><code><Files></code> と + <code><FilesMatch></code> を同時に</li> + + <li><code><Location></code> と + <code><LocationMatch></code> を同時に</li> + </ol> + + <p><code><Directory></code> + 以外は、それう苳擦譴離哀襦プは設定ファイルに現れた順番に処理されます。 + <code><Directory></code> (紊離哀襦プ 1) + はディレクトリが短いものから長いものへと処理されます。複数の + <code><Directory></code> セクションが同じディレクトリに + 適用される豺腓蓮∪瀋螢侫.ぅ訝罎僚臠屬暴って処理されます。 + 設定ファイルは httpd.conf, srm.conf, access.conf + の順に処理されます。<code>Include</code> + によって挿入された設定は 挿入しているファイルの + <code>Include</code> + ディレクティブの位置にあったかのよう瘢雹に扱われます。</p> + + <p><code><VirtualHost></code> セクション中のセクションは + バ・踉札船礇襯曠好箸猟蟲舛粒安逅擦梁弍垢襯札轡腑鵑鹿粡寂蝟赱齠洲痲筵娼纃後</em>に適用されます。これによりバ・踉札船礇襯曠好箸鹿粡寂蝟赱齠洲痲筵娼メインのサ・踉札仞瀋蠅鬢苳糸書きできるよう瘢雹なります。(注意: これは + 1.2.2 以降と 1.3a2 以降でのみ正しく動作します。 + これらのリリ・踉札垢茲蠢阿里發里魯弌チャルホストの中のセクションは + メインサ・踉札个纃前</em>に適用されていました)。</p> + + <p>後のセクションのディレクティブが前のセクションのものを綵颪靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢セクションを使う瘢雹際の注意</h2> + + <p>一般的なガイドラインは:</p> + + <ul> + <li>ファイルシステムレベルでオブジェクトのマッチを行なう瘢雹ときは、 + <code><Directory></code> と <code><Files></code> + を使う瘢雹必要があります。</li> + + <li>URL レベルでオブジェクトのマッチを行なう瘢雹ときは + <code><Location></code> を使う瘢雹必要があります。</li> + </ul> + + <p>重要な例外は:</p> + + <ul> + <li>プロキシの制御は <code><Directory></code> + を通して行なわれます。これはプロキシが + <code><Location></code> + より前から存在したことによるミスです。茲寮瀋蠍生譴任呂修蕕鹿粡寂蝟赱齠洲痲筵娼竢粤逅詞弥竅闔逅紫閼絋苳に切り替えられるでしょう瘢雹。</li> + </ul> + + <p>.htaccess ファイルの解析に関する注意:</p> + + <ul> + <li>Location 中で .htaccess の解析方法を変更しても、 + 何も変わりません。.htaccess の解析は既に終わっているからです。</li> + </ul> + + <p><code><Location></code> とシンボリックリンク:</p> + + <ul> + <li>"<code>Options FollowSymLinks</code>" や + "<code>Options SymLinksIfOwnerMatch</code>" は + <code><Location></code>, + <code><LocationMatch></code>, + <code><DirectoryMatch></code> + セクションでは使う瘢雹ことができません + (それらのオプションは単に無視されます)。それらのオプションは + <code><Directory></code> セクション (もしくは + <code>.htaccess</code> ファイル) の中でのみ使用可能です。</li> + </ul> + + <p><code><Files></code> と <code>Options</code>:</p> + + <ul> + <li>Apache はこの靴魯船Д奪靴泙擦鵑鹿粡寂蝟赱齠洲痲筵娼竢粤逅詞鍋跂鵙瘢雹苳殺踉晒竢粤ぢセクションの中で <code>Options</code> + ディレクティブを使用しても効果はありません。</li> + </ul> + + <p>側苳擦涼躇墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢ尊櫃砲蓮¬前を変換する段階 (URL + をファイル巳苳擦縫泪奪廚垢襪燭瓩踉祉閼絋苳餐跚癈閼絋苳や + <code>DocumentRoot</code> が使用されるところ) の彫苳餐阿鹿粡寂蝟赱齠洲痲筵娼竢粤逅詞弥竅闔逅紫閼絋苳晒竢粤逅詞弥竅闔浴荀瘢雹苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼が行なわれます。 + これらを適用した結果は変換が終わった後に完全に里討蕕譴泙后鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡纈鬮粤谺緕閭鶩轣銛瘡纈鬮粤谺緕錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭繞贋恭唄傑錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁黼鴟纈蜆絎蔗迪鄂莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡纈鬮粤谺緕鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐狭声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂嚆鴟纈蜆衷鈕蜃癆蜿遉踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳屍纈鬮怏粤闔肅苺鱇闔右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩閭緕纔韭瘟銖闕閹蒹蜥繝頏阮蜆繖蝟昭粡竚癈鷭п粐Ь蒹踉氏鱚羹閼闥絎蔗迪▽苳祉闥絋踉晒瓲苳黼鴟纈蓍竏鱚黼鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃矚皷關纈癆蜿銖黼鴟纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蜆緕肅竅闔▽苳屍纈符緕肅竅闔薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■跫竅闔鵞鍋跂閭癆蜿銖薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■頏閭纉鵞會閭纉鋳縺闔薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■鈬闥襤励闥衷鈕蜃癆蜿遉踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就r纉阨鱆紜也迚鈑纉阨鱆專瘍絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏∫粤銓蜀蜒癆蜿遐瘢綵∫粤銓蜀蜒癆蜿遐嚆鴟纈鹿粡寂蝟赱齠洲痲筵娼符緕肅竅闔王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑吶赱堤鱚笏蝟纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪s纈鴈瘢紜嚆鴟纈令辣碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪s纈鱇粱蜴▽苳屍纈鯀粱蜴碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯黼鴟纈皷芬癆紜嚆鴟纈嚔芬癆絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪s纈鶯闍緕鵞嚆鴟纈夬諷銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯繝瘤闔蜒瘡釶辣▽苳師黼秩鈿鉗竅賣瘢絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉祉閼絋苳屍纈鯀粱蜴閼絋苳瘤竢粤嚆鴟纈夬諷銖閼絋苳纂蝟昭粡竚癈鷭п粐Ь蜥繝竢銓鳫癆鈕闥轣闔硼蒹纈跛綣蝟昭粡竚癈鷭п粐Ь鱚黼銓繖黼鴟纈緕纈癆繖閭緕癈鴪闥纉黶艱鶤鹿粡寂蝟赱齠洲痲筵娼壽竢粤嚆鴟纈夬諷銖閼絋苳粡鱚笏蝟黼蒹瘡綣蝟昭粡竚癈鷭п粐Ь纈挽墅纉竟銖蒹痲纈蜈趙踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽竢粤嚆鴟纈令辣閼絋苳瘤篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳師黼秩鈿鉗竅賣瘢絋踉晒竢粤蜥繝癇繖黼鴟纈鹿粡寂蝟赱齠洲痲筵娼續纈迚鈬阯竢銖黼趾繙纈緕瘡厂鶤闥鹿粡寂蝟赱齠洲痲筵娼纔瘢韭絳蒹竚蜈銓繿齡粡鱚笏闥閻鈿蝟昭粡竚癈鷭п粐Ь釿跿粤蒹鱇蛹蜴鼬癈蜴蒹蜥繝鴒瘢絳鞜竏逡齡鹿粡寂蝟赱齠洲痲筵娼鱚粡鱚笏蒹跚緕蒹釶辣釿跿粡鈑蒹鱇蛹蜴膽蝟昭粡竚癈鷭п粐Ь赱鼈癆蒹跚緕跛闥鱚笏踟纉闌繻癆蝟綣蝟昭粡竚癈鷭п粐Ь繙纈緕竇蜴蒹閭緕鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就跫竅闔鵞瘢綵閭癆蜿銖▽苳仔蛹弥竅闔鵙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳子繻癆繖蜥繝鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪c闥繖鞣蜥繝鴒▽苳暫闥緜霙蜥繝鴒碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯粹笊辣銓鳫阡▽苳残閭緕闖熙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯纈鳫鳰閾▽苳仕鴪闥弥胼踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯跫站肅跂▽苳嗣閭諞蛹絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯韈粭蛹紜倡籠蛹絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪s竢鱚硼癇粭蛹紜噬闥綢閨鰾鍋跂碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪s纈鴪闖槇嚆鴟纈呰阡碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纉粡鱚笏蝟纉闔闌蒹閭癆蜿銖鱸阨肅跂鷦蝟昭粡竚癈鷭п粐Ь葹草痺蒹繞糂闥鳫鞳關纈癆蜿隨蒹鞜釶辣黼篌蝟昭粡竚癈鷭п粐Ь閻鈿矼芍赱鼈肅跂癇跫竅鱚赱鹿粡寂蝟赱齠洲痲筵娼蒹踉祉閼絋苳屍纈鰔闖熙踉晒竢粤代癇繙硼閭癆蜴肅跂鷦蝟昭粡竚癈鷭п粐Ь鞜蜒癇蜚痰跂鈿遶鳫阡黼鴦嚆畆蝟昭粡竚癈鷭п粐Ь鱚羹蜩祚黼笊鱸熹蜷鶤蔗迪▽苳雌繝蜚頌閭緕闔鹿粡寂蝟赱齠洲痲筵娼肬迴鱚續瘟踈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏鳫竇齠釶辣就頏閭纉鵞會閭纉鋳縺闔王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑吶赱堤鱚笏蝟纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯碵屋旭痺竢槇帯屋旭巣竢熙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯苒阨陟白阨隍踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯轣跚緕▽苳四癢柱蜈銓鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪m癢鱚髟纉鞳鱆蓍趙▽苳四癢吶髟纉倥鮹蓍趙碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯轣鞜鱚黼鴟纈鵞浴鞜鱚嚆鴟纈鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪m蜴齔癇纉纈鴦▽苳四蜴嚼癇縒纈鴦碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪s纈鶯紜嚆鴟纈奘鞳碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯齡癇纈鴦▽苳屍鶯嚆鴟纈鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪t蓿縺糂鞳鱆蓍趙▽苳市蓿縺糂倥鮹蓍趙碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪u黼鬆專纈碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦緕踉祉閼絋苳屍纈鰓絋踉晒竢粤黼繝闕辣鈔繖瘡鹿粡寂蝟赱齠洲痲筵娼閹踉祉閼絋苳屍鈔瘡闔絋踉晒竢粤草痺蒹闥鉗蜩鹿粡寂蝟赱齠洲痲筵娼頏絖肬鳬蜴黼鴟纈皷鈑跂闔闌鳫竇齠鱚齔闔皷碎綣蝟昭粡竚癈鷭п粐Ь闥癜釿蓍鈑蓍趙鳫竇齠纉蓍竏蜩肬竢銕繝闔瘤篌蝟昭粡竚癈鷭п粐Ь纈蒹緕蒹癇鱸草痺蒹踞癨蜈瘟銓瘟郤蝟昭粡竚癈鷭п粐Ь纐纈瘡踉糸蹙苳雌鞜鱚蹙苳闥粲黼鴟纈鳫竇齠纉蜒齡瘤篌蝟昭粡竚癈鷭п粐Ь縺糯黼鴟蜴竢迚鈑繿齡鶤蜩癨竚蜈銓粹阡鹿粡寂蝟赱齠洲痲筵娼鈬繖蜚闥纓蓍趙鳫竇齠纉矼闥諷矼肬鱚鹿粡寂蝟赱齠洲痲筵娼繪鱚髟纉瘤黼鴟繖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽竢粤囈癇纈鴦閼絋苳錆踉祉閼絋苳四蜴嚼癇縒纈鴦閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼竢粤浴鞜鱚嚆鴟纈鵙踉晒竢粤瘤竢粤浴纈鴦閼絋苳纂蝟昭粡竚癈鷭п粐Ь繚癆蓖鞜鱚銓鳫竇齠鱚癆纉蓍趙鱚纈鹿粡寂蝟赱齠洲痲筵娼鱚髟纉侮緕纈瘡草痺蒹鴒繻罩鱚苺赱鈑齒闢蝟昭粡竚癈鷭п粐Ь蜚纉鈿鈬繖痲褫齡蒹黼蜥繝胙闕蒹蜥繙癜踉鹿粡寂蝟赱齠洲痲筵娼跿纉嚔蜒鈬繖黼鴟迴鱚葹乙皷逡踉瘤繽鹿粡寂蝟赱齠洲痲筵娼鱚髟纉癨繞釿鱚癈竢粤浴跚緕閼絋苳錆蓍跂鹿粡寂蝟赱齠洲痲筵娼皷蜊蜚繖纃闥轣鈬繖粤竰縺黼鹿粡寂蝟赱齠洲痲筵娼竢粤浴跚緕閼絋苳繞黼鴟纈鳫鱇鼈蜴膽蝟昭粡竚癈鷭п粐Ь齬瘰韈鈑纃闥蜩瘤矚站闥蜴肬鴉癆蜿痰阨蝟昭粡竚癈鷭п粐Ь蜴頏閭纉竰縺闔頏阮蜆繖畆蝟昭粡竚癈鷭п粐Ь鱚羹蜩祚鞳鱠蜴膊蔗迪▽苳諮纈肬鴉瘤竇蜴鹿粡寂蝟赱齠洲痲筵娼粹笊辣銓癆蜿隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蓍跂蒹癇緕頏閭纉蜩齦瘡踟鶯繖鳫阡鈔纈鹿粡寂蝟赱齠洲痲筵娼寰蝌闥粤蜴闥鍵竏蛹頏閭纉黼癇綣蝟昭粡竚癈鷭п粐Ь癜釿蒹磔鞜竏癈纉鶚頏蝟蛹繚繖黼鬯蒹鹿粡寂蝟赱齠洲痲筵娼竢粤專纈閼絋苳瘤竢粤白阨隍踉晒竢粤蜥繝癇繖鐚蝟昭粡竚癈鷭п粐Ь續蒹鱸跂艱閹蒹鞜竏竏蛹頏閭纉黼鶤蒹蓍趙鹿粡寂蝟赱齠洲痲筵娼頏閭纉黼逡齡痰跂鱚痲跛蒹闔銓葹跛綣蝟昭粡竚癈鷭п粐Ь纈筱蓖葹聽頏蝟蛹繚纉纖闔癆鷦蝟昭粡竚癈鷭п粐Ь闢皷碎絎痲粡闔跂齠踉氏鱚羹‰祟蔗迪▽苳雌礒踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь繖纉粡鱚笏蝟纉踈黼頏蝟蛹繚纉蓍竏蛹矼鹿粡寂蝟赱齠洲痲筵娼蜴蒹鱸磔派竰蜷踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢粤浴繿齡麸纈宙蛹筅踉晒竢粤闔闌蓖胙繿銓踟蒹鹿粡寂蝟赱齠洲痲筵娼黼鴟纈繝跂頏閭纉黼磔蛹跚鈑趙鈬瘤赱竏蜴鈬蝟昭粡竚癈鷭п粐Ь鈬鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳師鈔纈蜴粹草痺蒹癜釿蒹闔竢銓鳫頏閭纉瘤闔綣蝟昭粡竚癈鷭п粐Ь蓍趙鳫竇齠壽竏蛹頏閭纉竰縺逡踉蜷跂蓿縺糂鐚蝟昭粡竚癈鷭п粐Ь纈繿齡鶤蒹矼閹蓿縺糂竢銓鳫跛繖綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳市蓿縺糂倥鮹蓍趙閼絋苳粡鱚笏蝟絎鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鈬闥襤瘢綵續鳬▽苳士續鳬鹿粡寂蝟赱齠洲痲筵娼衷鈕蜃癆蜿遉踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳子繻癆繖蜥繝鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯砠鈔痲糅纉鵞醍鈔槍糅纉鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯諷辮瘡蝟紜妹辮糟蝟絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪k繞鞜跚辣阨槇妹辮糟蝟縱蜊繽碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪l蜩遐也齡緕碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跚齡緕矚站跫腆也齡緕逮站弥胼踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪a窿辮蛹鬆巣竇頸鍋踉纈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪a窿辮纔▽苳餐窿辮纔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯轣繞鞜跚鱚髟纉▽苳四癢妹辮糟蝟縡繿齡鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯竟鶯▽苳姉闥熙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪s緕籵聽鴦蝴紜嚆鈔濯聿纈嚔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪t蜊繽▽苳市蜊縅碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦緕鞜竏齡癇蜚闔鈬笏闕竟鶯鈔粐鱚齠郤蝟昭粡竚癈鷭п粐Ь蒹閭瘡痺蓍鈬鈔瘟闥釿闕蜴鱚髟纉濁繙癜踉蝟昭粡竚癈鷭п粐Ь跚齡緕跛粐鱚齠纉轣竏蜴絳鈔竟鶯鷦蝟昭粡竚癈鷭п粐Ь鞳竕肅繖竢粤倆鶯閼絋苳粡鱚笏蝟蜴蒹纈鮗蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔被鬪竅矼闌蜩闥瘤鹿粡寂蝟赱齠洲痲筵娼闔竟鶯蜩鉤黼跂笏繖粐鱚齠纉闥鹿粡寂蝟赱齠洲痲筵娼竢轤蜴癆蜿隨蓍蜩胄緕闕砠鈬蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就闢帷鶯被齡縺鱚蓍竏續纈迚鈬蓖蝟昭粡竚癈鷭п粐Ь鞜竏鱚齔闔糂粡聿纈緕賓粐鱚齠纉蓖齡釶辣瘤篌蝟昭粡竚癈鷭п粐Ь闥踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纈癇粡鱚笏蝟纉黼纉蜒闥鞳竕胱蓍竏鹿粡寂蝟赱齠洲痲筵娼痲糅纉黼瘤竟鶯草痺蒹蜩銖鎬蒹鹿粡寂蝟赱齠洲痲筵娼竢粤醍鈔槍糅纉鵙踉晒竢粤蜥繝繖鱚齡鱸笏蒹鹿粡寂蝟赱齠洲痲筵娼黼鴟纈跚齡緕蜴蜴芟賓粐鱚齠壽綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳嗣蜩遉踉晒竢粤蜥繝瘤繖齔繝蜀逡踉蜷跂鹿粡寂蝟赱齠洲痲筵娼賓粐鱚齠纉鈔倆鶯蓍竏鞜竏跛蜩隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉祉閼絋苳嗣蜩鄲痺詭閾閼絋苳錆踉祉閼絋苳屍緕簑聽鰉蝴絋踉晒竢粤蝟昭粡竚癈鷭п粐Ь鈔踉祉閼絋苳市蜊縅閼絋苳粡鱚笏蝟纉鱚黼粨蓖蝟昭粡竚癈鷭п粐Ь鞜竏蜴鱇笏蒹續鳬踉祉閼絋苳餐窿辮蛹鬢踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼竢銓鳫踈喞鞳竕肅肅踉纈頸蜊蝴癆蜿隨繞蒹喞鹿粡寂蝟赱齠洲痲筵娼黼笏蜿闔踉氏鱚羹蜩祚鞳鱠黻幹譬鞳鱠闥轣釿蓍銓鵙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь閭緕闔竢粤巣竇頸藍踉晒竢粤闔闌蜒痺竇頸鹿粡寂蝟赱齠洲痲筵娼逡辣閼蛹矼黼筮闥纔韭瘤癆蜿閹葹蜩鷦蝟昭粡竚癈鷭п粐Ь鈔蔔鈬繖繖黼畆蝟昭粡竚癈鷭п粐Ь鱚羹蜩祚鞳鱠蜴膊蔗迪▽苳諮纈肬鴉瘤竇蜴苺蜆絋踉晒瓲苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽竢粤妹辮糟蝟絋踉晒竢粤竢粤妹辮糟蝟縱蜊繽閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼瘤竢粤浴繞霑跚吶髟纉閼絋苳粡鱚笏蝟纉鱚黼鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃蓖草痺蒹瘤粲纉纈皷齡緕竢銕繝闔鶤鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鱚齒竇釶辣就鱚齒竇▽苳嗣蜊蜚蜴吶齒竇鹿粡寂蝟赱齠洲痲筵娼專瘍絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳子繻癆繖蜥繝鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪l蜊蜚鱚髟纉閼也迚繿齡啄糯碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跚迚繿齡肅繻糂▽苳嗣蜊蜚吶髟纉蜈趙鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪l蜊蜚鱚髟纉蜈趙皷▽苳嗣蜊蜚吶髟纉蜈趙皷碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跚迚繿齡跚鈬▽苳嗣蜊蜚吶髟纉蜴絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯鳰蜊蜚竦厂蜊蜚弛妣踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯鳰蜊蜚辣蹉厂蜊蜚妖勇踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯鳰蜊蜚鉋鳫磚厂蜊蜚緑厦脱踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪t蓿縺糂站皷▽苳市蓿縺簷站嚔碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽竢粤也迚繿齡閼絋苳鯖蜥繝癇繖韭痺綣蝟昭粡竚癈鷭п粐Ь蜊蜚闔蒹迴閹纉阨鱆纉鞜竏跛黼鱚痲蜴膽蝟昭粡竚癈鷭п粐Ь繿齡胙闕跚緕濁蜊蜚蜴纉跿纉齒辣蜴糂羲蝟昭粡竚癈鷭п粐Ь緕蛛閹纈竇痺謫瘤迚艨筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹踉祉閼絋苳子也迚熙踉晒竢粤粡鱚笏蝟纉鱚黼蜊蜚蒹鹿粡寂蝟赱齠洲痲筵娼瘢阨銓鱚齒竇蜒竅矼黼磔鳫竇齠纉闥諷閹羲蝟昭粡竚癈鷭п粐Ь鳫草痺蒹蓍趙鱚隨鞜鶯蜒癇蜩蛹竢銓鳫貅蝟昭粡竚癈鷭п粐Ь纉阨鱆纉黼磔派竰蜷鈔喇竢迯瘤糂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽竢粤壽鱚痲囈痺誡蝴絋踉晒竢粤蜥繝繖鉤闔鹿粡寂蝟赱齠洲痲筵娼励癇闔闌蒹站蝴絎鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡纈鬮粤谺胙閭鶩轣銛瘡纈鬮粤谺胙錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭矮禊牡橋綏錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁黼鴟纈蜆絎蔗迪鮨莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡纈鬮粤谺胙鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐碓声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь踉察梼芟蜩鱚皷闔苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь踉詩續蔗髟蝟就衷銓緕奘鞳⊆蝟昭粡竚癈鷭п粐Ь闔銓就貉葹鴦續初齒元広陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳暫闔肅苺鱇闔跫矚跂黼鴟纒鬢踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳暫闔肅苺鱇闔跫矚跂黼鴟纒鬢踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳暫粹笊辣銓逅糸痺綮竰蜚纈蜴纉蜥繝鷦蝟昭粡竚癈鷭п粐Ь鱇蜚逅糸痺綮纉癇蓿繙就迴箝竢鱚譬鈿踉晒瓲苳糒鹿粡寂蝟赱齠洲痲筵娼黼鴟纒髟齒銓跚鵙瘢雹縺笊糸竟闔肅苺鱚跂鷦蝟昭粡竚癈鷭п粐Ь隍瘢雹縺笊賜癆蜿銖矚黼黼鴟纒鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就i粤銓蜀蜒癆蜿遐符緕肅竅闔蝟昭粡竚癈鷭п粐Ь纈薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■跫竅闔鵞桃韭痺纃緕粤肅竏蜈鴦薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■頏閭纉鵞鋳逅糸痺綮癆蜿粤頏閭纉齦鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就n續鳬▽苳暫闔肅苺鱇闔逅糸痺綮黼癜薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■鱚齒竇▽苳嗣蜊蜚癆蜿粤跚黶闔纉鹿粡寂蝟赱齠洲痲筵娼鱚齠阨鱆纉薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蜆緕肅竅闔釶辣就蜆緕肅竅闔▽苳刺粤銓蜀蜒癆蜿郤蝟昭粡竚癈鷭п粐Ь黼鴟纒鬢踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳残蜥繝鷦蝟昭粡竚癈鷭п粐Ь齠閭薤瘢雹縺笊糸鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯黼鴟纈釶辣▽苳屍纈鯲瘢絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯黼鴟纈痲迚遐嚆鴟纈槍迚遉踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪s纈鴦蜃釶鱚▽苳屍纈鰉蜃釶鱚碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯黼鴟纈諷銖▽苳屍纈鰓闍緕鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪u黼竅鈿鉗竅跪瘢紜專綯瘤闔蜒瘡令辣碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮悶粡鱚笏蝟纉踉祉閼絋苳屍纈鯀粱蜴閼絋苳瘤篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍纈鰓闍緕鵙踉晒竢粤闔逅誌竕鱆詞緕髟繻跂蜴肬鴉癆蜿銖鹿粡寂蝟赱齠洲痲筵娼糒纈纈闔頏逅糸痺綮黼銓逅糸痺綮纉瘤跂鞜艱鷦蝟昭粡竚癈鷭п粐Ь逅糸痺綮遉瘢雹縺笊賜逅糸痺綮纉癇黼鴟纒跛纉纉鹿粡寂蝟赱齠洲痲筵娼辣齠瘍纉у鴪纒鬯粡鱚笏蝟竢粤嚆鴟纈夬諷銖閼絋苳纂蝟昭粡竚癈鷭п粐Ь齠蜃鈬跂竏瘢黼鴟纒籬銖纉遶熙瘢雹繝蜥禹粤鹿粡寂蝟赱齠洲痲筵娼鬢瘢雹縺笊諮闔黼墺豫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳嗣纉蜥繝竢粤嚆鴟纈令辣閼絋苳瘤篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳師黼秩鈿鉗竅賣瘢絋踉晒竢粤闔蛹蜩逅糸痺綮纉阨鮗蝟昭粡竚癈鷭п粐Ь逅糸痺綮鴉蜴纈闕辣銓闥辣跂孀約п鐚蝟昭粡竚癈鷭п粐Ь逅糸痺綮网瘢雹縺笊賜緕逅祉竇粡貉瘤癇逅跂髟瘤跚緕蝟昭粡竚癈鷭п粐Ь繿纈逅糸痺綮鞳鶯濶鱚轣蜩ч釿跿鞜粤癇鱚鹿粡寂蝟赱齠洲痲筵娼閧跚髟肅釶跂瘤跂闕鬢瘢雹縺笊諮纈蜥絳鞜竏粹蜚鹿粡寂蝟赱齠洲痲筵娼鱚粡鱸艱跂跚緕鴦鈿竢逅跂釿跿瘤赱癇鱚鹿粡寂蝟赱齠洲痲筵娼閧跚髟肅釶跂纈辣瘤瘟銖癜跚緕粤逅糸痺綮齒鱚鹿粡寂蝟赱齠洲痲筵娼竢鴪繝辣銓纉逅糸痺綮网瘢雹縺笊賜緕竇鱚赱竢銓緕鷦蝟昭粡竚癈鷭п粐Ь瘤跂閭緕鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就跫竅闔鵞瘢綵閭癆蜿銖▽苳仕逅赱竇辣銓纉鹿粡寂蝟赱齠洲痲筵娼肅竏蜈鴦王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑堤鱚笏蝟纉鹿粡寂蝟赱齠洲痲筵娼癈齒竕逅糸痺綮纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯竢鱚糒逅粡鱚笏闥衷鱚汀逅堤鱚笏闥踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪d閭緕闖槇弟笊辣銓呰阡碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪e鴪闥跫腆湯鳫鯡閾碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪l閭諞蛹紜弥站肅跂碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪p蜆肅跂▽苳姉蜆鍋跂碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯黹闥繧閨鰾肅跂▽苳屍竢鱚啄癇籠蛹絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯黼鴟纈鳫阡▽苳屍纈鰔闖熙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь筅苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼痰跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳暫纉蜥繝竢銓鬢瘢雹閭蜥禹跂銓纉逅赱竇辣銓粤鷦蝟昭粡竚癈鷭п粐Ь蜀网瘢雹縺笊賜緕蜒蓍纈髟Я鞜竏蛹蜩竟纉鳫頏纉鹿粡寂蝟赱齠洲痲筵娼矼齒蜴鶤鈔竏纃蜴逅跫瘢雹縺笊鈬闕辣釿鞜鞜綣蝟昭粡竚癈鷭п粐Ь癇鱚碎蜻跂肅竏蜈鴦闔跫竅跚鵙瘢雹縺笊雌繻癆蝟纃緕蝟昭粡竚癈鷭п粐Ь瘢雹瘍鱇竢粤嚆鴟纈呰阡閼絋苳皿陌纎緕胝瘢雹瘍鱇纂蝟昭粡竚癈鷭п粐Ь赱竇竇肅竏蜈鴦瘤粤竏纃蜴髟齒銓闥蜩逅糸痺綮鷦蝟昭粡竚癈鷭п粐Ь逅糸痺綮竰蜚癜蛹蜩癆纒鴦鱚髟鳫阡幔蜥纉鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹繝蜚頌譬齦赱鹿粡寂蝟赱齠洲痲筵娼鵙瘢雹縺笊祉蜚逅糸痺綮阨韭筅瘢雹縺笊飼瘟踈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏鳫竇齠釶辣就頏閭纉鵞鋳逅糸痺綮癆蜿粤鷦蝟昭粡竚癈鷭п粐Ь鳫竇齠王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑堤鱚笏蝟纉鹿粡寂蝟赱齠洲痲筵娼癈齒竕逅糸痺綮纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯碵屋旭痺竢槇帯屋旭巣竢熙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯苒阨陟白阨隍踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯轣跚緕▽苳四癢柱蜈銓鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪m癢鱚髟纉鞳鱆蓍趙▽苳四癢吶髟纉倥鮹蓍趙碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯轣鞜鱚黼鴟纈鵞浴鞜鱚嚆鴟纈鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪m蜴齔癇纉纈鴦▽苳四蜴嚼癇縒纈鴦碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪s纈鶯紜嚆鴟纈奘鞳碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯齡癇纈鴦▽苳屍鶯嚆鴟纈鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪t蓿縺糂鞳鱆蓍趙▽苳市蓿縺糂倥鮹蓍趙碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪u黼鬆專纈碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮嚔粡鱚笏蝟竢粤嚆鴟纈奘鞳閼絋苳纉筅瘢雹縺笊紙蜴蜈鹿粡寂蝟赱齠洲痲筵娼癘繝跂繝闕轣鈔逅糸痺綮粤踉祉閼絋苳屍鈔瘡闔絋踉晒竢粤蝟昭粡竚癈鷭п粐Ь鞜竏窺齦寰蝌齡癈逅糸痺綮迴筅瘢雹繚鱇詞粤鹿粡寂蝟赱齠洲痲筵娼頏逅糸痺綮赱釿纃緕粤頏閭纉齦鶤蜻鳫竇齠綣蝟昭粡竚癈鷭п粐Ь闔逅誌竕鱆詞纉鱚齔闔黶碎粤瘤竇粤頏閭纉齦肅踈鹿粡寂蝟赱齠洲痲筵娼逅糸痺綮竢緕跂竢銕纔蜿銖跂瘟銓瘢雹瘍鱇跂鹿粡寂蝟赱齠洲痲筵娼癇鱸瘢雹縺笊糸草痺蒹齠癨粤瘟銓緕蜥竇鶯瘟鈿轤鱚綣蝟昭粡竚癈鷭п粐Ь鳫竇齠鬢瘢雹縺笊雌纈蜴痺胝髟鱚齡緕阨鴦鹿粡寂蝟赱齠洲痲筵娼頏逅糸竕鱆飼逅氏苒癘綮鱇蜚纈纉繿瘢雹繝蜥禹癇鱸銓纉偵鹿粡寂蝟赱齠洲痲筵娼竇轣鉗逅糸苒癘綮鱚跂竚蜈銓逾闔鞜逅氏苒癘綮緕糅綣蝟昭粡竚癈鷭п粐Ь鈿縺鳫竇齠蛹齒蜈銓瘤礒瘢雹縺笊雌銓鹿粡寂蝟赱齠洲痲筵娼跂鱚髟逅糸竕鱆飼纉濶緕瘟熙瘢雹縺笊糸鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳嗣纉蜥繝竢粤囈癇纈鴦閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼竢粤莱醵鞜鱚嚆鴟纈鵙踉晒竢粤竢粤浴鞜鱚嚆鴟纈鵙踉晒竢粤續鹿粡寂蝟赱齠洲痲筵娼竢粤浴纈鴦閼絋苳鬢瘢雹縺笊紫蜩黼銓闕辣銓頏閭纉齦鷦蝟昭粡竚癈鷭п粐Ь逅糸苒癘綮鱚鬢瘢雹縺笊糸纉鳫竇齠蛹竟鱇蜚纈纉鹿粡寂蝟赱齠洲痲筵娼鱚髟逅糸竕鱆飼纉梼逅糸痺綮遉瘢雹縺笊賜瘡鞜竏黼逅糸痺綮芍蝟昭粡竚癈鷭п粐Ь纒竢鴪繝辣銓續韭癇粤皷逾闔鞜矼齒蜴鹿粡寂蝟赱齠洲痲筵娼筵瘧赱瘡纒粤纉蜥繝鶤纉蜚纉纒跂銓鹿粡寂蝟赱齠洲痲筵娼黼鴟蜥跿粤偽繿瘢雹繝蜥禹皷逡踉瘤逅糸痺綮纉濶銓鹿粡寂蝟赱齠洲痲筵娼癜芻緕赱瘡纒粤踉祉閼絋苳四癢柱蜈銓鵙踉晒竢粤鈔蜩纉鹿粡寂蝟赱齠洲痲筵娼皷釶銓纉痺蓍鈬跚迚熙瘢雹縺笊糸緕鹿粡寂蝟赱齠洲痲筵娼蹙瘢雹縺笊詩濶鱚濶銓逅糸痺綮糒蜥赱瘡纒粤鹿粡寂蝟赱齠洲痲筵娼竢粤浴跚緕閼絋苳瘋蜴Е瘢雹縺笊事蜚纈跚黼跂鹿粡寂蝟赱齠洲痲筵娼肅竏蜈筵逅糸痺綮竏瘤艱俾ч鈕闥轣闔齦跂鹿粡寂蝟赱齠洲痲筵娼鞜鱇蹙瘢雹縺笊飼鱇艱赱鬢瘢雹縺笊氏闔纉鳫竇齠綣蝟昭粡竚癈鷭п粐Ь鳫緕籬銖粹笊辣銓癆蜿畆蝟昭粡竚癈鷭п粐Ь鱚羹蜩祚鞳鱠蜴膊蔗迪▽苳餐蜆齦跂鞳鱠闥轣釿纉鹿粡寂蝟赱齠洲痲筵娼胼瘢雹縺笊試逅糸痺綮鱇跂鵙踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市瘤粡髟跂鳫竇齠逅糸苒癘綮鱚齡鹿粡寂蝟赱齠洲痲筵娼胼瘢雹縺笊試逅糸痺綮鱇跂辣銓瘤礒瘢雹縺笊緕瘤髟鳫阡阨鷦蝟昭粡竚癈鷭п粐Ь鉗竟竢銕繝齦跂闥鍵跂頏閭纉齦肅踈闔蝟昭粡竚癈鷭п粐Ь瘤礒瘢雹縺笊雌阨跚黶濶銖鹿粡寂蝟赱齠洲痲筵娼頏蝟蛹逅糸痺綮芍逅糸痺綮悶粡鱚笏蝟纉踉祉閼絋苳師黼鬢踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳伺鳫閼絋苳黼鴟緕逅氏苒癘綮逅糸痺綮肅鉗跂鷦蝟昭粡竚癈鷭п粐Ь鱸讀瘢雹繚鱇紫纉纉鳫竇齠蛹鶤纉鳫竇齠蛹鷦蝟昭粡竚癈鷭п粐Ь濶銓瘢雹繝蜥禹竅鞜碎粤蜥跂闔銛纐瘤逅糸竕鱆飼鱚鹿粡寂蝟赱齠洲痲筵娼黼鴟薔瘟粹蝟緕癘濶跂蜴蜊頏蝟蛹逅糸苒癘綮艱鷦蝟昭粡竚癈鷭п粐Ь闢皷碎纉偵跿鵺瘢雹瘍鱇迴蜴髟畆蝟昭粡竚癈鷭п粐Ь鱚羹‰祟蔗迪▽苳雌礒踉晒瓲苳齒蜚跚鵙瘢雹縺笊錆纉鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉逅糸痺綮肅鉗齠緕逅糸痺綮艨跂辣銓纉鳫蜚髟藜蝟昭粡竚癈鷭п粐Ь纈闔荀瘢雹縺笊賜蜚逅糸痺綮鞜跂黹鱸頸断筆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳四癢吶髟纉倥鮹蓍趙閼絋苳竢銓鬢瘢雹閭蜥禹跂畆蝟昭粡竚癈鷭п粐Ь鬢瘢雹縺笊資釿粤逅糸痺綮鈿闔纉鳫竇齠緕鹿粡寂蝟赱齠洲痲筵娼齦韶鱸轣銓纉釿蜈銖緕瘤逅祉竇粡貉瘤粤阨癜鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍阨怏鈔阯鵺鞜竏赱釿鳫竇齠逅糸苒癘綮鱚鹿粡寂蝟赱齠洲痲筵娼頏閭纉齦肅踈悶鳫竇齠蛹竰逅糸痺綮銖纃碎粤鹿粡寂蝟赱齠洲痲筵娼鱚痲竟鱇蜚纈纉繿瘢雹繝蜥禹鶤鈿轤鱚鱚痲鷦蝟昭粡竚癈鷭п粐Ь齡闔逅誌竕鱆詞逅糸痺綮癇粡鱚笏蝟綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳市蓿縺糂倥鮹蓍趙閼絋苳皿鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鈬闥襤瘢綵續鳬▽苳暫闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼鬢瘢雹縺笊雌縺踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳残蜥繝鷦蝟昭粡竚癈鷭п粐Ь齠閭薤瘢雹縺笊糸鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯砠鈔痲糅纉鵞醍鈔槍糅纉鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯諷辮瘡蝟紜妹辮糟蝟絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪k繞鞜跚辣阨槇妹辮糟蝟縱蜊繽碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪l蜩遐也齡緕碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跚齡緕矚站跫腆也齡緕逮站弥胼踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪a窿辮蛹鬆巣竇頸鍋踉纈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯轣繞鞜跚鱚髟纉▽苳四癢妹辮糟蝟縡繿齡鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯竟鶯▽苳姉闥熙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪s緕籵聽鴦蝴紜嚆鈔濯聿纈嚔碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪t蜊繽▽苳市蜊縅碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮装逅糸痺綮轣鴪瘍筵草痺蒹竇跿竕竢銕繝瘢雹瘍鱇纂蝟昭粡竚癈鷭п粐Ь竟鶯痲鱚齠粹銕逅糸痺綮齦赱痺蓍鈬閭瘡續鹿粡寂蝟赱齠洲痲筵娼癆鈔п鴪蝟逅糸痺綮粤繿瘢雹繝蜥禹鶤癇逅糸痺綮聲蝟昭粡竚癈鷭п粐Ь逅糸痺綮竢齦纉纉糅纉黼鵺齦跂闥蝟昭粡竚癈鷭п粐Ь逅糸痺綮肅鉗癇粡鱚笏蝟竢粤倆鶯閼絋苳皿阨肬蜩闔鹿粡寂蝟赱齠洲痲筵娼鞳鈔蜻筵逅糸痺綮竢纈跿筵闥綣蝟昭粡竚癈鷭п粐ЬЕ瘢雹縺笊祉阨髟Е瘢雹瘍鱇鞜鶯蜥鈬纒跂糅纉黼阨鈬鹿粡寂蝟赱齠洲痲筵娼竢轤蜴瘟齒粤粤着竕齡逅糸痺綮遉瘢雹縺笊賜瘡纃緕蝟昭粡竚癈鷭п粐Ь闕砠遉瘢雹縺笊癘繝肬釿闔蓿繙就闢荀瘢雹閭蜥禹鹿粡寂蝟赱齠洲痲筵娼鶯讀踉晒瓲苳髟筅瘢雹縺笊飼纈迚鈬闕辣銓鞜竏鬢瘢雹縺笊諮闔篌蝟昭粡竚癈鷭п粐Ь蜀网瘢雹縺笊賜緕痲鱚齠纉亂闕筵荀瘢雹閭蜥禹續鹿粡寂蝟赱齠洲痲筵娼竟鶯鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺粤蜥繝髟鞳鴉續銓鱚齡鱚蜴糅阨綣蝟昭粡竚癈鷭п粐Ь隍瘢雹縺笊祉蜀蜈髟繻跂痲鱚齠纉髟繻竟鶯草痺蒹濶蝟昭粡竚癈鷭п粐Ь瘢雹縺笊祉阨鬯粡鱚笏蝟竢粤醍鈔槍糅纉鵙踉晒竢粤纉繪銓鹿粡寂蝟赱齠洲痲筵娼跂纈瘢雹瘍鱇逾逅糸痺綮竢纈黼痲鱚齠賓蝟昭粡竚癈鷭п粐Ь粡鱚笏蝟竢粤也齡緕閼絋苳鞳瘢雹繝蜥禹綣蝟昭粡竚癈鷭п粐Ь跚鵙瘢雹縺笊糸阨齔逅糸痺綮竕肅纈緕黼轤跂п糅纉黼續鹿粡寂蝟赱齠洲痲筵娼粤闥草痺蒹濶逅糸痺綮竢纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮悶粡鱚笏蝟纉踉祉閼絋苳嗣蜩鄲痺詭閾閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鈔濯聿纈嚔閼絋苳錆竢粤夂辣熙踉晒竢粤纈辣緕蝟昭粡竚癈鷭п粐Ьп粨竢迯緕草痺蒹銓纈瘍蜚跂逅糸痺綮黼癜戻鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟竢粤巣竇頸鍋踉纈閼絋苳竢銓鬢瘢雹閭蜥禹跂鈬鹿粡寂蝟赱齠洲痲筵娼關迚黶闔隍瘢雹縺笊祉蜀蜻瘢雹瘍鱇帯町纒蛹跂鹿粡寂蝟赱齠洲痲筵娼鬢瘢雹縺笊紙逅糸痺綮鱚逅氏苒癘綮黼笏蜿竢釿纈釶銓喞瘤鷦蝟昭粡竚癈鷭п粐Ь蓿繙就迚黹纈罩碵箚堪蔗迪▽苳私閭緕闔畆蝟昭粡竚癈鷭п粐Ь纈肬鴉瘤竇逅紫鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳嗣纉蜥繝竢粤妹辮糟蝟絋踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳史繞霑跚夂辣阨熙踉晒竢粤續鹿粡寂蝟赱齠洲痲筵娼竢粤浴繞霑跚吶髟纉閼絋苳筅瘢雹縺笊紙蜴蜩黼銓闕辣銓鹿粡寂蝟赱齠洲痲筵娼草痺蒹逅糸苒癘綮鱚纉闔鈬闔鞳鴦蜩銓纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏Å纉阨鱆紜瘢綵Å纉阨鱆紜也迚闔綣蝟昭粡竚癈鷭п粐Ь跚黶闔纉纉齒竇鵙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳残蜥繝鷦蝟昭粡竚癈鷭п粐Ь齠閭薤瘢雹縺笊糸鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪l蜊蜚鱚髟纉閼也迚繿齡啄糯碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跚迚繿齡肅繻糂▽苳嗣蜊蜚吶髟纉蜈趙鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪l蜊蜚鱚髟纉蜈趙皷▽苳嗣蜊蜚吶髟纉蜈趙皷碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯跚迚繿齡跚鈬▽苳嗣蜊蜚吶髟纉蜴絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯鳰蜊蜚竦厂蜊蜚弛妣踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯鳰蜊蜚辣蹉厂蜊蜚妖勇踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝竢鱚譯鳰蜊蜚鉋鳫磚厂蜊蜚緑厦脱踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪t蓿縺糂站皷▽苳市蓿縺簷站嚔碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮悶粡鱚笏蝟纉闕辣遉瘢雹窿繖蛹氏銓癇鹿粡寂蝟赱齠洲痲筵娼竢粤也迚繿齡閼絋苳齒銓逅跫瘢雹縺笊糸竟蝌纈纉鹿粡寂蝟赱齠洲痲筵娼跚迚齦赱銓蜚逅糸痺綮鱚齠阨鱆纉纈闔蝟昭粡竚癈鷭п粐Ь跚鵙瘢雹縺笊糸鞳鈔瘤赱繝鱚纉繿瘢雹繝蜥禹鷦蝟昭粡竚癈鷭п粐Ь跚緕鶤跚迚銓纉瘡纒鴦竇鶯瘟銖纉綣蝟昭粡竚癈鷭п粐Ь逅糸痺綮鉗黼鴟蜒鞳緕逅糸竕鱆飼鱚鹿粡寂蝟赱齠洲痲筵娼癆熙瘢雹縺笊試瘢雹縺笊雌踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮悶粡鱚笏蝟纉闕辣遉瘢雹窿繖蛹氏銓癇踉祉閼絋苳子也迚熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼齒銓逅跫瘢雹縺笊糸竟蝌纈纉蜊蜚纉畆蝟昭粡竚癈鷭п粐Ь銓蜚逅糸痺綮鱚齠阨鱆纉蛹蜩纈闔跂頏閭纉齦鷦蝟昭粡竚癈鷭п粐Ь瘤礒瘢雹縺笊雌癇纉鳫竇齠鈕瘤鞜竏絎鞜鶯蜒蜈鬪鹿粡寂蝟赱齠洲痲筵娼繻跂竢銓鬢瘢雹閭蜥禹跂纉纉齒竇蛹蜩逅糸痺綮纉癇纉鹿粡寂蝟赱齠洲痲筵娼黹鱸頸断續纉闕轣鈔纉嗷筆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳嗣粡鱚笏蝟竢粤壽鱚痲囈痺誡蝴絋踉晒竢粤齡鹿粡寂蝟赱齠洲痲筵娼蛹蜩逅糸痺綮黼纃緕齦励癇竟闔逅誌竕鱆詞纈畆蝟昭粡竚癈鷭п粐Ь瘟跛粤韈跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁黼鴟纈蜆絎蔗迪皴蔗粹笂瘤豁黼鴟纈蜆絎蔗迪貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握痲後延羇閏碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡纈鬮粤谺蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁黼鴟纈蜆絎蔗迪貅昭蝟昭粡竚癈鷭ц襷樟卯誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺囈鱸笏杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈蜒糘笄鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊‰纈鬮粤谺緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡纈鬮粤谺裃蜩閭鶩轣銛瘡纈鬮粤谺裃蜩錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭痰卦験箒香錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁黼鴟纈蜆絎蔗迪甌裼鷽莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡纈鬮粤谺裃蜩鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐狭声蝟昭粡竚癈鷭п粐Ь踉賛鴦蜿扈緕竢粡鈑就蜩鎰屋臆陟職苳纂蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬迪碕瘤臀∬瓣瘤臀∬瓣鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳屍纈鬮怏粤闔肅苺鱇闔蜚跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察鈑跚鼈纐蜩蜿邵鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■聿聿聿就0旭旭唖蜴觸■旭旭聿⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就f羂旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳ぢサ・踉札仭澗里寮瀋右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮このドキュメントでは<a href="mod/core.html">コア</a>サ・踉札个鹿粡寂蝟赱齠洲痲筵娼ディレクティブの中で、基本動作を設定するためのものを説明します。 + </p> + + <ul> + <li><a href="#identification">サ・踉札彫踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就l閭癆蜿銖▽苳ぢファイルの位置</a></li> + + <li><a href="#process">プロセス生成</a></li> + + <li><a href="#network">ネットワ・踉札瀋薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■鱚齒竇▽苳ぢリソ・踉札垢寮薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蜆緕肅竅闔釶辣就蜆緕肅竅闔▽苳ぢサ・踉札彫踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳ぢ関連ディレクティブ</strong><br /> + <br /> + <a href="mod/core.html#servername">ServerName</a><br /> + <a + href="mod/core.html#serveradmin">ServerAdmin</a><br /> + <a + href="mod/core.html#serversignature">ServerSignature</a><br /> + <a + href="mod/core.html#servertokens">ServerTokens</a><br /> + <a href="mod/core.html#usecanonicalname">UseCanonicalName</a><br /> + </td> + </tr> + </table> + + <p><code>ServerAdmin</code> ディレクティブと <code>ServerTokens</code> + ディレクティブは、エラ・踉札瓮奪察ジなどのサ・踉札个遒襯疋絅瓮鵐箸法鹿粡寂蝟赱齠洲痲筵娼どのよう瘢雹なサ・踉札个陸苳諮報を表┐垢襪鮴罎靴泙后鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈夬諷銖閼絋苳ディレクティブは、Server HTTP + レスポンスヘッダフィ・踉札襯匹涼佑鮴瀋蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤ぢディレクティブと + <code>UseCanonicalName</code> ディレクティブは、 + サ・踉札个踉捌分箸鮖王苳使する URL を作るときに使われます。たとえば、 + クライアントがディレクトリを要求して、そのディレクトリ巳苳擦虜埜紊鹿粡寂蝟赱齠洲痲筵娼スラッシュが付いていないよう瘢雹な豺腓砲蓮▲疋絅瓮鵐箸料蠡佚鹿粡寂蝟赱齠洲痲筵娼参箸鮴気靴魴茲任襪茲逅擦砲垢襪燭瓩法草痺蒹ぢは最後のスラッシュ + を含んだ完全なパスにクライアントをリダイレクトさせる必要があります。 + </p> + <hr /> + + <h2><a id="locations" name="locations">ファイルの位置</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>関連ディレクティブ</strong><br /> + <br /> + <a + href="mod/core.html#coredumpdirectory">CoreDumpDirectory</a><br /> + <a + href="mod/core.html#documentroot">DocumentRoot</a><br /> + <a href="mod/core.html#errorlog">ErrorLog</a><br /> + <a href="mod/core.html#lockfile">Lockfile</a><br /> + <a href="mod/core.html#pidfile">PidFile</a><br /> + <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a><br /> + <a href="mod/core.html#serverroot">ServerRoot</a><br /> + </td> + </tr> + </table> + + <p>これらのディレクティブは Apache が適切な動作をするために必要な + 各錺侫.ぅ襪琉銘屬鮴罎靴泙后僖垢好薀奪轡鹿粡寂蝟赱齠洲痲筵娼で始まっていないときは、ファイルは <code>ServerRoot</code> + からの相対パスとして探されます。 + root 以外のユ・踉札兇颪濂椎修淵僖垢縫侫.ぅ襪鮹屬苳詞合は注意が必要です。 + 楮戮蓿繙就迚黹繝蜚頌譬「セキュリティ霾鵝を + 参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就頏閭纉鵞瘢綵鳫竇齠▽苳ぢプロセス生成</a></h2> + + <table border="1"> + <tr> + <td valign="top"><strong>関連ディレクティブ</strong><br /> + <br /> + <a + href="mod/core.html#bs2000account">BS2000Account</a><br /> + <a href="mod/core.html#group">Group</a><br /> + <a href="mod/core.html#maxclients">MaxClients</a><br /> + <a + href="mod/core.html#maxrequestsperchild">MaxRequestsPerChild</a><br /> + <a + href="mod/core.html#maxspareservers">MaxSpareServers</a><br /> + <a + href="mod/core.html#minspareservers">MinSpareServers</a><br /> + <a href="mod/core.html#servertype">ServerType</a><br /> + <a + href="mod/core.html#startservers">StartServers</a><br /> + <a + href="mod/core.html#threadsperchild">ThreadsPerChild</a><br /> + <a href="mod/core.html#user">User</a><br /> + </td> + </tr> + </table> + + <p><code>ServerType</code> に推気譴討い訝佑任△鹿粡寂蝟赱齠洲痲筵娼竢粤囈瘤籬跫鈬閼絋苳が設定されている豺腓蓮寰蝌ぢ紊任鞜竏綣蝟昭粡竚癈鷭п粐Ьぢは pre-forking サ・踉札个任后修海任楼譴弔寮耆僖廛蹈札垢劵廛蹈札垢鹿粡寂蝟赱齠洲痲筵娼起動する責任を持ちます。そして、子プロセスはプロセスが生存している間 + listen し、接続されたらそのコネクションに対する処理を行ないます。 + Apache はリクエストが来たときにすぐに応答できるよう瘢雹に、錣吠瑤鹿粡寂蝟赱齠洲痲筵娼纃スペア</em>サ・踉札丱廛蹈札后△泙燭魯▲ぅ疋襯機バプロセスを維持 + しよう瘢雹とします。こう瘢雹することで、リクエストが扱われる前に新しい子プロセスが + fork されるのをクライアントが待つ必要がなくなります。</p> + + <p><code>StartServers</code>, <code>MinSpareServers</code>, + <code>MaxSpareServers</code>, <code>MaxServers</code> は、 + 親プロセスがリクエストを扱う瘢雹ことになる子プロセスを作成する方法を制御します。 + 通錙草痺蒹ぢは非錣胞踉捌制的ですので、ほとんどのサイトでは + デフォルト値から変更する必要はありません。ただ、同時に 256 を超える + リクエストを扱う瘢雹サイトは <code>MaxClients</code> を増やす必要があるでしょう瘢雹。 + 一方、メモリの覆ぅ汽ぅ箸任蓮▲機バがスラッシング (メモリをディスクに + スワップしたり、メモリに戻したりするのを繰り返す) を防ぐために + <code>MaxClients</code> を減らす必要があるでしょう瘢雹。 + プロセス作成をチュ・踉札鵑垢襪燭瓩陸苳施しい霾鵑鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹纈罩鉗鈑譬性能の霾鹿粡寂蝟赱齠洲痲筵娼ドキュメントを参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳師鉗では通錙⊃謄廛蹈札垢番ポ・踉札箸鬟丱ぅ鵐匹垢襪燭瓩鹿粡寂蝟赱齠洲痲筵娼鳫阡ぢで起動されますが、子プロセスは Apache からより特権の覆鹿粡寂蝟赱齠洲痲筵娼ユ・踉札兇箸靴撞阿気譴泙后竢粤專纈閼絋苳ディレクティブと + <code>Group</code>ディレクティブは、Apache の子プロセスに設定される + 特権を設定するために使用されます。子プロセスは提供するすべての + コンテンツを読めなければいけませんが、 + それ以紊瞭淡△櫓苳晒なければ覆なましいです。 + また、<a href="suexec.html">suexec</a> が使用されていないときは、 + CGI スクリプトが継気垢詁淡△砲發海譴蕕離妊譽謄屬鹿粡寂蝟赱齠洲痲筵娼設定が適用されます。</p> + + <p><code>MaxRequestsPerChild</code> は、サ・踉札个鼎ぅ廛蹈札垢鹿粡寂蝟赱齠洲痲筵娼謇跛ぢして新しいプロセスを起動することで、 + プロセスを再利用する頻度を設定します。</p> + + <p>Windows では、Apache は制御プロセス一つと子プロセス一つでスタ・踉札鹿粡寂蝟赱齠洲痲筵娼します。子プロセスはリクエストに応えるために複数のスレッドを作成します。 + スレッドの数は <code>ThreadsPerChild</code> ディレクティブで制御します。 + </p> + <hr /> + + <h2><a id="network" name="network">ネットワ・踉札瀋王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑関連ディレクティブ</strong><br /> + <br /> + <a href="mod/core.html#bindaddress">BindAddress</a><br /> + <a href="mod/core.html#keepalive">KeepAlive</a><br /> + <a + href="mod/core.html#keepalivetimeout">KeepAliveTimeout</a><br /> + <a href="mod/core.html#listen">Listen</a><br /> + <a + href="mod/core.html#listenbacklog">ListenBackLog</a><br /> + <a + href="mod/core.html#acceptfilter">AcceptFilter</a><br /> + <a href="mod/core.html#acceptmutex">AcceptMutex</a><br /> + <a + href="mod/core.html#maxkeepaliverequests">MaxKeepAliveRequests</a><br /> + <a href="mod/core.html#port">Port</a><br /> + <a + href="mod/core.html#sendbuffersize">SendBufferSize</a><br /> + <a href="mod/core.html#timeout">TimeOut</a><br /> + </td> + </tr> + </table> + + + <p>Apache は起動すると、ロ・踉札襯泪轡鵑硫燭蕕離檗ト番号と + アドレスにコネクトし、リクエストを待ちます。デフォルトでは、 + マシンに割り当てられているすべてのアドレスでサ・踉札仞瀋蠅鹿粡寂蝟赱齠洲痲筵娼竢粤倆鶯閼絋苳ディレクティブで指定されているポ・踉札犯峭罎蜩郤蝟昭粡竚癈鷭п粐Ьぢします。二つ以紊離檗トを listen したり、選択されたアドレスのみを + listen したり、その組み合わせを listen したりするよう瘢雹にもできます。 + 違う瘢雹 IP アドレス、ホスト巳苳察▲檗ト番号によって Apache の応答を + 決定する<a href="vhosts/">バ・踉札船礇襯曠好機能と組み合わせて + 使われることがよくあります。 + </p> + + <p>Apache が listen するアドレスとポ・踉札犯峭罎鮖慊蝓鹿粡寂蝟赱齠洲痲筵娼もしくは制限するディレクティブは二つあります。 + <code>BindAddress</code> ディレクティブはサ・踉札个譴弔仄蝟昭粡竚癈鷭п粐Ьぢアドレスだけを listen させるために使用されます。 + <code>Listen</code> ディレクティブは Apache が listen する IP アドレスと + ポ・踉札犯峭罎料函△泙燭呂匹舛蕕貶鯤慊蠅垢襪燭瓩忙藩僂気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳嗣蜩鄲痺詭閾閼絋苳ディレクティブ、<code>SendBufferSize</code> + ディレクティブ、<code>TimeOut</code> ディレクティブは、Apache と + ネットワ・踉札箸隆愀犬鯆汗阿靴泙后竢粤巣竇頸鍋踉纈閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢは BSD 特有のフィルタの最適化を制御します。 + <a href="misc/perf-bsd44.html">性能に関するヒント</a>の BSD の節を + 見てください。<code>AcceptMutex</code> はどのよう瘢雹に accept 時の + 排側苳酸罎鮃圓覆逅擦鮴罎靴泙后海譴貘硫燭如△覆必要であるかは、 + <a href="misc/perf-tuning.html">一般的な性能に関するヒント</a> + を見てください。</p> + + <p><code>KeepAlive</code> ディレクティブ、<code>KeepAliveTimeout</code> + ディレクティブ、<code>MaxKeepAliveRequests</code> ディレクティブは、 + Apache が persistent connection をどのよう瘢雹に扱う瘢雹かを制御します。</p> + <hr /> + + <h2><a id="resource" name="resource">リソ・踉札垢寮王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼跚芬就陟齡鳫鈑関連ディレクティブ</strong><br /> + <br /> + <a + href="mod/core.html#limitrequestbody">LimitRequestBody</a><br /> + <a + href="mod/core.html#limitrequestfields">LimitRequestFields</a><br /> + <a + href="mod/core.html#limitrequestfieldsize">LimitRequestFieldsize</a><br /> + <a + href="mod/core.html#limitrequestline">LimitRequestLine</a><br /> + <a href="mod/core.html#rlimitcpu">RLimitCPU</a><br /> + <a href="mod/core.html#rlimitmem">RLimitMEM</a><br /> + <a href="mod/core.html#rlimitnproc">RLimitNPROC</a><br /> + <a + href="mod/core.html#threadstacksize">ThreadStackSize</a><br /> + </td> + </tr> + </table> + + <p><code>LimitRequest</code>* ディレクティブは Apache が + クライアントからのリクエスト読み込みで使う瘢雹リソ・踉札垢鮴造垢襪燭瓩鹿粡寂蝟赱齠洲痲筵娼使われます。これらの値を制限することで、いくつかのサ・踉札咼控馮盜況發鹿粡寂蝟赱齠洲痲筵娼影響を和らげることができます。</p> + + <p><code>RLimit</code>* ディレクティブは、Apache の子プロセスから + fork されたプロセスが使用するリソ・踉札垢鮴造垢襪燭瓩鹿粡寂蝟赱齠洲痲筵娼使われます。特に、これは CGI スクリプトと SSI exec コマンドで + 使われるリソ・踉札垢鮴罎靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳市蓿縺簷站嚔閼絋苳は Netware でのみ、 + スタックの大きさを制御するために使われます。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/sitemap.html b/htdocs/manual/sitemap.html new file mode 100644 index 0000000000..e2af048506 --- /dev/null +++ b/htdocs/manual/sitemap.html @@ -0,0 +1,178 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>Site Map</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + +<!--#include virtual="header.html" --> + + <h1 align="CENTER">Site Map</h1> + +<ul> +<li><a href="index.html">Apache HTTP Server Version 1.3 Documentation</a> +<ul> + +<li>Release Notes +<ul> +<li><a href="upgrading_to_1_3.html">Upgrading to 1.3 from 1.2</a></li> +<li><a href="new_features_1_3.html">New features with Apache 1.3</a></li> +</ul></li> + +<li>Using the Apache HTTP Server +<ul> +<li><a href="install.html">Compiling and Installing Apache</a></li> +<li><a href="invoking.html">Starting Apache</a></li> +<li><a href="stopping.html">Stopping and Restarting Apache</a></li> +<li><a href="configuring.html">Configuration Files</a></li> +<li><a href="sections.html">How Directory, Location and Files sections work</a></li> +<li><a href="server-wide.html">Server-Wide Configuration</a></li> +<li><a href="logs.html">Log Files</a></li> +<li><a href="urlmapping.html">Mapping URLs to Filesystem Locations</a></li> +<li><a href="misc/security_tips.html">Security Tips</a></li> +<li><a href="dso.html">Dynamic Shared Object (DSO) support</a></li> +<li><a href="content-negotiation.html">Apache Content Negotiation</a></li> +<li><a href="custom-error.html">Custom error responses</a></li> +<li><a href="bind.html">Setting which addresses and ports Apache uses</a></li> +<li><a href="env.html">Environment Variables in Apache</a></li> +<li><a href="handler.html">Apache's Handler Use</a></li> +<li><a href="suexec.html">suEXEC Support</a></li> +<li><a href="misc/perf-tuning.html">Performance Hints</a></li> +<li><a href="misc/rewriteguide.html">URL Rewriting Guide</a></li> +</ul></li> + +<li><a href="vhosts/">Apache Virtual Host documentation</a> +<ul> +<li><a href="vhosts/name-based.html">Name-based Virtual Hosts</a></li> +<li><a href="vhosts/ip-based.html">IP-based Virtual Host Support</a></li> +<li><a href="vhosts/mass.html">Dynamically configured mass virtual hosting</a></li> +<li><a href="vhosts/examples.html">VirtualHost Examples</a></li> +<li><a href="vhosts/details.html">An In-Depth Discussion of Virtual Host Matching</a></li> +<li><a href="vhosts/fd-limits.html">File Descriptor Limits with Virtual Hosts</a></li> +<li><a href="dns-caveats.html">Issues Regarding DNS and Apache</a></li> +</ul></li> + +<li><a href="misc/FAQ.html">Apache Server Frequently Asked Questions</a></li> + +<li>Guides, Tutorials, and HowTos +<ul> +<li><a href="howto/auth.html">Authentication, Authorization, and Access Control</a></li> +<li><a href="howto/cgi.html">Apache Tutorial: Dynamic Content with CGI</a></li> +<li><a href="howto/ssi.html">Apache Tutorial: Introduction to Server +Side Includes</a></li> +<li><a href="misc/howto.html">HOWTO documentation</a></li> +<li><a href="misc/tutorials.html">Apache Tutorials</a></li> +</ul></li> + +<li>Platform-specific Notes +<ul> +<li><a href="windows.html">Using Apache with Microsoft Windows</a></li> +<li><a href="win_compiling.html">Compiling Apache for Microsoft Windows</a></li> +<li><a href="win_service.html">Running Apache for Windows as a Service</a></li> +<li><a href="cygwin.html">Using Apache with Cygwin</a></li> +<li><a href="ebcdic.html">The Apache EBCDIC Port</a></li> +<li><a href="readme-tpf.html">The Apache TPF Port</a></li> +<li><a href="install-tpf.html">Installing Apache on TPF</a></li> +<li><a href="mpeix.html">Using Apache with HP MPE/iX</a></li> +<li><a href="netware.html">Using Apache with Novell NetWare</a></li> +<li><a href="unixware.html">Compiling Apache under UnixWare</a></li> +<li><a href="misc/perf-bsd44.html">Running a High-Performance Web Server for BSD</a></li> +<li><a href="misc/perf-dec.html">Performance Tuning Tips for Digital Unix</a></li> +<li><a href="misc/perf-hp.html">Running a High-Performance Web Server on HPUX</a></li> +<li><a href="misc/perf.html">Hints on Running a High-Performance Web Server</a></li> +</ul></li> + +<li><a href="programs/">Apache HTTP Server and Supporting Programs</a> +<ul> +<li><a href="programs/httpd.html">Manual Page: httpd - Apache HTTP Server</a></li> +<li><a href="programs/apxs.html">Manual Page: apxs - Apache HTTP Server</a></li> +<li><a href="programs/ab.html">Manual Page: ab - Apache HTTP Server</a></li> +<li><a href="programs/apachectl.html">Manual Page: apachectl - Apache HTTP Server</a></li> +<li><a href="programs/dbmmanage.html">Manual Page: dbmmanage - Apache HTTP Server</a></li> +<li><a href="programs/htdigest.html">Manual Page: htdigest - Apache HTTP Server</a></li> +<li><a href="programs/htpasswd.html">Manual Page: htpasswd - Apache HTTP Server</a></li> +<li><a href="programs/logresolve.html">Manual Page: logresolve - Apache HTTP Server</a></li> +<li><a href="programs/rotatelogs.html">Manual Page: rotatelogs - Apache HTTP Server</a></li> +<li><a href="programs/suexec.html">Manual Page: suexec - Apache HTTP Server</a></li> +<li><a href="programs/other.html">Other Programs - Apache HTTP Server</a></li> +</ul></li> + +<li><a href="mod/">Apache modules</a> +<ul> +<li><a href="mod/index-bytype.html">Apache modules - By Type</a></li> +<li><a href="mod/directives.html">Apache directives</a></li> +<li><a href="mod/directive-dict.html">Definitions of terms used to describe Apache directives</a></li> +<li><a href="mod/module-dict.html">Definitions of terms used to describe Apache modules</a></li> +<li><a href="mod/core.html">Apache Core Features</a></li> +<li><a href="mod/mod_access.html">Apache module mod_access</a></li> +<li><a href="mod/mod_actions.html">Apache module mod_actions</a></li> +<li><a href="mod/mod_alias.html">Apache module mod_alias</a></li> +<li><a href="mod/mod_asis.html">Apache module mod_asis</a></li> +<li><a href="mod/mod_auth.html">Apache module mod_auth</a></li> +<li><a href="mod/mod_auth_anon.html">Apache module mod_auth_anon.c</a></li> +<li><a href="mod/mod_auth_db.html">Apache module mod_auth_db</a></li> +<li><a href="mod/mod_auth_dbm.html">Apache module mod_auth_dbm</a></li> +<li><a href="mod/mod_auth_digest.html">Apache module mod_auth_digest</a></li> +<li><a href="mod/mod_autoindex.html">Apache module mod_autoindex</a></li> +<li><a href="mod/mod_cern_meta.html">Apache module mod_cern_meta</a></li> +<li><a href="mod/mod_cgi.html">Apache module mod_cgi</a></li> +<li><a href="mod/mod_digest.html">Apache module mod_digest</a></li> +<li><a href="mod/mod_dir.html">Apache module mod_dir</a></li> +<li><a href="mod/mod_env.html">Apache module mod_env</a></li> +<li><a href="mod/mod_example.html">Apache module mod_example</a></li> +<li><a href="mod/mod_expires.html">Apache module mod_expires</a></li> +<li><a href="mod/mod_headers.html">Apache module mod_headers</a></li> +<li><a href="mod/mod_imap.html">Apache module mod_imap</a></li> +<li><a href="mod/mod_include.html">Apache module mod_include</a></li> +<li><a href="mod/mod_info.html">Apache module mod_info</a></li> +<li><a href="mod/mod_isapi.html">Apache module mod_isapi</a></li> +<li><a href="mod/mod_log_agent.html">Apache module mod_log_agent</a></li> +<li><a href="mod/mod_log_config.html">Apache module mod_log_config</a></li> +<li><a href="mod/mod_log_referer.html">Apache module mod_log_referer</a></li> +<li><a href="mod/mod_mime.html">Apache module mod_mime</a></li> +<li><a href="mod/mod_mime_magic.html">Apache module mod_mime_magic</a></li> +<li><a href="mod/mod_mmap_static.html">Apache module mod_mmap_static</a></li> +<li><a href="mod/mod_negotiation.html">Apache module mod_negotiation</a></li> +<li><a href="mod/mod_proxy.html">Apache module mod_proxy</a></li> +<li><a href="mod/mod_rewrite.html">Apache module mod_rewrite</a></li> +<li><a href="mod/mod_setenvif.html">Apache module mod_setenvif</a></li> +<li><a href="mod/mod_so.html">Apache module mod_so</a></li> +<li><a href="mod/mod_speling.html">Apache module mod_speling</a></li> +<li><a href="mod/mod_status.html">Apache module mod_status</a></li> +<li><a href="mod/mod_unique_id.html">Apache module mod_unique_id</a></li> +<li><a href="mod/mod_userdir.html">Apache module mod_userdir</a></li> +<li><a href="mod/mod_usertrack.html">Apache module mod_usertrack</a></li> +<li><a href="mod/mod_vhost_alias.html">Apache module mod_vhost_alias</a></li> +</ul></li> + +<li><a href="misc/API.html">Apache API notes</a></li> + +<li><a href="misc/">Older Documentation</a> +<ul> +<li><a href="keepalive.html">Apache Keep-Alive Support</a></li> +<li><a href="multilogs.html">Apache Multiple Log Files</a></li> +<li><a href="process-model.html">Server Pool Management</a></li> +<li><a href="sourcereorg.html">Source Re-organisation</a></li> +<li><a href="misc/compat_notes.html">Notes about Compatibility with NCSA's Server</a></li> +<li><a href="misc/custom_errordocs.html">International Customized Server Error Messages</a></li> +<li><a href="misc/descriptors.html">Descriptors and Apache</a></li> +<li><a href="misc/fin_wait_2.html">Connections in FIN_WAIT_2 and Apache</a></li> +<li><a href="misc/known_client_problems.html">Known Client Problems</a></li> +<li><a href="misc/nopgp.html">Why We Took PEM Out of Apache</a></li> +<li><a href="misc/vif-info.html">Configuring Multiple IP Addresses</a></li> +<li><a href="misc/windoz_keepalive.html">MS Windows Netscape 3.0b4 KeepAlive problem solved</a></li> +<li><a href="misc/client_block_api.html">Reading Client Input in Apache 1.2</a></li> +</ul></li> + +</ul></li> +</ul> + +<!--#include virtual="footer.html" --> + + </body> +</html> diff --git a/htdocs/manual/sourcereorg.html b/htdocs/manual/sourcereorg.html new file mode 100644 index 0000000000..10175ae1e6 --- /dev/null +++ b/htdocs/manual/sourcereorg.html @@ -0,0 +1,287 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Source Re-organisation</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Source Re-organisation</h1> + As of 1.3, the Apache source directories have been + re-organised. This re-organisation is designed to simplify the + directory structure, make it easier to add additional modules, + and to give module authors a way of specifying compile time + options or distribute binary modules. + + <h2>Summary of Changes</h2> + The source changes are: + + <ul> + <li>The non-module source files have moved from + <code>src</code> into <code>src/main</code></li> + + <li>The module source files previously in <code>src</code> + have moved to <code>src/modules/standard</code></li> + + <li>The <code>support</code> directory is now in + <code>src/support</code></li> + + <li>The existing symbol names used for global Apache function + and variable identifiers have been renamed in the source. + This way namespace conflicts are avoided when linking Apache + with third-party libraries. See the file + <code>src/include/compat.h</code> both for the list of + renamed symbol names and for a way to get source backward + compatibility in existing third-party module sources.</li> + </ul> + In addition, the following enhancements have been made: + + <ul> + <li>OS abstractions can be added in the <code>src/os</code> + directory. Currently this contains information for unix, OS/2 + and Windows 32 platforms.</li> + + <li><code>Configuration</code> syntax has been simplified for + adding new modules. Users no longer need to enter the + module's structure name. In addition, new modules can be + located anywhere on the file system, or typically in new or + existing directories under <code>src/modules</code>.</li> + + <li>Module authors can give simpler instructions for adding + their modules to Apache compilation. They can also now + provide compile time information required by + <code>Configure</code>, such as additional libraries + required.</li> + + <li>Module authors can distribute pre-compiled (.a or .o) + versions of their modules if required, along with a "module + definition file" which contains the information required by + <code>Configure</code>.</li> + + <li>All the sub-directories (main, modules/* and os/*) are + built as libraries.</li> + + <li>The new Apache Autoconf-style Interface (APACI) script + named <code>configure</code> replaced the old top-level + <code>Makefile</code> and + <code>src/helpers/InstallApache</code> stuff.</li> + </ul> + + <h2>Adding Modules</h2> + Modules are added to Apache by adding a reference to them in + <code>src/Configuration</code> then running + <code>Configure</code> and <code>make</code>. In earlier + version of Apache before 1.3, the line added to Configuration + looked like this: +<pre> + Module status_module mod_status.o +</pre> + From 1.3 onwards, the <code>AddModule</code> line should be + used instead, and typically looks like this: +<pre> + AddModule modules/standard/mod_status.o +</pre> + The argument to AddModule is the path, relative to + <code>src</code>, to the module file's source or object file. + + <p>Normally when adding a module you should follow the + instructions of the module author. However if the module comes + as a single source file, say mod_foo.c, then the recommended + way to add the module to Apache is as follows:</p> + + <ul> + <li>Put <code>mod_foo.c</code> into the directory + <code>src/modules/extra</code></li> + + <li>Go to the <code>src</code> directory and add the + following line to <code>Configuration</code><br /> + <code>AddModule modules/extra/mod_foo.o</code></li> + + <li>Run <code>./Configure</code></li> + + <li>Run <code>make</code></li> + </ul> + + <h2>New Facilities for Module Authors</h2> + In previous releases of Apache, new modules were added to the + <code>src</code> directory, and if the module required any + additional compilation options (such as libraries) they would + have to be added to <code>Configuration</code>. Also the user + would have to be told the module's structure name to add on the + Module line of <code>Configuration</code>. + + <p>From Apache 1.3 onwards, module authors can make use of + these new features:</p> + + <ul> + <li>Simplified <code>Configuration</code> command AddModule + which only requires a path to the module source or object + file</li> + + <li>If the module requires compile time options (such as + extra libraries) these can be specified in the module file + source or an external "module definition file".</li> + + <li>If a module is distributed as binary (.o or .a) then an + external "module definition file" can also be distributed + which gives the information Configure needs to add the + module, such as extra libraries and the module's structure + name.</li> + + <li>Modules can be installed anywhere on the file system, + although a directory under <code>src/modules</code> is + recommended.</li> + + <li>If the module is in its own directory, Apache can + automatically create a Makefile to build the module given a + file containing the module's dependencies.</li> + + <li>For building a third-party module + <strong>outside</strong> the Apache source tree the new + <code>apxs</code> support tool can be used to compile the + module into a <a href="dso.html">dynamic shared object + (DSO)</a>, install it into the existing Apache installation + and optionally activating it in the Apache + <code>httpd.conf</code> file. The only requirement is that + Apache has DSO-support for the used platform and the module + <code><a href="mod/mod_so.html">mod_so</a></code> was built + into the server binary <code>httpd</code>.</li> + </ul> + The rest of this document shows how to package modules for + Apache 1.3 and later and what to tell end-users of the module. + + <h3>Building a simple source distribution</h3> + Consider a simple add-on module, distributed as a single file. + For example, say it is called mod_demo.c. The archive for this + module should consist of two files, in a suitable directory + name. For example: + + <ul> + <li>mod_demo/mod_demo.c</li> + + <li>mod_demo/Makefile.tmpl</li> + </ul> + (Of course end-user instructions, README's, etc can also be + supplied in the archive). The end user should be told to + extract this archive in the <code>src/modules</code> directory + of their Apache source tree. This will create a new directory + <code>src/modules/mod_demo</code>. Then they need to add the + following line to the <code>Configuration</code> file: +<pre> + AddModule modules/mod_demo/mod_demo.o +</pre> + then run <code>Configure</code> and <code>make</code> as + normal. + + <p>The <code>mod_demo/Makefile.tmpl</code> should contain the + dependencies of the module source. For example, a simple module + which just interfaces to some standard Apache module API + functions might look this this:</p> +<pre> + mod_demo.o: mod_demo.c $(INCDIR)/httpd.h $(INCDIR)/http_protocol.h +</pre> + When the user runs <code>Configure</code> Apache will create a + full makefile to build this module. If this module also + requires some additional built-time options to be given, such + as libraries, see the next section. + + <p>If the module also comes with header files, these can be + added to the archive. If the module consists of multiple source + files it can be built into a library file using a supplied + makefile. In this case, distribute the makefile as + <code>mod_demo/Makefile</code> and <strong>do not</strong> + include a <code>mod_demo/Makefile.tmpl</code>. If + <code>Configure</code> sees a <code>Makefile.tmpl</code> it + assumes it is safe to overwrite any existing + <code>Makefile</code>.</p> + + <p>See the Apache <code>src/modules/standard</code> for an + example of a module directory where the makefile is created + automatically from a Makefile.tmpl file (note that this + directory also shows how to distribute multiple modules in a + single directory). See <code>src/modules/proxy</code> and + <code>src/modules/example</code> for examples of modules built + using custom makefiles (to build a library and an object file, + respectively).</p> + + <h3>Adding Compile time Information</h3> + Apache source files (or module definition files, see below) can + contain information used by <code>Configure</code> to add + compile-time options such as additional libraries. For example, + if mod_demo in the example above also requires that Apache be + linked against a DBM library, then the following text could be + inserted into the mod_demo.c source: +<pre> +/* + * Module definition information - the part between the -START and -END + * lines below is used by Configure. This could be stored in a separate + * instead. + * + * MODULE-DEFINITION-START + * Name: demo_module + * ConfigStart + LIBS="$LIBS $DBM_LIB" + if [ "X$DBM_LIB" != "X" ]; then + echo " + using $DBM_LIB for mod_demo" + fi + * ConfigEnd + * MODULE-DEFINITION-END + */ +</pre> + Note that this is contained inside a C language comment to hide + it from the compiler. Anything between the lines which contains + <code>MODULE-DEFINITION-START</code> and + <code>MODULE-DEFINITION-END</code> is used by + <code>Configure</code>. The <code>Name:</code> line gives the + module's structure name. This is not really necessary in this + case since if not present <code>Configure</code> will guess at + a name based on the filename (<em>e.g.</em>, given "mod_demo" + it will remove the leading "mod_" and append "_module" to get a + structure name. This works with all modules distributed with + Apache). + + <p>The lines between <code>ConfigStart</code> and + <code>ConfigEnd</code> as executed by <code>Configure</code> + and can be used to add compile-time options and libraries. In + this case it adds the DBM library (from $DBM_LIB) to the + standard compilation libraries ($LIB) and displays a + message.</p> + + <p>See the default distribution's mod_auth_dbm.c for an example + of an embedded module definition.</p> + + <h3>Module Definition Information for Binary Distribitions</h3> + If the module is to be distributed as binary (object or + library) rather than source, it is not possible to add the + module definition information to the source file. In this case + it can be placed in a separate file which has the same base + name as the object or library file, but with a + <code>.module</code> extension. So, for example, if the + distributed module object file is mod_demo.o, the module + definition file should be called mod_demo.module. It contains + the same information as above, but does not need to be inside a + C comment or delimited with + <code>MODULE-DEFINITION-START</code> <em>etc.</em> For example: + +<pre> +Name: demo_module +ConfigStart + LIBS="$LIBS $DBM_LIB" + if [ "X$DBM_LIB" != "X" ]; then + echo " + using $DBM_LIB for mod_demo" + fi +ConfigEnd +</pre> + See the default distribution's mod_auth_db.module for an + example of a separate module definition file. + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/stopping.html.en b/htdocs/manual/stopping.html.en new file mode 100644 index 0000000000..626b1d3fe6 --- /dev/null +++ b/htdocs/manual/stopping.html.en @@ -0,0 +1,198 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Stopping and Restarting Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Stopping and Restarting Apache</h1> + + <p>This document covers stopping and restarting Apache on Unix + and Cygwin only. Windows users should see <a + href="windows.html#signal">Signalling Apache when + running</a>.</p> + + <p>You will notice many <code>httpd</code> executables running + on your system, but you should not send signals to any of them + except the parent, whose pid is in the <a + href="mod/core.html#pidfile">PidFile</a>. That is to say you + shouldn't ever need to send signals to any process except the + parent. There are three signals that you can send the parent: + <code>TERM</code>, <code>HUP</code>, and <code>USR1</code>, + which will be described in a moment.</p> + + <p>To send a signal to the parent you should issue a command + such as:</p> + + <blockquote> +<pre> + kill -TERM `cat /usr/local/apache/logs/httpd.pid` +</pre> + </blockquote> + You can read about its progress by issuing: + + <blockquote> +<pre> + tail -f /usr/local/apache/logs/error_log +</pre> + </blockquote> + Modify those examples to match your <a + href="mod/core.html#serverroot">ServerRoot</a> and <a + href="mod/core.html#pidfile">PidFile</a> settings. + + <p>As of Apache 1.3 we provide a script called <a + href="programs/apachectl.html">apachectl</a> which can be used + to start, stop, and restart Apache. It may need a little + customization for your system, see the comments at the top of + the script.</p> + + <h3>TERM Signal: stop now</h3> + + <p>Sending the <code>TERM</code> signal to the parent causes it + to immediately attempt to kill off all of its children. It may + take it several seconds to complete killing off its children. + Then the parent itself exits. Any requests in progress are + terminated, and no further requests are served.</p> + + <h3>HUP Signal: restart now</h3> + + <p>Sending the <code>HUP</code> signal to the parent causes it + to kill off its children like in <code>TERM</code> but the + parent doesn't exit. It re-reads its configuration files, and + re-opens any log files. Then it spawns a new set of children + and continues serving hits.</p> + + <p>Users of the <a href="mod/mod_status.html">status module</a> + will notice that the server statistics are set to zero when a + <code>HUP</code> is sent.</p> + + <p><strong>Note:</strong> If your configuration file has errors + in it when you issue a restart then your parent will not + restart, it will exit with an error. See below for a method of + avoiding this.</p> + + <h3>USR1 Signal: graceful restart</h3> + + <p><strong>Note:</strong> prior to release 1.2b9 this code is + quite unstable and shouldn't be used at all.</p> + + <p>The <code>USR1</code> signal causes the parent process to + <em>advise</em> the children to exit after their current + request (or to exit immediately if they're not serving + anything). The parent re-reads its configuration files and + re-opens its log files. As each child dies off the parent + replaces it with a child from the new <em>generation</em> of + the configuration, which begins serving new requests + immediately.</p> + + <p>This code is designed to always respect the <a + href="mod/core.html#maxclients">MaxClients</a>, <a + href="mod/core.html#minspareservers">MinSpareServers</a>, and + <a href="mod/core.html#maxspareservers">MaxSpareServers</a> + settings. Furthermore, it respects <a + href="mod/core.html#startservers">StartServers</a> in the + following manner: if after one second at least StartServers new + children have not been created, then create enough to pick up + the slack. This is to say that the code tries to maintain both + the number of children appropriate for the current load on the + server, and respect your wishes with the StartServers + parameter.</p> + + <p>Users of the <a href="mod/mod_status.html">status module</a> + will notice that the server statistics are <strong>not</strong> + set to zero when a <code>USR1</code> is sent. The code was + written to both minimize the time in which the server is unable + to serve new requests (they will be queued up by the operating + system, so they're not lost in any event) and to respect your + tuning parameters. In order to do this it has to keep the + <em>scoreboard</em> used to keep track of all children across + generations.</p> + + <p>The status module will also use a <code>G</code> to indicate + those children which are still serving requests started before + the graceful restart was given.</p> + + <p>At present there is no way for a log rotation script using + <code>USR1</code> to know for certain that all children writing + the pre-restart log have finished. We suggest that you use a + suitable delay after sending the <code>USR1</code> signal + before you do anything with the old log. For example if most of + your hits take less than 10 minutes to complete for users on + low bandwidth links then you could wait 15 minutes before doing + anything with the old log.</p> + + <p><strong>Note:</strong> If your configuration file has errors + in it when you issue a restart then your parent will not + restart, it will exit with an error. In the case of graceful + restarts it will also leave children running when it exits. + (These are the children which are "gracefully exiting" by + handling their last request.) This will cause problems if you + attempt to restart the server -- it will not be able to bind to + its listening ports. Before doing a restart, you can check the + syntax of the configuration files with the <code>-t</code> + command line argument (see <a + href="programs/httpd.html">httpd</a> ). This still will not + guarantee that the server will restart correctly. To check the + semantics of the configuration files as well as the syntax, you + can try starting httpd as a non-root user. If there are no + errors it will attempt to open its sockets and logs and fail + because it's not root (or because the currently running httpd + already has those ports bound). If it fails for any other + reason then it's probably a config file error and the error + should be fixed before issuing the graceful restart.</p> + + <h3>Appendix: signals and race conditions</h3> + + <p>Prior to Apache 1.2b9 there were several <em>race + conditions</em> involving the restart and die signals (a simple + description of race condition is: a time-sensitive problem, as + in if something happens at just the wrong time it won't behave + as expected). For those architectures that have the "right" + feature set we have eliminated as many as we can. But it should + be noted that there still do exist race conditions on certain + architectures.</p> + + <p>Architectures that use an on disk <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a> have the + potential to corrupt their scoreboards. This can result in the + "bind: Address already in use" (after <code>HUP</code>) or + "long lost child came home!" (after <code>USR1</code>). The + former is a fatal error, while the latter just causes the + server to lose a scoreboard slot. So it might be advisable to + use graceful restarts, with an occasional hard restart. These + problems are very difficult to work around, but fortunately + most architectures do not require a scoreboard file. See the <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a> + documentation for a architecture uses it.</p> + + <p><code>NEXT</code> and <code>MACHTEN</code> (68k only) have + small race conditions which can cause a restart/die signal to + be lost, but should not cause the server to do anything + otherwise problematic. + <!-- they don't have sigaction, or we're not using it -djg --> + </p> + + <p>All architectures have a small race condition in each child + involving the second and subsequent requests on a persistent + HTTP connection (KeepAlive). It may exit after reading the + request line but before reading any of the request headers. + There is a fix that was discovered too late to make 1.2. In + theory this isn't an issue because the KeepAlive client has to + expect these events because of network latencies and server + timeouts. In practice it doesn't seem to affect anything either + -- in a test case the server was restarted twenty times per + second and clients successfully browsed the site without + getting broken images or empty documents. + <!--#include virtual="footer.html" --> + </p> + </body> +</html> + diff --git a/htdocs/manual/stopping.html.fr b/htdocs/manual/stopping.html.fr new file mode 100644 index 0000000000..7700ecf4ea --- /dev/null +++ b/htdocs/manual/stopping.html.fr @@ -0,0 +1,251 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + <meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /><!-- Traduction anglais 1.18 --> + + <title>Arrêt et redémarrage d'Apache</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Arrêt et redémarrage + d'Apache</h1> + + <p>Ce document décrit l'arrêt et le + redémarrage d'Apache sur Unix et Cygwin seulement. Les + utilisateurs de Windows sont invités à lire le + paragraphe <a href="windows.html#signal">signaler à + Apache en cours d'exécution</a>.</p> + + <p>Lorsque qu'Apache s'exécute, vous pouvez noter que + plusieurs processus <code>httpd</code> s'exécutent en + même temps sur votre machine, mais vous ne devez envoyer + de signaux qu'à celui dont l'identifiant de processus + est celui contenu dans le fichier <a + href="mod/core.html#pidfile">PidFile</a>. Autrement dit, vous + ne devez jamais envoyer de signaux aux processus + <code>httpd</code> autres que le processus père. Il + existe trois signaux que vous pouvez envoyer au processus + père : <code>TERM</code>, <code>HUP</code>, et + <code>USR1</code>, dont la signification est décrite ci + dessous.</p> + + <p>Pour envoyer un signal au père vous pouvez utiliser + une commande comme</p> + + <blockquote> +<pre> + kill -TERM `cat /usr/local/apache/logs/httpd.pid` +</pre> + </blockquote> + Vous pouvez lire l'effet de la commande + précédente en effectuant la commande + + <blockquote> +<pre> + tail -f /usr/local/apache/logs/error_log +</pre> + </blockquote> + Ces exemples devront être modifiés en fonction des + valeurs des directives <a + href="mod/core.html#serverroot">ServerRoot</a> et <a + href="mod/core.html#pidfile">PidFile</a>. + + <p>Avec Apache 1.3 est fourni un script <a + href="programs/apachectl.html">apachectl</a> qui peut + être employé pour démarrer, arrêter + et relancer Apache. Il peut nécessiter un peu + d'adaptation pour votre système, pour cela lisez les + commentaires situés au début de ce script.</p> + + <h3>Signal TERM : arrêt immédiat</h3> + + <p>L'envoi du signal <code>TERM</code> demande au processus + père d'essayer de tuer tous ses processus fils. Il peut + s'écouler quelques secondes avant que tous les processus + fils ne soient tués. Le processus père se termine + ensuite. Les requêtes en cours sont terminées et + plus aucune requête n'est traitée.</p> + + <h3>Signal HUP : redémarrage immédiat</h3> + + <p>L'envoi du signal <code>HUP</code> demande au processus + père de tuer tous ses processus fils, comme le signal + <code>TERM</code>, mais le processus père ne se termine + pas. Il relit ses fichiers de configuration, et rouvre les + fichiers de trace. Il lance ensuite un nouvel ensemble de + processus fils et continue de traiter les requêtes.</p> + + <p>Les utilisateurs du module <a + href="mod/mod_status.html">status</a> noteront que les + statistiques du serveur sont réinitialisées + à zéro après l'envoi du signal + <code>HUP</code>.</p> + + <p><strong>Note:</strong> si votre fichier de configuration + contient des erreurs lorsque vous demandez un + redémarrage, le processus père ne se relancera + pas mais se terminera avec une erreur. Voir plus bas pour une + méthode permettant d'éviter ce + problème.</p> + + <h3>Signal USR1 : redémarrage en douceur</h3> + + <p><strong>Note:</strong> pour les versions inférieures + à 1.2b9 cette fonction est instable et ne doit pas + être utilisée.</p> + + <p>Le signal <code>USR1</code> demande au processus père + de prier les processus de se terminer après avoir + traité leurs requêtes en cours (ou de se terminer + immédiatement s'ils n'ont pas de traitement en cours). + Le processus père relit les fichiers de configuration et + rouvre les fichiers de trace. Au fur et à mesure que les + fils meurent, ils sont remplacés par des processus fils + prenant en compte la nouvelle <em>génération</em> + de la configuration, et commencent aussitôt à + traiter les nouvelles requêtes.</p> + + <p>Cette fonction est conçue pour toujours respecter les + valeurs de <a href="mod/core.html#maxclients">MaxClients</a>, + <a href="mod/core.html#minspareservers">MinSpareServers</a>, et + <a href="mod/core.html#maxspareservers">MaxSpareServers</a>. De + plus, elle respecte la valeur de <a + href="mod/core.html#startservers">StartServers</a> de la + manière suivante : si après une seconde, au moins + StartServers nouveaux processus fils n'ont pas + été créés, alors elle en + crée suffisament pour combler le manque. Autrement dit, + la fonction essaie de maintenir à la fois le nombre de + processus fils approprié pour traiter la charge actuelle + du serveur, et respecter vos souhaits concernant le + paramètre StartServers.</p> + + <p>Les utilisateurs du module <a + href="mod/mod_status.html">status</a> noteront que les + statistiques du serveur <strong>ne sont pas</strong> + réinitialisées à zéro après + l'envoi du signal <code>USR1</code>. La fonction est + écrite afin de minimiser le temps durant lequel le + serveur est incapable de traiter de nouvelles requêtes + (elle sont mises en attente par le système + d'exploitation et donc ne sont pas perdues) tout en respectant + vos réglages. Pour cela, Apache doit maintenir la + <em>table de comunication interprocessus</em> pour les + différents processus fils et leur + génération.</p> + + <p>Le module <a href="mod/mod_status.html">status</a> utilise + également un <code>G</code> pour marquer les fils + traitant les requêtes démarrées avant le + redémarrage en douceur.</p> + + <p>Actuellement, il n'y a aucun moyen pour un script de + rotation des fichiers de trace qui utiliserait le signal + <code>USR1</code> de savoir de manière absolue que tous + les processus fils écrivant dans l'ancien fichier de + trace sont terminés. Nous suggérons d'utiliser un + délai d'attente raisonnable après l'envoi du + signal avant de faire quoi que ce soit avec l'ancien fichier de + trace. Si par exemple la majorité de vos accès + sont traités en moins de dix minutes pour des + utilisateurs utilisant des liaisons à bas débit, + alors vous devrez attendre quinze minutes avant de faire + quelque chose avec l'ancien fichier de trace.</p> + + <p><strong>Note:</strong> Si votre fichier de configuration + contient des erreurs au moment de réinitialiser le + processus père, ce dernier ne redémarrera pas et + se terminera avec une erreur. Dans le cas d'un + redémarrage en douceur, le processus père laisse + les fils continuer quand il se termine. Ce sont les processus + fils qui sont "terminés en douceur" en traitant leurs + requêtes en cours. Ceci peut poser des problèmes + si vous essayez de redémarrer le serveur -- il ne sera + pas capable de se connecter sur son port d'écoute. Afin + d'effectuer un redémarrage, vous pouvez vérifier + la syntaxe du fichier de configuration en utilisant le + paramètre <code>-t</code> (cf. <a + href="programs/httpd.html">httpd</a>). Ceci n'est pas suffisant + pour garantir que le serveur redémarrera correctement. + Afin de vérifier la sémantique des fichiers de + configuration ainsi que leur syntaxe, vous pouvez essayer de + lancer <code>httpd</code> sous un compte utilisateur autre que + root. S'il n'y a pas d'erreur, il essaiera d'ouvrir ses ports + réseau, mais échouera, soit parce qu'il n'est pas + root, soit parce que le serveur existant est déjà + connecté sur ces ports. S'il échoue pour une + autre raison, c'est qu'il existe une erreur dans les fichiers + de configuration et cette erreur doit être + corrigée avant de déclencher une relance en + douceur.</p> + + <h3>Annexe : signaux et conditions temporelles</h3> + + <p>Avant la version 1.2b9 d'Apache il existait un certain + nombre de <em>conditions temporelles</em> concernant les + signaux de redémarrage et d'arrêt. Une description + simple d'une condition temporelle est un problème + lié à l'ordre des traitements dans le temps, + comme quand quelque chose arrive au mauvais moment et ne se + comporte pas comme prévu. Pour les architectures + possédant les "bonnes" fonctionnalités, nous les + avons éliminées autant que possible. Mais il doit + être noté qu'il existe toujours des + problèmes sur certaines architectures.</p> + + <p>Les architectures utilisant un fichier sur disque <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a> pour la + communication interprocessus peuvent éventuellement + corrompre ce fichier. Il en résulte le message d'erreur + "bind: Address already in use" (après le signal + <code>HUP</code>) ou "long lost child came home!" (après + le signal <code>USR1</code>). Le premier est une erreur fatale, + tandis que le deuxième a juste pour effet de perdre une + entrée dans la table de communication interprocessus. Il + est donc envisageable d'utiliser le redémarrage en + douceur, avec d'occasionnels redémarrages + immédiats. Ces problèmes sont très + difficiles à éviter, mais heureusement de + nombreuses architectures n'ont pas besoin d'utiliser un fichier + pour la communication interprocessus. Consulter la + documentation sur <a + href="mod/core.html#scoreboardfile">ScoreBoardFile</a> pour + savoir si votre architecture l'utilise.</p> + + <p><code>NEXT</code> et <code>MACHTEN</code> (68k seulement) + présentent quelques conditions temporelles qui peuvent + provoquer la perte d'un signal d'arrêt ou de + redémarrage, mais ne devraient pas créer de + problème majeur.</p> + + <p>Sur toutes les architectures, les processus fils + présentent des conditions temporelles dans le cas du + traitement de la deuxième requête, et des + suivantes, pour des connexions HTTP persistantes (KeepAlive). + Le processus peut se terminer après avoir lu la + requête mais avant d'avoir lu l'en-tête. Il existe + un correctif, mais celui ci a été + réalisé trop tard pour être + intégré dans la version 1.2. En théorie, + ceci ne doit pas être un problème car le client + utilisant la persistance des connexions doit être capable + de traiter ce genre de cas, qui peut se produire soit à + cause des temps de latence du réseau, soit à + cause des délais de réponse trop longs des + serveurs. En pratique, cela ne semble pas non plus affecter le + système. Dans un test, le serveur était + redémarré vingt fois par seconde et les clients + ont pu consulter le site sans obtenir de documents vides ou + d'images invalides.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/stopping.html.html b/htdocs/manual/stopping.html.html new file mode 100644 index 0000000000..aaab463f89 --- /dev/null +++ b/htdocs/manual/stopping.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="stopping.html.en" --> + diff --git a/htdocs/manual/suexec.html.en b/htdocs/manual/suexec.html.en new file mode 100644 index 0000000000..c1f6069542 --- /dev/null +++ b/htdocs/manual/suexec.html.en @@ -0,0 +1,608 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache suEXEC Support</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache suEXEC Support</h1> + + <ol> + <li><big><strong>CONTENTS</strong></big></li> + + <li><a href="#what">What is suEXEC?</a></li> + + <li><a href="#before">Before we begin.</a></li> + + <li><a href="#model">suEXEC Security Model.</a></li> + + <li><a href="#install">Configuring & Installing + suEXEC</a></li> + + <li><a href="#enable">Enabling & Disabling + suEXEC</a></li> + + <li><a href="#usage">Using suEXEC</a></li> + + <li><a href="#debug">Debugging suEXEC</a></li> + + <li><a href="#jabberwock">Beware the Jabberwock: Warnings + & Examples</a></li> + </ol> + + <h3><a id="what" name="what">What is suEXEC?</a></h3> + + <p align="LEFT">The <strong>suEXEC</strong> feature -- + introduced in Apache 1.2 -- provides Apache users the ability + to run <strong>CGI</strong> and <strong>SSI</strong> programs + under user IDs different from the user ID of the calling + web-server. Normally, when a CGI or SSI program executes, it + runs as the same user who is running the web server.</p> + + <p align="LEFT">Used properly, this feature can reduce + considerably the security risks involved with allowing users to + develop and run private CGI or SSI programs. However, if suEXEC + is improperly configured, it can cause any number of problems + and possibly create new holes in your computer's security. If + you aren't familiar with managing setuid root programs and the + security issues they present, we highly recommend that you not + consider using suEXEC.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="before" name="before">Before we begin.</a></h3> + + <p align="LEFT">Before jumping head-first into this document, + you should be aware of the assumptions made on the part of the + Apache Group and this document.</p> + + <p align="LEFT">First, it is assumed that you are using a UNIX + derivate operating system that is capable of + <strong>setuid</strong> and <strong>setgid</strong> operations. + All command examples are given in this regard. Other platforms, + if they are capable of supporting suEXEC, may differ in their + configuration.</p> + + <p align="LEFT">Second, it is assumed you are familiar with + some basic concepts of your computer's security and its + administration. This involves an understanding of + <strong>setuid/setgid</strong> operations and the various + effects they may have on your system and its level of + security.</p> + + <p align="LEFT">Third, it is assumed that you are using an + <strong>unmodified</strong> version of suEXEC code. All code + for suEXEC has been carefully scrutinized and tested by the + developers as well as numerous beta testers. Every precaution + has been taken to ensure a simple yet solidly safe base of + code. Altering this code can cause unexpected problems and new + security risks. It is <strong>highly</strong> recommended that + you do not alter the suEXEC code unless you are well versed in + the particulars of security programming and are willing to share + your work with the Apache Group for consideration.</p> + + <p align="LEFT">Fourth, and last, it has been the decision of + the Apache Group to <strong>NOT</strong> make suEXEC part of + the default installation of Apache. To this end, suEXEC + configuration requires careful attention to details from the + administrator. After due consideration has been given to the + various settings for suEXEC, the administrator may install + suEXEC through normal installation methods. The values for + these settings need to be carefully determined and specified by + the administrator to properly maintain system security during + the use of suEXEC functionality. It is through this detailed + process that the Apache Group hopes to limit suEXEC + installation only to those who are careful and determined + enough to use it.</p> + + <p align="LEFT">Still with us? Yes? Good. Let's move on!</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="model" name="model">suEXEC Security Model</a></h3> + + <p align="LEFT">Before we begin configuring and installing + suEXEC, we will first discuss the security model you are about + to implement. By doing so, you may better understand what + exactly is going on inside suEXEC and what precautions are + taken to ensure your system's security.</p> + + <p align="LEFT"><strong>suEXEC</strong> is based on a setuid + "wrapper" program that is called by the main Apache web server. + This wrapper is called when an HTTP request is made for a CGI + or SSI program that the administrator has designated to run as + a userid other than that of the main server. When such a + request is made, Apache provides the suEXEC wrapper with the + program's name and the user and group IDs under which the + program is to execute.</p> + + <p align="LEFT">The wrapper then employs the following process + to determine success or failure -- if any one of these + conditions fail, the program logs the failure and exits with an + error, otherwise it will continue:</p> + + <ol> + <li> + <strong>Was the wrapper called with the proper number of + arguments?</strong> + + <blockquote> + The wrapper will only execute if it is given the proper + number of arguments. The proper argument format is known + to the Apache web server. If the wrapper is not receiving + the proper number of arguments, it is either being + hacked, or there is something wrong with the suEXEC + portion of your Apache binary. + </blockquote> + </li> + + <li> + <strong>Is the user executing this wrapper a valid user of + this system?</strong> + + <blockquote> + This is to ensure that the user executing the wrapper is + truly a user of the system. + </blockquote> + </li> + + <li> + <strong>Is this valid user allowed to run the + wrapper?</strong> + + <blockquote> + Is this user the user allowed to run this wrapper? Only + one user (the Apache user) is allowed to execute this + program. + </blockquote> + </li> + + <li> + <strong>Does the target program have an unsafe hierarchical + reference?</strong> + + <blockquote> + Does the target program contain a leading '/' or have a + '..' backreference? These are not allowed; the target + program must reside within the Apache webspace. + </blockquote> + </li> + + <li> + <strong>Is the target user name valid?</strong> + + <blockquote> + Does the target user exist? + </blockquote> + </li> + + <li> + <strong>Is the target group name valid?</strong> + + <blockquote> + Does the target group exist? + </blockquote> + </li> + + <li> + <strong>Is the target user <em>NOT</em> superuser?</strong> + + + <blockquote> + Presently, suEXEC does not allow 'root' to execute + CGI/SSI programs. + </blockquote> + </li> + + <li> + <strong>Is the target userid <em>ABOVE</em> the minimum ID + number?</strong> + + <blockquote> + The minimum user ID number is specified during + configuration. This allows you to set the lowest possible + userid that will be allowed to execute CGI/SSI programs. + This is useful to block out "system" accounts. + </blockquote> + </li> + + <li> + <strong>Is the target group <em>NOT</em> the superuser + group?</strong> + + <blockquote> + Presently, suEXEC does not allow the 'root' group to + execute CGI/SSI programs. + </blockquote> + </li> + + <li> + <strong>Is the target groupid <em>ABOVE</em> the minimum ID + number?</strong> + + <blockquote> + The minimum group ID number is specified during + configuration. This allows you to set the lowest possible + groupid that will be allowed to execute CGI/SSI programs. + This is useful to block out "system" groups. + </blockquote> + </li> + + <li> + <strong>Can the wrapper successfully become the target user + and group?</strong> + + <blockquote> + Here is where the program becomes the target user and + group via setuid and setgid calls. The group access list + is also initialized with all of the groups of which the + user is a member. + </blockquote> + </li> + + <li> + <strong>Does the directory in which the program resides + exist?</strong> + + <blockquote> + If it doesn't exist, it can't very well contain files. + </blockquote> + </li> + + <li> + <strong>Is the directory within the Apache + webspace?</strong> + + <blockquote> + If the request is for a regular portion of the server, is + the requested directory within the server's document + root? If the request is for a UserDir, is the requested + directory within the user's document root? + </blockquote> + </li> + + <li> + <strong>Is the directory <em>NOT</em> writable by anyone + else?</strong> + + <blockquote> + We don't want to open up the directory to others; only + the owner user may be able to alter this directories + contents. + </blockquote> + </li> + + <li> + <strong>Does the target program exist?</strong> + + <blockquote> + If it doesn't exists, it can't very well be executed. + </blockquote> + </li> + + <li> + <strong>Is the target program <em>NOT</em> writable by + anyone else?</strong> + + <blockquote> + We don't want to give anyone other than the owner the + ability to change the program. + </blockquote> + </li> + + <li> + <strong>Is the target program <em>NOT</em> setuid or + setgid?</strong> + + <blockquote> + We do not want to execute programs that will then change + our UID/GID again. + </blockquote> + </li> + + <li> + <strong>Is the target user/group the same as the program's + user/group?</strong> + + <blockquote> + Is the user the owner of the file? + </blockquote> + </li> + + <li> + <strong>Can we successfully clean the process environment + to ensure safe operations?</strong> + + <blockquote> + suEXEC cleans the process' environment by establishing a + safe execution PATH (defined during configuration), as + well as only passing through those variables whose names + are listed in the safe environment list (also created + during configuration). + </blockquote> + </li> + + <li> + <strong>Can we successfully become the target program and + execute?</strong> + + <blockquote> + Here is where suEXEC ends and the target program begins. + </blockquote> + </li> + </ol> + + <p align="LEFT">This is the standard operation of the + suEXEC wrapper's security model. It is somewhat stringent and + can impose new limitations and guidelines for CGI/SSI design, + but it was developed carefully step-by-step with security in + mind.</p> + + <p align="LEFT">For more information as to how this security + model can limit your possibilities in regards to server + configuration, as well as what security risks can be avoided + with a proper suEXEC setup, see the <a + href="#jabberwock">"Beware the Jabberwock"</a> section of this + document.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="install" name="install">Configuring & Installing + suEXEC</a></h3> + + <p align="LEFT">Here's where we begin the fun. If you use + Apache 1.2 or prefer to configure Apache 1.3 with the + "<code>src/Configure</code>" script you have to edit the suEXEC + header file and install the binary in its proper location + manually. This procedure is described in an <a + href="suexec_1_2.html">extra document</a>. The following + sections describe the configuration and installation for Apache + 1.3 with the AutoConf-style interface (APACI).</p> + + <p align="LEFT"><strong>APACI's suEXEC configuration + options</strong><br /> + </p> + + <dl> + <dt><code>--enable-suexec</code></dt> + + <dd>This option enables the suEXEC feature which is never + installed or activated by default. At least one + --suexec-xxxxx option has to be provided together with the + --enable-suexec option to let APACI accept your request for + using the suEXEC feature.</dd> + + <dt><code>--suexec-caller=<em>UID</em></code></dt> + + <dd>The <a href="mod/core.html#user">username</a> under which + Apache normally runs. This is the only user allowed to + execute this program.</dd> + + <dt><code>--suexec-docroot=<em>DIR</em></code></dt> + + <dd>Define as the DocumentRoot set for Apache. This will be + the only hierarchy (aside from UserDirs) that can be used for + suEXEC behavior. The default directory is the --datadir value + with the suffix "/htdocs", <em>e.g.</em> if you configure + with "<code>--datadir=/home/apache</code>" the directory + "/home/apache/htdocs" is used as document root for the suEXEC + wrapper.</dd> + + <dt><code>--suexec-logfile=<em>FILE</em></code></dt> + + <dd>This defines the filename to which all suEXEC + transactions and errors are logged (useful for auditing and + debugging purposes). By default the logfile is named + "suexec_log" and located in your standard logfile directory + (--logfiledir).</dd> + + <dt><code>--suexec-userdir=<em>DIR</em></code></dt> + + <dd>Define to be the subdirectory under users' home + directories where suEXEC access should be allowed. All + executables under this directory will be executable by suEXEC + as the user so they should be "safe" programs. If you are + using a "simple" UserDir directive (ie. one without a "*" in + it) this should be set to the same value. suEXEC will not + work properly in cases where the UserDir directive points to + a location that is not the same as the user's home directory + as referenced in the passwd file. Default value is + "public_html".<br /> + If you have virtual hosts with a different UserDir for each, + you will need to define them to all reside in one parent + directory; then name that parent directory here. <strong>If + this is not defined properly, "~userdir" cgi requests will + not work!</strong></dd> + + <dt><code>--suexec-uidmin=<em>UID</em></code></dt> + + <dd>Define this as the lowest UID allowed to be a target user + for suEXEC. For most systems, 500 or 100 is common. Default + value is 100.</dd> + + <dt><code>--suexec-gidmin=<em>GID</em></code></dt> + + <dd>Define this as the lowest GID allowed to be a target + group for suEXEC. For most systems, 100 is common and + therefore used as default value.</dd> + + <dt><code>--suexec-safepath=<em>PATH</em></code></dt> + + <dd>Define a safe PATH environment to pass to CGI + executables. Default value is + "/usr/local/bin:/usr/bin:/bin".</dd> + </dl> + + <p align="LEFT"><strong>Checking your suEXEC + setup</strong><br /> + Before you compile and install the suEXEC wrapper you can + check the configuration with the --layout option.<br /> + Example output:</p> +<pre> + suEXEC setup: + suexec binary: /usr/local/apache/sbin/suexec + document root: /usr/local/apache/share/htdocs + userdir suffix: public_html + logfile: /usr/local/apache/var/log/suexec_log + safe path: /usr/local/bin:/usr/bin:/bin + caller ID: www + minimum user ID: 100 + minimum group ID: 100 +</pre> + + <p align="LEFT"><strong>Compiling and installing the suEXEC + wrapper</strong><br /> + If you have enabled the suEXEC feature with the + --enable-suexec option the suexec binary (together with Apache + itself) is automatically built if you execute the command + "make".<br /> + After all components have been built you can execute the + command "make install" to install them. The binary image + "suexec" is installed in the directory defined by the --sbindir + option. Default location is + "/usr/local/apache/sbin/suexec".<br /> + Please note that you need <strong><em>root + privileges</em></strong> for the installation step. In order + for the wrapper to set the user ID, it must be installed as + owner <code><em>root</em></code> and must have the setuserid + execution bit set for file modes.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="enable" name="enable">Enabling & Disabling + suEXEC</a></h3> + + <p align="LEFT">Upon startup of Apache, it looks for the file + "suexec" in the "sbin" directory (default is + "/usr/local/apache/sbin/suexec"). If Apache finds a properly + configured suEXEC wrapper, it will print the following message + to the error log:</p> +<pre> + [notice] suEXEC mechanism enabled (wrapper: <em>/path/to/suexec</em>) +</pre> + + <p>If you don't see this message at server startup, the server + is most likely not finding the wrapper program where it expects + it, or the executable is not installed <em>setuid + root</em>.<br /> + If you want to enable the suEXEC mechanism for the first time + and an Apache server is already running you must kill and + restart Apache. Restarting it with a simple HUP or USR1 signal + will not be enough.<br /> + If you want to disable suEXEC you should kill and restart + Apache after you have removed the "suexec" file.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="usage" name="usage">Using suEXEC</a></h3> + + <p align="LEFT"><strong>Virtual Hosts:</strong><br /> + One way to use the suEXEC wrapper is through the <a + href="mod/core.html#user">User</a> and <a + href="mod/core.html#group">Group</a> directives in <a + href="mod/core.html#virtualhost">VirtualHost</a> definitions. + By setting these directives to values different from the main + server user ID, all requests for CGI resources will be executed + as the <em>User</em> and <em>Group</em> defined for that + <code><VirtualHost></code>. If only one or neither of + these directives are specified for a + <code><VirtualHost></code> then the main server userid is + assumed.</p> + + <p><strong>User directories:</strong><br /> + The suEXEC wrapper can also be used to execute CGI programs as + the user to which the request is being directed. This is + accomplished by using the "<strong><code>~</code></strong>" + character prefixing the user ID for whom execution is desired. + The only requirement needed for this feature to work is for CGI + execution to be enabled for the user and that the script must + meet the scrutiny of the <a href="#model">security checks</a> + above.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="debug" name="debug">Debugging suEXEC</a></h3> + + <p align="LEFT">The suEXEC wrapper will write log information + to the file defined with the --suexec-logfile option as + indicated above. If you feel you have configured and installed + the wrapper properly, have a look at this log and the error_log + for the server to see where you may have gone astray.</p> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + + <h3><a id="jabberwock" name="jabberwock">Beware the Jabberwock: + Warnings & Examples</a></h3> + + <p align="LEFT"><strong>NOTE!</strong> This section may not be + complete. For the latest revision of this section of the + documentation, see the Apache Group's <a + href="http://httpd.apache.org/docs/suexec.html">Online + Documentation</a> version.</p> + + <p align="LEFT">There are a few points of interest regarding + the wrapper that can cause limitations on server setup. Please + review these before submitting any "bugs" regarding suEXEC.</p> + + <ul> + <li><strong>suEXEC Points Of Interest</strong></li> + + <li> + Hierarchy limitations + + <blockquote> + For security and efficiency reasons, all suexec requests + must remain within either a top-level document root for + virtual host requests, or one top-level personal document + root for userdir requests. For example, if you have four + VirtualHosts configured, you would need to structure all + of your VHosts' document roots off of one main Apache + document hierarchy to take advantage of suEXEC for + VirtualHosts. (Example forthcoming.) + </blockquote> + </li> + + <li> + suEXEC's PATH environment variable + + <blockquote> + This can be a dangerous thing to change. Make certain + every path you include in this define is a + <strong>trusted</strong> directory. You don't want to + open people up to having someone from across the world + running a trojan horse on them. + </blockquote> + </li> + + <li> + Altering the suEXEC code + + <blockquote> + Again, this can cause <strong>Big Trouble</strong> if you + try this without knowing what you are doing. Stay away + from it if at all possible. + </blockquote> + </li> + </ul> + + <p align="CENTER"><strong><a href="suexec.html">BACK TO + CONTENTS</a></strong></p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/suexec.html.html b/htdocs/manual/suexec.html.html new file mode 100644 index 0000000000..1551afad67 --- /dev/null +++ b/htdocs/manual/suexec.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="suexec.html.en" --> + diff --git a/htdocs/manual/suexec.html.ja.jis b/htdocs/manual/suexec.html.ja.jis new file mode 100644 index 0000000000..66951facd1 --- /dev/null +++ b/htdocs/manual/suexec.html.ja.jis @@ -0,0 +1,607 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Apache suEXEC Support</title> + + </head> + <!-- English revision: 1.28 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Apache suEXEC Support</h1> + + <ol> + + <li><big><strong>目闔胼苳殺踉晒砠胼苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就w葹槇齦努澱ぢとは?</a></li> + + <li><a href="#before">始める前に</a></li> + + <li><a href="#model">suEXEC のセキュリティモデル</a></li> + + <li><a href="#install">suEXEC の設定とインスト・踉札薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■緕痰跂▽苳雌愿の有効化と無効化</a></li> + + <li><a href="#usage">suEXEC の使用</a></li> + + <li><a href="#debug">suEXEC のデバッグ</a></li> + + <li><a href="#jabberwock">とかげに注意: 警告と事例</a></li> + + </ol> + + + <h3><a id="what" name="what">suEXEC とは?</a></h3> + + <p align="left">Apache 1.2 で導入された <strong>suEXEC</strong> + 機能により、Apache ユ・踉札兇繧ぢサ・踉札个鬢踉斬行しているユ・踉札とは + 異なるユ・踉札で <strong>CGI</strong> プログラムや <strong>SSI</strong> + プログラムを孫圓垢襪海箸任泙后断プログラムまたは SSI + プログラムを孫圓垢襴苳詞合、通錣繧ぢサ・踉札个汎韻献罅ザで孫圓気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈繙槇適切に使用すると、この機能によりユ・踉札兇鎚未派鹿粡寂蝟赱齠洲痲筵娼や SSI プログラムを開発し孫圓垢襪海箸農犬犬襯札絅螢謄苳糸の危険を、 + かなり減らすことができます。しかし、suEXEC の設定が不適切だと、 + 多くの問題が生じ、あなたのコンピュ・踉札燭某靴靴ぅ札絅螢謄曄ルを + 作ってしまう瘢雹可能性があります。あなたが root に setuid + されたプログラムと、それらから生じるセキュリティ紊量簑蠅隆浜鹿粡寂蝟赱齠洲痲筵娼椶靴覆い茲逅擦覆蕁齦努澱ぢの使用を検討しないよう瘢雹に強く推靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈≪緕鬆齡鳫鈑蓿繙就齦纔繝譬目,北瓩闔胼苳纂蝟昭粡竚癈鷭п粐Ь踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏≒繙闥紜瘢綵≒繙闥紜始める前に</a></h3> + + <p align="left">この文書の先頭に飛ぶ前に、Apache + グル・踉札廚箸海諒現颪任硫定を知っておくべきでしょう瘢雹。 + </p> + + <p align="left">第 1 に、あなたが <strong>setuid</strong> と + <strong>setgid</strong> 操作が可能な UNIX + 由来のオペレ・踉札謄鵐哀轡好謄爐鮖箸辰討い襪海箸鯀枋蠅靴討い泙后鹿粡寂蝟赱齠洲痲筵娼これは、すべてのコマンド例にあてはまります。 + その側苳擦離廛薀奪肇曄ムでは、もし suEXEC + がサポ・踉札箸気譴討い燭箸靴討眄瀋蠅楼曚覆襪發靴譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈繙槇第 2 に、あなたが使用中のコンピュ・踉札燭鹿粡寂蝟赱齠洲痲筵娼セキュリティに関する基本的な概念と、それらの管理について椶靴い海箸鹿粡寂蝟赱齠洲痲筵娼想定しています。これは、<strong>setuid/setgid</strong> + 操作、あなたのシステム紊任里修料犧遒砲茲詬諭垢文漫鹿粡寂蝟赱齠洲痲筵娼セキュリティレベルについてあなたが理解しているという瘢雹ことを含みます。 + </p> + + <p align="left">第 3 に、<strong>改造されていない</strong> suEXEC + コ・踉札匹了藩僂鯀枋蠅靴討い泙后齦努澱ぢのコ・踉札匹蓮鹿粡寂蝟赱齠洲痲筵娼多くのベ・踉札織謄好燭世韻任覆踉市によっても注意職踉擦査困気鹿粡寂蝟赱齠洲痲筵娼テストされています。それらの注意により、簡潔で信頼できる安全な + コ・踉札匹隆霹廚檸苳孜されます。このコ・踉札匹魏僂垢襪海箸如鹿粡寂蝟赱齠洲痲筵娼予期されない問題や新しいセキュリティ紊隆躙韻犬犬襪海箸△蠅泙后鹿粡寂蝟赱齠洲痲筵娼セキュリティプログラミングの楮戮膨未犬討い董鹿粡寂蝟赱齠洲痲筵娼今後の検討のために成果を Apache + グル・踉札廚閥逅四靴茲逅擦隼廚逅擦里任覆韻譴弌齦努澱鹿粡寂蝟赱齠洲痲筵娼コ・踉札匹亙僂┐覆い海箸踉雌闔胼苳ぢ強く</strong>推靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈繙槇第 4 に、これが最後ですが、suEXEC を Apache + のデフォルトインスト・踉札襪砲齡鳫鈑含めない</strong>ことが + Apache グル・踉札廚之萃蠅気譴討い泙后海譴蓮齦努澱鹿粡寂蝟赱齠洲痲筵娼の設定には管理圓陸苳施細にわたる慎重な注意が必要だからです。 + suEXEC の様々な設定について検討が終われば、管理圓愿端蝟昭粡竚癈鷭п粐Ьぢを通錣離ぅ鵐好函ル方法でインスト・踉札襪垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼これらの設定値は、suEXEC + 機能の使用中にシステムセキュリティを適切に保つために、 + 管理圓砲茲辰匿欺鼎坊萃蠅気貉慊蠅気譴襪海箸廚任后鹿粡寂蝟赱齠洲痲筵娼この楮戮弗踉至順により、Apache グル・踉札廚蓮齦努澱鹿粡寂蝟赱齠洲痲筵娼のインスト・踉札襪砲弔い董躇嫂く十分に検討してそれを使用することを + 決定した豺腓妨造辰討い燭世燭い塙佑┐討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈繙槇それでも進みますか? よろしい。では、先へ進みましょう瘢雹!</p> + + <p align="center"><strong><a + href="suexec.html">目,北瓩闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏閼繻釶辣就迴粤譬齦努澱ぢセキュリティモデル</a></h3> + + <p align="left">suEXEC の設定とインスト・踉札襪鮖呂瓩訌阿法鹿粡寂蝟赱齠洲痲筵娼まず汰靴茲逅擦箸靴討い襯札絅螢謄皀妊襪砲弔い届世犬討泙后鹿粡寂蝟赱齠洲痲筵娼それには、suEXEC の内部で行なわれていること、 + システムのセキュリティを保擇垢襪燭瓩坊拗陲気譴襪海箸鹿粡寂蝟赱齠洲痲筵娼よく理解しておいた方がよいでしょう瘢雹。</p> + + <p align="left"><strong>suEXEC</strong> は、Apache web + サ・踉札个藐討喀个気譴續された "wrapper" + プログラムが基本となっています。設計した CGI、または SSI + プログラムへの HTTP リクエストがあると、この wrapper + が呼び出されます。このよう瘢雹なリクエストがあると、Apache + はそのプログラムが孫圓気譴觝櫃離廛蹈哀薀猝とユ・踉札とグル・踉札鹿粡寂蝟赱齠洲痲筵娼苗ぢを指定して suEXEC wrapper を孫圓靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈繙槇それから、wrapper は成功または最圓魴萃蠅垢襪燭鹿粡寂蝟赱齠洲痲筵娼以王踉擦僚萢鮃圓覆い泙后海譴蕕陸苳歯態のう瘢雹ち一つでも最圓靴職苳詞合、 + プログラムは最圓鬟蹈阿傍燭靴謄┘蕁で終了します。 + そう瘢雹でなければ、後の処理が続けられます。</p> + + <ol> + <li> + <strong>wrapper が適切な数の引数で呼び出されたか?</strong> + + + <blockquote> + wrapper は適切な数の引数が与えられた豺腓砲里潸踉斬行されます。 + 適切な引数のフォ・踉札泪奪箸鞜竏怛サ・踉札个鵬鬢踉氏されます。 + 適切な数の引数を右踉肢らなければ、攻撃をされたか + あなたの Apache バイナリの suEXEC の部分が + どこかおかしい可能性があります。 + </blockquote> + </li> + + + <li> + <strong>wrapper + を孫圓靴討い襯罅ザはこのシステムの正当なユ・踉札兇職踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼これは、wrapper を孫圓靴討い襯罅ザが + 本当にシステムの利用圓任△襪海箸鯤檸苳孜するためです。 + </blockquote> + </li> + + <li> + <strong>この正当なユ・踉札兇鱇韶纈鹿粡寂蝟赱齠洲痲筵娼の孫圓魑弔気譴討い襪職踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼このユ・踉札兇鱇韶纈ぢ孫圓魑弔気譴織罅ザですか? + ただ一人のユ・踉札草痺蒹ぢユ・踉札だけが、 + このプログラムの孫圓魑弔気譴泙后鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑対櫃離廛蹈哀薀爐汰瓦任覆こ悗了王苳使をしているか? + </strong> + + <blockquote> + 対櫃離廛蹈哀薀爐ぢから始まる、または + '..' による参箸鮃圓覆辰討い泙垢これらは許可されません。 + 対櫃離廛蹈哀薀爐鞜竏の web 空間内になければなりません。 + </blockquote> + </li> + + <li> + <strong>対櫃箸覆襯罅ザ巳苳擦論掬覆發里職踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼対櫃箸覆襯罅ザ巳苳擦和減澆靴討い泙垢深蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢ対櫃箸覆襯哀襦プ巳苳擦論掬覆發里職踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼対櫃箸覆襯哀襦プ巳苳擦和減澆靴討い泙垢深蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢ目的のユ・踉札兇魯后パ・踉札罅ザでは<em>ない</em>か? + </strong> + + <blockquote> + 今のところ、suEXEC は 'root' による CGI/SSI + プログラムの孫圓魑弔靴討い泙擦鵝鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑対櫃箸覆襯罅ザ ID は、最勅蝟昭粡竚癈鷭п粐Ьぢ番号よりも<em>大きい</em>か? </strong> + + <blockquote> + 最罅ザ ID 番号は設定時に指定されます。これは、 + CGI/SSI プログラム孫圓魑弔気譴襯罅ザ ID + のとりう瘢雹る最佑任后海譴鹿粡寂蝟赱齠洲痲筵娼‰蹉ぢ用のアカウ瘢雹ントを閉め出すのに有効です。 + </blockquote> + </li> + + <li> + <strong>対櫃箸覆襯哀襦プはス・踉札僉ユ・踉札兇離哀襦プでは + <em>ない</em>か?</strong> + + <blockquote> + 今のところ、suEXEC は 'root' グル・踉札廚砲茲派喇鹿粡寂蝟赱齠洲痲筵娼ぢプログラムの孫圓魑弔靴討い泙擦鵝鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑対櫃箸覆襯哀襦プ ID は最勅蝟昭粡竚癈鷭п粐Ьぢ番号よりも<em>大きい</em>か?</strong> + + <blockquote> + 最哀襦プ ID 番号は設定時に指定されます。これは、 + CGI/SSI プログラム孫圓魑弔気譴襯哀襦プ + ID のとりう瘢雹る最佑任后鹿粡寂蝟赱齠洲痲筵娼これは "system" 用のグル・踉札廚鯤弔畚个垢里僕任后鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑瘰鞳が正錣紡丶苳旨となるユ・踉札兇肇哀襦プになれるか? + </strong> + + <blockquote> + ここで、setuid と setgid + の起動によりプログラムは対櫃箸覆襯罅ザとグル・踉札廚砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼グル・踉札廛▲札好螢好箸蓮鹿粡寂蝟赱齠洲痲筵娼ユ・踉札兇阿靴討い襪垢戮討離哀襦プで初期化されます。 + </blockquote> + </li> + + <li> + <strong>プログラムが置かれるディレクトリは存在しているか? + </strong> + + <blockquote> + ディレクトリが存在しないなら、そのファイルも存在しないかもしれません。 + </blockquote> + </li> + + <li> + <strong>ディレクトリが Apache のドキュメントツリ・踉仔發砲△襪深蝟昭粡竚癈鷭п粐Ь踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼リクエストがサ・踉札估發里發里任△譴弌鹿粡寂蝟赱齠洲痲筵娼要求されたディレクトリがサ・踉札个離疋絅瓮鵐肇襦ト配王踉擦砲△蠅泙垢深蝟昭粡竚癈鷭п粐Ьぢリクエストが UserDir のものであれば、 + 要求されたディレクトリがユ・踉札兇離疋絅瓮鵐肇襦ト配王踉擦砲△蠅泙垢深蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳ぢディレクトリを側苳擦離罅ザが書き込めるよう瘢雹になって + <em>いない</em>か?</strong> + + <blockquote> + ディレクトリを側苳札罅ザに開放しないよう瘢雹にします。 + 所有ユ・踉札兇世韻海離妊譽肇蠅瞭睛討魏僂任襪茲逅擦砲靴泙后鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑対櫃箸覆襯廛蹈哀薀爐和減澆垢襪職踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼存在しなければ孫圓任泙擦鵝鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑対櫃箸覆襯廛蹈哀薀爛侫.ぅ襪アカウ瘢雹ントから + 書き込めるよう瘢雹になって<em>いない</em>か?</strong> + + <blockquote> + 所有坩奮阿砲魯廛蹈哀薀爐鯤儿垢垢觚造詫燭┐蕕譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑対櫃箸覆襯廛蹈哀薀爐續または setgid + されて<em>いない</em>か?</strong> + + <blockquote> + UID/GID を再度変更してのプログラム孫圓呂靴泙擦鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑対櫃箸覆襯罅ザ/グル・踉札廚廛蹈哀薀爐鹿粡寂蝟赱齠洲痲筵娼ユ・踉札ぢグル・踉札廚汎韻犬職踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼ユ・踉札兇修離侫.ぅ襪僚衢踉市ですか? + </blockquote> + </li> + + <li> + <strong>安全な動作を保擇垢襪燭瓩隆超竸凜螢△椎修深蝟昭粡竚癈鷭п粐Ь踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼齦努澱ぢは、安全な環境変数のリスト + (これらは設定時に作成されます) 内の変数として渡される安全な + PATH 変数 (設定時に指定されます) を設定することで、 + プロセスの環境変数をクリアします。 + </blockquote> + </li> + + + <li> + <strong>対櫃箸覆襯廛蹈哀薀爐して孫圓任襪職踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼ここで suEXEC が終了し、対櫃箸覆襯廛蹈哀薀爐呂気譴泙后鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就跂胄▽苳ぢここまでが suEXEC の wrapper + におけるセキュリティモデルの標準的な動作です。もう瘢雹係圭鼎鹿粡寂蝟赱齠洲痲筵娼断逼嗷設計についての新しい制限や規定を茲蠧譴襪海箸發任泙垢鹿粡寂蝟赱齠洲痲筵娼齦努澱ぢはセキュリティに注意して慎重に靴困蝶気譴討泙靴拭鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈繙槇このセキュリティモデルを用いて + サ・踉札仞瀋蟷砲匹里茲逅擦傍垢海箸鮴造垢襪△泙拭齦努澱鹿粡寂蝟赱齠洲痲筵娼を適切に設定するとどのよう瘢雹なセキュリティ紊隆躙韻鯣鬚韻蕕譴襪鹿粡寂蝟赱齠洲痲筵娼関するより椶靴う苳諮報については、<a href="#jabberwock">"とかげに注意" + (Beware the Jabberwock)</a> の呂鮖王苳使してください。 + </p> + + <p align="center"><strong><a href="suexec.html" + >目,北瓩闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏瘢綵∫銖跛蜆就蜴齡瘡譬齦努澱鹿粡寂蝟赱齠洲痲筵娼の設定とインスト・踉札界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就跂胄▽苳ぢここから楽しくなります。Apache 1.2 あるいは + <code>"src/Configure"</code> スクリプトで Apache 1.3 を設定するなら、 + suEXEC ヘッダファイルを編集してバイナリを適切な貊蠅胞踉至作業で + インスト・踉札襪靴覆韻譴个覆蠅泙擦鵝海僚萢砲弔い討踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就齦纔繝澑濂譬別の文書</a>に記載されています。 + 以王踉擦陸苳始では、AutoConf-style インタフェ・踉札双礎菱ぢを使った + Apache 1.3 での設定とインスト・踉札襪砲弔い峠劼戮討い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈繙槇齡鳫鈑双礎の suEXEC + 設定オプション</strong><br /> + </p> + + <dl> + <dt><code>--enable-suexec</code></dt> + + <dd>このオプションは、デフォルトではインスト・踉札襪気譴此鹿粡寂蝟赱齠洲痲筵娼有効にはならない suEXEC 機能を有効にします。 + suEXEC を使う瘢雹よう瘢雹に APACI に要求するには、--enable-suexec + オプションとあわせて覆箸皸譴弔祗蝟昭粡竚癈鷭п粐Ьぢオプションが指定されなければなりません。</dd> + + <dt><code>--suexec-caller=<em>UID</em></code></dt> + + <dd>Apache を通鐺虻遒気擦畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪u黼鬆ユ・踉札玉</a>を指定します。 + このユ・踉札兇世韻の孫圓魑弔気譴織罅ザになります。</dd> + + <dt><code>--suexec-docroot=<em>DIR</em></code></dt> + + <dd>Apache のドキュメントル・踉札箸鮴瀋蠅靴泙后海譴愿端蝟昭粡竚癈鷭п粐Ьぢの動作で使用する唯一のディレクトリ階層になります (UserDir + の指定は別)。デフォルトでは --datadir に "/htdocs" + という瘢雹サフィックスをつけたものです。 + "<code>--datadir=/home/apache</code>" として設定すると、 + suEXEC wrapper にとって "/home/apache/htdocs" + がドキュメントル・踉札箸箸靴道箸錣譴泙后筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私熙苳殺踉祉閼絋苳鮫祗跫艷蛹綵纃読姪蹙苳殺踉晒竢粤熙苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉私筅苳雌愿の処理とエラ・踉擦燭気譴襯侫.ぅ詭を指定します。 + (監査やデバッグ目的に有用) + デフォルトではログファイルは "suexec_log" という瘢雹巳苳餐阿如鹿粡寂蝟赱齠洲痲筵娼標準のログファイルディレクトリ (--logfiledir) に置かれます。 + </dd> + + <dt><code>--suexec-userdir=<em>DIR</em></code></dt> + + <dd>suEXEC がアクセスを許されるユ・踉札競曄ムディレクトリ配王踉擦鹿粡寂蝟赱齠洲痲筵娼サブディレクトリを指定します。 + このディレクトリ以王踉擦料侃踉斬行ファイルは、"安全な"プログラムになるよう瘢雹、 + suEXEC がそのユ・踉札兇箸靴豆踉斬行できるよう瘢雹にします。 + "単純な" UserDir ディレクティブを使っている豺蝟昭粡竚癈鷭п粐Ьすなわち "*" を含まないもの)、これと同じ値を設定すべきです。 + Userdir ディレクティブがそのユ・踉札兇離僖好錙ドファイル内の + ホ・踉札爛妊譽肇蠅汎韻研苳詞所を指していなければ、 + suEXEC は適切に動作しません。デフォルトは "public_html" です。 + <br /> + 各 UserDir が異なった王苳餐曠曠好箸鮴瀋蠅靴討い襴苳詞合、 + それらを全て一つの親ディレクトリに含めて、 + その親ディレクトリの巳苳餐阿鬚海海濃慊蠅垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑このよう瘢雹に指定されなければ "~userdir" cgi + へのリクエストが動作しません。</strong></dd> + + <dt><code>--suexec-uidmin=<em>UID</em></code></dt> + + <dd>suEXEC の対櫂罅ザとして許される UID の最佑鮖慊蠅靴泙后鹿粡寂蝟赱齠洲痲筵娼大抵のシステムでは 500 か 100 が一般的です。 + デフォルト値は 100 です。</dd> + + <dt><code>--suexec-gidmin=<em>GID</em></code></dt> + + <dd>suEXEC の対櫂哀襦プとして許される GID + の最佑鮖慊蠅靴泙后B臘颪離轡好謄爐任旭ぢが一般的なので、 + デフォルト値としても 100 が使われています。</dd> + + <dt><code>--suexec-safepath=<em>PATH</em></code></dt> + + <dd>CGI 孫團侫.ぅ襪謀呂気譴覦汰瓦壮環境変数です。 + デフォルト値は "/usr/local/bin:/usr/bin:/bin" です。 + </dd> + </dl> + + <p align="left"><strong>suEXEC 設定の確認</strong> + <br /> + suEXEC wrapper をコンパイルしてインスト・踉札襪垢訌阿法∪瀋蠧睛討鹿粡寂蝟赱齠洲痲筵娼赱ぢオプションで確認できます。<br /> + 出力例:</p> +<pre> + suEXEC setup: + suexec binary: /usr/local/apache/sbin/suexec + document root: /usr/local/apache/share/htdocs + userdir suffix: public_html + logfile: /usr/local/apache/var/log/suexec_log + safe path: /usr/local/bin:/usr/bin:/bin + caller ID: www + minimum user ID: 100 + minimum group ID: 100 +</pre> + + <p align="left"><strong>suEXEC wrapper + のコンパイルとインスト・踉札闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь釶碎絖齦纔繝ぢオプションで suEXEC 機能を有効にすると、 + "make" コマンドを孫圓靴浸愿のバイナリ (Apache 里蝟昭粡竚癈鷭п粐Ьぢが暗忘鄒気譴泙后鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼すべての構成要素が作成されると、それらのインスト・踉札襪砲鹿粡寂蝟赱齠洲痲筵娼瘠蜴齡瘡譬ぢコマンドが孫圓任泙后丱ぅ淵螢ぅ瓠ジの "suexec" + は --sbindir オプションで指定されたディレクトリにインスト・踉札襪気譴泙后鹿粡寂蝟赱齠洲痲筵娼デフォルトの貊蠅齟閭瘡鞜竏絲黷蜴磚ぢです。<br /> + インスト・踉札觧砲踉雌闔胼苳殺踉糸蹙苳賜闖熙踉晒纃闔胼苳纂蝟昭粡竚癈鷭п粐Ьぢ権限が必要なので注意してください。wrapper がユ・踉札勅蝟昭粡竚癈鷭п粐Ьぢを設定するために、所有踉祉閼絋苳殺踉糸蹙苳賜闖熙踉晒纃閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢでのセットユ・踉札勅蝟昭粡竚癈鷭п粐Ьぢビットをそのファイルのモ・踉札匹棒瀋蠅靴覆韻譴个覆蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈≪緕鬆齡鳫鈑畆蝟昭粡竚癈鷭п粐Ь鱚羹‰祟蔗迪▽苳ぢ目,北瓩闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏√釶碎紜瘢綵√釶碎紜齦努澱鹿粡寂蝟赱齠洲痲筵娼の有効化と無効化</a></h3> + + <p align="left">起動時に、Apache は "sbin" ディレクトリで + "suexec" を探します + (デフォルトは "/usr/local/apache/sbin/suexec") 。 + 適切に設定された suEXEC がみつかると、 + エラ・踉札蹈阿飽焚のメッセ・踉札犬侘呂気譴泙后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鈿竇齦努澱繝葹鉗鼾釶碎繖瘰鞳鮑踉糸蹙苳晒鞜鎭齦纔繝蹙苳皐鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢサ・踉札亠飴砲海離瓮奪察ジが出ない豺隋鹿粡寂蝟赱齠洲痲筵娼大抵はサ・踉札个枋蠅靴職苳詞所で wrapper プログラムが見つからなかったか、 + <em>setuid root</em> としてインスト・踉札襪気譴討い覆い任后鹿粡寂蝟赱齠洲痲筵娼碣鹿粡寂蝟赱齠洲痲筵娼齦努澱ぢの仕組みを使用するのが初めてで、Apache が既に動作中であれば、 + Apache を kill して、再起動しなければなりません。HUP シグナルや + USR1 シグナルによる単純な再起動では不十分です。<br /> + suEXEC を無効にする豺腓蓮‰磚ぢファイルを削除してから + Apache を kill して再起動します。 + </p> + + <p align="center"><strong><a + href="suexec.html">目,北瓩闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏♭黶艱釶辣就瘍紜齦努澱ぢの使用</a></h3> + + <p align="left"><strong>王苳餐曠曠好墾踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼齦努澱鱇韶纈ぢの使い方として、 + <a href="mod/core.html#virtualhost">王苳餐曠曠好設定での + <a href="mod/core.html#user">User</a> ディレクティブと + <a href="mod/core.html#group">Group</a> + ディレクティブを通したものがあります。 + これらのディレクティブをメインサ・踉札个離罅ザ ID + と異なるものにすると、CGI リソ・踉札垢悗里垢戮討離螢┘好箸蓮△修鹿粡寂蝟赱齠洲痲筵娼竢粤逅詞帷鶯貳闢熙瘢雹苳殺踉晒竢粤ぢで指定された <em>User</em> と + <em>Group</em> として孫圓気譴泙后竢粤逅詞帷鶯貳闢熙瘢雹苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼でそれらのディレクティブのどちらか、または陸苳司慊蠅気譴討い覆う苳詞合、 + メインサ・踉札个離罅ザ ID が想定されます。</p> + + <p><strong>ユ・踉札競妊譽肇墾踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼齦努澱鱇韶纈ぢは、リクエスト先のユ・踉札兇箸靴派鹿粡寂蝟赱齠洲痲筵娼を孫圓垢襪燭瓩砲盪箸┐泙后海譴牢圓垢襴踉斬行権限のユ・踉札勅蝟昭粡竚癈鷭п粐Ьぢの前に、"<strong><code>~</code></strong>" + 文字を置くことで存修気譴泙后鹿粡寂蝟赱齠洲痲筵娼この機能を動作させるために必要なことは、CGI + をそのユ・踉札兇忍踉斬行できること、そのスクリプトが綉畆蝟昭粡竚癈鷭п粐Ь鱚羹■迴粤譬セキュリティ検査</a>をパスできることです。 + </p> + + <p align="center"><strong><a + href="suexec.html">目,北瓩闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏≫繧釶辣就粤碯腆齦努澱ぢのデバッグ</a></h3> + + <p align="left">suEXEC wrapper は、綉能劼戮祗跫艷蛹綣蝟昭粡竚癈鷭п粐Ьぢオプションで指定されたファイルにログ霾鵑魑燭靴泙后鹿粡寂蝟赱齠洲痲筵娼瘰鞳を適切に設定、インスト・踉札襪任討い襪隼廚逅殺苳詞合、 + どこで迷っているか見よう瘢雹とするならこのログとサ・踉札个鹿粡寂蝟赱齠洲痲筵娼エラ・踉札蹈阿鮓襪箸茲い任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈≪緕鬆齡鳫鈑畆蝟昭粡竚癈鷭п粐Ь鱚羹‰祟蔗迪▽苳ぢ目,北瓩闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏∬痰矼鵄閭襤鹿粡寂蝟赱齠洲痲筵娼釶辣就裃矜纈站▽苳ぢとかげに注意: 警告と事例</a></h3> + + <p align="left"><strong>注意!</strong> + この呂牢袷瓦任呂△蠅泙擦鵝海陸苳始の最新改訂版については、 + Apache グル・踉札廚蓿繙就蔗痕鞣鞜竏絎闥膀粹笂祟蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ьぢオンラインドキュメント</a>版を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈繙槇サ・踉札个寮瀋蠅棒造鬚發逅擦韻鱇韶纈ぢについて、 + いくつか興味職踉擦づ世△蠅泙后齦努澱ぢに関する "バグ" + を報告する前にこれらを確認してください。</p> + + <ul> + <li><strong>suEXEC の興味職踉擦づ闔胼苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚階層構造の制限 + + + <blockquote> + セキュリティと効率の理由から、suEXEC の全てのリクエストは + 王苳餐曠曠好箸悗離螢┘好箸砲韻觝忍苳糸位のドキュメントル・踉札汎發鹿粡寂蝟赱齠洲痲筵娼ユ・踉札競妊譽肇蠅悗離螢┘好箸砲韻觚帖垢離罅ザの最絨未鹿粡寂蝟赱齠洲痲筵娼ドキュメントル・踉札汎發忙弔蕕覆韻譴个覆蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼例えば、四つの王苳餐曠曠好箸鮴瀋蠅靴討い襴苳詞合、 + 王苳餐曠曠好箸愿に有利なよう瘢雹に、メインの Apache + ドキュメント階層の外側瘢雹に全ての王苳餐曠曠好箸離疋絅瓮鵐肇襦トを + 構築する必要があります。(例は後日記載) + </blockquote> + </li> + + <li>suEXEC の PATH 環境変数 + + + <blockquote> + これを変更するのは危険です。この指定に含まれる各パスが + <strong>信頼できる</strong> + ディレクトリであることを確認してください。 + 世界瘢雹からのアクセスにより、誰かがホスト紊妊肇蹈い量敘鹿粡寂蝟赱齠洲痲筵娼を孫圓任襪茲逅擦砲呂靴燭覆い任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚齦努澱ぢコ・踉札匹硫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼繰り返しますが、何をやろう瘢雹としているか把握せずにこれをやると + <strong>大きな問題</strong>を引き起こしかねません。 + 可能な限り避けてください。 + </blockquote> + </li> + </ul> + + <p align="center"><strong><a + href="suexec.html">目,北瓩闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁齦纔繝澑濂皴蔗粹笂瘤豁齦纔繝澑濂貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握箟狂桶綉梗碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡窰円荻蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁齦纔繝澑濂貅昭蝟昭粡竚癈鷭ц襷樟卯姥誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏齦努澱竟鶯蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏∫銖跛釶辣就蜴齡瘡譬衷鈕蜃蜴逅氏逅侮齡瘡跚鈑鹿粡寂蝟赱齠洲痲筵娼齦努澱界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就姪瀞▽苳市蓍黼笏蜿粤黹鱸矼竢鈕蜃癆蜿瘤篌蝟昭粡竚癈鷭п粐Ь銖跛癆蜿閹蒹愿聽癆蒹鹿粡寂蝟赱齠洲痲筵娼▽踉祉閼絋苳雌鱆闔肅苺鱚閼絋苳拶竰蜷碣鹿粡寂蝟赱齠洲痲筵娼膚阨黼鞜竏窺轣銓草痺蒹鹿粡寂蝟赱齠洲痲筵娼装衷鈕跂銓纈聲竇双礎菱蓍竏粤黹鱸矼蜴蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就齦纔繝譬轣蜴愿粹笊辣銓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈¬兎國齡鳫鈑田不瀕堡嗾努澱伝津匱蝟昭粡竚癈鷭п粐Ь斌摘踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼鳫隲跂閹蒹鞜竏齒竇鱚絳鹿粡寂蝟赱齠洲痲筵娼鞳墾瘢雹鈞齔殺瘢雹鈞齔齡鳫鈑竢粤邃竟鶯鹿粡寂蝟赱齠洲痲筵娼枦淋賭檸踉晒竢粤闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就姪瀞▽苳仕粡竢粤齦纔繝閼絋苳肅跂鈔葹鈑綣蝟昭粡竚癈鷭п粐Ь蒹闌跫鈑痺鳫癆竏阨跫竅草痺蒹鹿粡寂蝟赱齠洲痲筵娼蜴齡瘡赱闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就姪瀞▽苳殺踉糸蹙苳仔鳫齦韶闥齦纔繝蹙苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь墺伉炙單繙蜴癈蒹黼鴈瘢粤蜒草痺蒹闥轣跛蝟昭粡竚癈鷭п粐Ь鶤壽蜩闔踟黼瘡跫笊鹿粡寂蝟赱齠洲痲筵娼蜩鳫苒瘢蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ьd繙蜴挽墅吊孑賭鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь苗瀝瀕偵肅鈬蓍癈蒹阯纉嬋瘡跫鱧續黼鮗蝟昭粡竚癈鷭п粐Ь肬齦努澱闥闢齷齡纃鵺旭碓蜩闕迴隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粤肅鈬苗瀝瀕旭鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь苗瀝瀕偵肅鈬蓍癈蒹阯纉派瘡跫鱧續鳫鹿粡寂蝟赱齠洲痲筵娼闥愿樽楠迴齡逑碓蜩闕迴隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粤肅鈬苗瀝瀕旭鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь單卍敏灑嫺読繙蜴齦矮蜥繝鴒鈔纈黼鴦Ъ蝟昭粡竚癈鷭п粐Ь闕粡鱚笏闥蜈纈齦努澱窿纉鼈阨趙鹿粡寂蝟赱齠洲痲筵娼矼跛阯繖跛笊碎纉鈔纈蓍粡鱚笏闥蝟昭粡竚癈鷭п粐Ь蛹矼笊碎磔愿癈蒹黼齒鹿粡寂蝟赱齠洲痲筵娼纖蓖矼黶聽頏閾鱇逑癇綣蝟昭粡竚癈鷭п粐Ь皷鈑皷逅跂專纈堤粡鱚笏蝟絎鈬鹿粡寂蝟赱齠洲痲筵娼阨→蜴蓍鼈阨趙黼鹿粡寂蝟赱齠洲痲筵娼黶辣瘡愿跛阡闥頏關纈踟鹿粡寂蝟赱齠洲痲筵娼蜴癈纉蒹鱚蒹黼鯆蜥蜥繝濶銓鹿粡寂蝟赱齠洲痲筵娼跫竅闔葹蜩阡蒹瘢癈蒹黼鬣鷦蝟昭粡竚癈鷭п粐Ь闕粡鱚笏闥癈繙纈緕竇蜴蒹癈齬肅跂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼膚阨癘帷鶯貳闢蜚粡聿纈緕蝟昭粡竚癈鷭п粐Ь黼鯆蜥闥痺茗阨蛹鈬繖粤肅鈬蒹鹿粡寂蝟赱齠洲痲筵娼瘡鱚皷粤闔鞜鱚銓蜥繝鴒緕瘢癆鹿粡寂蝟赱齠洲痲筵娼鞜鱚銓蜥繝鴒纈絎鋲班瓶兎瀕田鹿粡寂蝟赱齠洲痲筵娼侑椀賭儲單卍敏派菟嫖嘖徂面碗法鹿粡寂蝟赱齠洲痲筵娼嚆齦努澱閭緕闔闥闥粤蛹繖鹿粡寂蝟赱齠洲痲筵娼蜴肬鴉癆蜿隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粤肅鈬單卍敏灑嫺読跚窰蔗迪⊆蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼模梅努澱偵肅鈬蓍癈蛹緕瘢蜀阨瘤瘡齦努澱鹿粡寂蝟赱齠洲痲筵娼瘤黶笏蜿銖鈔鴪闥跫艸繖闥蜚蜴瘤篌蝟昭粡竚癈鷭п粐Ь繧芍鈑竟黼鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粤肅鈬惑濺愿鬲跫竅豁瘰痺蒹閾鶩竍藪跫腆励繖綽蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼掴蓄厦偵肅鈬弟笊辣銓呰阡續闥鞜竏絎壽蜩鹿粡寂蝟赱齠洲痲筵娼跛闔踟蜈鱇鱆蔔癈蜆胙闕黼鯆蜥鶇鹿粡寂蝟赱齠洲痲筵娼癆瘤繖闥愿矼葹闥蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ьd繙蜴掴蓄厦齟閭瘡鞜竏絲蔗粹笂⊆蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼啻禿瀰壮繙蜴黶聽壮緕鳫鉈緕癈派笊碎纉蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼粤肅鈬粗冬仭堡齟閭瘡蜴痕鬲砠邵蜴⊆蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就姪瀞▽苳殺踉雌闔胼苳暫詫佗棉稜氾嫖愿端蝟昭粡竚癈鷭п粐Ь卅佩賭闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь搶鈿鈬繖竢逅蛹齦努澱鱇韶纈藻蒹蒹跛鹿粡寂蝟赱齠洲痲筵娼竢迯瘤頏闕頸瘋竢逅蛹蜴草痺蒹蝟昭粡竚癈鷭п粐Ь綺逅試碵雹逅試碵雹齡鳫鈑竢粤轣諷鹿粡寂蝟赱齠洲痲筵娼齦纔繝枦淋賭檸踉晒竢粤闔胼苳皿蓍鼈阨趙鱚癆綣蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳殺踉糸蹙苳雌礒踉晒纃闔胼苳瘰鞳纔繝痰跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就姪瀞▽苳殺踉雌闔胼苳暫詫佗棉稜仭暖届孑徂堡鹿粡寂蝟赱齠洲痲筵娼嗾努澱闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь濁繙癜踉草痺蒹竢逅蛹繖跫闍闥蒹愿瘰鞳鮗蝟昭粡竚癈鷭п粐Ь肬跛阯蜴跫竅闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就姪瀞▽苳殺踉糸蹙苳仔鳫齟祚蜴竚絲蔗筮荀踉晒纃鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь蒹癆蒹瘰鞳鬪瘤阮纈鱸粐緕衷鈕蜃癆蜿鹿粡寂蝟赱齠洲痲筵娼蜀鈔繙嫖愿蓄舵亮蝟昭粡竚癈鷭п粐Ьd繙蜴嗾努澱濛瀕挽墅吊厦砠遲齦纔繝⊆蝟昭粡竚癈鷭п粐Ьe鈔蜀鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈¬兎國膚阨蜴齡瘡赱闔繿鱚跫竅闔綣蝟昭粡竚癈鷭п粐Ь鱇韶纈鳫苒瘢粡聿纈緕粡鱚笏闥蜚蒹痲篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳鮫柘嫖愿蓄舵僚棧纃逅詞阨鬲鞜鎭齦纔繝逅紫蹙苳施▽踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼阨弾盟排闥粡齟祚蜴竚絲蔗筮荅鈔繝闕韈跂阨鮗蝟昭粡竚癈鷭п粐Ь鞜竏黼鴟纈嚆蓿繙就蜴齡瘡谺蔗迪▽苳暫闕韈跚鈑鈔鹿粡寂蝟赱齠洲痲筵娼侮齡瘡跚鈑鞜竏絋踉晒瓲苳鈔蒹踉雌瘢隍苳刺林堊面瘢隍苳肅跂綣蝟昭粡竚癈鷭п粐Ь阨鱆粡齡鱸碯闔肬迴鱚鈕闔蓍頏閭纉鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈¬兎國齡鳫鈑地俎瀕堡嗾努澱瀕倉塹墫厦佚匱蝟昭粡竚癈鷭п粐Ь話壮貧陸踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼關齡鳫鈑纃齦纔繝蹙苳殺踉晒齡鳫鈑笊碎竰縺篌蝟昭粡竚癈鷭п粐Ь纔纈竕黼硼粤肅鈬跫竅闔闥鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑嗾努澱濛瀕闔胼苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈¬兎國齡鳫鈑竢粤竦禺蝟昭粡竚癈鷭п粐Ь鬲跫竅豁瘰痺蒹砠遲齦纔繝杜堙叺閼絋苳殺踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈¬兎國侮鰾纈闥蒹鱇韶纈黼纈潮蝟昭粡竚癈鷭п粐Ь矼銖跛繖阯鈬齡鳫鈑纃鳫阡蹙苳殺踉晒齡鳫鈑鈔鹿粡寂蝟赱齠洲痲筵娼逡齡癘黼黼鱸纔繝蜿砠黼肬肅跂閼纉膚鹿粡寂蝟赱齠洲痲筵娼癇鈿鴣銕蜴齡鳫鈑纃鳫阡蹙苳殺踉晒齡鳫鈑黼鮗蝟昭粡竚癈鷭п粐Ь蒹跛粹鈿瘤纔繝肬跛阯蜴竢迯瘤糂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就姪瀞▽苳殺踉雌闔胼苳殺踉祉閼絋苳祉蓖闖蝟昭粡竚癈鷭п粐Ь鬲跫竅豁瘰痺蒹砠遲齦纔繝杜堙叺閼絋苳殺踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉雌闔胼苳殺踉祉閼絋苳祉蓁閼訓齟閭瘡鞜竏絲黷蜴禺蝟昭粡竚癈鷭п粐Ь杜堙叺閼絋苳殺踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就緕痰跂釶辣就緕痰跂▽苳仕釶碎蜴逅氏逅堤黶碎蜴膽蝟昭粡竚癈鷭п粐Ь愿脱踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈¬兎國漕頏關纈踟銖跛蜴綣蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳雌礒踉晒齡鳫鈑鱇韶纈笊碎絳阨謇跛鈔鹿粡寂蝟赱齠洲痲筵娼鱚齡癇草痺蒹纈鬯蜊韭齡鳫鈑竢粤謇跛珮癆鹿粡寂蝟赱齠洲痲筵娼蔗筮韈籥閼絋苳殺踉晒齡鳫鈑蛹鈿矼鈿莅竟齡癇閹鹿粡寂蝟赱齠洲痲筵娼皚黼鴟纈蜀鞜竏肅鈔頏關纈踟闔肅苺鱚篌蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳雌礒踉晒齡鳫鈑鱇韶纈蜚蛹頏蜴肬跛阯蜴膽蝟昭粡竚癈鷭п粐Ь纉黶艱竢銖闌鞜竏窺鴬墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼衷鈕蜃蜴草痺蒹闥黼蜚齦纔繝鱇韶纈蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь草痺蒹蒹闌跫鈑纉黶艱頏蜴蒹鹿粡寂蝟赱齠洲痲筵娼纈鳫跫膾蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼梹阡蜒縹愿辣竏瘤蜩緕痰跂鱇韶纈纃癆莚礒踉晒纃蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就姪瀞▽苳刺粹逾黼蜩纉黶艱黼鴟纈鹿粡寂蝟赱齠洲痲筵娼齡癇隱蒹纈蜩闢跚諷踟阡蜴粡鈑蒹鱇韶纈鹿粡寂蝟赱齠洲痲筵娼頏閾鱇纈蜚繝纔繝痰跂鈿蜴齡瘡跂篌蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳殺踉糸蹙苳雌續鳫阡蹙苳殺踉晒齡鳫鈑宙繝銖跛癆蜿郤蝟昭粡竚癈鷭п粐Ь鈔鴒艨蜴踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮跚芬就壇淋賭▽苳殺踉雌闔胼苳殺踉氏鱚羹‰祟蔗迪▽苳斬礎塹蘇亮蝟昭粡竚癈鷭п粐Ь素摘踉晒瓲苳殺踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡鉗癇絎蔗迪閭鶩轣銛瘡鉗癇絎蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭橋外痲妓灸錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁蝌鱚貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡鉗癇絎蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳暫闕韈跚鈑鞜竏粤寰蝌怐鱚蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬衷逅蛹蜴草痺蒹鈔纈鉗癇絋踉晒莟鹿粡寂蝟赱齠洲痲筵娼夬闕韈跂闥謇鈑關閹鞜竏粤寰蝌怐鱚纈癇綣蝟昭粡竚癈鷭п粐Ь纐纈瘡纈頌阨癨繞瘠絎蒹黼鱚銓莠蝟昭粡竚癈鷭п粐Ь鳫碎纃癈闕砠頏閭纉黼鵺蜴纈鳫鴦瘤痺竇頸鴪闥鵺鹿粡寂蝟赱齠洲痲筵娼瘢聽蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳師鉗癇窺踉晒莢鹿粡寂蝟赱齠洲痲筵娼浴諷癆單瀑知毀灑賭描棉敕濮鍛登蜩繙蜴繖蜀阡鹿粡寂蝟赱齠洲痲筵娼粤肅鈬磔鞜竏癜竢鈕蜃癆蜿遘膚皷鈑蒹鉗癇綣蝟昭粡竚癈鷭п粐Ь踉糸蹙苳祉礒踉晒纃闕韈跂鬪鈔阨跛繞窿辮纈鳫鴦粹逾蝟昭粡竚癈鷭п粐Ь黼闕韈跂關迚闔闥續踉糸蹙苳紫窿蹙苳皿蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳師鉗癇荻握踉晒莢鹿粡寂蝟赱齠洲痲筵娼喘鞜畆蝟昭粡竚癈鷭п粐Ь鱚羹∽痕竢闕弉渥憶恭▽苳飼羃蔚界踉晒瓲苳蜩繿鱚篌蝟昭粡竚癈鷭п粐Ь闥粤肬草痺蒹鳬闥鱚笏踟寰蝌怐鱚嚆畆蝟昭粡竚癈鷭п粐Ь鱚羹∵雕黹鎬竢蹉蔗痕竢闕闥鉗癇綣蝟昭粡竚癈鷭п粐Ь癆竏鈕闥轣闔鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺痲粡闔轣諷癆單瀑知毀灑賭描棉敕濮鍛登蜩鹿粡寂蝟赱齠洲痲筵娼粤肅鈬鈿粤肅鈬磔鞜竏癜竢鈕蜃癆蜿遘夬繖綣蝟昭粡竚癈鷭п粐Ь銖釿纉竢銕繝闔蜴瀕炯蘇壥齡癆絳阨癨踈銓鹿粡寂蝟赱齠洲痲筵娼繙蜴力潴瀕巴模單草痺蒹鉤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳師鉗癇荻窺踉晒莢鹿粡寂蝟赱齠洲痲筵娼喘鞜畆蝟昭粡竚癈鷭п粐Ь鱚羹∽痕竢闕弉丑頸羈渦鰍▽苳諮咳桶鷦蝟昭粡竚癈鷭п粐Ь繿鱚蜴鰾纈闥鞜竏闥竢鴪繝闔鉗癇綣蝟昭粡竚癈鷭п粐Ь嚆蓿繙就蔗痕竢闕▽苳肢雕黹鎬竢蹙踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь闥鉗癇鞜蜴肬鴉癆蜿隨蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑力堙墾踉晒齡鳫鈑鉗癇荻窺瘤赱瘡鱚痲葹鹿粡寂蝟赱齠洲痲筵娼鞜頸羈渦蜴竚繖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺痲粡闔轣諷癆單瀑知毀灑賭描棉敕濮鍛登蜩鹿粡寂蝟赱齠洲痲筵娼粤肅鈬鈿粤肅鈬磔鞜竏癜竢鈕蜃癆蜿遘夬繖綣蝟昭粡竚癈鷭п粐Ь銖釿纉竢銕繝闔蜴瀕炯蘇壥齡癆絳阨癨踈銓鹿粡寂蝟赱齠洲痲筵娼繙蜴力潴瀕巴模單草痺蒹鉤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽瘤謫倣弟鉗逅詞片沈窿齦糒逅紫鈔蜒已蓆鹿粡寂蝟赱齠洲痲筵娼逅詞鴟癜艾鄒瘁筮竢蹙瘢雹苳肬痲粡闔瘡鈕肬寰蝌怐鱚鹿粡寂蝟赱齠洲痲筵娼碯蛹糂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡韃鱇粡鈑熹閙円凱蔗迪閭鶩轣銛瘡韃鱇粡鈑熹閙円凱蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭聽慣箘痲桁錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁苒痲蜴艤澑潦貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡韃鱇粡鈑熹閙円凱蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐寛声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂寳苒痲蜴鳫窺王踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳師韃鱇粡鈑窺胙闕右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮鰾纈癈皷齡闌謫韃鱇粡鈑癇鈿苡蜴鹿粡寂蝟赱齠洲痲筵娼轣蜴蜴閭緕粤黹鱸砠鈑鈕闥轣闔鱸竅齡蜴膽蝟昭粡竚癈鷭п粐Ь鞜竏纈鶤阡癆闔踟蜩蜀聽鱚釿纉續緕鹿粡寂蝟赱齠洲痲筵娼鱚竇銓瘧闥繻縺黼鵺肬纔瘢韭絳闌謫皷鈑鞜竏窺閏蝟昭粡竚癈鷭п粐Ь縺鳰蜈跛癘蜃阨癆葹鈑繖鞜竏綣蝟昭粡竚癈鷭п粐Ь繙闥蜩閭緕竅矼闔皷粤鱚鱚跂銓纈鷦蝟昭粡竚癈鷭п粐Ь阨趙闖癆蒹踉祉閼絋苳雌鱆帆稜途閼絋苳肅跂蓍竏鱇站鷦蝟昭粡竚癈鷭п粐Ь閼竏瘤艱鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹黼鱚銓緕粤碣蜈鈿鵺鈔阨蓖矼碎綣蝟昭粡竚癈鷭п粐Ь肅鈔闥蜴肬鴉癆蜿蜴蜚蒹畆蝟昭粡竚癈鷭п粐Ь鱚羹纓煕縺鱚黯円凱蔗迪▽苳士纓縺鱚鵙踉晒瓲苳粹笊辣銓闥郤蝟昭粡竚癈鷭п粐Ь蒹踉祉閼絋苳雌鱆帆稜途閼絋苳肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳暫闕韈跂蜊衷鈕蜃癆蜿宙瘤艱鵙踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽齒竇閼葹矼緕踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就齒竇鱚闥膊蔗迪▽苳賜繽鱧瘤蝴繖蜒瘋聽笏瘤鈬鹿粡寂蝟赱齠洲痲筵娼迴糒跂闥閼蜀蜒癆蜿銖濯瘡齒綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳四閼絋踉晒竢粤蜥繝癈繞竏瘤艱蒹鹿粡寂蝟赱齠洲痲筵娼竢粤槍簍閼絋踉晒竢粤蜥繝踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽竢粤衷鈕蜃癆蜿遉踉晒竢粤癇蛛碎綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳仕慥卅潴凸素哘踉晒竢粤癈繞鱚釶辣篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳仕慥卅潴墜盟排閼絋苳皿薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳市蒹踉祉閼絋苳鮫塚層浜嬪瀋林閼絋苳粤肅鉗闔癈繞郤蝟昭粡竚癈鷭п粐Ь碵闌續繖竏瘤艱踉祉閼絋苳詩閼焉窿纉鵙踉晒竢粤鈕闥竕鈑鹿粡寂蝟赱齠洲痲筵娼粹跂纐纈黼林闖謨頌蒹鈬竇齠癇薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳市蒹踉祉閼絋苳鮫柘賭崚吽嗾態賭喇藁旬‰蜴艝▽踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼竢逅蛹絖辣頸蜿葹矼緕辮赱竇蒹蜊双票蝟昭粡竚癈鷭п粐Ь瘡竢粤瘰焉粐燒纈皷闔焜闕竟鈬銓┤閼絋苳皿闕韈跂蜊綣蝟昭粡竚癈鷭п粐Ь閼蜀蜒癆蜿閹蒹纈蜆緕竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь竰蜷鈿闔艱齦韶闥筮薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳詩閼焙蜥閼絋苳葹矼緕韭蜚銓韈繝纉鹿粡寂蝟赱齠洲痲筵娼竢粤畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉濶鈔纔譬迴籖癜蜴粤踉晒瓲苳殺踉晒竢粤瘤篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳殺踉氏鱚羹閼閼焙蜥譬迴籖粡鬢踉晒瓲苳殺踉晒竢粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼烽鳫纈譬竢粤迴籖碣阯黼鬢踉晒竢粤癈鹿粡寂蝟赱齠洲痲筵娼矼緕辮赱竇磔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖黼鉚蜀譬竢粤迴籖黼鉚蜀閼絋苳殺踉晒瓲苳皿薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳刺夘齷齡纃銓鴣齡繖黼鴦蓖瘤鱸派鷦蝟昭粡竚癈鷭п粐Ь蓍竏笊黶辣蜆蔗鼈阨趙闔皷粤蜴膽蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳雌礒踉晒竢粤闥粐蜴膽蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳鮫蔦單瀑知毀灑賭描棉敕吊礎壇來閼絋苳鹿粡寂蝟赱齠洲痲筵娼竢粤努墟掻弾盟排閼絋苳皿蓍蜩跫鬪闥蜴肬鴉癆蜿郤蝟昭粡竚癈鷭п粐Ь癘瘟赱碎闔蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹纈罩鉗鈑譯黼鱸瘡蝴紜鞳鱠闥轣釿鉗鈑鹿粡寂蝟赱齠洲痲筵娼鞜艱壽纈蜩蛹粤鉗瘡黼鴟蜒癆站闢皷碎綣蝟昭粡竚癈鷭п粐Ь蜚粤聲竢鈕蜃碯粤聲竢鈕蜃瘤鰾纈鹿粡寂蝟赱齠洲痲筵娼閹瘍鉗粤癈鬯薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳詩閼焉萬逑骭閼絋苳葹矼緕纃阮繖鳫綣蝟昭粡竚癈鷭п粐Ь蜩蛯蜿隨薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳市蒹纓鞜竏装竢鈕跂銓纈聲竇双礎菱癈粐繖鹿粡寂蝟赱齠洲痲筵娼蒹關纐繻頏阮蜆鱚瘡罩絖硼碯蛹瘤篌蝟昭粡竚癈鷭п粐Ь銖跛癆蜿頏閭繖肬竢逅跂鞜竏鞜站瘍絎薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖咐遶夂辣闔肅苺鱇闔葹鈑纉界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь蒹鱚癘矼緕纈阨竏瘤艱蒹繙癜踉闔肅膽蝟昭粡竚癈鷭п粐Ь蛹纉梼齦鱚葹竢逅癇齡蜴竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь蛹纉蜚鈬闔纉緕齦鱚蒹鱚鱚逾瘤蝟昭粡竚癈鷭п粐Ь鈔纉蜥繖蜀聽鱚釿纉侮癇笊赱鮑蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳餐閹鞜竏窺凱穐蒹鱚銓闔肅肅跂瘰韭蝟昭粡竚癈鷭п粐Ь蜀聽鱚銓踉氏鱚羹閼闥絎蔗迪o頸蜿銖▽苳始頸蜿銖鈔鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯瘡跫鴪蜆紜糟跫鴪蜆絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь續鈑癇蜿蜥繝鱸纉葹鱚黼蜴鹿粡寂蝟赱齠洲痲筵娼窺荻薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳餐閹蒹繻縺黼闌跫鈑鞜竏窺凱階蒹蓿繞鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃蛹逅赱葹繞辣鱧繖銓鐚蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳肢鞣闔罩粡齡瘢隍苳瘤闥粤閹蒹鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉葹鈑繖踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蒼窺凱岡踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖纔韈鱚鶤蔗迪▽苳殺踉祉閼絋苳詩閼煥蜥纉閼絋苳殺踉晒瓲苳跛鹿粡寂蝟赱齠洲痲筵娼痲祷韈鱚蒹痲纈闔銓葹粹纉阡闕胙闕蛹綣蝟昭粡竚癈鷭п粐Ь粡鼡跂齠阨鱚皷鈑閼蜀蜒癆蜿辣癈繖鹿粡寂蝟赱齠洲痲筵娼黼蜴膊鱚阨鼬鈬痲瘤蜥纉縺粤鮗蝟昭粡竚癈鷭п粐Ь鉤纉竢銓緕竅辣鳫肅跂粡鼡壽蜩阨趙纉蜴鹿粡寂蝟赱齠洲痲筵娼祷韈鱚蒹痲纈矼蜴痲粤蜴赱竇纈纖纈鈿蝟昭粡竚癈鷭п粐Ь鱚阨鼬痲粤筮薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳屍鈔瘡闔齡鳫鈑黶逅那釿鈔纔蜴胼踉晒黶逅闔胼苳纂蝟昭粡竚癈鷭п粐Ь蜥繝癇鈿竢轤蜴繖蜚黼蜴苴瘤蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳刺鈔纔闔鵙踉晒黶逅蜥繝跼縺糯繙聽笏鱇纈鹿粡寂蝟赱齠洲痲筵娼瘤辮赱竕鈑蒹蹼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳殺踉雌瘢隍苳餐萠瘢絋踉晒黶逅蜴苴蛹鈬繖矼鹿粡寂蝟赱齠洲痲筵娼髟阡繖闔胼苳蜴踉雌瘢隍苳皿蔗痺竇齠瘢隍苳闥纈鮗蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔蛹纉纖闔蜴赱鉉葹鱇笏纈蜍綣蝟昭粡竚癈鷭п粐Ь鞜竇鶇楠纔瘢韭絳瘤踉雌瘢隍苳餐萠瘢絋踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟跚諷蓍鷓蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼萠瘢壽蜩鈔葹蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼跛繞葹鈑蜚鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь装令辣壽蜩鈔葹槇鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蓍竏瘤艱癈痲肬竢銖蜩釿蜴蒹闔肅膽蝟昭粡竚癈鷭п粐Ь瘤苺瘍絎鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳餐閹鞜竏窺凱卯續蓖糂蜩蜴鹿粡寂蝟赱齠洲痲筵娼黶逅逅詞也迚熙瘢雹苳殺踉晒黶逅蜥繝逡齡綣蝟昭粡竚癈鷭п粐Ь韶纈竅黼踉晒齡鳫鈑續蓖釶辣鵺癈踉雌瘢隍苳伺都瘢隍苳錆鹿粡寂蝟赱齠洲痲筵娼黶逅佻嘖瘢隍苳錆鈔踉雌瘢隍苳姉孕瘢隍苳癇粤肅鈬癈鹿粡寂蝟赱齠洲痲筵娼矼蜴竅黼緕皷壽癆鵺踉雌瘢隍苳伺都瘢隍苳鱚髟纉蝟昭粡竚癈鷭п粐Ь粡聿纈緕胙闕踉雌瘢隍苳紫續瘢隍苳鱚髟纉鱸闥鐚蝟昭粡竚癈鷭п粐Ь鞜竏窺凱卯蒹踉雌瘢隍苳殺瘢雹踉嗣蜊蜚逅紫瘢隍苳粡鱚笏蝟綣蝟昭粡竚癈鷭п粐Ь癇黼蜴竢鴪繝縺硼纉癈繪鈑蒹瘢絎鹿粡寂蝟赱齠洲痲筵娼草痺蒹踉辣閼蜊蜚鳫竇齠蜴笊鴪緕闔踟鹿粡寂蝟赱齠洲痲筵娼粤鴦鈔鞳鱆癈辣閼瘢纉齒黼篌蝟昭粡竚癈鷭п粐Ь赱纉癈鹿粡寂蝟赱齠洲痲筵娼▽踉雌瘢隍苳殺瘢雹踉嗣蜊蜚逅試碵雹賠熙瘢雹鈞齔諮闢熙瘢雹苳殺踉晒黶逅蜴阨鮗蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔蛹纉鈬繖竢鴪繝纃綣蝟昭粡竚癈鷭п粐Ь韶纈竅黼瘢纉鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳師銜繝閾鉗辣閼瘢纉黼鴟纈闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼肅跂跛纉蜴蒹纈跫艸蜴瘤鴪闥纉黶艱鹿粡寂蝟赱齠洲痲筵娼瘤聲蛹蜴鶯侮踉雌瘢隍苳皿蔗痺竇齠瘢隍苳肅跂鵺鹿粡寂蝟赱齠洲痲筵娼謗阯辣閼跛癜黼蒹纈閾纈鳫鹿粡寂蝟赱齠洲痲筵娼蜚纈鳫跫瘤鱚鴈銓纈釶嚆鴟纈鴪闥鞜艱鐚蝟昭粡竚癈鷭п粐Ь蒹跚緕鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉雌闔胼苳市蒹繙癜踉鞜竏嚆鴟纈呰阡蜥繝鴒鹿粡寂蝟赱齠洲痲筵娼竏瘤艱筅踉晒齡鳫鈑鳫涼啻闕鞜碎綣蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳晒鬲跫竅豁續祚蔗箝瘢隍苳鹿粡寂蝟赱齠洲痲筵娼黶逅齟閭瘡鞜竏絲瘢隍苳皿蓍竏瘤艱阮纈闔踟蒹鹿粡寂蝟赱齠洲痲筵娼粤聲黼蜴鈔蒹閭緕闔蜩竢黼鹿粡寂蝟赱齠洲痲筵娼竟齠蛯跂阮纈鱸粤蜴纃纈鰔闖熙踉晒纃鈔鹿粡寂蝟赱齠洲痲筵娼纃鞣闔网踉晒纃蒹緕鶯蜴瘰痺蒹踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚楠跌蜴挽墅跂蜥瘡闢鈑蛹鈬繖鐚蝟昭粡竚癈鷭п粐Ь蜩蜷咋闥鞜蜥癆鱚竟黼癘綣蝟昭粡竚癈鷭п粐Ь墺亊窺鵜齡鶯蓖齡蜴畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪n瘢纐蜥瘡蓖齡▽苳殺踉祉閼絋苳士瘢縉蜥瘡被齡閼絋苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝闔粡鱚笏蝟鞳鞜蜥鱚阨鼬蜩竟鶯鹿粡寂蝟赱齠洲痲筵娼芍蜊韭蜒蜚踟瘟黼鴟纈粐鱚齠〓阯葹鷦蝟昭粡竚癈鷭п粐Ь矼跚竕跚齡繖癈癘濶轣銷鳫碎纃癆鹿粡寂蝟赱齠洲痲筵娼纈葹筮跂癈黼蓿繙就闢草痺蒹蜥瘡鹿粡寂蝟赱齠洲痲筵娼被齡閭緕闔闥纈續瘟踈郤蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽頏繝繖緕竇鶯蓖齡葹矼緕纐纈黼篌蝟昭粡竚癈鷭п粐Ь瘰韭蜈轣蜴踟闢皷鈑墺亊窺被齡蒹痲纈鵺鈔鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯黼鴟纈鞜▽苳屍纈鯰癆荀踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝阯蒹癇跚纈蓖齡蜴蒹蛹葹鹿粡寂蝟赱齠洲痲筵娼頏繝繖緕竇赱闢踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚竢粤被齡釶辣弥闍鵙踉晒竢粤繙癜踉聿踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚齡鳫鈑黶逅凖溶堙瀏腕圖踉晒黶逅派癇蛛碎綣蝟昭粡竚癈鷭п粐Ь葹鈑繖踉晒齡鳫鈑草痺蒹鈔癇跚纈綣蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳子斗冬範嘖瘢隍苳緕鳫鉈緕鱸痰跂痲癘瘟赱碎綣蝟昭粡竚癈鷭п粐Ь断黹鱸頸黼蜚蒹胚跛林瘢閹蒹鹿粡寂蝟赱齠洲痲筵娼竚蜈銓闥踈蒹跚緕賓粐鱚齠釶辣癈鹿粡寂蝟赱齠洲痲筵娼鈿謗阯隨蓍矼葹闥蜀聽鱚胙闕葹齔繝蜀蜈磔蒹鹿粡寂蝟赱齠洲痲筵娼断齔繝蜀蜒癆蜿遯蓍竏繙蜴纉蓍鱸痰跂矼蜴燐面鹿粡寂蝟赱齠洲痲筵娼蜀蒹瘢蜩逾謗阯隨草痺蒹癘轣粤蓍鷦蝟昭粡竚癈鷭п粐Ь闥鱚笏蜿隨踉雌瘢隍苳子斗冬祖漬瘢隍苳瘡闔蜴綣蝟昭粡竚癈鷭п粐Ь跚緕賓粐鱚齠碯黶逅凖溶堙瀏腕圖踉晒黶逅闔踟鹿粡寂蝟赱齠洲痲筵娼粤肅鈬緕蒹纈葹矼緕碎續纈迚鈬蒹鹿粡寂蝟赱齠洲痲筵娼竚蜈銓林瘢絎薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳市蒹鈔閭緕畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉窿纉鶤蔗迪▽苳殺踉祉閼絋苳詩閼焉窿纉鵙踉晒竢粤蝟昭粡竚癈鷭п粐Ь瘡跫纈艱銓鵞癈纃阮繖壽鱚韭痺纃緕蜩蒹闥綣蝟昭粡竚癈鷭п粐Ь緕纈瘡瘡跫胙闕鉚〓薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳思蒹蜴趙竅鰾蜴癆蓆瘢纉齦竏瘤食蒹蝟昭粡竚癈鷭п粐Ь跫鈑纈癆竏鼬癈荅壽癆鵺蒹迴鱚跫黼踟繹癘綣蝟昭粡竚癈鷭п粐Ь阯良鼈繻矼葹鶤蓍瘋聽笏鷦蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳殺瘢雹踉残蜥繝鴒逅紫閼絋苳粡鱚笏蝟纉肬纔瘢韭絎薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳刺鈿踉祉閼絋苳市鱇銖聽鯡閾閼絋苳粡鱚笏蝟蜩蝟緕蒹郤蝟昭粡竚癈鷭п粐Ь阡蓍鈑蛹矼閾艱筮會纐蜿踟粤聲鹿粡寂蝟赱齠洲痲筵娼竢粤跫苴窿纉黯跫胼踉晒竢粤薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳餐鞜竏鈿葹畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪l閾跂譬竢鈕蜃痰跂鴪闥閾芍鈑鹿粡寂蝟赱齠洲痲筵娼跂踈瘤粤聲繻蜊蜴癆纉闕辣齠瘍纉葹蝟昭粡竚癈鷭п粐Ь癇跚纈纈皷闔瘡緕纈癆繖踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚怦緕闖鈑草痺蒹蛹鈿粤竏繻胙闕蜴蝟昭粡竚癈鷭п粐Ь阨鈔纈鬯纈跛阡粤竏繖銓蛹胄纈鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃蛹纉癘矼緕縺齒阨蛹矼碎繞鹿粡寂蝟赱齠洲痲筵娼蜴蜚蛛纈鳫辣齠瘍纉漕癆跛鴪闥癇跫艸繖郤蝟昭粡竚癈鷭п粐Ь蒹鴪闥煬閾壽蜩瘠纉迴鱚闔鉗緕鶯鞜竏綣蝟昭粡竚癈鷭п粐Ь蛛鼈齠茗竰闔碵踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚逅詞鍋跂鵙瘢雹苳黼笏蜿銖鱚阨鼬竢諷貅蝟昭粡竚癈鷭п粐Ь癆蓆瘢絳鈔纈轣蒹瘍瘟銖胚跛癆蓆瘢纉壽蜩鹿粡寂蝟赱齠洲痲筵娼葹齒辣釿闔皷齡緕竕纉瘤鱚迴筮纃癆蜩鹿粡寂蝟赱齠洲痲筵娼闌粤矼葹闥黼瘢雹踉仔蛹纉逅紫繝闔纉蜴皷粤鹿粡寂蝟赱齠洲痲筵娼逅詞堤鱚笏闥瘢雹苳黼笏蜿隨薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺瘢雹踉嗣閭癆蜿遉瘢雹苳轣蓍鈑繹癘蜿纉鞳笏鐚蝟昭粡竚癈鷭п粐Ь赱鼈纉癈葹鈑繖嚆畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪l閭癆蜿遐逅詞弥竅闔逅紫鹿粡寂蝟赱齠洲痲筵娼粹笊辣銓癆蜿遉踉晒瓲苳肬迴鱚鈕鎬薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖莱黹葹鈑纉界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳屍纈鰓蜴續筅踉晒竢粤癈繞粤頏繝癆繖部鹿粡寂蝟赱齠洲痲筵娼齡蛹纔蜩碯碯苴鱚鉤蜍繻肅筮薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳肢鞣熏闔蜚闥閼絋苳葹矼緕辮鱚竅筮蒹鹿粡寂蝟赱齠洲痲筵娼鱚韭痺纃緕蜩竢粤迴籖齡癆閼絋苳瘤轣諷鹿粡寂蝟赱齠洲痲筵娼鱚髟纉厂癈鹿粡寂蝟赱齠洲痲筵娼竢粤蔗痕闢黼鴟纈鷽鱚胙纉莉碓閼絋苳皿薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь鞜竏鈿頏阮蜆纉繙聽笏蝟繻碯聿纈繖闔鈬笏蜿郤蝟昭粡竚癈鷭п粐Ь闥派竰蜷壽蜩縺銖葹籬蛹矼緕蒹鹿粡寂蝟赱齠洲痲筵娼竚蜈銓齒闔断鞜纉齡關阨纂蝟昭粡竚癈鷭п粐Ь鱚阨鼬鞜竏碯聿纈蒹頤肅篌蝟昭粡竚癈鷭п粐Ь聽皷繙闥黼鈔蜴膃蓍竏阨趙纉蜴蒹黼鮗蝟昭粡竚癈鷭п粐Ь蜈鈑纃頸鞜艱銓蛹蒹派蜴蜩蒹闥頤畆蝟昭粡竚癈鷭п粐Ь闕韭續碯聿纈部鈿闔艱鈬竇齠癇黼韆鹿粡寂蝟赱齠洲痲筵娼断續鈞聽鱚阨秤癆闢断蕪鱚鹿粡寂蝟赱齠洲痲筵娼蜚蜴瘤苺瘍癆粤聲粹纉聽鱸鈑鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳糸踉晒纃鞳鳰蜩蓖粮癘粤蜊緕貅蝟昭粡竚癈鷭п粐Ь聿繝闔纈肬鴉瘤竇鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳拶鉋茘断蕪蜒肬鴉纈踟鳫粤粡鱚笏閭諷鹿粡寂蝟赱齠洲痲筵娼竚蜈銓蜚蓖銷纈竟齡鳫竇齠蜴膃纈鈿蝟昭粡竚癈鷭п粐Ь踟闕鞜碎墺亊窺闥嗅竟鶯蒼纖鹿粡寂蝟赱齠洲痲筵娼葹痲蜊韭纃緕瘤齔闥粤蛹鵺癈鹿粡寂蝟赱齠洲痲筵娼緕竰闔竏謇鈑蜴鰾纈鳬鳫鞳鳰蜴鹿粡寂蝟赱齠洲痲筵娼竇鶯瘟皷癆蜿銖麗蒹鉤粡聿纈緕竇續緕韆鹿粡寂蝟赱齠洲痲筵娼瘤鈿遶鉋黹鱸頸蜩鈿遶鞜鴦繖縺粤鴦〓鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳私硴轣釶艱閼絋苳葹矼緕鱶癜跂筮薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖壽蜥倚鶯酪糒跂鵙踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹闌跫鈑葹鈑纉續緕蒹鈔佗癨鹿粡寂蝟赱齠洲痲筵娼鱚髟蜥鼬蜃蔗葹鈑纉蜥鞜鶯迴糒跂鈿轣蜴蜴繖蝟昭粡竚癈鷭п粐Ь鞜竏絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚夬蜆硼竚癈蒹蓍鰾癇閼竢逅蛹繖鹿粡寂蝟赱齠洲痲筵娼蜴蒹纈鬪蒹緕纈瘡鱚肅爨踉祉閼絋苳氏鞏閼絋苳薩癈鹿粡寂蝟赱齠洲痲筵娼芟閧瘡踟韶跚繖肬跛阯蜴竚癈黼閹硼踈草痺蒹鹿粡寂蝟赱齠洲痲筵娼頏阮蜆繖緕纈瘡笏蜿銖纃絎膊蹙苳錆鹿粡寂蝟赱齠洲痲筵娼竢粤瘰焜顆齡鴈閼絋苳皐頤碎蜒佗笏蜿銖鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳糸踉晒纃竢粤鞜跛閭閼絋苳錆踉祉閼絋苳獅艱閼絋苳皐鈔鹿粡寂蝟赱齠洲痲筵娼頏蝟癆胚釿闔蜒竅逾矼痲齡癆蜒矼竅閹鹿粡寂蝟赱齠洲痲筵娼竰闢鶚閧裙笏黶艱碯鼈阨趙└踉糸蹙苳糸踉晒纃蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳試纓焜闔鈬笏蜿遉踉晒竢粤闥痺譌癇齒竇鹿粡寂蝟赱齠洲痲筵娼竢逅癆蛯蛹蜚鞜竏窺鈬蒹痲纈蛹釶辣篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳祉闕鞜荀踉晒竢粤癈鱚癆繖蓍竏鳫粤粤肅鈬肬鮗蝟昭粡竚癈鷭п粐Ь蒹趙硼釶辣鶤阨ъ繪纈癘踉祉閼絋苳撮蜴竚綣蝟昭粡竚癈鷭п粐Ь闕鞜荀踉晒竢粤籬蒹佗硼踈阨黼踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚代瘤纔瘢蜴蓿繙就齒竇鱚闥膊蔗迪▽苳雌阨鱆綣蝟昭粡竚癈鷭п粐Ь閼鱚闥艨鉗闔瘍絋踉晒瓲苳繞蒹纈銷纈綣蝟昭粡竚癈鷭п粐Ь聿繝阨踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚專閹踉雌瘢隍苳屍賭崚吽崚厶貧陸踉晒黶逅繙蜴蜚蜿隨羲蝟昭粡竚癈鷭п粐Ь蓍鰾癇閼纉繙纈緕竇蒹纈鴦蜿齡鱸鈑皷鈑鹿粡寂蝟赱齠洲痲筵娼蜩硼讙蒹鼈阨趙竢鴪繝碪瘟蜚竅跛蜴膽蝟昭粡竚癈鷭п粐Ь蒹纓佗阨鈬鹿粡寂蝟赱齠洲痲筵娼竢粤竢銖熙瘢雹鈞齔祉葹鬢瘢雹鈞齔鯖瘰熈續燗纈鰡鴦蜿遖踉晒竢粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚竢粤瘰焜闔齡鴣笏熾鳰閼絋苳頏阡阡竏瘤艱壽綣蝟昭粡竚癈鷭п粐Ь繝闔鞜鱇辣頏纐蜿踟踉祉閼絋苳雌纈鰡鱚礒踉晒竢粤蜚鹿粡寂蝟赱齠洲痲筵娼葹矼緕葹鈑繖竢粤鱚髟纉鱚礒踉晒竢粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼壽竢粤碎絋踉晒竢粤癆癆葹矼緕痲瘤鞜髟綣蝟昭粡竚癈鷭п粐Ь絎閼蜒癈齦辣竢粤碎絋踉晒竢粤黶辣鹿粡寂蝟赱齠洲痲筵娼癈竢粤癇鱇蒹痲纈閼絋苳跛阡闕韈跂壽蜩鷦蝟昭粡竚癈鷭п粐Ь笏跛竏瘤艱緕肬鱆双蜚癈鹿粡寂蝟赱齠洲痲筵娼蜴鈔繖瘡鴦蜿銖草痺蒹癘葹畆蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳飼痰跂煥踉鶉踉晒竢粤笏蜿蜒蜩銓緕粤肬鮗蝟昭粡竚癈鷭п粐Ь閼蜒鈬繖窿纉繻纃緕碎絎蒹鹿粡寂蝟赱齠洲痲筵娼竏瘤艱鱚髟蜥繖闥蓍癇頏續癈鈔闥鹿粡寂蝟赱齠洲痲筵娼瘡鴦蜿銖草痺蒹鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍竟黼踉祉閼絋苳飼閼絋苳蜩痰跂怦緕纐纈閼鱚聽鴦鹿粡寂蝟赱齠洲痲筵娼踉祉閼絋苳飼瘢雹苳糸踉鵙踉晒竢粤鱚韭痺蜚蜚齒辣蜴跚諷鹿粡寂蝟赱齠洲痲筵娼蜩墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼癇鱇蒹痲纈癇碎縷繻鹿粡寂蝟赱齠洲痲筵娼碎縷緕踉痰跂煥銓鴒鴪瘢雹苳糸踉鷸鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蒹鈬竢粤繙纈踉祉閼絋苳飼瘢雹苳試繻閼絋苳綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳氏鴪瘢雹苳試繻閼絋苳皿瘤纔瘢韭纉瘤肬蜴鹿粡寂蝟赱齠洲痲筵娼齡瘤籬鰾閼纉黼癇竏闥踉祉閼絋苳飼痰跂煥踉鵙踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁跋瘰韈鈑皴蔗粹笂瘤豁跋瘰韈鈑貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握群俄箚険蘯碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡鳰轣韶蜴膊蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁跋瘰韈鈑貅昭蝟昭粡竚癈鷭ц襷樟卯温誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳四瘰韈鈑厂蛹纉弥竅闔草痺蒹墺仄蝟昭粡竚癈鷭п粐Ь纈鬢踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就竇銓纈▽苳四瘰韈鈑厂蛹纉弥竅闔鵙踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蓍粹笊辣銓赱蜴蓖草痺蒹黼孀閹繿齡鹿粡寂蝟赱齠洲痲筵娼續纈迚鈬蒹蛹纉跫竅闔鳫蜒纈鹿粡寂蝟赱齠洲痲筵娼肅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■粹笊辣銓鳫阡▽苳残閭緕闖熙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就o皷粤▽苳仔蛹纉皷粤蒹鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■纈▽苳師黼堤鱚笏闥蜈鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就r繖蜥繝槇孀吶粡鱚笏蜿遉踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就r纓鱸▽苳子纓鱸鈑蜴絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就n阡肬笄鍋跂阡阨鈔薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎硼鰾纈就陰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳子繻癆繖閼纉闔胼苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼焉跚癈譬迴籖瘡蛛鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖鱚蜚絎蔗迪▽苳詩閼熬纓鱸碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼熾黼鰾蜥譬迴籖纈粡鬢踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖齔繻蜴膊蔗迪▽苳詩閼燗鞳跚鈑碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖闢瘡蛛鶤蔗迪▽苳詩閼燒蓖齡焉跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼瘡蜃扈♯關▽苳殺踉雌闔胼苳子繻癆繖蜥繝鵙踉晒齡鳫鈑碣鹿粡寂蝟赱齠洲痲筵娼踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖瘡蛛鶤蔗迪a跚癈▽苳餐跚癈碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖瘡蛛鶤蔗迪a跚癈轣茴糟蛛麝癆竏碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖齔繻蜴膊蔗迪c蒹站齔繻跚鈑▽苳暫蒹站嚼繻跚鈑碣鹿粡寂蝟赱齠洲痲筵娼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯粹笊辣銓鳫阡▽苳残閭緕闖熙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪e鴪闥粹笊辣銓▽苳仕鴪闥弟笊辣銓碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼闥絎蔗迪o頸蜿銖▽苳始頸蜿銖碣鹿粡寂蝟赱齠洲痲筵娼踉氏鱚羹閼閼焉跚癈譯鱚粡鱚笏▽苳子繖蜥繝熙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉跚癈譯鱚粡鱚笏轣茴吶粡鱚笏浴荀踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼熬纓鱸譯吶蜚綯闔笄吶蜚綯闔筅踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼熬纓鱸譯吶蜚縡紜吶蜚縡絋踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉跚癈譯黹鱸頸瘡蛛鵞噬鱸頸糟蛛鵙踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉跚癈譯黹鱸頸瘡蛛鼾癆竏▽苳屍竰蜷跚癈浴荀踉晒瓲苳殺踉獅苳纂蝟昭粡竚癈鷭п粐Ь蓿繙就迴箝迴籖纈粡鬯蔗迪u黼鰾蜥▽苳師黼鯆蜥碣鹿粡寂蝟赱齠洲痲筵娼踉晒鹿粡寂蝟赱齠洲痲筵娼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏≫閭緕闖槇鹿粡寂蝟赱齠洲痲筵娼釶辣就粹笊辣銓鳫阡▽苳残閭緕闖熙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺粤竕粡鈑葹肅跂黼鴟肬芍鱚髟纉鞜竏紮鷦蝟昭粡竚癈鷭п粐Ь繙癜踉繹癘蜿蜩諷蒹厂癆肬鱚髟纉蒹鹿粡寂蝟赱齠洲痲筵娼鞜鶯孀肬跛阯蜴蓖齡釶辣鈔闥鈔粐鹿粡寂蝟赱齠洲痲筵娼緕閹蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯粹笊辣銓鳫阡▽苳残閭緕闖熙踉晒瓲苳齔繝蜀蜈蜴鹿粡寂蝟赱齠洲痲筵娼闔肅苺鱇闔蛹纉壽纈繙闥絳蒹蛹纉鈔蜥繝鱸纉鹿粡寂蝟赱齠洲痲筵娼粤鴈縺蒹踉祉閼絋苳残閭緕闖熙踉晒竢粤瘠蒹癈蜒鹿粡寂蝟赱齠洲痲筵娼粹笊辣銓鱚癆蛹矼蜩蛯跂鳫皰鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏蜩踈竅鞜碎閹踉氏鱚羹♪蓖齡鶩▽苳志蜥瘡鹿粡寂蝟赱齠洲痲筵娼被齡蜴胼踉晒瓲苳錆蒹鱚蒹纈鱚竇蝟纉繿齡肬迴鱚葹郤蝟昭粡竚癈鷭п粐Ь鈬闢蜩癈絳蜀聽鱚銓踉祉閼絋苳残閭緕闖熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼竅矼鞳竕肅繖闥痺鶯蓖齡闥踉纈釶踟綣蝟昭粡竚癈鷭п粐Ь蜥繝頏阮蜆繖迴糒跂踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖闢瘡蛛鶤蔗迪▽苳詩閼燒蓖齡焉跚癈瘤繖鹿粡寂蝟赱齠洲痲筵娼瘢蜒瘡踟續纈迚鈬蒹韶鳫頏蛛赱竇鳫蜒鹿粡寂蝟赱齠洲痲筵娼黼鴟竢銓緕矚黼闔蒹繿齡繖痲糅纉闥鹿粡寂蝟赱齠洲痲筵娼蓖齡釶辣踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏皷粤釶辣就阨蜆紜鍋跂蜆綣蝟昭粡竚癈鷭п粐Ь閭緕闖熙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鱚鱚鱚髟緕竕鱆齡瘤竇纈蜚鈬竇齠癇鹿粡寂蝟赱齠洲痲筵娼瘡跫痺竇齠鞜鶯閹蒹蛹纉癆鱚阡鹿粡寂蝟赱齠洲痲筵娼齡鱸笏踟鈔纈鈬癆畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪d閭緕闖槇弟笊辣銓呰阡草痺蒹鹿粡寂蝟赱齠洲痲筵娼閹聽鴦纐纈瘡蜀聽鱚銓癨窿闕韭蜩蜩鉗蝟昭粡竚癈鷭п粐Ь逑齷轤闌蜒蜴謫瘤鱸鈑纈癇肅跂齷齡纃鹿粡寂蝟赱齠洲痲筵娼粤竢粤弟笊辣銓呰阡閼絋苳皿闥繝蜚鱚癈闔鵺鹿粡寂蝟赱齠洲痲筵娼草痺蒹蛹肬跛阯硼跚跚鉉闔踟畆蝟昭粡竚癈鷭п粐Ь鱚羹閼闥絎蔗迪o頸蜿銖▽苳始頸蜿銖續鈑闥蒹鹿粡寂蝟赱齠洲痲筵娼鱚跂銓蜥繝鴒釿跿粤竢粤楠跛阯囮輒蜴謫閼絋苳闥鹿粡寂蝟赱齠洲痲筵娼竢粤囮輒蜴謫膚鈬鰺癆竏閼絋苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐踉纈釶踟畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉跚癈譯瘡蛛鵞糟蛛鵙踉晒瓲苳粡鱚笏蝟跛瘰鹿粡寂蝟赱齠洲痲筵娼瘤鞜鶯肅跂齷齡纃銓齔痺絎闥逅跂蝟昭粡竚癈鷭п粐Ь蜚荀踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐跚癈粹笂鬲皃踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮孀娘蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳肢雕纔瘢韭絎竢躁粹笂蜥蛹絎蔗迪閼絋苳跛綣蝟昭粡竚癈鷭п粐Ь纈胙闕踉祉閼絋苳晒鬲皴粡鬲肅跂讀踉晒竢粤壽畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉跚癈譯黹鱸頸瘡蛛鵞噬鱸頸糟蛛鵙踉晒瓲苳粡鱚笏蝟綣蝟昭粡竚癈鷭п粐Ь闥謫蒹瘢蜚痲粡闔瘡聿繝癆跛闔銓鹿粡寂蝟赱齠洲痲筵娼跫竅癆蒹癇艱鞜縺癈派竰蜷踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮楠皷癆蜿銖蒹鱚阨繿鱚粐蜚蜿釶肚纔蛯蛹蜚阨鹿粡寂蝟赱齠洲痲筵娼竅畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉跚癈譯瘡蛛鼾癆竏▽苳餐跚癈浴荀踉晒瓲苳瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉跚癈譯黹鱸頸瘡蛛鼾癆竏▽苳屍竰蜷跚癈浴荀踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝竟鱠踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迚黹叢譯鱚艱鱚苺赱鬮纔頏纉皷闔癈繖鹿粡寂蝟赱齠洲痲筵娼轣蓍鈑鈔齡蜚蜿隨闥逅跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍竰蜷跚癈浴洒栲芍蜴蝟昭粡竚癈鷭п粐Ь蓖辣丑竍薛砠遲げ閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳似蛹轣鱚髟纉鹿粡寂蝟赱齠洲痲筵娼竢粤蔗痕逅跂闕纈芍蜴竰蜷竍薤踉晒竢粤綣蝟昭粡竚癈鷭п粐Ь癆竢粤闕絲纈芍蜴竰蜷竍薤踉晒竢粤鈔蛹縺蝟昭粡竚癈鷭п粐Ь蒹纉鈑蛹癈派竰蜷鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就纈釶辣就纈▽苳師黼堤鱚笏闥蜈鵙踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市鱇粡闔瘡踟寰蝌逑蓖辣蜥繝鴒畆蝟昭粡竚癈鷭п粐Ь癇笊赱纃纈蹙苳竅矼繙纈鱚鷦蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳時纈踉晒竢粤壽迴糒跂踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖纈粡鬯蔗迪▽苳詩閼熾黼鰾蜥緕糂蓍蜆縺鹿粡寂蝟赱齠洲痲筵娼蒹繧瘡跫鈑蛹纉鈔纈痺纈闕粡鱚笏闥蝟昭粡竚癈鷭п粐Ь矼窿纉黼蜴孀約癈蒹闌跫鈑踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳肢雕纔瘢韭絎竢躁黼鬲肅跂讀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮楠黼笊鱸縺齒銖蜚蜴瘰頏關鱸癆蝟粡鱚笏鹿粡寂蝟赱齠洲痲筵娼痺竇齠纈闕粡鱚笏闥胙闕蒹繧壽纈繙闥絳蒹鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖纈粡鬯蔗迪u黼鰾蜥▽苳師黼鯆蜥蜥繝鹿粡寂蝟赱齠洲痲筵娼齔繝蜀蜈粡鱚笏闥粤鴈縺蒹黼鬣蓖辣蜥繝鴒鹿粡寂蝟赱齠洲痲筵娼纈肅跂癇跫竅筮皷鈑蒹繙癜踉續鈑羲蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳師黼鰾蜥跚窰蔗迪閼絋苳錆蒹硼厂瘰蛹綣蝟昭粡竚癈鷭п粐Ь粡鱚笏闥跚諷鹿粡寂蝟赱齠洲痲筵娼竢粤闕絲纈跚窰蔗迪蛹絎蔗迪閼絋苳纈綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳晒蓖辣黼鬲閼絋苳蜩蒹黼鬣蓖辣蜥繝鴒鷦蝟昭粡竚癈鷭п粐Ь鞳竕肅繖竢粤癈齬筅踉晒竢粤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纈癇瘡齒纐纈瘡纈闥逑綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳師黼鰾蜥閼絋苳粡鱚笏蝟蜒竅闔逑鹿粡寂蝟赱齠洲痲筵娼纈竢粤癈齬筅踉晒竢粤閻鈿竢銓瘟跫竅闔羲蝟昭粡竚癈鷭п粐Ь蒹闕粡鱚笏闥鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳屍闕鞳關跂蜴◯齷轤闌蜒蜩胄緕釿閼繖郤蝟昭粡竚癈鷭п粐Ь蒹繧竢粤シ絋踉晒竢粤癡譌癇瘤頏繙纈瘤鹿粡寂蝟赱齠洲痲筵娼瘡鴈癆齡鱸鈑鱚頏纉緕纈蜥繝鱸纉壽蜩鹿粡寂蝟赱齠洲痲筵娼胚釿闔瘡蜚蜩阡竟鶯繖迴籖纈粡鬯阯纐纈蜀鹿粡寂蝟赱齠洲痲筵娼纈鵲闕粡鱚笏闥蜈癇齡鴣笏繖鱚苺赱蒹郤蝟昭粡竚癈鷭п粐Ь蜩闢皷碎黼蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖瘡蛛鶤蔗迪a跚癈轣茴糟蛛麝癆竏蜥繝鹿粡寂蝟赱齠洲痲筵娼竏蜈蒹纉蜥繖聿繝闥逅跂瘠綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳肢雕纔瘢韭絎竢躁瘍纉黼鬲肅跂讀踉晒竢粤瘰鹿粡寂蝟赱齠洲痲筵娼踉祉閼絋苳晒蓖辣黼鬲頤碎蜒煦豁肅跂讀踉晒竢粤綣蝟昭粡竚癈鷭п粐Ь闌跫鈑踉祉閼絋苳餐跚癈浴荀踉晒竢粤蜥繝墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳餐跚癈浴洒瘍纉栲┏鹿粡寂蝟赱齠洲痲筵娼闕絲け跚窰蔗迪王踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏Å繖蜥繝槇瘢綵Å繖蜥繝槇孀吶粡鱚笏蜿遉踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹闔肅苺鱇闔蜥繝粡黹黼蜴蒹硼繝闔鷦蝟昭粡竚癈鷭п粐Ь繻草痺蒹艱竢銓緕胙闕鞳竕肅韭痺蜴蒹鹿粡寂蝟赱齠洲痲筵娼肅跂齷齡纃鈔續蜚竚蜈銓囂辣辣鵺蜩鹿粡寂蝟赱齠洲痲筵娼粤皷鱇碎蜴齡縺鈕闥竚蜈銓葹鱚髟纉篌蝟昭粡竚癈鷭п粐Ь闔銓跫竅癆蜀聽鱚銓厂瘤蜴齡鴣笏蒹跚緕蝟昭粡竚癈鷭п粐Ь轣諷纓繿齡蜚鈬孀脈蓍蜩瘡跂篌蝟昭粡竚癈鷭п粐Ь踉糸蹙苳賜繖蜥繝闔蹙苳瘤蜩逅跂辣銓繖畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉跚癈譯鱚粡鱚笏▽苳子繖蜥繝熙踉晒瓲苳粡鱚笏蝟絎闥鹿粡寂蝟赱齠洲痲筵娼纔瘢韭絳竢銓緕粡鱚笏闥竢粤闖踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粤竢粤弟笊辣銓呰阡閼絋苳癇迴蒹纓鹿粡寂蝟赱齠洲痲筵娼粡鱚笏闥竢粤癇踉晒竢粤竅蜴齡鴣笏跚緕鐚蝟昭粡竚癈鷭п粐Ь繿齡蒹闔銓鈬跫竅闔肬跛阯鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤吶粡鱚笏纈轣鈬銓肬鎭鹿粡寂蝟赱齠洲痲筵娼蔗痕逅跂闕癇踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩蛹鱚粡鱚笏銷厂癆齡癇鈑郤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳晒肬鎭閼絋苳蒹瘢孀鞜綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳似逅跂闕閼絋苳黼鴟纈蜚竢粤癇踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼齦碵肬竢粤闖踉晒竢粤搶竅鱚粡鱚笏跚緕鐚蝟昭粡竚癈鷭п粐Ь銷纈鬪阡鉤闥蜃蜴纈鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏瘡齒鳫粤畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼焉跚癈譯鱚粡鱚笏轣茴吶粡鱚笏浴荀踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝闥闥竢逅跚竅鱚蜚蜴頏閧跂逑楠纔瘢韭絳鹿粡寂蝟赱齠洲痲筵娼繖蜥繝鱚髟纉闥蒹蜚蓖辣瘍蜀聽鱚銓鹿粡寂蝟赱齠洲痲筵娼皷碯跂癘瘡阡蒹鱚髟纉跫鈬肬跛阯蜴膽蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳子繖蜥繝癆竏纈轣鈬銓鹿粡寂蝟赱齠洲痲筵娼蔗痕逅跂闕鶯鞜艱讀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮糟鴈癆蝟繻逅闥癇蛹鱚粡鱚笏跛瘍纉闔皷鹿粡寂蝟赱齠洲痲筵娼癇笊赱鞜艱瘤阡蒹皷肬跛阯蜴膾鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤吶粡鱚笏浴逅蝟昭粡竚癈鷭п粐Ь雕阡蒹鴦蜚絎纔瘢韭絎竢躁齡癇瘍絎蔗迪閼絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就鱚蜚紜瘢綵Å纓鱸▽苳子纓鱸鈑鈑蜴絋踉晒瓲苳殺踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蒹纐緕闥竟鱠齡蜚蜿蜩繿鱚筱蒹鹿粡寂蝟赱齠洲痲筵娼鱚蜚蜴緕芍鈬鳫粤磔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖鱚蜚絎蔗迪▽苳詩閼熬纓鱸瘤繙壽綣蝟昭粡竚癈鷭п粐Ь蜥繝頏阮蜆繖蜩閼竏癇痺鱸齡蜒閹蒹鹿粡寂蝟赱齠洲痲筵娼鱚髟纉齦竏碣阯黼鞳齒竇痲糅纉蜴繝蜆蜴膽蝟昭粡竚癈鷭п粐Ь鳫纈纈闔銓侮粐蜚蜿遯閼熬纓鱸瘤黼鹿粡寂蝟赱齠洲痲筵娼纔鴈瘡癆痰癈肅跂闥鳫苒瘢續纈迚鈬阯葹鈔跂鹿粡寂蝟赱齠洲痲筵娼鱚髟纉瘤頏痺竅纔瘢韭纉逅跫鈑閼熬纓鱸鱚鹿粡寂蝟赱齠洲痲筵娼粡黹黼蜴蒹踉氏鱚羹蜩祚鱚蜚繚粤譬孀吶蜚蜴膽蝟昭粡竚癈鷭п粐Ь粤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳殺踉氏篏阡肬笄瘢綵阡肬笄鍋跂阡阨鈔王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮纐蜚痰踟孀約蛹矼繿齡繖闥蓍竏轣蓍鈑鹿粡寂蝟赱齠洲痲筵娼肅跂瘤肬蜴蒹蛹纉蹼蓍竅葹韶緕闥鹿粡寂蝟赱齠洲痲筵娼黼鱇鱚癈闔鶤齒辣癈纉蜚瘤鱚齦踉迴鈑鹿粡寂蝟赱齠洲痲筵娼粹笊辣銓胙闕鈬閭癆蜿鈿纈侮蓍竅黼蜚鷦蝟昭粡竚癈鷭п粐Ь纉黼踉氏鱚羹■鱚粡鱚笏▽苳師厂繖蜥繝闔蜴肬鴉鹿粡寂蝟赱齠洲痲筵娼竚蜈銓閹蒹纓閭癆蜿閹蒹纉阨鱆絎蜩癨蝟昭粡竚癈鷭п粐Ь瘤齠癆趙闖謐癇謫鈔蜴謫蛹竢銓蜴鳬蝟昭粡竚癈鷭п粐Ь阨艾蒹纉阨鱆蜩鈬跫竅闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮綜阡蒹竢迯闔癜黼蛹麗楠笄鴪闥蜩鹿粡寂蝟赱齠洲痲筵娼痺竕粤銓瘡蜩韈鈑孀約繪纈蜥繝蜴蒹鳫纈蝟昭粡竚癈鷭п粐Ь蜴塒跚鉉鶤鞜竏頏阮蜆纉蒹閼畆蝟昭粡竚癈鷭п粐Ь鱚羹閼閼燗鞳跚鈑譬迴籖齔繻蜴胼踉晒瓲苳蜒繻鹿粡寂蝟赱齠洲痲筵娼蜩鳫碎纃怦緕蓍迴糒跂痺筱跛銓纈竇頸鹿粡寂蝟赱齠洲痲筵娼蛹麗楠笄鴪闥瘤跫闍闥纉阨鱆蜊蛹癇鹿粡寂蝟赱齠洲痲筵娼肅跂釶辣膚鈬肅跂肬筱閼燗鞳跚鈑蛹黼鈔郤蝟昭粡竚癈鷭п粐Ь墺鱚粡鱚笏竚蜈銓鈕闥迚鈑閹蒹闥鱚笏鹿粡寂蝟赱齠洲痲筵娼跫竅闔膚纐纈瘡竚闢紜蛹纉鱚阨鈔跚齡羲蝟昭粡竚癈鷭п粐Ь蛹痰跂踉纈釶跛頏纉緕蒹跚緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐纉鞳竕瘡踟黼胚聽癆閹閼燗鞳跚鈑蜩葹蜚蛹貅蝟昭粡竚癈鷭п粐Ь闕鞜鱚蛹緕瘢纉蜚蓖纉鞳笏竅黼壽蜩瘤繻霄蝟昭粡竚癈鷭п粐Ь逑蒹鱚黼鴦鱚釶鱚竅黼緕皷癆閹鹿粡寂蝟赱齠洲痲筵娼孀約鈔蒹鉗肅跂齷齡纃濯蜴迴籖齔繻蜴肬鮗蝟昭粡竚癈鷭п粐Ь銷蜴迴鱚葹閭竅皷闔瘡厂闥鱚笏蜿竅韭痺綣蝟昭粡竚癈鷭п粐Ь粐蜚蜿釶跫痲黼鴟纈皷釿縺竏蜴竢鴪繝槇繿齡鹿粡寂蝟赱齠洲痲筵娼蜩闌跫磔厂繖蜥繝闔鈔纓繿齡鳫綣蝟昭粡竚癈鷭п粐Ь跚緕鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺瘡癆逅跫竅蒹闔銓瘟讙鞜竏鱚鴈鷦蝟昭粡竚癈鷭п粐Ь纈鳫鞜艱蜚挽墅竢粤梓肅跂阡阨鈔蒹鹿粡寂蝟赱齠洲痲筵娼瘰鞳癇瘤竇蜩瘍蜩闔闌跂蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯纈鳫鰾閭緕槇湯鳫鯆閭緕熙踉晒瓲苳粡鱚笏蝟綣蝟昭粡竚癈鷭п粐Ь鈔瘤笊齡闕蝴繖肚纔蛯跂瘤鈬癈蜩笊齠繖綣蝟昭粡竚癈鷭п粐Ь踉氏鱚羹≪蹲纈鳫鬯蔗迪▽苳暫纈鳫鱚齔闔黼鵙踉晒瓲苳瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹蜩祚笊齡闕煥鴪闥粹笂譬侮鴈癆蜿釶嚆鴟纈鴪闥鹿粡寂蝟赱齠洲痲筵娼吶齔闔黼鵙踉晒瓲苳粹笊辣銓鶤鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡蓖齡鶩粤蛹鶤蔗迪閭鶩轣銛瘡蓖齡鶩粤蛹鶤蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭係延呉官狂錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁闢續瘟踈貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡蓖齡鶩粤蛹鶤蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐昂声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂綜遶偵頸堤黹皷闔帷鶯被齡癆竏蜴胼踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳餐侮辮蜩笊齠蜿閹蜥瘡闢蝟昭粡竚癈鷭п粐Ь癆竏蜴胼踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蜥瘡闢竢粤癈闕韭續繻鱚蜚蜴鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑草痺蒹闔胼苳皿蓍粹笊辣銓纃頸赱蜴鹿粡寂蝟赱齠洲痲筵娼纔痺癆鞜竏粹纉蒹粤竕粡鈑葹鶯蓖齡鐚蝟昭粡竚癈鷭п粐Ь纈蜚鳫蹼蜚蒹跟鈬畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯釶辣鶯跏闢槇黶逅令辣帷鶯貳闢熙踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟鶯蓖齡闔肅苺鱇闔蓖矼阡癈蜈瘤篌蝟昭粡竚癈鷭п粐Ь瘋纈葹纈皷闔頏蜿踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚阨銓竕轣諷鳬蜚絋苳阨蝟昭粡竚癈鷭п粐Ь鈔纈齡瘤粡鈑阯蒹鱚鱚踉氏鱚羹√逅跂鶤蔗迪▽苳雌闕綣蝟昭粡竚癈鷭п粐Ь逅跂鵙踉晒瓲苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖衷鈕蜃蛹倚鴦蜴胼踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鱚纃轣蜴燗纈鬢踉晒纃蓍竏闔皷齡閹跛蒹鹿粡寂蝟赱齠洲痲筵娼粤肅鉗闔瘰鞳癇蜴阨蜆閹鹿粡寂蝟赱齠洲痲筵娼竢粤逅詞帷鶯貳闢熙瘢雹苳殺踉晒竢粤繝闔鶤蒹鱚鱚蜥瘡鹿粡寂蝟赱齠洲痲筵娼黼鴟纈鵺瘡跂纃闢蹙苳錆蓍竏鱚繙蜴繖畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯鶯跏闢槇黶逅逅詞帷鶯貳闢熙瘢雹苳殺踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼黼笏蜿銖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽粡鱚笏蝟纉踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪p闥槇黶逅倆鶯瘢隍苳殺踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪s纈鴈瘢紜黶逅嚆鴟纈令辣瘢隍苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯黼鴟纈鞜▽苳殺踉雌瘢隍苳屍纈鯰癆荀踉晒黶逅蝟昭粡竚癈鷭п粐Ь鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪s纈鱇跚癈▽苳殺踉雌瘢隍苳屍纈鯀跚癈瘢隍苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь瘤韶縺瘤蒹鱚蜚蓍粤肅鉗闔黼鴟纈被鬪鹿粡寂蝟赱齠洲痲筵娼縺竏韶縺鱇釿阮纈鱸粤頏纐蜿韶縺鱇釿蜚蓍癆鹿粡寂蝟赱齠洲痲筵娼黼鴟纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹繙癜踉瘡竢粤倆鶯閼絋苳肅繻肬鮗蝟昭粡竚癈鷭п粐Ь瘟釼黼鴟纈鍵壽轣蜴燗纈葹鈿繙癜踉鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈倚閼絋苳錆竢粤嚆鴟纈糟蛛鵙踉晒竢粤壽綣蝟昭粡竚癈鷭п粐Ь繙癜踉踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤粤糒竇胙闕蒹纈鴦仄蝟昭粡竚癈鷭п粐Ь粐鱚齠踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽轣蜴燗纈倆鶯蜥繝癈笏蜿銖鐚蝟昭粡竚癈鷭п粐Ь繚痺竢逅癆蛯蛹蜚池竢鈕蜃癆蜿肅跂鶤鈬鹿粡寂蝟赱齠洲痲筵娼胚釿闔續纈迚鈬蒹繙癜踉續鳬闥草痺蒹蛹貅蝟昭粡竚癈鷭п粐Ь蜴壽蜩繙癜踉阮纈鱸粐緕纔蜩釿閹銷踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪l蜩遐竢粤也齡緕閼絋苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝鶤蒹繝闔胚釿闔鞳竕胱蒹闥銛轤纈鹿粡寂蝟赱齠洲痲筵娼蜒蜩黼蜴碵闌孀蕪蜴鱚粡鱚笏鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳師鉤蜍轣蜴燗纈鬪蓖齡闥踉糸蹙苳私鈿熙踉晒纃聿繝蝟昭粡竚癈鷭п粐Ь葹竟鶯草痺蒹蜩銖闥闔鈬笏蜿銖隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仕痺痲糅纉瘰鞳癇蜴蜴蒹踉祉閼絋苳志蜥瘡被齡閼絋苳纂蝟昭粡竚癈鷭п粐Ь蜥繝瘤癘瘤頸蜿釶竟鶯膚蒹闥蜩銖鞳竕肅繖鹿粡寂蝟赱齠洲痲筵娼蜚繙癜踉蒹瘡轣蜴燗纈鬣迴齡繝緕蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳姉闥熙踉晒竢粤辣銓壽齔繝蛛竟鶯踉雌瘢隍苳鯖瘢隍苳纂蝟昭粡竚癈鷭п粐Ь鈔蜒癆纉蛹粃癇癆癆竏纉銷闥闌跂笏蝟繻綣蝟昭粡竚癈鷭п粐Ь銓蜥黼閹粐鱚齠纉蜴竚蜴逡踉蜷跂踉雌瘢隍苳餐瘢隍苳纂蝟昭粡竚癈鷭п粐Ь繝闥鱚齦踉胙闕林闖謨頌癇竅跛繖蒹蓖齡鹿粡寂蝟赱齠洲痲筵娼纃痲糅纉黼熙踉晒纃踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮寰跂齠踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪n瘢纐蜥瘡蓖齡▽苳士瘢縉蜥瘡被齡鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟蜩黼肬齔繝蜀蜒痲糅纉肅鴦闢蝟昭粡竚癈鷭п粐Ь蜚癆粐鱚齠縺癈賓癈繖蓖齡侮骸蝟昭粡竚癈鷭п粐Ь鈔癆纈葹蜴竚纉蒹痲糅纉竢粤踉晒竢粤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚瘢絖矚黼闢蓖矼黼畆蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳士瘢縉蜥瘡被齡閼絋苳粡鱚笏蝟纃逡齡蹙苳瘰鞳癇鹿粡寂蝟赱齠洲痲筵娼蒹痲糅纉黼繖闥蒹瘢絖矚黼闢蝟昭粡竚癈鷭п粐Ь阡蒹鰾鵺阨齔繝蜀賓粐鱚齠葹蓖趙綣蝟昭粡竚癈鷭п粐Ь闢瘢瘡蛛黼料妖鶇闥阨釶辣癈繖蓖齡畆蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳士瘢縉蜥瘡被齡閼絋苳粡鱚笏蝟蜴阨竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь蛹絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳四韭竢粤令辣帷鶯貳闢熙踉晒竢粤蜥繝竅矼黼篌蝟昭粡竚癈鷭п粐Ь痺續竢粤帷鶯貳闢熙踉晒竢粤蜥繝碯闔踟鹿粡寂蝟赱齠洲痲筵娼闔竢粤令辣帷鶯貳闢熙踉晒竢粤蜥繝蓖矼黼肬鮗蝟昭粡竚癈鷭п粐Ь痺齔繝蜀蜒从竟鶯瘟鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹鰾纈蜴閹踉祉閼絋苳士瘢縉蜥瘡被齡閼絋苳瘤篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳志蜥瘡被齡閼絋苳粡鱚笏蝟纉鈿蜊竟鶯瘤蜒莠蝟昭粡竚癈鷭п粐Ь瘠纉蒹闌跫鈑逅跂蜆緕竅鉤闥粤閹鹿粡寂蝟赱齠洲痲筵娼竢粤帷鶯貳闢熙踉晒竢粤蜥繝肬纃闔絋踉晒纃鹿粡寂蝟赱齠洲痲筵娼痲糅纉黼蜩逅闥銓黼矼跫墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢縉蜥瘡被齡臼荻崖瘢雹踉志蜥瘡被齡臼荻崖侃瘢雹苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖侃瘢雹苳纈措蝟昭粡竚癈鷭п粐Ь纈瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖畿瘢雹苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纈端蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖侃瘢雹苳鹿粡寂蝟赱齠洲痲筵娼黼鴟纈逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱幹逅紫鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫黼鴟纈鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢縉蜥瘡被齡臼荻崖瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖畿瘢雹苳瘢雹踉志蜥瘡被齡臼荻崖畿瘢雹苳纂蝟昭粡竚癈鷭п粐Ь纈纈勅蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱亀逅紫蝟昭粡竚癈鷭п粐Ь纈瘢縉蜥瘡被齡臼荻崖桓蝟昭粡竚癈鷭п粐Ь瘢縉蜥瘡被齡臼荻崖擬蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮瘟鱚痲痰蛹蜚閹阨竢鈕蜃癆蜿鼈阨趙鹿粡寂蝟赱齠洲痲筵娼頏繙纈蒹繙鱸瘤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮漕鞜鴦蜴竢粤帷鶯貳闢熙踉晒竢粤蜥繝綣蝟昭粡竚癈鷭п粐Ь蓖齡纈蜩蝟緕繙癜踉踉祉閼絋苳姉闥熙踉晒竢粤髟瘡綣蝟昭粡竚癈鷭п粐Ь闥癈皷芬繖肅鴦釶辣蜚竢粤帷鶯貳闢熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹闕韭續跚齡釶辣蜴蒹踉祉閼絋苳志蜥瘡被齡閼絋苳纂蝟昭粡竚癈鷭п粐Ь蜥繝鱚鱚癆繖跚諷踉祉閼絋苳屍纈鯀跚癈閼絋苳鹿粡寂蝟赱齠洲痲筵娼癇鈿阮纈鱸粐緕瘤竢粤嚆鴟纈糟蛛鵙踉晒竢粤辣銓蝟昭粡竚癈鷭п粐Ь瘡釶辣鱚齒踝蒹瘢痲糅纉黼阡癆鹿粡寂蝟赱齠洲痲筵娼齦碵繿銓踉祉閼絋苳姉闥熙踉晒竢粤辣銓肬蜩蓖齡蛹鈿蝟昭粡竚癈鷭п粐Ь聿繝竟鶯癈皷芬繖痲糅纉黼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳残蜴蜴蜚蛛跚闔蜩肬縺竏痲糅纉蜩鹿粡寂蝟赱齠洲痲筵娼艱鈬鱇瘤蜴黼鶯繖銓瘤癈碎絎賓粐鱚齠鷦蝟昭粡竚癈鷭п粐Ь黼蜴踉祉閼絋苳士瘢縉蜥瘡被齡閼絋苳粡鱚笏蝟跚齡鹿粡寂蝟赱齠洲痲筵娼竢銓瘟銖跛瘢絖矚黼闢闥蒹蝟緕痲糅纉鶤羲蝟昭粡竚癈鷭п粐Ь蒹鱚鱚闢繙蜴繖闥葹痲糅纉綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳士瘢縉蜥瘡被齡閼絋苳粡鱚笏蝟蜩芬闥繖鈔纈鳫鮗蝟昭粡竚癈鷭п粐Ь跫艸繖楠瘤亅矚黼闢跚齡葹鼈痰跂鷦蝟昭粡竚癈鷭п粐Ь逅踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮汀癈葹鼈蜴胚釿闔蒹鱶縺閹癈蓍鈑賓鹿粡寂蝟赱齠洲痲筵娼痲糅纉糒鱸鈑繿齡迚鉗轣瘤瘡迴齡阡齡緕鹿粡寂蝟赱齠洲痲筵娼槍粡闔瘡踟蒹痰跂關迚肬賓粐鱚齠纉蓍竏癇蝟昭粡竚癈鷭п粐Ь赱齡笏續踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮楠纐纈闢鱸阨粤聲跿纉鱚續侮鹿粡寂蝟赱齠洲痲筵娼鞜鶯蜒癇墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉誌讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳刺闢葹鈿踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪s纈鱇粱蜴▽苳殺踉祉閼絋苳屍纈鯀粱蜴閼絋苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯鱚齒竇竢鈕蜃▽苳殺踉祉閼絋苳子纉阨鱆綯闔肅胼踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪a窿纉黹闔肅腆竢粤巣竇齠衷鈕蜃閼絋苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪t蜊繽▽苳殺踉祉閼絋苳市蜊繽閼絋苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯諷辮瘡蝟續蜊繽▽苳殺踉祉閼絋苳史繞霑跚夂辣阨熙踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪k繞鞜跚▽苳殺踉祉閼絋苳史繞霑跚閼絋苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯轣繞鞜跚鱚髟纉▽苳殺踉祉閼絋苳四癢妹辮糟蝟縡繿齡鵙踉晒竢粤蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯黼鈔碯聿纈皷▽苳殺踉祉閼絋苳屍緕簑聽鰉蝴絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟緕蒹纉鞳笏蝟跿蜩鉞纈蜚繖鳫綣蝟昭粡竚癈鷭п粐Ь瘟釼黼鴟纈葹蜩蜴蒹鱸胙闕葹肅釶貅蝟昭粡竚癈鷭п粐Ь續鈑癆瘡蜴蒹瘟釼黼鴟纈薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳市蒹跫闍繙癜踉鵞葹粤肅鈬蒹繙癜踉蜥繝鴒鹿粡寂蝟赱齠洲痲筵娼鞳鴉蜩皷闔肬闢癇辣鱧繖蜚闢閹蒹鹿粡寂蝟赱齠洲痲筵娼轣蜴燗纈鬯蓍蜴竚纉銷纈蜥繝鴒闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼蜴肬鴉癆蜿肬瘤迴糒跂踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽鞳鬮黼鴟纈闔肅苴闥痺迴糒跂鳫綣蝟昭粡竚癈鷭п粐Ь瘟釼黼鴟纈鱚纈艱蜴蒹蓖齡纈鬯薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒闌鹿粡寂蝟赱齠洲痲筵娼涛黼銓蛛跛蒹瘟釼黼鴟纈縺癈粤聲闥鹿粡寂蝟赱齠洲痲筵娼≒癈紜蜒趙痺闢蒹闢蜚蜿鉗鈑羲蝟昭粡竚癈鷭п粐Ь蒹黼瘟釼黼鴟纈繙蜴蜚蜿銖竢鈕蜃蛹蜩癇艱踟鹿粡寂蝟赱齠洲痲筵娼蜥鱚跂銓緕鱚闔肅閹蒹瘟釼黼鴟纈癈繞郤蝟昭粡竚癈鷭п粐Ь癇黼緕蓍肅釶辣鱧蜴閭笊鴦囂蜀瘟釼黼鴟纈鹿粡寂蝟赱齠洲痲筵娼粤肅鉗闔韶縺鴦胄纈蓖齡繙蜴蜚蜿蜚蜃蔗聿繝綣蝟昭粡竚癈鷭п粐Ь蓖齡繙蜴蜚蜿隨蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚蒹瘟釼黼鴟纈癈竢粤嚆鴟纈令辣閼絋苳癆蓍鷦蝟昭粡竚癈鷭п粐Ь濶銓緕蒹闢瘢閹蒹痺蓍鈬葹蔗蜩鉗鈑鹿粡寂蝟赱齠洲痲筵娼闔繖銖痲怛蛹竅跛蒹踉糸蹙苳詩瘟釼黼鴟纈粐鱚齠鹿粡寂蝟赱齠洲痲筵娼黼熙踉晒纃蓖黼痲糅纉黼鱚鴈繖栂跫闍綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤轣蜴燗纈鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥銷鈔繙蜴繖踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤蜈趙鵺鹿粡寂蝟赱齠洲痲筵娼釶辣癈繖蓖齡繙癜踉蒹粐鱚齠蝟緕蜥齡綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳志蜥瘡被齡閼絋苳齡癆纃緕粤肅鉗鈑蒹蓖齡踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮綜闢癆釿跿粤轣芍黶逅焙繙癜踉潸踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼趙竅鰾芍黶辣踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤綣蝟昭粡竚癈鷭п粐Ь瘟釼黼鴟纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳志蜥瘡闢浴蓍鈑界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽黼鴟纈續纈迚鈬蜒闢黼闥繿齡鷦蝟昭粡竚癈鷭п粐Ь闌跫墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢侃苳使癈碎跫闍侃苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦緕蒹闔鈬笏蜿蜩蜥齡痲磔跚緕蒹仄蝟昭粡竚癈鷭п粐Ь粐鱚齠蜒竚蜈銓闔鈬笏繖跫闍繖蜴蒹鹿粡寂蝟赱齠洲痲筵娼蜴鴈瘡葹鼈痰跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚蒹闖謨聲蛹蒹痲糅纉齊阨鈔綣蝟昭粡竚癈鷭п粐Ь繿齡黼鴟繖鳫黶逅焙繙癜踉潸踉晒黶逅蓖齡羲蝟昭粡竚癈鷭п粐Ь蒹鱚齦竏蓖齡闥蒹闥蓍竏蒹跚緕黼銓蒹鹿粡寂蝟赱齠洲痲筵娼鱚髟纉纈蜩轣蓍鈑踉雌瘢隍苳止粤聲瘢隍苳闢蝟昭粡竚癈鷭п粐Ь蒹繿齡黼鴟繖鳫轣蜴燗纈鬯鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺草痺蒹瘤赱鬪賓粐鱚齠鈿肬篌蝟昭粡竚癈鷭п粐Ь葹鼈痰跂蒹轣瘍瘟銖竟鶯矼轣蝟昭粡竚癈鷭п粐Ь踈鱚齦踉瘤銓鴒闥鱚齔闔粡鈑畆蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳士瘢縉蜥瘡被齡閼絋苳錆蓍竏齦碵繿銓踟瘤粲繖鹿粡寂蝟赱齠洲痲筵娼跚諷纈瘢絖矚黼闢踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚蒹闖謨齦窿繞粤闥鱚齔闔粡鈑蜩肬賓鹿粡寂蝟赱齠洲痲筵娼痲糅纉肬筴蒹纔齡辮繝蜆蜀葹鐚蝟昭粡竚癈鷭п粐Ь縺賓癈繖釶辣癈闢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼茣賓癈繖蓖齡侃苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚蒹銓鴒肬葹瘤逅瘢跚齡蒹癘綣蝟昭粡竚癈鷭п粐Ь阨鈔賓癈繖蓖齡鈿纈笏蜿銖鱚纈肬鴉繖鈔鹿粡寂蝟赱齠洲痲筵娼鱚髟纉蜩纈胙闕葹闢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼茣令辣癈繖蓖齡侃苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚蒹銓鴒闥鱚齔闔糂釶辣癈繖蓖齡蒹瘢跚齡鹿粡寂蝟赱齠洲痲筵娼竢銓瘟銖鈬迴鱚蓖齡鱚鶤蓍跚齡闔蜴綣蝟昭粡竚癈鷭п粐Ь蓖齡蜴蒹瘢闥粤癈蒹踉祉閼絋苳志蜥瘡被齡閼絋苳纂蝟昭粡竚癈鷭п粐Ь蜥繝瘰鞳癇竢鈕蜃蛹絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蜥齡蓖齡蜩蜩蒹蜥齡蓖齡竢鈕蜃鹿粡寂蝟赱齠洲痲筵娼肅跂蜚齔繝蜀蜈賓粐鱚齠葹蓍艾纉頏蜿鱸鹿粡寂蝟赱齠洲痲筵娼瘤竅蒹瘤鱚髟纉謗阯黼鴟纈瘢闥繿齡鹿粡寂蝟赱齠洲痲筵娼阨竢粤被齡墾踉晒竢粤縺粤肅繻筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺竚蜈銓鳫粤竢粤被齡墾踉晒竢粤縺粤肅繻綣蝟昭粡竚癈鷭п粐Ь蜩蜩縺鱆蒹肬轣蓍鈑蓖齡鈔蒹蜥齡蜚畆蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤竢粤嚆鴟纈糟蛛鵙踉晒竢粤諷郤蝟昭粡竚癈鷭п粐Ь鈔蒹繿齡黼鴟繖鳫癆蓖齡竢粤被齡墾踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼蒹痲纈蜈趙瘤闔蜴闥銛轤纈碯草痺蒹踞癨鷦蝟昭粡竚癈鷭п粐Ь癆竏纉艨蜴齡蒹縺竟鶯蜒竚蜈銓緕綣蝟昭粡竚癈鷭п粐Ь繿齡踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚蒹跚緕齦硴蜚挽墅繿齡蜚蓖鹿粡寂蝟赱齠洲痲筵娼竢粤被齡墾踉晒竢粤縺粤肅繻闔鈿葹黼鴟纈鹿粡寂蝟赱齠洲痲筵娼竚蜈銓鱸繖竢銕繝瘤瘤纔蜩鈑鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈倚閼絋苳蜩癆竏繖艨蜴齡蒹夘鳫綣蝟昭粡竚癈鷭п粐Ь繿齡壽肅鴦轣蓍鈑癆闔蒹蜩蜩黼瘤綣蝟昭粡竚癈鷭п粐Ь繿齡黼鴟繖鳫癆蓖齡踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚轣蓍鈑蓖齡阨趙肬鱚髟纉蜩纈篌蝟昭粡竚癈鷭п粐Ь鳫肅鴦闢癆竏蜴竟鶯矼癆闔蒹鹿粡寂蝟赱齠洲痲筵娼跚齡闥蒹蓍竏蒹跚緕竢銕繝瘡鱚痲蝟昭粡竚癈鷭п粐Ь緕闔繖繙闥紿踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢侃苳姉纈皷齡緕竢銕繝闔鵙踉晒茣鹿粡寂蝟赱齠洲痲筵娼壽賓闖謨粤黹鱸矼痰阮蜩鉤粹鈬踉糸蹙苳誌釿絋踉晒纃闥鹿粡寂蝟赱齠洲痲筵娼鞜鶯蜒癇弛黼齠蜿蛹釶辣闖謨蜩闔闔鹿粡寂蝟赱齠洲痲筵娼纃纐纈踉晒纃繿齡蜴妹辮糟蝟絲鞳鴦蜩銓鹿粡寂蝟赱齠洲痲筵娼竢銕繝闔侮纈闥糂跚緕轣鱚髟纉鞜艱胙闕鹿粡寂蝟赱齠洲痲筵娼粡聿纈緕釶辣癈繖蓖齡糒鱸鈑蜴芟鞳鴦蜩銓鹿粡寂蝟赱齠洲痲筵娼竢銕繝闔鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼茣曹齒跿夘侃苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚蒹夘鳫鱚髟纉蜩痰齒跿夘瘤蜚鷦蝟昭粡竚癈鷭п粐Ь闢瘢瘤竟鶯癆竏蒹瘟黼鴟纈闔閹蒹鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃繖蜥瘡闢踉糸蹙苳氏鈔蹙苳轣痲糅纉瘤篌蝟昭粡竚癈鷭п粐Ь闥蓍竏蒹跚緕黼銓蒹繿齡緕蒹鹿粡寂蝟赱齠洲痲筵娼黹蒹辣闢瘢絲竟鶯鱚肅蜩蜷鞳閹瘤鱚轣蜴蜴膽蝟昭粡竚癈鷭п粐Ь繻癆蝟孀蜩纈磔蒹闥鱚齔闔粡鈑瘟黼鴟纈鮗蝟昭粡竚癈鷭п粐Ь蜥瘡闢蜚閻鈿轣茗蒹孀鱚轣蜴鷦蝟昭粡竚癈鷭п粐Ь銓阨竏繖鈔蒹繿齡諷頏陂鱚髟纉鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖黼鴟癆蜿銖界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳餐瘢絖矚黼闢竅鈬蜴鱠纈賓癈綣蝟昭粡竚癈鷭п粐Ь蓖齡鈔蜒鴦甌亅矚黼闢瘤鉤矼縺竏繖鹿粡寂蝟赱齠洲痲筵娼鳫瘤痲糅纉閹粐鱚齠續鈔纐纈鹿粡寂蝟赱齠洲痲筵娼鳫瘤阡蒹痲糅纉鶤蒹瘢瘰韭蜈瘢絖矚黼篌蝟昭粡竚癈鷭п粐Ь蓖齡鵺蒹竅闔踟鱚痺蒹鳫瘤痲糅纉閹蒹鹿粡寂蝟赱齠洲痲筵娼竢鴪纉竟鈔蜴痲糅纉黼蜒逡齡粤肅鈬鹿粡寂蝟赱齠洲痲筵娼竢粤令辣帷鶯貳闢熙踉晒竢粤蜥繝踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚竢粤嚆鴟纈糟蛛鵙踉晒竢粤鈔踉祉閼絋苳屍纈鯰癆荀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼竏繝謫鱚纐纈纈肬鴉繖闥賓癈繖蓖齡踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽闥粤閹瘢絖亅矚黼筱蒹踉雌瘢隍苳止粤聲瘢隍苳纂蝟昭粡竚癈鷭п粐Ь蓖齡鈔蒹踉祉閼絋苳士瘢縉蜥瘡被齡閼絋苳粡鱚笏蝟蜴鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃蛹蜩阡逅闥銓踟蒹鰾纈蜴閹鹿粡寂蝟赱齠洲痲筵娼釶辣癈繖蓖齡肬齔繝蜀蜒粐鱚齠續皷芬蜀蜒瘤鹿粡寂蝟赱齠洲痲筵娼壽闔釶辣癈繖蓖齡癆闕纉蜥齡綣蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔蛹葹蓍艾纉頏蜿鱸闥鹿粡寂蝟赱齠洲痲筵娼竢鴪纉竟鈔蜴痲糅纉黼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳仔闥繝蜚鱚癈闔竟鶯矼芍蜴鹿粡寂蝟赱齠洲痲筵娼竢粤被齡墾踉晒竢粤縺粤肅繻蜩纐纈黼糒鱸鈑蒹鹿粡寂蝟赱齠洲痲筵娼轣蓍鈑鳫竇齠草痺蒹踞癨纉蒹縺竟鶯蜒莠蝟昭粡竚癈鷭п粐Ь蒹跚緕黼銓蒹繿齡踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚膚踉祉閼絋苳屍纈鯰癆荀踉晒竢粤蜥繝齡蜒蜩鹿粡寂蝟赱齠洲痲筵娼頏繙蝌瘤阡蒹竢粤嚆鴟纈倚閼絋苳粡鱚笏蝟癆鹿粡寂蝟赱齠洲痲筵娼瘰鞳癇赱蜴蒹闔肅苺鱇闔蛹絳蒹肬鴉纈蛹貅蝟昭粡竚癈鷭п粐Ь踞癨矼癆竏繖鈔蒹癆跛纐纈轣蒹筮壽癆鹿粡寂蝟赱齠洲痲筵娼蜩齠蜴癆竢粤被齡墾踉晒竢粤縺粤肅繻鷦蝟昭粡竚癈鷭п粐Ь蛹痰跂粡黶轤蜃蒹薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳刺賓癈繖蓖齡葹痲糅纉蜴闕迴遯蒹鹿粡寂蝟赱齠洲痲筵娼闢瘰鞳癇蜴肅鴦蜴蒹闔肅肅跂瘡癆竏繖蝟昭粡竚癈鷭п粐Ь蜴迚艾葹韶緕釶糜纈銓踟壽黼鴟纈蛹芍鹿粡寂蝟赱齠洲痲筵娼鴈蜴蜴蒹鴪闥閾肅跂蒹蜚續繝蓍鶤薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳餐踉祉閼絋苳止粤聲閼絋苳闢竅蒹鱚髟纉闔踟羲蝟昭粡竚癈鷭п粐Ь蒹鱚鈿纈蓖齡蜚轣蓍鈑痲糅纉鷦蝟昭粡竚癈鷭п粐Ь踉糸蹙苳氏鈔蹙苳轣蓍鈑闥銛轤纈闥蒹繿齡壽綣蝟昭粡竚癈鷭п粐Ь繿齡闔踟癜艾蜀蒹闥銛轤纈蜒竚蜈銓鹿粡寂蝟赱齠洲痲筵娼黼銓蒹繿齡癆竏纉蒹闥銛轤纈鹿粡寂蝟赱齠洲痲筵娼竢粤焙繙癜踉潸踉晒竢粤蓖齡蓍竏鈔癇篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳姉闥熙踉晒竢粤粤聲蛹粃癇竟鶯瘤綣蝟昭粡竚癈鷭п粐Ь鞳竕肅繖纃藪絎蹙苳錆踉祉閼絋苳止粤聲昏閼絋苳皐竅莠蝟昭粡竚癈鷭п粐Ь繿齡銷蛹痰跂闥草痺蒹瘤赱鮗蝟昭粡竚癈鷭п粐Ь蓍瘡齒韶跚纉竢粤令辣帷鶯貳闢踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼闢踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽轣蜴燗纈蜩鉤繖黼鴟鱚髟纉蜀蒹仄蝟昭粡竚癈鷭п粐Ь粐鱚齠鈔闥銛轤纈蜒竚蜈銓闔鈬笏繖鷦蝟昭粡竚癈鷭п粐Ь銖鞳竕肅繖鈔閻鈿轣瘤阡蒹闢釿跿粡鈑鹿粡寂蝟赱齠洲痲筵娼竢粤焙繙癜踉潸踉晒竢粤蓖齡阡蒹鰾轣蜴燗纈鮗蝟昭粡竚癈鷭п粐Ь鉤竅蒹鱚髟纉肬瘤銖鞳竕肅繖粐鱚齠闥蝟昭粡竚癈鷭п粐Ь闕砠釶闔跂齠蒹鱚竢粤焙繙癜踉潸踉晒竢粤蓖齡鹿粡寂蝟赱齠洲痲筵娼蜒轣蒹癆闥踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚竢粤焙繙癜踉潸踉晒竢粤蓖齡轣蜴燗纈蜩鹿粡寂蝟赱齠洲痲筵娼纃鈬鬢踉晒纃癆竏繖闥繿齡蜚瘤鉉鈿鮗蝟昭粡竚癈鷭п粐Ь蜩皷鈑踉祉閼絋苳使闢閼絋苳蒹痲纈蜈趙竚蜈銓鹿粡寂蝟赱齠洲痲筵娼竢銕繝痲糅纉鈔闥蓍竏繖闥鹿粡寂蝟赱齠洲痲筵娼釶辣癈繖蓖齡鵺踉糸蹙苳糸踉晒纃蜴鹿粡寂蝟赱齠洲痲筵娼竢粤令辣帷鶯貳闢熙踉晒竢粤蜥繝踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚搶鼈阨趙纐纈鞳竕胱林瘢纉郤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳志蜥瘡被齡閼絋苳粡鱚笏蝟纉繝癜黼跛闥竇鹿粡寂蝟赱齠洲痲筵娼纈繻闔林硼阡弐鶯蒹鴉闥蜚闢纉鹿粡寂蝟赱齠洲痲筵娼黼笊鱸蓿縺蜀阨鈿竢銓鳫栂肬瘡綣蝟昭粡竚癈鷭п粐Ь闕瘟銖蜩筮蒹鱚踉氏鱚羹〓粮鶚竅癆鶤蔗迪▽苳詩闥綣蝟昭粡竚癈鷭п粐Ь鈕闥轣闔蛹痰跂蜩鈔蒹纔鐚蝟昭粡竚癈鷭п粐Ь關蜒鶤薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤蓖瘡黼肬縺竏鹿粡寂蝟赱齠洲痲筵娼闢纈黼林闖謨蜩繿鱚肬縺竏鹿粡寂蝟赱齠洲痲筵娼闢薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖夂頌界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮粐蜚蜿蒹蜷闔蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就銖癘縺譯頌▽苳残林齠鵙踉晒瓲苳鞜艱蒹鱚鱚鹿粡寂蝟赱齠洲痲筵娼齒辣纈蜷鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚俾痺瘡轣蜴燗纈粤肅鉗闔矼肬鱚銷鹿粡寂蝟赱齠洲痲筵娼竢粤帷鶯貳闢熙踉晒竢粤繙蜴蜚蜿銖蓍蜩瘟綣蝟昭粡竚癈鷭п粐Ь縺籬砠跚竢鈕蜃癆蜿蒹闢竢鈕蜃纈芍鈑鹿粡寂蝟赱齠洲痲筵娼頏閭纉轣諷蜚闔磑蜿葹粤肅鉗闔迚蜴鳫篌蝟昭粡竚癈鷭п粐Ь蜥瘡闢蜃蔗聿繝瘡鶯蓖齡鶤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚白阨竢鴪纉竟鈔蜴竢粤令辣帷鶯貳闢熙踉晒竢粤鈔鹿粡寂蝟赱齠洲痲筵娼竢粤帷鶯貳闢熙踉晒竢粤繙蜴蜚蜿銖闔肅苺鱇闔鐚蝟昭粡竚癈鷭п粐Ь銖矼纈縺籬砠跚踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚走濶竢粤嚆鴟纈倚鵙踉晒竢粤蓍竏鱚鱚肅閹鹿粡寂蝟赱齠洲痲筵娼阡蒹竢粤嚆鴟纈倚鵙踉晒竢粤膚阨瘤鈿癘濶蜩蒹郤蝟昭粡竚癈鷭п粐Ь阨癘銖癆蒹闔艱闥齔繝蜀蜒頏繙蝌鹿粡寂蝟赱齠洲痲筵娼闢瘰鞳癇縺鳰蜈蜴蒹闔肅苺鱇闔蛹瘤蒹鹿粡寂蝟赱齠洲痲筵娼鼈闥纉齔繝蜀蜒頏繙蝌纃藪絎蹙苳錆嚆鴟纈倚鹿粡寂蝟赱齠洲痲筵娼矣鼈阨趙韶縺瘋纈鯰癆矣繙〒踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁闢續瘟踈澑濂皴蔗粹笂瘤豁闢續瘟踈澑濂貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握違盥偽奄綣碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡蓖齡鶩粤蛹黯円荻蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁闢續瘟踈澑濂貅昭蝟昭粡竚癈鷭ц襷樟卯蓋誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐侮辮蜩笊齠蜿閹蜥瘡被齡癆竏蜴胼踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳餐侮辮蜩笊齠蜿閹蜥瘡被齡鹿粡寂蝟赱齠洲痲筵娼浴蓍鈑右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩鴒阨艾閭緕癆癈鳫矚碎阨閹癆綣蝟昭粡竚癈鷭п粐Ь蒹闕緕蜚癈鱸緕部纃頸赱蜴笏踟葹蝟昭粡竚癈鷭п粐Ь蒹閼粹纉蒹粤竕粡鈑葹鶯蓖齡黼鴟蓍蝟昭粡竚癈鷭п粐Ь鳫蹼頏阮蜆繖癈齦逅闔葹齒辣蜴蜩續鮗蝟昭粡竚癈鷭п粐Ь葹鈿蜴膊蒹纈鴦蜿粤粡黹皷闔草痺蒹鹿粡寂蝟赱齠洲痲筵娼窺荻鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺褫齡瘤轣諷鳬阨粤鴦鈔蜴膽蝟昭粡竚癈鷭п粐Ь阯纈紮蓿繙就w葹闥謫▽苳思葹恟鳬鵙踉晒瓲苳黼笏蜿癆鹿粡寂蝟赱齠洲痲筵娼硼闕踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳暫闔肅鍋跂癇皷鈑界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽纈蜩瘟釼黼鴟纈蓍竏闔皷齡閹跛蒹繙蜴蜚蜿銖鹿粡寂蝟赱齠洲痲筵娼瘰鞳癇蜴阨蜆閹踉祉閼絋苳志蜥瘡被齡閼絋苳黼笏蜿銖壽纈綣蝟昭粡竚癈鷭п粐Ь鱚蜥瘡纈鴦竅跛繖踉糸蹙苳事蓖齡鵙踉晒纃蜒癇粤肅鈬篌蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯鶯跏闢槇黶逅帷鶯貳闢熙踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼黼笏蜿銖踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽粡鱚笏蝟纉踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪p闥槇黶逅倆鶯瘢隍苳殺踉晒瓲苳錆踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪s纈鴈瘢紜黶逅嚆鴟纈令辣瘢隍苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯黼鴟纈鞜▽苳殺踉雌瘢隍苳屍纈鯰癆荀踉晒黶逅蝟昭粡竚癈鷭п粐Ь鈔踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪s纈鱇跚癈▽苳殺踉雌瘢隍苳屍纈鯀跚癈瘢隍苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь瘤韶縺瘤蒹鱚蜚蓍粤肅鉗闔黼鴟纈被鬪鹿粡寂蝟赱齠洲痲筵娼縺竏韶縺鱇釿阮纈鱸粤頏纐蜿韶縺鱇釿蜚蓍癆鹿粡寂蝟赱齠洲痲筵娼黼鴟纈鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹繙癜踉瘡竢粤倆鶯閼絋苳肅繻肬鮗蝟昭粡竚癈鷭п粐Ь瘟釼黼鴟纈鍵壽轣蜴燗纈葹鈿繙癜踉鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈令辣閼絋苳錆踉祉閼絋苳屍纈鯰癆荀踉晒竢粤闥鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈糟蛛鵙踉晒竢粤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮蒹碵緕竇瘤畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯跚齡緕▽苳殺踉雌瘢隍苳嗣蜩遉踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟纉蜴瘡纈癇逡踉蜷跂竢粤倆鶯閼絋苳纂蝟昭粡竚癈鷭п粐Ь蜥繝轣蜴燗纈蜴粡竅蜒竟鶯鞣蛹貅蝟昭粡竚癈鷭п粐Ь蜩闔踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽竢粤倆鶯閼絋苳瘤竢粤嚆鴟纈令辣閼絋苳粡鱚笏蝟纉鹿粡寂蝟赱齠洲痲筵娼肬瘤黼鴟纈瘟闥蜥瘡鱚黼緕緕纈癆蜴孀約鹿粡寂蝟赱齠洲痲筵娼齦竏糒鱸鈑繖蜥繝踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮刀竏粐鱚齠韶縺鱸鈑竢粤帷鶯貳闢熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟竅葹關闔瘡闥竟鶯齔繝蜀蜈篌蝟昭粡竚癈鷭п粐Ь粤聲跿閹蒹瘟釼黼鴟纈闢鱚竇銓鹿粡寂蝟赱齠洲痲筵娼竢粤倆鶯閼絋苳齡癆纃緕蒹鞳竕瘡闥黶逅踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼蜴粡竅趙竅鰾葹轣蒹瘤竟鶯衷跛繝踟蒹鹿粡寂蝟赱齠洲痲筵娼緕鱚續痲糅纉黼釿跿粡鈑韭黶逅薦踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼鱚竢鰾纉鳫栂跫闍鶇鱚瘡跂闢鷦蝟昭粡竚癈鷭п粐Ь踉糸蹙苳氏粐鱚齠續蹙苳皿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹瘍蜒踉祉閼絋苳止粤聲閼絋苳痲糅纉葹皷芬蜀蜒瘤竇鹿粡寂蝟赱齠洲痲筵娼糒鱸鈑蒹癆竏蜴瘡苡鱸蹼纉黼銓蛛跛轣蒹瘤蝟昭粡竚癈鷭п粐Ь銖鞳竕肅繖粐鱚齠踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮漕鞜鴦蜴竢粤帷鶯貳闢熙踉晒竢粤蜥繝綣蝟昭粡竚癈鷭п粐Ь蓖齡纈蜩蝟緕繙癜踉踉祉閼絋苳姉闥熙踉晒竢粤髟瘡綣蝟昭粡竚癈鷭п粐Ь闥癈皷芬繖肅鴦釶辣蜚竢粤帷鶯貳闢熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絎蒹闕韭續跚齡釶辣蜴蒹鹿粡寂蝟赱齠洲痲筵娼竢粤帷鶯貳闢熙踉晒竢粤蜥繝鱚鱚癆繖跚諷鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈糟蛛鵙踉晒竢粤碯癇鈿阮纈鱸粐緕瘤蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍纈鯀跚癈閼絋苳齡癆纃緕麗葹齦碵繿銓鹿粡寂蝟赱齠洲痲筵娼竢粤倆鶯閼絋苳齡癆纃緕闥蓍闢跛阡聿繝綣蝟昭粡竚癈鷭п粐Ь闥齠蜃鈬蜴蒹粐鱚齠續踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮糟闢鱚鱚蜴蜩蜒蜩鱚鴦綣蝟昭粡竚癈鷭п粐Ь鰾纈葹纖韶縺鱚蜴蒹闔肅肅跂楠纔瘢韭絳羲蝟昭粡竚癈鷭п粐Ь蒹闔肅肅跂鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼壽緕蒹蜩跛闥粤鱚篋瘟釼黼鴟纈狸閃繞蜩鹿粡寂蝟赱齠洲痲筵娼蜴蜴筮蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮漕鞜鴦蜴葹竢逅跂筱蒹蜩閹纈鴦黹瘤鈬筱鹿粡寂蝟赱齠洲痲筵娼瘤鱸阨辣鱧纉鈔繙癜踉瘡癇黼郤蝟昭粡竚癈鷭п粐Ь癇笊赱鮑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼闌鹿粡寂蝟赱齠洲痲筵娼跚膚蓖齡癈畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯黼鴟纈痲迚遐竢粤嚆鴟纈槍迚遉踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪r纉阨鱆繝闔肅腆竢粤吶齒竇衷鈕蜃閼絋苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯痺竇齠竢鈕蜃▽苳殺踉祉閼絋苳餐窿纉鹵闔肅胼踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉氏鱚羹〓迴箝竢鱚譯辣阨槇竢粤夂辣阨熙踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪k繞鞜跚辣阨槇竢粤妹辮糟蝟縱蜊繽閼絋苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯諷辮瘡蝟紜竢粤妹辮糟蝟絋踉晒竢粤蝟昭粡竚癈鷭п粐Ь踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪m癢諷辮瘡蝟纈繿齡鵞竢粤浴繞霑跚吶髟纉閼絋苳殺踉晒瓲苳錆鹿粡寂蝟赱齠洲痲筵娼闥踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪s緕籵聽鴦蝴紜竢粤嚆鈔濯聿纈嚔閼絋苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь蜥繝蒹鱚齔繝瘡蜴蒹鱸胙闕蒹鹿粡寂蝟赱齠洲痲筵娼轣蜴燗纈鬯壽癆鵺鉞纈蜚繖鳫癆纐纈蒹蜴瘡鹿粡寂蝟赱齠洲痲筵娼黼蜴閹葹跿蜩轣蜴燗纈鬯踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽闖謨粤聲癆繙蜴粤聲粡鱚笏闥蝟昭粡竚癈鷭п粐Ь纈迚齠蜿銖闥蓖齡鱚纈艱蓖黼轣蜴鹿粡寂蝟赱齠洲痲筵娼黼鴟纈壽蜩釿跿粤瘤鞳鬮粡鱚笏闥竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь鈕闥轣闔闥銷閼絎薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳市蒹纈纈竢鈕蜃肬縺竏閼胙闕蒹鹿粡寂蝟赱齠洲痲筵娼轣蜴燗纈癇辣鱧繖銓闢黼鴟纈踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь齠緕瘡踟轣蜴燗纈蜩鱚癆繖≫繙癜踉鵞畆蝟昭粡竚癈鷭п粐Ь矚黼闔蓍竏碯蛹縺竏蓖齡濯竟皷闔蜴閹鹿粡寂蝟赱齠洲痲筵娼纉轣蜴燗纈粤肅鉗闔蜴蒹闔肅肅跂赱鱧繻蝟昭粡竚癈鷭п粐Ь鴪繻纐瘤蒹銓蜥竢鈕蜃轣蜴燗纈葹矼緕鹿粡寂蝟赱齠洲痲筵娼鞜鴦繖蒹蜩蜴瘡纈芍鈑窿鶤纐緕轣蜴燗纈鮗蝟昭粡竚癈鷭п粐Ь繙蜴蜚蜿瘰鞳癇瘋闢粤肅鉗闔迚艾瘋聽笏蒹鹿粡寂蝟赱齠洲痲筵娼闢粤肅鉗闔鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺轣蜴燗纈葹鈿踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤蜩鹿粡寂蝟赱齠洲痲筵娼竟蜴蒹蓖齡釶辣轣竏蜴癆鞣鴣銕蜴膽蝟昭粡竚癈鷭п粐Ь蜩黼蜴齡縺筮跛瘡纃轣蜴燗纈痲糅纉鷦蝟昭粡竚癈鷭п粐Ь續蹙苳闢賓粐鱚齠纉續鈬磔林闖謨闔蒹鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈令辣閼絋苳閹蒹瘟釼黼鴟纈踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮麗鞜齠轣粤蓿阨艾蒹蓖齡蛹蜴銷蜩皷鈑鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈令辣閼絋苳肅繻糂鈔竚癈皷胱蒹蓖齡鷦蝟昭粡竚癈鷭п粐Ь蜚蒹瘤踉糸蹙苳刺亅矚黼筅踉晒纃蓖齡纃釶辣癈繖蹙苳纂蝟昭粡竚癈鷭п粐Ь蓖齡闢蜩闔皷粤鱚釶辣癈繖蓖齡瘤閹鹿粡寂蝟赱齠洲痲筵娼痲糅纉黼阮纈赱頌蒹瘟釼黼鴟纈竟鶯齠閭蛛鹿粡寂蝟赱齠洲痲筵娼縺竏粐鱚齠轣轣蜴燗纈鬣竢粤倆鶯閼絋苳皐蝟昭粡竚癈鷭п粐Ь纈黼蜩闔皷粤鱚瘤亅矚黼闢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥銷鈔繙蜴繖踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤蜈趙鵺鹿粡寂蝟赱齠洲痲筵娼釶辣癈繖蓖齡繙癜踉蒹粐鱚齠蝟緕蜥齡綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳志蜥瘡被齡閼絋苳齡癆纃緕粤肅鉗鈑蒹蓖齡綜蝟昭粡竚癈鷭п粐Ь蓖齡葹蜴竚纉蒹瘍蜒踉雌瘢隍苳止粤聲瘢隍苳趙竅鰾鹿粡寂蝟赱齠洲痲筵娼蜩蝟緕蒹瘢竢粤嚆鴟纈令辣閼絋苳癈蒹瘟釼黼鴟纈蝟昭粡竚癈鷭п粐Ь纈黼蒹蓖齡蜒蜩繝纉黶鱸踟賓癈繖蓖齡蜩鹿粡寂蝟赱齠洲痲筵娼芍竢粤嚆鴟纈令辣閼絋苳矚黼闔蒹纉閹鹿粡寂蝟赱齠洲痲筵娼鱚鴦栂跫闍肅鴦痲糅纉芍蜴蒹鹿粡寂蝟赱齠洲痲筵娼竢粤帷鶯貳闢熙踉晒竢粤辣銓踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳志蓖齡癆竏蜴胼踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳餐鞜竏窺粡聿纈胙闕葹蜩閭緕蒹鱚瘤篌蝟昭粡竚癈鷭п粐Ь閭緕闔跛癈矼鱸緕踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹纈粤鴉蜴纉蓍竏蓖齡肬鱚髟纉癈鹿粡寂蝟赱齠洲痲筵娼肬跛阯鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳紙蜴籖鶯赧黼鴟纈閼絋苳産蒹竢銕繝闔鷦蝟昭粡竚癈鷭п粐Ь蜥齡痲磔蒹跚緕蒹閭瘡痲糅纉蒹痲糅纉鷦蝟昭粡竚癈鷭п粐Ь蜒竚蜈銓闔鈬笏繖蜩闖諷黼鴟纈蜩鹿粡寂蝟赱齠洲痲筵娼闢蜩癆竏繖蜚瘤亅矚黼闢蒹痲糅纉鷦蝟昭粡竚癈鷭п粐Ь癆竏纉鈔蒹闥轣蒹瘠蜴蜴窿阨銓鹿粡寂蝟赱齠洲痲筵娼趙竅鰾鶇踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮膚闢鱚癆竏繖蒹赱齡窿鱚釿絳蜚鹿粡寂蝟赱齠洲痲筵娼瘰鞳癇鵺黶逅焙繙癜踉潸踉晒黶逅粐鱚齠蜒蜀阨鹿粡寂蝟赱齠洲痲筵娼鱚竅跛蒹鰾纈蜴閹蒹纈跚齡緕闔繖硼縺銖鹿粡寂蝟赱齠洲痲筵娼癆蓍矼蒹蜥齡窿鱚釿閹鹿粡寂蝟赱齠洲痲筵娼黶逅焙繙癜踉潸踉晒黶逅竢鈕蜃蛹紿轣蒹筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺瘤纐緕鈿蜴痰阮葹轣蒹筱蒹綣蝟昭粡竚癈鷭п粐Ь瘟釼黼鴟纈轣蒹筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹蓖齡纉鈑鳫痰阮黼癇竏齡闥繖蜚莠蝟昭粡竚癈鷭п粐Ь癆痰阨竢銕繝闔怛ъ竅跛蓍纃竢銕繝闔鹿粡寂蝟赱齠洲痲筵娼闢熙踉晒纃壽竢銕繝闔蓖齡竢銖銓瘡鱚髟纉鹿粡寂蝟赱齠洲痲筵娼蜴癇笊赱埣亊賓纉皷闔癆鵺瘡鱚髟纉郤蝟昭粡竚癈鷭п粐Ь繞霑跚纈皷齡緕黼齠蜿隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闥痺鱚髟纉轣粤竢銕繝闔蒹闌跫鈑鹿粡寂蝟赱齠洲痲筵娼黼髟緕竇纐緕纈續纈迚鈬痺瘡蓖齡葹蝟昭粡竚癈鷭п粐Ь蛹矼黼纈蒹繿齡踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢粤竏繝諧胚跛薤踉晒竢粤膚蒹繿齡孀蜩郤蝟昭粡竚癈鷭п粐Ь碵闌縟夘癆蜚釿跿粤竢粤蔗痕闢瘢絲閼絋苳錆鹿粡寂蝟赱齠洲痲筵娼緕癆逅蜩痲續纈迚鈬蓖齡釶辣粐鱚齠鹿粡寂蝟赱齠洲痲筵娼鈔頸蜿釶竟鶯轣癆竢銕繝闔蓖齡膚蝟昭粡竚癈鷭п粐Ь閻緕蒹闢瘢竟鶯蜿閹蒹夘黶癈蒹鹿粡寂蝟赱齠洲痲筵娼纃鱚髟纉蓖齡釶辣蹙苳皿蜚閻鈿轣茗蒹孀票蝟昭粡竚癈鷭п粐Ь纃瘟銖銓阨竏繖齡鳫鈑麗闔胼苳産痺蓍纐蜩鹿粡寂蝟赱齠洲痲筵娼痲糅纉竢逅癇蜩闔蓖齡釶辣韭蜈苡纉蓿阨艾林鹿粡寂蝟赱齠洲痲筵娼跫闍鉤纉蜚癆竏纉蒹踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤綣蝟昭粡竚癈鷭п粐Ь閭瘡痲糅纉閹蒹跚緕齒站續踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢粤鞜鴦縷薤踉晒竢粤膚蒹夘繚蜴鳫竢貅蝟昭粡竚癈鷭п粐Ь纃藪絎蹙苳錆踉祉閼絋苳肢雕閼絋苳錆踉祉閼絋苳紙墾踉晒竢粤緕蒹鹿粡寂蝟赱齠洲痲筵娼鱚髟纉蜩闔皷粤鱚頏陂鱚髟纉阡癆阨艾綣蝟昭粡竚癈鷭п粐Ь癨癘齡鱸韶繖竢粤蔗痕闢瘢絲閼絋苳蜴蒹鹿粡寂蝟赱齠洲痲筵娼頏纐蜿隱蓍竢齡蛹矼鳫繿齡踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竢粤鱚痲熬繿齡閼絋苳産鱚髟纉粹纉阡癘畆蝟昭粡竚癈鷭п粐Ь闢瘢胙闕蒹癇跚纈隱蒹瘤竢粤被齡墾踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼蒹痲纈緕磔蒹跚緕蜩黼癈蒹繿齡闢瘢絎鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳祉蒹站煦闢跚癈閼絋苳産鱚髟纉鈿葹畆蝟昭粡竚癈鷭п粐Ь闢瘢絳蒹瘤纃頸轣粤轣肬蜩闢瘢絎鹿粡寂蝟赱齠洲痲筵娼壽肅鴦齡辮蜩癆竏闕鞜鱚銷闥闔鷦蝟昭粡竚癈鷭п粐Ь蝟緕鱚髟纉艨蜴齡蒹踉祉閼絋苳姉闥熙踉晒竢粤蜈趙羲蝟昭粡竚癈鷭п粐Ь蒹闔鈬笏蜿闢纈紮迚鼾癆竏蒹闢繖鹿粡寂蝟赱齠洲痲筵娼肬鱚髟纉蜩蒹闔鈬笏蜿闢壽蜩碯膃繞鹿粡寂蝟赱齠洲痲筵娼閧黼鴟癆蜿銖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺竟鶯癆竏纉緕鞣竅銖蒹蜩閹蓖齡鷦蝟昭粡竚癈鷭п粐Ь鶯蜴蒹纔黼鴟纈踉雌闔胼苳氏胄纈闔胼苳綣蝟昭粡竚癈鷭п粐Ь闔鈬笏蜿闢蓍黹瘤閻鈿齡關纈癇瘤蝟昭粡竚癈鷭п粐Ь癆竏纉蜚閻鳫瘡竟齠蛯跂蓖齡鵺鈔緕篌蝟昭粡竚癈鷭п粐Ь黼赱齡癆竏肬筮蒹闕鞜鱸齒銖纈肬鴉繖鱚鷦蝟昭粡竚癈鷭п粐Ь闌跫墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳暫闕鞜鱚蒹繿齡闢瘢綺竟鶯蜚闢蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤鈔踉祉閼絋苳姉闥熙踉晒竢粤踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚衷逅癇鱚髟纉蓖齡釶辣艨蜴齡銷鈔跛鹿粡寂蝟赱齠洲痲筵娼痲糅纉黼芍蜴蒹踉祉閼絋苳志蜥瘡被齡閼絋苳粡鱚笏蝟肬鮗蝟昭粡竚癈鷭п粐Ь蓍闢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳暫闕鞜鱚蒹繿齡闢瘢瘍瘟銖綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍纈鯀跚癈閼絋苳芍肬闢薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉祉閼絋苳祉蒹站燗纈鴃癆荀踉晒竢粤膚蒹繿齡癈鐚蝟昭粡竚癈鷭п粐Ь闢瘢痺纓癇瘍鱇韆鶇蒹黹瘤蜊蛹癇綣蝟昭粡竚癈鷭п粐Ь鈬竢粤竏繝諧蓖齡瘡蛛鵙踉晒竢粤鞳鱠闥辣癆竏銷鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈倚閼絋苳粡鱚笏蝟纉蝟緕闢麗鹿粡寂蝟赱齠洲痲筵娼癆蒹踉雌闔胼苳詞癈轣荀踉晒齡鳫鈑繖繚癇粲纉艨蜴鹿粡寂蝟赱齠洲痲筵娼竢銖蜆纈蒹鰾纈蜴閹蒹蜥瘡闢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖黼鴟癆蜿銖界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳刺蜩蜀肅笊踉粤肅鈬賓癈繖蓖齡闥蒹鹿粡寂蝟赱齠洲痲筵娼轣竏蜴紮瘟賓粐鱚齠〓阨齠緕瘡踟癘鱚癆畆蝟昭粡竚癈鷭п粐Ь閾踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤闥蒹瘟釼黼鴟纈葹粹纉鹿粡寂蝟赱齠洲痲筵娼鈿轣轣竏蜴紮賓鶤薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь蜴黹瘤蜴阡竢粤竏繝諧蓖齡瘡蛛鵙踉晒竢粤鈔鹿粡寂蝟赱齠洲痲筵娼竢粤竏繝諧黼鴟纈鞜閼絋苳鈿蒹站轣粤葹綣蝟昭粡竚癈鷭п粐Ь蓖齡繪鈑竅銕繖痺瘡踟瘢絖矚黼闢蓍鷦蝟昭粡竚癈鷭п粐Ь縺銖肬纔瘢韭絳葹蜚闢皷碎癆竏賓癈繖鹿粡寂蝟赱齠洲痲筵娼闢鳫瘤阡蒹痲糅纉鶤繝癜黼蒹竅齡癇鹿粡寂蝟赱齠洲痲筵娼蜴蒹蓖齡蜩癆蒹蜥齡蓖齡葹轣蒹跫竅貅蝟昭粡竚癈鷭п粐Ь痲糅纉閹蒹闔鈬笏蜿遯阡跛亅矚黼闢瘤鹿粡寂蝟赱齠洲痲筵娼矼癆竏繖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳暫闔皷粤竢鈕蜃蛹痰阮蓿繞蓖齡銭蝟昭粡竚癈鷭п粐Ь囎韶闢癆釶辣筬矚黼闢鈔鈔鱚鹿粡寂蝟赱齠洲痲筵娼賓癈繖蓖齡鶤鱚髟纉竢辣蜴闥粐鱚齠鹿粡寂蝟赱齠洲痲筵娼竢銓瘟鉗鈑縺粤▽踉雌瘢隍苳使闢瘢隍苳拶蒹蜚蛹矼鹿粡寂蝟赱齠洲痲筵娼黼鴟繖鳫詮竢鈕蜃膚繿齡闕纉闔鹿粡寂蝟赱齠洲痲筵娼痲糅纉緕跛踞癨矼纈胙闕闔肅膽蝟昭粡竚癈鷭п粐Ь繚癇粲纉閹銷闢縺粤鬯鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь鉤纉葹踉雌瘢隍苳止粤聲瘢隍苳闢粹纉逾蝟昭粡竚癈鷭п粐Ь癆蜀阨蝌瘢絖矚黼闢瘢闔苴賓癈繖鹿粡寂蝟赱齠洲痲筵娼闢汀鱸鈑蒹踉祉閼絋苳紙蜴籖鶯赧黼鴟纈閼絋苳韆癈綣蝟昭粡竚癈鷭п粐Ь硼釶辣筬矚黼闢跛轣蒹筱綣蝟昭粡竚癈鷭п粐Ь瘟釼黼鴟纈蛹鱚轣蜴蒹闔鈬笏蜿闢蒹黹瘤鷦蝟昭粡竚癈鷭п粐Ь蛹竢瘡闢闢跚齡鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳刺粹癘黶逅焙繙癜踉潸踉晒黶逅蓖齡緕阨鹿粡寂蝟赱齠洲痲筵娼竅銕阡赱竇瘢繖癈繖蓖齡瘋蜚竢鈕蜃蝟昭粡竚癈鷭п粐Ь蓍蜩繝癜黼瘤竢銕繝闔轣蜴纈賓鷦蝟昭粡竚癈鷭п粐Ь蒹闔鈬笏蜿闢跛踞癨矼蒹鹿粡寂蝟赱齠洲痲筵娼黶逅焙繙癜踉潸踉晒黶逅蓖齡蜴竇闔閹蒹瘢絖矚黼篌蝟昭粡竚癈鷭п粐Ь鱚闔皷粤鱚糒鱸鈑踉祉閼絋苳紙蜴籖鶯赧黼鴟纈閼絋苳皿鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳支阨蓖鈬齔繝蜀栂釶辣蜴鹿粡寂蝟赱齠洲痲筵娼竢粤帷鶯貳闢熙踉晒竢粤蜥繝矼竅蜚蛹肬鱆綣蝟昭粡竚癈鷭п粐Ь阨黼鴟纈鱚踟栂闖纈迴鱚竟黼畆蝟昭粡竚癈鷭п粐Ь繝蜚鱚癆粹阡闔闌蒹林闥跛蒹鹿粡寂蝟赱齠洲痲筵娼粹轣蜴跚齡繖蓿繙就粮鶚竅癆鶤蔗迪▽苳市蒹鱚闥綣蝟昭粡竚癈鷭п粐Ь鈕闥轣闔蛹痰跂蜩鈔蒹纔鐚蝟昭粡竚癈鷭п粐Ь關蜒鵙踉晒瓲苳皿薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤蓖瘡黼肬縺竏鹿粡寂蝟赱齠洲痲筵娼闢纈黼林闖謨蜩繿鱚肬縺竏鹿粡寂蝟赱齠洲痲筵娼闢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳餐林闖謨蜩踞癨鱚髟蜥繖闥蒹瘟釼黼鴟纈鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈令辣閼絋苳緕纈癆癆蜚齊鹿粡寂蝟赱齠洲痲筵娼齔繝蜀蜈蜴蒹闔肅腥踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚膚踉祉閼絋苳屍纈鯰癆荀踉晒竢粤蜥繝齡蜒蜩鹿粡寂蝟赱齠洲痲筵娼頏繙蝌瘤阡蒹竢粤嚆鴟纈倚閼絋苳粡鱚笏蝟癆鹿粡寂蝟赱齠洲痲筵娼瘰鞳癇赱蜴蒹闔肅苺鱇闔蛹絳蒹肬鴉纈蛹貅蝟昭粡竚癈鷭п粐Ь踞癨矼癆竏繖鈔蒹癆跛纐纈轣蒹筮壽癆鹿粡寂蝟赱齠洲痲筵娼蜩齠蜴癆被齡縺粤癘瘟赱碎蜩瘢砠苺癆綣蝟昭粡竚癈鷭п粐Ь蒹薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳刺闢癆阨趙纈黼釶辣蓖齡釿跿粤鷦蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳姉闥熙踉晒竢粤辣銓葹粹纉逾轣綣蝟昭粡竚癈鷭п粐Ь瘟釼黼鴟纈踉祉閼絋苳姉闥熙踉晒竢粤蒹蜚蛹矼闔皷粤鱚瘤鹿粡寂蝟赱齠洲痲筵娼賓癈繖蓖齡壽緕踉祉閼絋苳紙蜴籖鶯赧黼鴟纈閼絋苳跛鹿粡寂蝟赱齠洲痲筵娼轣蜚矼竅竟鶯癈齒竕癆繖蜚縺竏粐鱚齠郤蝟昭粡竚癈鷭п粐Ь蒹粐鱚齠續繙癜踉竟鶯轣蜴燗纈鬧鷦蝟昭粡竚癈鷭п粐Ь蒹闔鈬笏蜿闢蒹竢粤竏繝諧蓖齡瘡蛛鵙踉晒竢粤蛹貅蝟昭粡竚癈鷭п粐Ь繙蒹站銷纈瘢絖矚黼闢矼竅閹蒹鹿粡寂蝟赱齠洲痲筵娼竟鶯蜩轣莅蒹纉蜩葹闢跛瘡跛鹿粡寂蝟赱齠洲痲筵娼蓍濶鈑轣蜴燗纈痲糅纉鶤薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳刺賓癈繖蓖齡葹痲糅纉蜴闕迴遯蒹鹿粡寂蝟赱齠洲痲筵娼闢瘰鞳癇蜴赱蜴蒹蛹蜩踞癨轣蒹筮畆蝟昭粡竚癈鷭п粐Ь蓍鈑蜃蔗瘰鞳蜴痲鶯緕竢鈕蜃癈鹿粡寂蝟赱齠洲痲筵娼釶辣癈繖蓖齡瘤肬齒辣縺齒轣蜴燗纈鮗蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤纉闌蒹鳫鈑粐鱚齠蒹郤蝟昭粡竚癈鷭п粐Ь跛蒹瘢絖矚黼闢蛹矼癇黼癈隲矚黼闢蝟昭粡竚癈鷭п粐Ь蒹赱齡纃蛹齡縺瘡蓍踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽赱齡瘢絖矚黼闢蜴蒹闔肅蜩踞癨轣蒹篌蝟昭粡竚癈鷭п粐Ь闥銷蜚蓍竏閻齊癆竏鈬阡蒹釶辣癈繖鹿粡寂蝟赱齠洲痲筵娼闢踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏†葹闥謫釶辣就癆鳬鵞怦癆闥謫界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮粐蜚蜿蒹蜷闔蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就銖癘縺譯頌▽苳残林齠鵙踉晒瓲苳鞜艱蒹鱚鱚闕綣蝟昭粡竚癈鷭п粐Ь纈蜷鷓鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚俾痺瘡轣蜴燗纈粤肅鉗闔矼肬鱚銷蜥瘡被齡鹿粡寂蝟赱齠洲痲筵娼粤肅鉗闔鶤壽蜩蜆蒹縺籬砠跚綣蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔竟齡闔肅辣鱧蜴頏閭纉轣諷蜚鹿粡寂蝟赱齠洲痲筵娼鈿遶閧阨癆繙蜴蜚蜿銖蝌繖癇阨鈔蜥瘡蓖齡鷦蝟昭粡竚癈鷭п粐Ь蜃蔗聿繝瘡鶯跏闢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳餐鴪瘤艱阨帷鶯貳闢癆跛瘢絖矚黼篌蝟昭粡竚癈鷭п粐Ь蜥瘡闢闕肅鴦闌跫磔亅矚黼鶯蓖齡鵺鹿粡寂蝟赱齠洲痲筵娼肬跛阯繖瘤黶逅焙繙癜踉潸踉晒黶逅蜥瘡闢熙踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚走濶竢粤嚆鴟纈倚鵙踉晒竢粤蓍竏鱚鱚肅閹鹿粡寂蝟赱齠洲痲筵娼阡蒹竢粤嚆鴟纈倚鵙踉晒竢粤膚阨瘤鈿癘濶蜩蒹郤蝟昭粡竚癈鷭п粐Ь阨癘銖癆蒹闔艱闥齔繝蜀蜒頏繙蝌鹿粡寂蝟赱齠洲痲筵娼闢瘰鞳癇縺鳰蜈蜴蒹闔肅苺鱇闔蛹瘤蒹鹿粡寂蝟赱齠洲痲筵娼鼈闥纉齔繝蜀蜒頏繙蝌纃藪絎蹙苳錆嚆鴟纈倚鹿粡寂蝟赱齠洲痲筵娼矣鼈阨趙韶縺瘋纈鯰癆矣粤罌薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳残鈿纃竟鶯癈繖蹙苳闢黶辣纈鮗蝟昭粡竚癈鷭п粐Ь釶辣癈繖蓖齡鶤闖黼繙蜴蜚蜿肬竟鶯癈繖畆蝟昭粡竚癈鷭п粐Ь蓖齡蓍竏粤鴉蜴繖竟鶯黼鴟纈鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳脂踉晒纃闔黼鴟纈蜚竟鶯鍵旭鍵鍵瘤鍵鹿粡寂蝟赱齠洲痲筵娼瘡閹蓍竏癘粡聿纈緕竢鈕蜃癆蜿銖薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡蓖齡鶩纔瘢韭纉皴蔗粹笂瘤豁闢逅跂鶤蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭甼挟羝唄傑錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁闢逅跂鶤蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁闢逅跂鶤蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐攻声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂帷鶯貳闢祷瘢韭纉蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬帷鶯被齡逅跂肬竢迯闔續鵙踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢逮黼闔肅苺鱇闔王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■頤鱚釶辣▽苳屍蜊韭釶辣癈繖蓖齡蜴胼踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就n瘢紜酪鱚闕韭蜒癆繖瘢絖矚黼篌蝟昭粡竚癈鷭п粐Ь蓖齡鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就i陟賓癈繖蓖齡鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就m蝌繖▽苳四蝌繖瘢絖亅矚黼闢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■竟鶯▽苳姉闥矚黼闢薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢槍粡闔瘡縺鱚鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就d繙癜踉▽苳師皷鈑踉祉閼絋苳止粤聲閼絋苳纂蝟昭粡竚癈鷭п粐Ь蓖齡鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就m蜃鱇▽苳四蜃鱇鈑瘢繖癈繖蓖齡瘤鹿粡寂蝟赱齠洲痲筵娼賓癈繖蓖齡薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■黼鴟纈鞜▽苳師皷鈑蒹踉祉閼絋苳屍纈鯰癆荀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏緕瘢紜瘢綵緕瘢紜嚔逅跂瘢絖矚黼篌蝟昭粡竚癈鷭п粐Ь蓖齡蜴胼踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚齡鳫鈑衷逅癆蛯蛹蜚闔胼苳壽蜩痲粤蜴鹿粡寂蝟赱齠洲痲筵娼草痺蒹凱薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍續墾踉晒齡鳫鈑蒹纈轣竏蜴葹頏蜊癇蝟昭粡竚癈鷭п粐Ь瘢黶逅黼鴟纈闕瘟隨筅踉晒黶逅壽纈癇瘡蛛黼鷦蝟昭粡竚癈鷭п粐Ь知鼠涛黶逅粹轣蜴趙瘢隍苳瘤篌蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳似闕瘟隨筅踉晒黶逅闥蒹粐鱚齠鹿粡寂蝟赱齠洲痲筵娼黶逅黼鴟纈闕瘟隨筅踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳屍纈竢鈕蜃癆蜿邵闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь闥鍵鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣纈鬯粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼令辣帷鶯貳闢鍵鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢鍵逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡粹轣蜴鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣闕瘟隨篌蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢鍵逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡齦矮闕瘟郤蝟昭粡竚癈鷭п粐Ь纈鯲瘢齦皰粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蒹齡纈蜩謫癆竏跛粐鱚齠纉齒蒹瘟黼鴟纈鹿粡寂蝟赱齠洲痲筵娼黼鴟纉鱚髟纉汀蒹痺癆鹿粡寂蝟赱齠洲痲筵娼黶逅粹轣蜴趙瘢隍苳蜩蜥齡竢鈕蜃癆蜿郤蝟昭粡竚癈鷭п粐Ь蛹絳葹蓍艾纉頏蜿鱸鈔瘤黼緕綣蝟昭粡竚癈鷭п粐Ь踉祉蜚絋苳私繙癜踉蜚絋苳闥踉祉蜚絋苳諮鱸轣鴒蜚絋苳黼鴟纈蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就釶辣釶辣就釶辣▽苳四闥竢逅跚竅釶辣癈繖鹿粡寂蝟赱齠洲痲筵娼闢界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍續墾踉晒齡鳫鈑蒹纈轣竏蜴葹闔賓鹿粡寂蝟赱齠洲痲筵娼痲糅纉└踉雌瘢隍苳傘臼荻崖侃踉晒黶逅蜒鱚齒踝纉綣蝟昭粡竚癈鷭п粐Ь瘢黶逅黼鴟纈闕瘟隨筅踉晒黶逅壽纈癇瘡蛛黼鷦蝟昭粡竚癈鷭п粐Ь知鼠涛黶逅粹轣蜴趙瘢隍苳瘤篌蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳似闕瘟隨筅踉晒黶逅闥蒹粐鱚齠鹿粡寂蝟赱齠洲痲筵娼黶逅臼窺臆凱幹瘢隍苳皿蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑嚆鴟纈闔肅苺鱇闔墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼倆鶯絢蝟昭粡竚癈鷭п粐Ь纈鯲瘢黼鴟纈闕瘟隨篌蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢縉蜥瘡被齡臼荻崖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱幹逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡粹轣蜴鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣闕瘟隨篌蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱幹逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡齦矮闕瘟郤蝟昭粡竚癈鷭п粐Ь纈鯲瘢齦皰粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь鞜鶯鳫黶逅跫竅跏闢熙踉晒黶逅蒹鱚鱚鐚蝟昭粡竚癈鷭п粐Ь銖鞳竕肅繖粐鱚齠纉闥纈繙闥轣蜴纈鮗蝟昭粡竚癈鷭п粐Ь鉤黼鴟纉踉雌瘢隍苳詞閭瘡蓖齡瘢隍苳鱚髟纉汀蒹鹿粡寂蝟赱齠洲痲筵娼聲笏葹黶逅粹轣蜴趙瘢隍苳葹蓍艾纉蝟昭粡竚癈鷭п粐Ь鱸闥蜚蜚瘤黼緕竕粤聲熙踉晒竕鮗蝟昭粡竚癈鷭п粐Ь踉祉蜚絋苳諮鱸轣鴒蜚絋苳黼鴟纈蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍續墾踉晒齡鳫鈑蒹纈轣竏蜴葹賓鹿粡寂蝟赱齠洲痲筵娼痲糅纉黼└踉雌瘢隍苳傘臼荻崖侃踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅臼窺臆凱亀瘢隍苳皐蓍竏纉闌釶辣鷦蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳雌纈魃闕瘟隨筅踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅黼鴟纈荻粹轣蜴趙瘢隍苳鱚齔繝踟壽瘡蛛鷦蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳似闕瘟隨筅踉晒黶逅蓖矼黼肬轣蜴鹿粡寂蝟赱齠洲痲筵娼黼鴟纈蓍竏蓖瘡齒癆竏銷銖鞳竕肅繖粐鱚齠纉蝟昭粡竚癈鷭п粐Ь銓鶯蓖齡闥蒹跚癈鹿粡寂蝟赱齠洲痲筵娼黶逅阡蒹鰾闕瘟隨筅踉晒黶逅鈔鈿纈蜥瘡闢鹿粡寂蝟赱齠洲痲筵娼纈釶辣踉雌瘢隍苳似闕瘟隨筅踉晒黶逅鼈阨趙鹿粡寂蝟赱齠洲痲筵娼竅瘤鱚髟纉闢瘢纉肬鴉鹿粡寂蝟赱齠洲痲筵娼黶逅齦皰粹轣蜴趙瘢隍苳皿蒹粐鱚齠鹿粡寂蝟赱齠洲痲筵娼黶逅臼窺臆凱亀瘢隍苳鼈阨趙繖闥蒹蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡鶤蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑嚆鴟纈闔肅苺鱇闔墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼倆鶯絢蝟昭粡竚癈鷭п粐Ь纈鯲瘢粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡粹轣蜴鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼令辣帷鶯貳闢臼窺臆凱亀鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱亀逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡阡蒹鰾闕瘟郤蝟昭粡竚癈鷭п粐Ь纈鯲瘢阡蒹鰾闕瘟隨篌蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖畿瘢雹苳纂蝟昭粡竚癈鷭п粐Ь閭緕闖粹轣蜴鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣闕瘟隨篌蝟昭粡竚癈鷭п粐Ь纈鯀跚癈闕瘟隨篌蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼綜鱚髟纉痲糅纉阡蒹瘤鹿粡寂蝟赱齠洲痲筵娼黶逅臼窺臆凱亀瘢隍苳跛黼鴟繖鳫轣蜴鹿粡寂蝟赱齠洲痲筵娼黼鴟纈鱚髟纉踉雌瘢隍苳傘臼荻崖畿踉晒黶逅蜚瘤鹿粡寂蝟赱齠洲痲筵娼謗阯闥竢粤被齡墾踉晒竢粤縺粤跛黼鴟繖鹿粡寂蝟赱齠洲痲筵娼胙闕踉雌瘢隍苳似纈粹轣蜴趙瘢隍苳皿鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑嚆該闔胼苳壽黼鴟纈痺蓍鈬癈仄蝟昭粡竚癈鷭п粐Ь粐鱚齠纉黶逅厩荻蔚軒窺右踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅臼窺臆凱亀瘢隍苳皐壽轣竏蜴蜩蜚鈑續緕鹿粡寂蝟赱齠洲痲筵娼瘤銓纈釶銓鱇鈬續鳬鈔纔鴈瘡蜴鴈續蝟昭粡竚癈鷭п粐Ь續鳬蜆閹蒹續鳬釶辣鹿粡寂蝟赱齠洲痲筵娼黶逅黼鴟纈窺粹轣蜴趙瘢隍苳鱚齒踝纉纔鴈瘡鹿粡寂蝟赱齠洲痲筵娼痲糅纉└踉雌瘢隍苳傘臼荻崖畿踉晒黶逅銖蜆綣蝟昭粡竚癈鷭п粐Ь續鳬癆瘢釶辣纉闌蒹銓纈釶痲糅纉鷦蝟昭粡竚癈鷭п粐Ь黶逅厩荻蔚軒窺右踉晒黶逅蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽黼鴟纈瘤轣粤鱚齔闔銓纈釶瘤篌蝟昭粡竚癈鷭п粐Ь纈釶鱚髟纉蜚黶辣闔銓闔綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳志蜥瘡被齡閼絋苳黼笏蜿隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳屍纈竢鈕蜃癆蜿邵闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢縉蜥瘡被齡慌狂鹿粡寂蝟赱齠洲痲筵娼令辣帷鶯貳闢臼窺臆凱亀鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢厩荻蔚軒窺臼窺臆凱亀逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡黼鴟纈閏蝟昭粡竚癈鷭п粐Ь纈鯲瘢黼鴟纈窺粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈糟蛛黼鴟纈閏蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼麗鱚髟纉鳫硼續鳬跛黼鴟繖鳫綣蝟昭粡竚癈鷭п粐Ь瘢竢粤帷鶯貳闢熙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍續墾踉晒齡鳫鈑阨癘逡踉蜷跂闕瘟銖濶鈑鹿粡寂蝟赱齠洲痲筵娼蒹瘢賓鈔踈銓黼鴟逡踉蜷跂闥濁鹿粡寂蝟赱齠洲痲筵娼粤肅鉗鈑蒹闥⇔瘢縉蜥瘡被齡膃阨瘤鹿粡寂蝟赱齠洲痲筵娼瘡跫蜩鳬膚阨鴒皷鈑瘢雹踉志蜥瘡被齡鹿粡寂蝟赱齠洲痲筵娼釶辣咋闥熙瘢雹苳阨令辣帷鶯貳闢釶辣咋闥闥阨鹿粡寂蝟赱齠洲痲筵娼黼蒹闥粡鱚笏蝟絳阨竢鈕蜃癆蜿跛阡鹿粡寂蝟赱齠洲痲筵娼鳬鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳屍纈竢鈕蜃癆蜿邵闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼令辣帷鶯貳闢臼窺臆凱幹左絢蝟昭粡竚癈鷭п粐Ь瘢縉蜥瘡被齡臼荻崖敢鍵鍵鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱幹左愛瘢雹苳纂蝟昭粡竚癈鷭п粐Ь纈鯲瘢粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡粹轣蜴絢蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖敢鍵鍵逅紫鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣闕瘟隨篌蝟昭粡竚癈鷭п粐Ь閭緕闖闕瘟遶鍵鍵鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱幹左愛瘢雹苳纂蝟昭粡竚癈鷭п粐Ь纈鯲瘢阡蒹鰾闕瘟隨篌蝟昭粡竚癈鷭п粐Ь閭緕闖纈粹轣蜴絢蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖敢鍵鍵逅紫鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣纈粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡阡蒹鰾闕瘟遶鍵鍵鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就蜷釶辣就蜷▽苳刺亅矚黼闢界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍續墾踉晒齡鳫鈑蒹纈轣竏蜴葹賓鹿粡寂蝟赱齠洲痲筵娼痲糅纉黼└踉雌瘢隍苳傘臼荻崖侃踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅臼窺臆凱亀瘢隍苳皐蓍竏纉闌釶辣鷦蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳雌纈鬯粹轣蜴趙瘢隍苳瘤篌蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳似纈粹轣蜴趙瘢隍苳鱚齔繝踟壽蓖齡釶辣鹿粡寂蝟赱齠洲痲筵娼黶逅粹轣蜴趙瘢隍苳蜩瘡蛛料妖肬鮗蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳雌纈鬯粹轣蜴趙瘢隍苳瘤跛辮鱚黼銓蒹瘟郤蝟昭粡竚癈鷭п粐Ь纈鬯蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑嚆鴟纈闔肅苺鱇闔墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼倆鶯絢蝟昭粡竚癈鷭п粐Ь閭緕闖闕瘟郤蝟昭粡竚癈鷭п粐Ь纈鯲瘢粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱亀逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡阡蒹鰾闕瘟郤蝟昭粡竚癈鷭п粐Ь纈鯲瘢阡蒹鰾闕瘟隨篌蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳似纈粹轣蜴趙瘢隍苳竅闔踟鱚痺蒹篌蝟昭粡竚癈鷭п粐Ь蓿阨艾蒹粐鱚齠踉雌瘢隍苳傘臼荻崖畿踉晒黶逅蛹綣蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳似闕瘟隨筅踉晒黶逅瘤鉤矼縺竏繖蓿阨艾鹿粡寂蝟赱齠洲痲筵娼黶逅臼窺臆凱幹瘢隍苳蓍竏辮鱚黼銓阨轣蜴鹿粡寂蝟赱齠洲痲筵娼黼鴟纈鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑嚆穏闔胼苳噤辣黼卯粹逾蝟昭粡竚癈鷭п粐Ь瘤癘粤粡竅轣蜴纈鬯蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑嚆鴟纈闔肅苺鱇闔墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼倆鶯絢蝟昭粡竚癈鷭п粐Ь纈鯲瘢黼鴟纈闕瘟隨篌蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖侃瘢雹苳纂蝟昭粡竚癈鷭п粐Ь閭緕闖闕瘟郤蝟昭粡竚癈鷭п粐Ь纈鯲瘢粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖畿瘢雹苳纂蝟昭粡竚癈鷭п粐Ь閭緕闖纈粹轣蜴鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣纈粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼壽轣蜴纈竅鈬竅鱚髟纉繝癜黼跛仄蝟昭粡竚癈鷭п粐Ь粐鱚齠纉阨轣竏蜴癇蜴黼闥亅矚黼鶯貅蝟昭粡竚癈鷭п粐Ь闢闔踟踉雌瘢隍苳詞閭瘡蓖齡瘢隍苳鱚髟纉瘤蜚蒹鹿粡寂蝟赱齠洲痲筵娼轣蜴纈鬧蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍續墾踉晒齡鳫鈑蒹纈轣竏蜴葹賓鹿粡寂蝟赱齠洲痲筵娼痲糅纉黼└踉雌瘢隍苳傘臼荻崖侃踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅臼窺臆凱亀瘢隍苳皐蓍竏纉闌釶辣鷦蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳雌纈鬯粹轣蜴趙瘢隍苳瘤篌蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳似痺蒹闕瘟隨筅踉晒黶逅纉鞳笏蝟繻蒹鹿粡寂蝟赱齠洲痲筵娼蓖齡釶辣踉雌瘢隍苳似闕瘟隨筅踉晒黶逅瘤跚癈知鼠滴鹿粡寂蝟赱齠洲痲筵娼肬黶逅黼鴟纈闕瘟隨筅踉晒黶逅鈔蛹鱚頏纉緕綣蝟昭粡竚癈鷭п粐Ь瘟黼鴟纈黶逅竅竏絎粹轣蜴趙瘢隍苳跛繝闕綣蝟昭粡竚癈鷭п粐Ь鳫痺蒹蜩鉗鈑竟鶯宛穐蓍跂蒹繧鹿粡寂蝟赱齠洲痲筵娼黼鴟纈繻纉蒹繙癜踉闥鍵鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳屍纈竢鈕蜃癆蜿邵闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь闥鍵鹿粡寂蝟赱齠洲痲筵娼也齡緕臼荻崖敢鍵鹿粡寂蝟赱齠洲痲筵娼也齡緕臼荻崖戯鍵鍵鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣纈鬯粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱幹左愛瘢雹苳纂蝟昭粡竚癈鷭п粐Ь閭緕闖闕瘟郤蝟昭粡竚癈鷭п粐Ь纈鯲瘢粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖戯鍵鍵逅紫鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣痺蒹闕瘟隨篌蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞堤鱚笏闥頏陂逅紫鹿粡寂蝟赱齠洲痲筵娼粤偵銷跛阯鹿粡寂蝟赱齠洲痲筵娼偵銷鳫瘡貅蝟昭粡竚癈鷭п粐Ь跛阯鳫臼窺臆骸蝟昭粡竚癈鷭п粐Ь瘢雹踉晒堤鱚笏闥瘢雹苳纂蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼壽轣蜴纈竅鈬竅鱚髟纉繝癜黼跛仄蝟昭粡竚癈鷭п粐Ь粐鱚齠纉瘰癇胙闕踉雌瘢隍苳詞閭瘡蓖齡瘢隍苳皐阨鮗蝟昭粡竚癈鷭п粐Ь痺蓍鈬鱚肬賓癈繖蜥瘡闢壽蘯蝟昭粡竚癈鷭п粐Ь纈竅闔踟鱚痺蒹闔蒹蜥齡粐鱚齠蓿阨艾鹿粡寂蝟赱齠洲痲筵娼竟鶯瘤頏陂闔踟黼竢鈔粐鱚齠蓿阨艾鹿粡寂蝟赱齠洲痲筵娼竟鶯宛握鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏蝌繖釶辣就迚笄莱釶辣賓癈繖鹿粡寂蝟赱齠洲痲筵娼闢界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍續墾踉晒齡鳫鈑蒹纈轣竏蜴葹鱚賓鹿粡寂蝟赱齠洲痲筵娼痲糅纉黼└踉雌瘢隍苳傘臼荻崖侃踉晒黶逅蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳傘臼荻崖畿踉晒黶逅鈔踉雌瘢隍苳傘臼荻崖共踉晒黶逅蝟昭粡竚癈鷭п粐Ь蓍竏纉闌釶辣黶逅黼鴟纈闕瘟隨筅踉晒黶逅蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳似纈粹轣蜴窺筅踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅阡蒹鰾闕瘟邁趙瘢隍苳鱚齔繝踟壽痲糅纉鷦蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳傘臼荻崖侃踉晒黶逅蓖矼黼肬竢跂羲蝟昭粡竚癈鷭п粐Ь瘢絖矚黼闢鈔蒹纈粐鱚齠纉闥亅矚黼篌蝟昭粡竚癈鷭п粐Ь蓖齡鶤蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑嚆鴟纈闔肅苺鱇闔墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼倆鶯絢蝟昭粡竚癈鷭п粐Ь纈鯲瘢黼鴟纈闕瘟隨篌蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢縉蜥瘡被齡臼荻崖桓蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖侃瘢雹苳纂蝟昭粡竚癈鷭п粐Ь閭緕闖闕瘟郤蝟昭粡竚癈鷭п粐Ь纈鯲瘢粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱幹逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡齦矮闕瘟遽鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣窺粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱幹逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡齦矮闕瘟邁鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣荻粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖畿瘢雹苳纂蝟昭粡竚癈鷭п粐Ь閭緕闖纈粹轣蜴閏蝟昭粡竚癈鷭п粐Ь纈鯲瘢阡蒹鰾闕瘟遽趙鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱橋逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡阡蒹鰾闕瘟邁鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣纈粹轣蜴荻篌蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏闥槇瘢綵闥槇倆鶯癈繖蓖齡鵙踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑嚆雕闔胼苳壽黼鴟纈痺蓍鈬癈鈬仄蝟昭粡竚癈鷭п粐Ь粐鱚齠黶逅臼窺臆凱幹瘢隍苳皐蓍竏纉闌蒹鹿粡寂蝟赱齠洲痲筵娼釶辣踉雌瘢隍苳似闕瘟隨筅踉晒黶逅膚粹逾葹蒹鹿粡寂蝟赱齠洲痲筵娼關闔艱瘤阡蒹痲糅纉闥跚癈闥纈鹿粡寂蝟赱齠洲痲筵娼竅竟鶯癈繖蓖齡蜀鈬繖蜥瘡闢鹿粡寂蝟赱齠洲痲筵娼粡聿纈緕竢鈕蜃癆蜿隨蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑嚆鴟纈闔肅苺鱇闔墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼也齡緕絢蝟昭粡竚癈鷭п粐Ь蜩鍵鍵鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣闕瘟隨篌蝟昭粡竚癈鷭п粐Ь閭緕闖闕瘟郤蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖敢鍵鍵逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡粹轣蜴下蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь繿齡黶逅粹轣蜴趙瘢隍苳闔闥鍵鷦蝟昭粡竚癈鷭п粐Ь纈胙闕蒹瘟黼鴟纈鈔繿齡竟鶯宛蜩鹿粡寂蝟赱齠洲痲筵娼黼鴟繖鳫鶯蓖齡蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖蜆就粤聲槇瘢綵≫繙癜踉▽苳師皷鈑踉祉閼絋苳止粤聲閼絋苳纂蝟昭粡竚癈鷭п粐Ь蓖齡鵙踉晒瓲苳殺踉晒莖鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑嚆浦闔胼苳秩蓍鈑踉糸蹙苳糸鴒蹙苳鱚髟纉蝟昭粡竚癈鷭п粐Ь瘤齔繝蜀蜈賓粐鱚齠鈔闥踉糸蹙苳脂踉晒纃瘤鹿粡寂蝟赱齠洲痲筵娼痲糅纉鶩竟鶯闕砠釶闔葹蜩阡黼肬瘤阡蒹鮗蝟昭粡竚癈鷭п粐Ь蜥瘡闢蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑嚆鴟纈闔肅苺鱇闔墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢焙繙癜踉澪瘢雹苳纂蝟昭粡竚癈鷭п粐Ь閭緕闖繙癜踉鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼專蜴齦竏繙癜踉蓖齡蜚趙竅鰾闥蝟昭粡竚癈鷭п粐Ь聿繝踟鱚銓瘤鱚髟纉苡蜴蒹瘟郤蝟昭粡竚癈鷭п粐Ь纈鬯碣鹿粡寂蝟赱齠洲痲筵娼繙癜踉蓖齡纐纈纈鱚髟纉癆癈緕鹿粡寂蝟赱齠洲痲筵娼瘤粐鱚齠闥癆繖闥瘢絖矚黼闢膚鹿粡寂蝟赱齠洲痲筵娼鱚髟纉竢銓瘟鈬瘤鉉鈿鈿踉祉閼絋苳使闢閼絋苳纂蝟昭粡竚癈鷭п粐Ь縺粤蜚瘡纈胙闕蒹鱸轣鴒瘢絖矚黼篌蝟昭粡竚癈鷭п粐Ь蓖齡闢肬癆粐鱚齠闥瘰鞳癇蜴肅鴦蜴鹿粡寂蝟赱齠洲痲筵娼竢鈕蜃癆蜿肅跂碣鹿粡寂蝟赱齠洲痲筵娼阨瘤黼踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼閼焉跚癈譯瘡蛛鼾癆竏▽苳殺踉祉閼絋苳餐跚癈浴荀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼闥踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼閼熬纓鱸譯吶蜚縡紜竢粤吶蜚縡絋踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼纓鱸銷繿齡皷鈑跂鈕闥轣闔瘍鮗蝟昭粡竚癈鷭п粐Ь竰蜷蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍續墾踉晒齡鳫鈑瘢癈續碯黼鴟纈鹿粡寂蝟赱齠洲痲筵娼跚齡緕闔纐纈瘡闥鈔銓黼竢鈔鹿粡寂蝟赱齠洲痲筵娼竢粤焙繙癜踉潸踉晒竢粤蓖齡闥闥鍵鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳屍纈竢鈕蜃癆蜿邵闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡粤聲左愛瘢雹苳纂蝟昭粡竚癈鷭п粐Ь閭緕闖繙癜踉鍵鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡粤聲昏逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡粤聲蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蒹繙癜踉蓖齡闥闥鍵蜒纃逡齡蹙苳瘰鞳癇鹿粡寂蝟赱齠洲痲筵娼矼肬鱚銷繙癜踉蓖齡蜚趙竅鰾闥癆竏纉鹿粡寂蝟赱齠洲痲筵娼瘡鱚髟纉葹鱚緕齔繝蜀蜈賓粐鱚齠蝟昭粡竚癈鷭п粐Ь蒹瘟黼鴟纈鈬繖黼鴟鱚髟纉鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑嚆該闔胼苳怛瘤癘粤聲闢蝟昭粡竚癈鷭п粐Ь闥闥鍵碯鈿纈繙癜踉蓖齡鶤蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑嚆鴟纈闔肅苺鱇闔墾踉晒齡鳫鈑鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢焙繙癜踉澪鍵逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡粤聲蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь繿齡瘤銖鞳竕肅繖粐鱚齠竟鶯蜩纈篌蝟昭粡竚癈鷭п粐Ь鳫粤聲闢瘤阡蒹鱚髟纉郤蝟昭粡竚癈鷭п粐Ь銖鞳竕肅繖粐鱚齠鈔闥蜩纈胙闕蒹瘟郤蝟昭粡竚癈鷭п粐Ь纈鬯鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏蜃鱇釶辣就迚苒癆紜莱苒癆蜴釶辣癈繖蓖齡鹿粡寂蝟赱齠洲痲筵娼賓癈繖蓖齡界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍續墾踉晒齡鳫鈑蒹瘢絖矚黼闢蒹鹿粡寂蝟赱齠洲痲筵娼蓖齡釶辣踉雌瘢隍苳似纈粹轣蜴趙瘢隍苳鳫阨畆蝟昭粡竚癈鷭п粐Ь鱚羹■釶辣▽苳試瘢絖矚黼筅踉晒瓲苳纔瘢韭絳續鼈阨趙續鹿粡寂蝟赱齠洲痲筵娼蜚阯賓粐鱚齠夬蜆鳫碎纃瘢黼鴟纈闥鹿粡寂蝟赱齠洲痲筵娼頏陂蜈竅竏繖蒹趙痲糅纉肬釶辣癈繖鹿粡寂蝟赱齠洲痲筵娼闢瘤鳫粤阡鱸瘤蜴迚苒癆蜿郤蝟昭粡竚癈鷭п粐Ь葹黼踉獅苳纂蝟昭粡竚癈鷭п粐Ь壽齒跿闔縺齷矼竅瘤蜊韭痲鈬賓鹿粡寂蝟赱齠洲痲筵娼痲糅纉└踉雌瘢隍苳傘臼荻崖共踉晒黶逅蒹鹿粡寂蝟赱齠洲痲筵娼竢粤帷鶯貳闢熙踉晒竢粤蜥繝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳屍纈竢鈕蜃癆蜿邵闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь闥鍵鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣闕瘟隨篌蝟昭粡竚癈鷭п粐Ь閭緕闖闕瘟郤蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢縉蜥瘡被齡臼荻崖擬蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖臼窺臆凱橋逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡阡蒹鰾闕瘟郤蝟昭粡竚癈鷭п粐Ь纈鯲瘢阡蒹鰾闕瘟隨篌蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖畿瘢雹苳纂蝟昭粡竚癈鷭п粐Ь閭緕闖粹轣蜴鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣闕瘟隨篌蝟昭粡竚癈鷭п粐Ь纈鯀跚癈闕瘟隨篌蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蒹蓖齡瘤阯痺竇齠繖蓿阨艾蒹纓粐鱚齠癈鹿粡寂蝟赱齠洲痲筵娼瘤亅矚黼闢鈔蓿阨艾蒹趙粐鱚齠癈鹿粡寂蝟赱齠洲痲筵娼釶辣癈繖蓖齡鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢界苳殺踉氏篏‰纈鴃癆茴瘢綵‰纈鴃癆茴專蜴綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳屍纈鯰癆荀踉晒竢粤蜥繝界苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь踉雌闔胼苳屍續墾踉晒齡鳫鈑葹纈鹿粡寂蝟赱齠洲痲筵娼釶辣癈繖蓖齡鶤闥粤癆竏蒹闥鱚笏蜥瘡鹿粡寂蝟赱齠洲痲筵娼蓖齡跚緕逡齡緕竢鴪繝竢粤被齡墾踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼蒹痲纈挽墅跚緕鈿黼鈔蒹痲纈鈔鹿粡寂蝟赱齠洲痲筵娼草痺蒹癈竚葹闢竚蜈銓鱸繖鱚痺莠蝟昭粡竚癈鷭п粐Ь瘤黼鴟纉蒹繿齡鳫頏蜊癇闢夬鳫粤鹿粡寂蝟赱齠洲痲筵娼癈矚站鰾闕鞜砠跚竟齠蛯跂竰縺鹿粡寂蝟赱齠洲痲筵娼頏蜊癇闢蜒鱚鴈皷鈑跂瘍竢銓瘟鉗鈑蜴謫鹿粡寂蝟赱齠洲痲筵娼孀頏繙蝌釶辣癈繖蜥瘡闢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳屍纈竢鈕蜃癆蜿邵闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢縉蜥瘡被齡臼荻崖桓蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖侃瘢雹苳纂蝟昭粡竚癈鷭п粐Ь鱸轣鴒蓖齡鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡齦矮闕瘟郤蝟昭粡竚癈鷭п粐Ь纓鱸梼芍鈬郤蝟昭粡竚癈鷭п粐Ь纓鱸咐跂粹轣蜴鈔纔貅蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢臼窺臆凱幹逅紫鹿粡寂蝟赱齠洲痲筵娼弟笊辣銓呰阡齦矮闕瘟遲齦皹鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣窺粹轣蜴趙鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈倚齦皹蝟昭粡竚癈鷭п粐Ь纓鱸梼芍鈬郤蝟昭粡竚癈鷭п粐Ь纓鱸咐跂┓齦皹齦矮闕瘟遒鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь瘢雹踉志蜥瘡被齡臼荻崖侃瘢雹苳纂蝟昭粡竚癈鷭п粐Ь閭緕闖粹轣蜴下蝟昭粡竚癈鷭п粐Ь纈鯲瘢齦皺闕瘟隨篌蝟昭粡竚癈鷭п粐Ь纈鯰癆億鹿粡寂蝟赱齠洲痲筵娼吶蜚綸鈑蜴鹿粡寂蝟赱齠洲痲筵娼吶蜚縡洶億粹轣蜴け蝟昭粡竚癈鷭п粐Ь鹿粡寂蝟赱齠洲痲筵娼逅詞蜥瘡被齡逅紫鹿粡寂蝟赱齠洲痲筵娼蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯黼鴟纈鞜▽苳殺踉祉閼絋苳屍纈鯰癆荀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼粡鱚笏蝟鱚髟纉蒹厂鹿粡寂蝟赱齠洲痲筵娼黶逅蔗痕窺粹轣蜴趙丑瘢隍苳蜩鹿粡寂蝟赱齠洲痲筵娼纃瘡蹙苳黼鴟繖鳫齦皹蓖齡踉獅苳纂蝟昭粡竚癈鷭п粐Ь鱚髟纉蒹厂鹿粡寂蝟赱齠洲痲筵娼黶逅蔗痕窺粹轣蜴趙踉晒黶逅闔踟纈篌蝟昭粡竚癈鷭п粐Ь鳫齦皹蓖齡竚蜈銓緕竢鴪繝蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳使闢閼絋苳蒹痲纈膚竢粤被齡墾踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼蒹痲纈黼銓蒹跚緕艱蒹鈕闥轣闔瘍胙闕鹿粡寂蝟赱齠洲痲筵娼頏蜊癇蓖齡踉獅苳纂蝟昭粡竚癈鷭п粐Ь俾縺黼阡癆蒹鱚闔閼粡鱚髟纉鹿粡寂蝟赱齠洲痲筵娼黶逅蔗痕荻粹轣蜴趙丑瘢隍苳蜩踈鐚蝟昭粡竚癈鷭п粐Ь纈胙闕蒹鵜闢蜀蒹跚緕黼銓鐚蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳使闢閼絋苳蒹痲纈踉獅苳纂蝟昭粡竚癈鷭п粐Ь壽竢粤吶蜚縡絋踉晒竢粤蜥繝癇繖轣諷鹿粡寂蝟赱齠洲痲筵娼齦鱚葹竚蜈銓蓍竏緕竢鴪繝蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳使闢閼絋苳蒹痲纈瘤黼阡孀鱸瘤蝟昭粡竚癈鷭п粐Ь踉糸蹙苳脂踉晒纃阨孀頏繙蝌蝟昭粡竚癈鷭п粐Ь踉晒碎閭鞫鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡蓖齡鶩聹蜊蜚鶤蔗迪皴蔗粹笂瘤豁闢筬跚迚谺緕錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭粃姐聰俄儀錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁闢筬跚迚谺緕粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁闢筬跚迚谺緕鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏嚆鴟纈蜥瘡闢囎韶闥熙踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳仔蛹偵黹鱸頸闥蜊蜚鵙踉晒莟鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蒹蜴赱鱧銛轤纈帷鶯被齡鵺鞜竏轣鴣郤蝟昭粡竚癈鷭п粐Ь癘瘟赱碎肅跂纉竰蜷鴦齒辣辣竅跛繖踉祉蜚絋苳紙蛹綣蝟昭粡竚癈鷭п粐Ь瘤粲纉蜚絋苳蜀痺帷鶯被齡鞳竕肅纉蜀聽鱚銓閾鹿粡寂蝟赱齠洲痲筵娼肅跂鶤蒹阡瘡矼閹蛹粤黹鱸頸闥繖草痺蒹鷦蝟昭粡竚癈鷭п粐Ь鈬闥痺粡齡蜴笏鴪闥閾蛹絳鈬闥鴒纈閾鹿粡寂蝟赱齠洲痲筵娼肅跂蜥繝韭悪屋闥銓纈釶絎鉗關纈癆蜴膽蝟昭粡竚癈鷭п粐Ь逑蜊蜚蒹矼閹蛹粤黹鱸頸闥癆癨繖鹿粡寂蝟赱齠洲痲筵娼磔鳫竇齠跚迚蜩蜒瘡踟巻鈔癨齦瘡踟綣蝟昭粡竚癈鷭п粐Ь釿鱚癈繖癇艱癇筬跚迚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐踉蓖草痺蒹纃頸釿鱚癈跚迚癈繿鱚筱鹿粡寂蝟赱齠洲痲筵娼蜩癨阡闥蜀墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉誌讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳支阨齷齡纃閻鈿頏阮蜆黼跚迚齷齡纃鹿粡寂蝟赱齠洲痲筵娼竅跛踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽黼跚迚厂浜不瀘脇斌滴瘡粹纉阡笏蜿闔鹿粡寂蝟赱齠洲痲筵娼癈闌癇蜩踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚壽銛轤纈肅跂纉竰蜷鴦繿鱚纔竇繖葹鰾鹿粡寂蝟赱齠洲痲筵娼跚迚薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳支阨齷齡纃逅闢纉纈蜊蜚闔蛹粤黹鱸頸闥鵺鹿粡寂蝟赱齠洲痲筵娼齦竏跚迚闔蜿縺逑鉤蜴肅跂纉竰蜷鴦鹿粡寂蝟赱齠洲痲筵娼矼跫乙峡囂赱鱸鴬薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒闌鹿粡寂蝟赱齠洲痲筵娼侮蒹銓頏閧跂逑阨瘤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚吶糒竇蒹矼閹閾蛹纉粹逾齔繝蜀跫肅跂鷦蝟昭粡竚癈鷭п粐Ь帷鶯貳闢黼笏蜿銖碯闔踟閾轣蜴閾鹿粡寂蝟赱齠洲痲筵娼肅跂鶤薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь齷齡纃瘡踈銓闥痰阮紿緕釿鱚癈綣蝟昭粡竚癈鷭п粐Ь蛹粤黹鱸頸闥蜊蜚繙闥齡癇鈑鞜竏絳皷鈑鹿粡寂蝟赱齠洲痲筵娼黹鱸頸蜍鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤蜴荀踉獅苳纂蝟昭粡竚癈鷭п粐Ь蜊蜚旭碣鹿粡寂蝟赱齠洲痲筵娼蔗筅踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮俾縺黼繞蒹踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蜩祚粤黹鱸頸闥鶤蔗迪▽苳残纉竰蜷鴦鈔鞜竏絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь閭緕竢銓瘟鉗鈑纈續瘟踈硼蛹粤黹鱸頸闥鹿粡寂蝟赱齠洲痲筵娼頏閧跂逑鈔阯蒹竅矼闌闔阨關纈癆蜴膽蝟昭粡竚癈鷭п粐Ь蹼鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡蓖齡鶩聹蜊蜚鶤蔗迪皴蔗粹笂瘤豁闢筬跚迚谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭延甼慌甍銀錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁闢筬跚迚谺蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁闢筬跚迚谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就聹蜊蜚鶤蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁闢筬跚迚谺裃蜩閭鶩轣銛瘡蓖齡鶩聹蜊蜚鶤蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握狂輝筝妓下碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡蓖齡鶩聹蜊蜚鶤蔗迪甌裼鷽莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡蓖齡鶩聹蜊蜚鶤蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯群声蝟昭粡竚癈鷭п粐Ь踉賛鴦蜿扈緕竢粡鈑就蜩鎰屋臆陟職苳纂蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬迪碕瘤臀∬瓣瘤臀∬瓣鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏サ・踉札个離弌チャルホストのサポ・踉札蜚跂鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩鱚皷闔窺鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆ファイル記述子の限界瘢雹</h1> + + <p>たくさんのバ・踉札船礇襯曠好箸魃人僂垢襴苳詞合、もし、 + 各バ・踉札船礇襯曠好箸瓦箸飽曚覆襯蹈哀侫.ぅ襪慊蠅靴討△襪函鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢがファイル記述子 (<cite>ファイルハンドル</cite>とも呼ばれます) + を使い切ってしまう瘢雹ことがあります。Apache が使用するファイル + 記述子の数は、各エラ・踉札蹈哀侫.ぅ襪砲弔ぢつ、側苳擦離蹈哀侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼ディレクティブにつき 1 つ、さらに内部で使用する 10 から 20、 + の合計になります。Unix オペレ・踉札謄鵐哀轡好謄爐任魯廛蹈札垢瓦箸鹿粡寂蝟赱齠洲痲筵娼使用可能なファイル記述子の数を制限しています。たいていの豺腓で、 + 普通は大きな値のハ・踉札疋螢潺奪箸泙覗笋垢海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏は必要に応じて絽造魍搬腓靴茲逅擦隼遒澆泙垢鹿粡寂蝟赱齠洲痲筵娼以王踉擦里茲逅擦弗苳詞合にはう瘢雹まくいかないかもしれません。</p> + + <ol> + <li>利用しているシステムで setrlimit() + システムコ・踉札襪鷆,気譴討い覆ぁ薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢシステム紊續鳰蜊蜚棉揺壥力読姪が動作しない + (たとえば Solaris 2.3 のよう瘢雹に)。</li> + + <li>要求されるファイル記述子の数が + ハ・踉札疋螢潺奪箸鯆兇┐討靴泙逅察薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢシステムにファイル記述子に関して別の制限が存在してしまっている。 + たとえば、stdio ストリ・踉札爐任魯侫.ぅ覽匯劼偽ぢ以綮箸┐覆鹿粡寂蝟赱齠洲痲筵娼闌癇蜩ぢ、など。</li> + </ol> + 問題が発生した時に茲蠧世訛仆菠,櫓踉察のとおり: + + <ul> + <li>ログファイルの数を減らす。VirtualHost + セクションでログファイルを指定せず、 + メインのログファイルにのみ記録する。</li> + + <li> + もし、前述の 1 または 2 の豺腓任△譴弌鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢを起動する前にファイル記述子を増やします。 + たとえば,里茲逅擦淵好螢廛箸鮖箸い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼碎閭鞫鹿粡寂蝟赱齠洲痲筵娼竢粤蜴碣鹿粡寂蝟赱齠洲痲筵娼跚迚碓碣鹿粡寂蝟赱齠洲痲筵娼蔗筅踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼跫站髟阡絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮ファイル記述子の問題についての楮戮筺鹿粡寂蝟赱齠洲痲筵娼オペレ・踉札謄鵐哀轡好謄爐瓦箸硫魴菠,砲弔い討蓮畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迚黹纉竰蜷鴦譬ファイル記述子と + Apache</a>」の文書を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡蓖齡鶩肬阡纈皴蔗粹笂瘤豁闢闖鬯蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭薫粐聶邃邃錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁闢闖鬯蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁闢闖鬯蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬草痺蒹墺嚆鴟纈纈皷闔界苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹〓蜊齟秉〓蜊瘍纉鈔纔蜀瘡鈔纔苳殺踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ь踉氏鱚羹〓▽苳殺踉脂辯鱆就轣艱鶩蓖辣蜀瘡闕紜鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡蓖齡鶩蒹痲纈皴蔗粹笂瘤豁闢縺粤鬯蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭姐甓娯吾甼錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁闢縺粤鬯蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁闢縺粤鬯蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉私蝟跚芬就壇淋賭▽苳纂蝟昭粡竚癈鷭п粐Ь踉脂辯鱆就轣艱鶩齦皰芍罌踉就杼仭暖掴稚妖淋壮貧塁苳鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莖草痺蒹墺嚆鴟纈纈皷闔界苳纂蝟昭粡竚癈鷭п粐Ь踉晒粡苳纂蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁闢闢蔗迪閭鶩轣銛瘡蓖齡鶩蓖齡貅碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握乙痲吟聹絢碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡蓖齡鶩蓖齡貎莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡蓖齡鶩蓖齡貅昭蝟昭粡竚癈鷭ц襷樟卯鰻誓鹿粡寂蝟赱齠洲痲筵娼…話壅佚侖駄秒鈎辻愴塒窺夸瘤皷闔瘡杜⊆蝟昭粡竚癈鷭п粐Ь蔗痕凱闥膀墟蔗迪丑辻眺豈鱇銖蜚蜿釶谺糘笄鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蔗迪迪銖就蔗痕凱闥膀厩更蔗迪▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉詩續釶辣就艱鈬鱇鬆闔銓就挽楊蜆繞凱闥腆鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏鈿遶賓蜥瘡闢蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就F篤篤蕩纔■旭旭旭跚鉉就0旭案蕩鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■篤旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈杜堙劬草痺蒹闔帷鶯被齡鵙踉晒莟鹿粡寂蝟赱齠洲痲筵娼齡鳫鈑嚆糟齒墾踉晒齡鳫鈑踉氏鱚羹♪蜥瘡闢蔗迪▽苳志蜥瘡鹿粡寂蝟赱齠洲痲筵娼被齡竟鶯蝟昭粡竚癈鷭п粐Ь踉肢苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳思葹蜩蜥瘡闢熙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹帷鶯被齡鱚聽鴦頏痺竇轣蜴蜴蜴膽蝟昭粡竚癈鷭п粐Ь闥瘤鈬纈闔鈬痺蓍鈬癈蜀聽鱚銓蛛磔蒹蜥鹿粡寂蝟赱齠洲痲筵娼瘰鞜鱚銓闢瘢絎闥逅跂蜚閹粤皷鱇碎肬鮗蝟昭粡竚癈鷭п粐Ь闕鞜鉗纉葹鱸鈑繧纈癘繪阯粹轣蜴鵺蜚莠蝟昭粡竚癈鷭п粐Ь繧纈鴦窿纉皷碎癈踉祉閼絋苳似闕鞜銷窺竢蹙踉晒竢粤鈔鹿粡寂蝟赱齠洲痲筵娼竢粤竢逅瘤闕閼絋苳錆蜚蓖繿鱸鈑蒹黼鹿粡寂蝟赱齠洲痲筵娼謗阯銷鱇癆蜴肬鴉癆蜿隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏闔閹蒹蜥齡纈鴦齦韶闥鶯蓖齡鷦蝟昭粡竚癈鷭п粐Ь蜃蔗硼蜴竇蒹癈竢粤挽墅閼絋苳纂蝟昭粡竚癈鷭п粐Ь微鞳鰓纔夸瘤齔闥會阡閭闌齡瘤籬鰾閻鈿瘡跫瘤蝟昭粡竚癈鷭п粐Ь續蓖肬黼鴟纈粤鴉蜴蓖齡釶辣蜩繪鈑鹿粡寂蝟赱齠洲痲筵娼痲糅纉黼癈草痺蒹蜥瘡闢齦韶闥葹鱚髟蜥繖鹿粡寂蝟赱齠洲痲筵娼黼鞜鱇痲糅纉肬縺竏纈鬯閭緕闔蜴膽蝟昭粡竚癈鷭п粐Ь蓍瘰頏閨竏蜒齡蛹鳬鴒繻讒踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就鶯讚蓖齡譬蜩蛹痰跂踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怦蛹瘰頏閨竏纉竰蛯繖硼闥謫蒹蛹痰跂鹿粡寂蝟赱齠洲痲筵娼賓粐鱚齠鞜竇鳫鈑轣跛纈瘤銛轤纈粹轣蜴鷦蝟昭粡竚癈鷭п粐Ь釿鱚癈蜴膃蜩阡蒹闢繻繚瘤齒跿闔瘤蜩癇鹿粡寂蝟赱齠洲痲筵娼蜊韭纃緕闔闕轣竏蜴纉壽竢粤挽墅閼絋苳頏阡閭闌鹿粡寂蝟赱齠洲痲筵娼竢銓瘟銖續蓖肬黼鴟纈蜆緕胱葹釶辣蜩鹿粡寂蝟赱齠洲痲筵娼矼蜴痲糅纉黼癈草痺蒹鈔癆纈竟鶯蓍瘰頏閨竏鹿粡寂蝟赱齠洲痲筵娼癈繻癈蒹鱇粡闔瘡亅痲糅纉鶚鞳鬮蓖齡釶辣續蓖筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市蒹緕繙蜚閹皷鈑蒹纓蜥瘡闢齦韶闥蜩鹿粡寂蝟赱齠洲痲筵娼頏痺竅跛跚迚銛轤纈黼鴟纈鵺癈閹闔肅苺鱇闔鹿粡寂蝟赱齠洲痲筵娼瘤絳鈔繿鱚鈿粐蜚蜿釶葹鰾鱚齒胄鱚壽綣蝟昭粡竚癈鷭п粐Ь瘟粡黶糜瘤艱癆蒹黼鬣碣阯黼逡齡竟鶯蓍鷦蝟昭粡竚癈鷭п粐Ь癇閹蒹鳫竢谺蒹癆纉鴦蜿銖轣銷鳫纈鷦蝟昭粡竚癈鷭п粐Ь蜴竚蜴励竅鞳癘蜃癆闥鈔癆纈粹碯轣銷鹿粡寂蝟赱齠洲痲筵娼碣阯黼鴦纉鞳竕瘡踟趙纈鈬鵺鈿蓍竅竅綣蝟昭粡竚癈鷭п粐Ь鳫碎纃鵺踉蓖竟齠蛯跂闌蜿蜩粐鱚齠繖繻阯踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳師皷鈑闔帷鶯被齡鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳師皷鈑蒹纓蜥瘡闢髟蜚縺齷瘤齦鞳鱠蜒蛛跛蝟昭粡竚癈鷭п粐Ь闖謫蜍闌辣閼搶皷逅踟粐闔閹蒹鞜竏綣蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔蛹纉迴齡蜍繻竢粤蔗筮竢鈕閼絋苳闥鹿粡寂蝟赱齠洲痲筵娼竢粤齟蹼竢鈕閼絋苳皐閼皷迚赱蒹闌跫鈑墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼逅詞帷鶯貳闢瘰痺蒹鱧逅紫鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈令辣鞜竏絎闥膽蝟昭粡竚癈鷭п粐Ь閭緕闖齟繧鞜竏綣蝟昭粡竚癈鷭п粐Ь瘢雹踉晒帷鶯貳闢熙瘢雹苳纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮阨鴦絳銷粐蜚蜿釶粡鱚笏蝟纉瘤瘤鼈阨趙矼鹿粡寂蝟赱齠洲痲筵娼韭痺繖銓竢粤逅詞帷鶯貳闢熙瘢雹苳殺踉晒竢粤繝闔夬鹿粡寂蝟赱齠洲痲筵娼轣諷蓍鳬瘡癆鈬繖繖瘠齦鱚葹綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳似鞜竏絎闥胼踉晒竢粤林銓鴒濶銓蒹瘢賓鹿粡寂蝟赱齠洲痲筵娼痲糅纉癈蒹瘟黼鴟纈闔瘡踟竢皷逅踟黼鹿粡寂蝟赱齠洲痲筵娼癆痲糅纉蜴蒹瘢雹踉志蜥瘡被齡逅紫銓鴒踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮槍粡闔瘡踟轣銷纈鴦癨蜩痺竇齠蛯跂迴鱚鹿粡寂蝟赱齠洲痲筵娼瘤鈬瘢絎闥逅跂草痺蒹纈迚艾銓矼鹿粡寂蝟赱齠洲痲筵娼痺竇齠蛯跂竢粤瘰痺蒹鱧閼絋苳錆鮗蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳紙鞜竏絎闥胼踉晒竢粤癈齦迚鈑蒹痲糅纉黼竟蜴篌蝟昭粡竚癈鷭п粐Ь黶辣纈鬯聲笏闔迚艾銓齒葹瘡貅蝟昭粡竚癈鷭п粐Ь粐鱚齠纉竢粤瘰痺蒹鱧閼絋苳鱚蜒諷綣蝟昭粡竚癈鷭п粐Ь纈鬯蓍蜩闢皷碎蒹踉祉閼絋苳屍纈鯀跚癈閼絋苳纂蝟昭粡竚癈鷭п粐Ь蜥繝韭痺繖銖蜆逅詞帷鶯貳闢熙瘢雹苳黼笏蜿隨闥鹿粡寂蝟赱齠洲痲筵娼纔瘢韭綺鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь纈鯀跚癈鞜竏絎闥瘰痺蒹鱧鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳士阡癆阨瘤黼踉祉閼絋苳鯖閼絋苳瘤竢粤職踉晒竢粤鷦蝟昭粡竚癈鷭п粐Ь蛹筬竅鰾葹鱇笏纈鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳支阨踈迚艾鈬繖纈鯀跚癈癇黼鴟蜴跫竅貅蝟昭粡竚癈鷭п粐Ь黼鴦蓖鈿瘡釿跿粤蒹闕瘟釶辣楠纔瘢韭絳鹿粡寂蝟赱齠洲痲筵娼蜀閭瘡黼鴦鱚瘢蛹蛛蜴†闥韆蜒鵞鹿粡寂蝟赱齠洲痲筵娼緕阨蛹鈬繖痲竢粤嚆鴟纈糟蛛蝟昭粡竚癈鷭п粐Ь蔔皷笂閼絋苳皿蜩逾竟齠蛯跂闥蒹纈鈿蝟昭粡竚癈鷭п粐Ь葹粹轣蜴蒹跚緕纉闥蒹蜥瘢鱚齒跿闔繝癜黼鹿粡寂蝟赱齠洲痲筵娼竚蜈銓閻齊鳫粤葹蜴肬鴉癆蜿蜴蒹繿齡踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢王苳屍繝蜚衷銖蜆纈癆蜿銖王苳纂蝟昭粡竚癈鷭п粐Ь鞜竏瘡跫跛蜥瘡闢矼痲痺竇齠蛯跂蛛蒹鹿粡寂蝟赱齠洲痲筵娼竢粤被齡墾踉晒竢粤縺粤鳫瘡賓銓纈聲竇鵺闢綣蝟昭粡竚癈鷭п粐Ь蓍竏鱚闔肅苺鱚黼蜀聽鱚銓蜴鱠痺纉楠鮗蝟昭粡竚癈鷭п粐Ь逅跂蜀蒹闔肅苺鱇闔闥踉祉閼絋苳似闖闕閼絋苳纂蝟昭粡竚癈鷭п粐Ь闔蜴繖蜥瘡闢黼笏蜿肬竢粤矚鬯竢蹙踉晒竢粤蝟昭粡竚癈鷭п粐Ь鈔踉祉閼絋苳似癇闕閼絋苳黼鞜鱇蜴鱠痺絳莠蝟昭粡竚癈鷭п粐Ь葹鈿遶竢粤被齡墾踉晒竢粤縺粤鬮齦韶闥鈑鳫纈竅綣蝟昭粡竚癈鷭п粐Ь矼肬鱚蜚草痺蒹膚繿齡轣粤鐚蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳似闖闕閼絋苳瘤鱚髟纉蜴竚纉蒹縺粤鮗蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳使闢癇闕閼絋苳錆瘍胙闕鹿粡寂蝟赱齠洲痲筵娼竢粤矚鬯竢蹙踉晒竢粤蛹矼緕蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩黼笊鱸闔竇鴈癇竢銓鳫跛蜴痺竇齠鐚蝟昭粡竚癈鷭п粐Ь癇笊赱黼鴟纈癈繖賓癨纈闔闌鵺癈鳫躰蝟昭粡竚癈鷭п粐Ь蜚蓍肅鱚跛鳫纈悶黶竢粤矚鬯竢蹙踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼蜴蒹硼逅跂癈銖痲蜴甅鈬黼鴟纈瘡跂篌蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳諮鱸闖闕閼絋苳錆鈔蒹阨繖肬鎬竢躰蝟昭粡竚癈鷭п粐Ь鉤跂蜴鴈瘡黼鴦窿纉竢粤頏蝟癆絎肬鎬竢蹙踉晒竢粤蝟昭粡竚癈鷭п粐Ь磑蜿踟竢粤被齡墾踉晒竢粤縺粤胚釿闔瘡蜚鈿瘡跫鹿粡寂蝟赱齠洲痲筵娼齒辣闔葹痺竇齠竢粤肬鎬竢蹙踉晒竢粤艱蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳諮鱸闖闕閼絋苳錆纖緕竢粤被齡瑳蝟昭粡竚癈鷭п粐Ь鱸闖闕閼絋苳蒹痲纈部蜊竟鶯瘤阡癆鹿粡寂蝟赱齠洲痲筵娼蜩闔粡闔齡闔踟闔踟逅跂辣銓蓍竟跚笙蝟昭粡竚癈鷭п粐Ь蒹赱瘡黼笊鱸闔闌繖草痺蒹鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳脂踉晒纃蓿繙就閼閼焉窿纉鶤蔗迪▽苳餐跛阯偵銷鹿粡寂蝟赱齠洲痲筵娼胙闕踉晒瓲苳纃續祟蹙苳皐鱚闔皷齡緕鱚齔繝筮鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢衷逅癆蛯蛹蜚趙纈鳫纈鵙踉晒莢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐辣銓蜿鈬縺鳰蜈鬪瘧闥蜚閹鳫纈粹阡緕綣蝟昭粡竚癈鷭п粐Ь繿鱚籬闥蒹纓蜥瘡闢鳬鳫鞳鳰蒹黼鹿粡寂蝟赱齠洲痲筵娼碣阯黼鴦蛹瘡黼銓轣蜴纈鬣鞜艱鶤蒹鱚鹿粡寂蝟赱齠洲痲筵娼蜩闥諱鳫筱赳繪鼬蜃蔗踟矼鴦闕闔綺鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳市竢銓蜴蒹踉祉閼絋苳似鞜竏絎闥胼踉晒竢粤逅跂麗瑳蝟昭粡竚癈鷭п粐Ь鞜竏紮黼鴟纈閻鈿痺瘡踟笏蜿蜴蓍轣銕纈鹿粡寂蝟赱齠洲痲筵娼蜃蔗黼蒹纓踉祉閼絋苳屍纈鯰癆荀踉晒竢粤蜥繝綣蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳似鞜竏絎闥胼踉晒竢粤蜥瘡闢闥逅跂墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼嚆鴟纈倚瘰痺蒹鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思葹粹纉蓍辣瘤部縺銖葹鱚髟纉肬瘤肅跂鹿粡寂蝟赱齠洲痲筵娼矼芍銕蜴竢粤鞜竏絋踉晒竢粤跛跫闍繖闥綣蝟昭粡竚癈鷭п粐Ь鞜竏粹笂壽蜩縺銖葹鞜艱竅矼窿纉黼癈鹿粡寂蝟赱齠洲痲筵娼竢粤蔗痕鞜竏絎闥膀瘰痺蒹踉晒竢粤闥跛鳫纈鵺鹿粡寂蝟赱齠洲痲筵娼瘡阨艾纓鳫纈竅瘡齒窿纉蜚鷦蝟昭粡竚癈鷭п粐Ь踉祉閼絋苳肢雕瘰痺蒹鱧踉晒竢粤踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮侮鰾纈轣諷蓍鳬頤跚鉉瘟黼鴟纈鹿粡寂蝟赱齠洲痲筵娼鞜艱竢粤蔗痕鞜竏絎闥膀瘰痺蒹踉晒竢粤麗弟鹿粡寂蝟赱齠洲痲筵娼鈿竢粤蔗痕鞜竏絎闥膀閼絋苳蜩阨趙鱚癆綣蝟昭粡竚癈鷭п粐Ь緕粲纉跫關蒹遯鶯蓖齡瘍纉矼鹿粡寂蝟赱齠洲痲筵娼繪纈繻鱚赱蜴謫纃絎膊蹙苳錆鹿粡寂蝟赱齠洲痲筵娼▽踉祉閼絋苳紙蛹絎蔗迪閼絋苳拶▽踉祉閼絋苳皿蜒闔鶩蜊瘍絎芍网踉晒竢粤⊆蝟昭粡竚癈鷭п粐Ь跚鉉竢銓瘟鉗鈑蒹鱚聲竕鈑踉祉閼絋苳晒瘰痺蒹踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼└踉糸蹙苳糸踉晒纃蝟昭粡竚癈鷭п粐Ь竢粤蔗痕鞜竏絎闥膀瘰痺蒹蛹絎蔗迪閼絋苳拶鮗蝟昭粡竚癈鷭п粐Ь竢粤鞜竏絲粹笂鈔纔讀踉晒竢粤〒踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽蜩繿鱚砠閹蜩竕韭蜴絳粫纈緕竇纉綣蝟昭粡竚癈鷭п粐Ь粤跚鈬跛肬迴齡癇銖癆阨鞜艱跛鹿粡寂蝟赱齠洲痲筵娼鳬蜚瘡碣阯黼鴦鈬瘤闌筮蒹鈬碣阯黼鮗蝟昭粡竚癈鷭п粐Ь闔笏竢粤蔗痕鞜竏絎闥膀閼絋苳錆蒹跛綣蝟昭粡竚癈鷭п粐Ь蜥繝諷蒹鞜竏鞜艱鶤趙纈鳫纈跛痰跂鹿粡寂蝟赱齠洲痲筵娼跚站跚鉉鳫轣蜴纈鬪鹿粡寂蝟赱齠洲痲筵娼竢粤蔗痕鞜竏絎闥膀瘰痺蒹踉晒竢粤瘤緕窿纉綣蝟昭粡竚癈鷭п粐Ь瘍纉踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就肬阡纈譬苳纂蝟昭粡竚癈鷭п粐Ь踉晒硼糯鹿粡寂蝟赱齠洲痲筵娼讀苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁闢鈔纔谺緕閭鶩轣銛瘡蓖齡鶩蜴粤蔗迪郤碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握狭繧畄皺骸碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡蓖齡鶩蜴粤蔗迪鄂莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡蓖齡鶩蜴粤蔗迪郤昭蝟昭粡竚癈鷭ц襷樟卯鹸声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼辣瘢綵∝緕纈癆闥竢銓緕塒夂糯黼鱧苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼蜚跂草痺蒹蜥瘡闢粹笊辣銓癆蜿遉踉晒絋苳纂蝟昭粡竚癈鷭п粐Ь踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´逮站苒阨鈔蓍跚鉉碎皷筴釶皷筴鱚笏蝟紿苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■篤篤篤就0旭旭唖蜴觸■旭旭篤⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就F動旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莟跚芬就壇淋賭▽苳餐鞜竏帷鶯被齡閭緕闔右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮壽鴉踉祉蜚絋苳志蜥瘡闢熙踉晒竕繙纈蒹鱇笏蜒閹鹿粡寂蝟赱齠洲痲筵娼轣蜴蜴蜴迴鱚葹闔黼鴟纈闔轣竏蜴絳鷦蝟昭粡竚癈鷭п粐Ь蜀聽鱚銓蛛磔蒹蜥韶癇緕蓖齡釶辣楠纔瘢韭絳蜩鹿粡寂蝟赱齠洲痲筵娼閹粤皷鱇碎肬竢逅瘤蜈鼈癇蜴黼鴟纈葹鹿粡寂蝟赱齠洲痲筵娼繪阯粹轣蜴鵺蜚黼鴟纈痺竇齠蛯跂鷦蝟昭粡竚癈鷭п粐Ь踉雌瘢隍苳似闕鞜銷窺竢蹙踉晒黶逅鈔鹿粡寂蝟赱齠洲痲筵娼黶逅竢逅瘤闕瘢隍苳錆蜚蓖繿鱸鈑蒹黼鹿粡寂蝟赱齠洲痲筵娼謗阯銷鱇癆蜴肬鴉癆蜿隨鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏闔閹蒹蜥齡纈鴦齦韶闥賓癈繖鹿粡寂蝟赱齠洲痲筵娼鶯蓖齡鱸艾阨閹蒹陂帙鴦蜿銖鈔癆纈羲蝟昭粡竚癈鷭п粐Ь鞜竏齦韶闥硼賓癈繖鈔瘢絖矚黼鶯蓖齡鷦蝟昭粡竚癈鷭п粐Ь闢蒹癆鱸瘤閹蜥瘡闢齒辣辣瘡齒鹿粡寂蝟赱齠洲痲筵娼竅跛繖闢矚黼闥闔鶯蓖齡鶤鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳斬繻阯跚齡粹笊辣銓癆蜿鞜艱蜒纔韭瘟瘡貅蝟昭粡竚癈鷭п粐Ь續瘟踈鶯蓖齡竟鶯草痺蒹纈皷闔鈔鹿粡寂蝟赱齠洲痲筵娼赱鬯鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢帷鶯被齡竟鶯王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹瘢絖矚黼筮蔗迪▽苳士瘢絖矚黼帷鶯貅蝟昭粡竚癈鷭п粐Ь闢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹∫隲矚黼筮蔗迪▽苳刺亅矚黼帷鶯被齡鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就纔瘢韭纉譬帷鶯被齡逅跂肬竢迯闔鹿粡寂蝟赱齠洲痲筵娼黼頌薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹≫續瘟踈譬侮辮蜩笊齠蜿閹蜥瘡鹿粡寂蝟赱齠洲痲筵娼被齡癆竏蜴胼踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就聹蜊蜚鶤蔗迪▽苳仔蛹偵黹鱸頸闥蜊蜚鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就轣齠譬締釶迚竅跛衷鈕蜃繖癈帷鶯貅蝟昭粡竚癈鷭п粐Ь闢鈑薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢衷鈕蜃癆蜿粡鱚笏蝟纉王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉歯讀苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪v蜥瘡蓖齡▽苳殺瘢雹踉志蜥瘡被齡逅紫薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪n瘢纐蜥瘡蓖齡▽苳士瘢縉蜥瘡被齡薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹〓迴箝竢鱚譯黼鴟纈釶辣▽苳屍纈鯲瘢絋踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚畆蝟昭粡竚癈鷭п粐Ь鱚羹〓迴箝竢鱚譯黼鴟纈瘡蛛鵞嚆鴟纈糟蛛鵙踉晒瓲苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚蓿繙就閼闥絎蔗迪s纈鴃癆茴嚆鴟纈倚薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳仔闌謫鴒蜴繧蒹蜥蜥瘡闢竢鈕蜃癆蜿轣蝟昭粡竚癈鷭п粐Ь蜴草痺蒹踉祉閼絋苳鮫哘踉晒竢粤闕轣鈔蜴齬蜚竏黼胚谺蝟昭粡竚癈鷭п粐Ь蛹糒逅纉竰蜷闔蓖草痺蒹癇黼綣蝟昭粡竚癈鷭п粐Ь闔肅苺鱇闔蛹絎癇繙迚釶闔賓粐鱚齠纉鈔鹿粡寂蝟赱齠洲痲筵娼黼鴟纈瘢纉癨繻竢竢鈕蜃癆蜿迚齡瘠纉鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∽闖鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼閼苳纂蝟昭粡竚癈鷭п粐Ь踉晒蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲蒹痲Ь粡聿蜚閭鶩轣銛瘡蓖齡鶩蜴粤蔗迪皴蔗粹笂瘤豁闢鈔纔谺蔗迪錫鬲嬢纓蛹迴粤旭挟桓碣蜴粤旭旭旭旭旭羃訓姐渦粃錫鬲将粤銛跛錫鬲娼蓿繙洲芍粤踉甎瘰痺蒹鞣蜚鱚絲蔗粹笂瘤豁闢鈔纔谺蔗迪粋襲逅脂篏岩幻箚籵繝隙矮畊幹乙挟聲換皺祁蚊聲汲軍甓Ь蔗粹笂瘤豁闢鈔纔谺蔗迪鹿畩鹿粡寂蝟赱齠洲蔘鉉Ь誓穐声蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊蜒裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜齡鱸笏▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蜴粤蔗迪遐苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭ц縺筵鞘蜀芍甎蔗粹笂瘤豁闢鈔纔谺裃蜩閭鶩轣銛瘡蓖齡鶩蜴粤蔗迪甌裼鷦碣鈬肅跂閼碓斡幹錫鬲冗鈔纔旭旭旭旭握經絏斡原啓碣纐貅碣皴釈鱚羹Н竍蜚繻鞜竏絲蔗筮芍繞閭鶩轣銛瘡蓖齡鶩蜴粤蔗迪甌裼鷽莉窺凱瘢雹蜆輯筝娯岩矼齋籵籬拘寛偽贋甦高卸群竊甬盞梶翁乗閭鶩轣銛瘡蓖齡鶩蜴粤蔗迪甌裼鷦昭蝟昭粡竚癈鷭ц襷樟卯顕声蝟昭粡竚癈鷭п粐Ь踉賛鴦蜿扈緕竢粡鈑就蜩鎰屋臆陟職苳纂蝟昭粡竚癈鷭п粐Ь踉察掴痴捐蔗迪嫗棉↓彝誰堋挽楊鱇銖蜚蜿釶豁裏鹿粡寂蝟赱齠洲痲筵娼∵雕鱧勵豈堋蔗迪鵜瘤皷闔瘡▽苳纂蝟昭粡竚癈鷭п粐Ь踉肢跪鷭∵雕鱧更康譬迪碕瘤臀∬瓣瘤臀∬瓣鹿粡寂蝟赱齠洲痲筵娼蒹痲鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼絋苳餐鞜竏バ・踉札船礇襯曠好叛睫製蜚跂鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩鱚皷闔窺鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆草痺蒹ぢバ・踉札船礇襯曠好叛睫製右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮竕バ・踉札船礇襯曠好蜚絋苳ぢという瘢雹用語は、1 台のマシン紊鹿粡寂蝟赱齠洲痲筵娼一つ以紊離機バを、 + それう苳擦貶未琉磴逅札曠好般で見せる運用方法のことを指します。 + たとえば、一つのサ・踉札个魘逅四垢詈瑤硫颱踉子が、 + ユ・踉札兇僕計なパス巳苳擦鰺弋瓩擦困法黶逅竢逅瘤闕瘢隍苳纂蝟昭粡竚癈鷭п粐Ьぢや <samp>www.company2.com</samp> といったそれう苳擦譴妨罵鹿粡寂蝟赱齠洲痲筵娼ドメイン巳苳擦妊逅札Д屮機バにアクセスできるよう瘢雹にしたい、 + といったことはしばしばあります。</p> + + <p>Apache は、特に蠅鯑譴覆う苳歯態で IP ベ・踉札垢離弌チャルホスト + をサポ・踉札箸靴榛能蕕離機バの一つです。バ・踉札献腑ぢ以降の Apache + では、IP ベ・踉札垢肇諭ムベ・踉札垢離弌チャルホストの陸苳司鬟汽檗ト + しています。ネ・踉札爛戞スのバ・踉札船礇襯曠好箸蓮▲曠好肇戞スあるいは非 + IP ベ・踉札垢離弌チャルホストと呼ばれることもあります。</p> + + <p>以王踉擦離據ジでは、Apache バ・踉札献腑鹿粡寂蝟赱齠洲痲筵娼以降でのバ・踉札船礇襯曠好箸離汽檗トについての楮戮鮴睫世靴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢バ・踉札船礇襯曠好箸離汽檗ト</h2> + + <ul> + <li><a + href="name-based.html">ネ・踉札爛戞スのバ・踉札船礇襯曠好薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹∫隲矚黼筮蔗迪▽苳刺ベ・踉札垢離弌チャルホスト</a></li> + + <li><a + href="examples.html">バ・踉札船礇襯曠好箸琉貳姪弊瀋衫薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼鱚羹≫續瘟踈譬バ・踉札船礇襯曠好箸離泪奪船鵐阿砲弔い討陸苳施細</a></li> + + <li><a href="fd-limits.html">ファイル記述子の限界瘢雹</a></li> + + <li><a + href="mass.html">大量のバ・踉札船礇襯曠好箸瞭暗弊瀋薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢設定ディレクティブ</h2> + + <ul> + <li><a + href="../mod/core.html#virtualhost"><VirtualHost></a></li> + + <li><a + href="../mod/core.html#namevirtualhost">NameVirtualHost</a></li> + + <li><a href="../mod/core.html#servername">ServerName</a></li> + + <li><a href="../mod/core.html#serveralias">ServerAlias</a></li> + + <li><a href="../mod/core.html#serverpath">ServerPath</a></li> + </ul> + + + <p>バ・踉札船礇襯曠好箸寮瀋蠅離妊丱奪阿鬚垢襪砲鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢのコマンドラインスイッチ <code>-S</code> が便利です。 + Apache が設定ファイルをどう瘢雹解析したかについて出力します。 + IP アドレスとサ・踉札侈を注意職踉擦瓦戮譴弌鹿粡寂蝟赱齠洲痲筵娼設定の間違いを見つける助けになるでしょう瘢雹。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/vhosts/ip-based.html b/htdocs/manual/vhosts/ip-based.html new file mode 100644 index 0000000000..17491e8cbf --- /dev/null +++ b/htdocs/manual/vhosts/ip-based.html @@ -0,0 +1,139 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache IP-based Virtual Host Support</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Apache IP-based Virtual Host Support</h1> + <strong>See also:</strong> <a href="name-based.html">Name-based + Virtual Hosts Support</a> + <hr /> + + <h2>System requirements</h2> + As the term <cite>IP-based</cite> indicates, the server + <strong>must have a different IP address for each IP-based + virtual host</strong>. This can be achieved by the machine + having several physical network connections, or by use of + virtual interfaces which are supported by most modern operating + systems (see system documentation for details, these are + frequently called "ip aliases", and the "ifconfig" command is + most commonly used to set them up). + + <h2>How to set up Apache</h2> + There are two ways of configuring apache to support multiple + hosts. Either by running a separate httpd daemon for each + hostname, or by running a single daemon which supports all the + virtual hosts. + + <p>Use multiple daemons when:</p> + + <ul> + <li>There are security partitioning issues, such as company1 + does not want anyone at company2 to be able to read their + data except via the web. In this case you would need two + daemons, each running with different <a + href="../mod/core.html#user">User</a>, <a + href="../mod/core.html#group">Group</a>, <a + href="../mod/core.html#listen">Listen</a>, and <a + href="../mod/core.html#serverroot">ServerRoot</a> + settings.</li> + + <li>You can afford the memory and <a + href="../misc/descriptors.html">file descriptor + requirements</a> of listening to every IP alias on the + machine. It's only possible to <a + href="../mod/core.html#listen">Listen</a> to the "wildcard" + address, or to specific addresses. So if you have a need to + listen to a specific address for whatever reason, then you + will need to listen to all specific addresses. (Although one + httpd could listen to N-1 of the addresses, and another could + listen to the remaining address.)</li> + </ul> + Use a single daemon when: + + <ul> + <li>Sharing of the httpd configuration between virtual hosts + is acceptable.</li> + + <li>The machine services a large number of requests, and so + the performance loss in running separate daemons may be + significant.</li> + </ul> + + <h2>Setting up multiple daemons</h2> + Create a separate httpd installation for each virtual host. For + each installation, use the <a + href="../mod/core.html#listen">Listen</a> directive in the + configuration file to select which IP address (or virtual host) + that daemon services. e.g. +<pre> + Listen www.smallco.com:80 +</pre> + It is recommended that you use an IP address instead of a + hostname (see <a href="../dns-caveats.html">DNS caveats</a>). + + <h2>Setting up a single daemon with virtual hosts</h2> + For this case, a single httpd will service requests for the + main server and all the virtual hosts. The <a + href="../mod/core.html#virtualhost">VirtualHost</a> directive + in the configuration file is used to set the values of <a + href="../mod/core.html#serveradmin">ServerAdmin</a>, <a + href="../mod/core.html#servername">ServerName</a>, <a + href="../mod/core.html#documentroot">DocumentRoot</a>, <a + href="../mod/core.html#errorlog">ErrorLog</a> and <a + href="../mod/mod_log_config.html#transferlog">TransferLog</a> + or <a href="../mod/mod_log_config.html#customlog">CustomLog</a> + configuration directives to different values for each virtual + host. e.g. +<pre> + <VirtualHost www.smallco.com> + ServerAdmin webmaster@mail.smallco.com + DocumentRoot /groups/smallco/www + ServerName www.smallco.com + ErrorLog /groups/smallco/logs/error_log + TransferLog /groups/smallco/logs/access_log + </VirtualHost> + + <VirtualHost www.baygroup.org> + ServerAdmin webmaster@mail.baygroup.org + DocumentRoot /groups/baygroup/www + ServerName www.baygroup.org + ErrorLog /groups/baygroup/logs/error_log + TransferLog /groups/baygroup/logs/access_log + </VirtualHost> +</pre> + It is recommended that you use an IP address instead of a + hostname (see <a href="../dns-caveats.html">DNS caveats</a>). + + <p>Almost <strong>any</strong> configuration directive can be + put in the VirtualHost directive, with the exception of + directives that control process creation and a few other + directives. To find out if a directive can be used in the + VirtualHost directive, check the <a + href="../mod/directive-dict.html#Context">Context</a> using the + <a href="../mod/directives.html">directive index</a>.</p> + + <p><a href="../mod/core.html#user">User</a> and <a + href="../mod/core.html#group">Group</a> may be used inside a + VirtualHost directive if the <a href="../suexec.html">suEXEC + wrapper</a> is used.</p> + + <p><em>SECURITY:</em> When specifying where to write log files, + be aware of some security risks which are present if anyone + other than the user that starts Apache has write access to the + directory where they are written. See the <a + href="../misc/security_tips.html">security tips</a> document + for details.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/vhosts/mass.html b/htdocs/manual/vhosts/mass.html new file mode 100644 index 0000000000..eb46f3db6f --- /dev/null +++ b/htdocs/manual/vhosts/mass.html @@ -0,0 +1,442 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Dynamically configured mass virtual hosting</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Dynamically configured mass virtual + hosting</h1> + + <p>This document describes how to efficiently serve an + arbitrary number of virtual hosts with Apache 1.3. <!-- + + Written by Tony Finch (fanf@demon.net) (dot@dotat.at). + + Some examples were derived from Ralf S. Engleschall's document + http://www.engelschall.com/pw/apache/rewriteguide/ + + Some suggestions were made by Brian Behlendorf. + + --> + </p> + + <h2><a id="contents" name="contents">Contents:</a></h2> + + <ul> + <li><a href="#motivation">Motivation</a></li> + + <li><a href="#overview">Overview</a></li> + + <li><a href="#simple">Simple dynamic virtual hosts</a></li> + + <li><a href="#homepages">A virtually hosted homepages + system</a></li> + + <li><a href="#combinations">Using more than one virtual + hosting system on the same server</a></li> + + <li><a href="#ipbased">More efficient IP-based virtual + hosting</a></li> + + <li><a href="#oldversion">Using older versions of + Apache</a></li> + + <li><a href="#simple.rewrite">Simple dynamic virtual hosts + using <code>mod_rewrite</code></a></li> + + <li><a href="#homepages.rewrite">A homepages system using + <code>mod_rewrite</code></a></li> + + <li><a href="#xtra-conf">Using a separate virtual host + configuration file</a></li> + </ul> + <hr /> + + <h2><a id="motivation" name="motivation">Motivation</a></h2> + + <p>The techniques described here are of interest if your + <code>httpd.conf</code> contains many + <code><VirtualHost></code> sections that are + substantially the same, for example:</p> +<pre> +NameVirtualHost 111.22.33.44 +<VirtualHost 111.22.33.44> + ServerName www.customer-1.com + DocumentRoot /www/hosts/www.customer-1.com/docs + ScriptAlias /cgi-bin/ /www/hosts/www.customer-1.com/cgi-bin +</VirtualHost> +<VirtualHost 111.22.33.44> + ServerName www.customer-2.com + DocumentRoot /www/hosts/www.customer-2.com/docs + ScriptAlias /cgi-bin/ /www/hosts/www.customer-2.com/cgi-bin +</VirtualHost> +# blah blah blah +<VirtualHost 111.22.33.44> + ServerName www.customer-N.com + DocumentRoot /www/hosts/www.customer-N.com/docs + ScriptAlias /cgi-bin/ /www/hosts/www.customer-N.com/cgi-bin +</VirtualHost> +</pre> + <br /> + <br /> + + + <p>The basic idea is to replace all of the static + <code><VirtualHost></code> configuration with a mechanism + that works it out dynamically. This has a number of + advantages:</p> + + <ol> + <li>Your configuration file is smaller so Apache starts + faster and uses less memory.</li> + + <li>Adding virtual hosts is simply a matter of creating the + appropriate directories in the filesystem and entries in the + DNS - you don't need to reconfigure or restart Apache.</li> + </ol> + <br /> + <br /> + + + <p>The main disadvantage is that you cannot have a different + log file for each virtual host; however if you have very many + virtual hosts then doing this is dubious anyway because it eats + file descriptors. It is better to log to a pipe or a fifo and + arrange for the process at the other end to distribute the logs + to the customers (it can also accumulate statistics, etc.).</p> + <hr /> + + <h2><a id="overview" name="overview">Overview</a></h2> + + <p>A virtual host is defined by two pieces of information: its + IP address, and the contents of the <code>Host:</code> header + in the HTTP request. The dynamic mass virtual hosting technique + is based on automatically inserting this information into the + pathname of the file that is used to satisfy the request. This + is done most easily using <a + href="../mod/mod_vhost_alias.html"><code>mod_vhost_alias</code></a>, + but if you are using a version of Apache up to 1.3.6 then you + must use <a + href="../mod/mod_rewrite.html"><code>mod_rewrite</code></a>. + Both of these modules are disabled by default; you must enable + one of them when configuring and building Apache if you want to + use this technique.</p> + + <p>A couple of things need to be `faked' to make the dynamic + virtual host look like a normal one. The most important is the + server name which is used by Apache to generate + self-referential URLs, etc. It is configured with the + <code>ServerName</code> directive, and it is available to CGIs + via the <code>SERVER_NAME</code> environment variable. The + actual value used at run time is controlled by the <a + href="../mod/core.html#usecanonicalname"><code>UseCanonicalName</code></a> + setting. With <code>UseCanonicalName Off</code> the server name + comes from the contents of the <code>Host:</code> header in the + request. With <code>UseCanonicalName DNS</code> it comes from a + reverse DNS lookup of the virtual host's IP address. The former + setting is used for name-based dynamic virtual hosting, and the + latter is used for IP-based hosting. If Apache cannot work out + the server name because there is no <code>Host:</code> header + or the DNS lookup fails then the value configured with + <code>ServerName</code> is used instead.</p> + + <p>The other thing to `fake' is the document root (configured + with <code>DocumentRoot</code> and available to CGIs via the + <code>DOCUMENT_ROOT</code> environment variable). In a normal + configuration this setting is used by the core module when + mapping URIs to filenames, but when the server is configured to + do dynamic virtual hosting that job is taken over by another + module (either <code>mod_vhost_alias</code> or + <code>mod_rewrite</code>) which has a different way of doing + the mapping. Neither of these modules is responsible for + setting the <code>DOCUMENT_ROOT</code> environment variable so + if any CGIs or SSI documents make use of it they will get a + misleading value.</p> + <hr /> + + <h2><a id="simple" name="simple">Simple dynamic virtual + hosts</a></h2> + + <p>This extract from <code>httpd.conf</code> implements the + virtual host arrangement outlined in the <a + href="#motivation">Motivation</a> section above, but in a + generic fashion using <code>mod_vhost_alias</code>.</p> +<pre> +# get the server name from the Host: header +UseCanonicalName Off + +# this log format can be split per-virtual-host based on the first field +LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon +CustomLog logs/access_log vcommon + +# include the server name in the filenames used to satisfy requests +VirtualDocumentRoot /www/hosts/%0/docs +VirtualScriptAlias /www/hosts/%0/cgi-bin +</pre> + + <p>This configuration can be changed into an IP-based virtual + hosting solution by just turning <code>UseCanonicalName + Off</code> into <code>UseCanonicalName DNS</code>. The server + name that is inserted into the filename is then derived from + the IP address of the virtual host.</p> + <hr /> + + <h2><a id="homepages" name="homepages">A virtually hosted + homepages system</a></h2> + + <p>This is an adjustment of the above system tailored for an + ISP's homepages server. Using a slightly more complicated + configuration we can select substrings of the server name to + use in the filename so that e.g. the documents for + <samp>www.user.isp.com</samp> are found in + <code>/home/user/</code>. It uses a single <code>cgi-bin</code> + directory instead of one per virtual host.</p> +<pre> +# all the preliminary stuff is the same as above, then + +# include part of the server name in the filenames +VirtualDocumentRoot /www/hosts/%2/docs + +# single cgi-bin directory +ScriptAlias /cgi-bin/ /www/std-cgi/ +</pre> + + <p>There are examples of more complicated + <code>VirtualDocumentRoot</code> settings in <a + href="../mod/mod_vhost_alias.html">the + <code>mod_vhost_alias</code> documentation</a>.</p> + <hr /> + + <h2><a id="combinations" name="combinations">Using more than + one virtual hosting system on the same server</a></h2> + + <p>With more complicated setups you can use Apache's normal + <code><VirtualHost></code> directives to control the + scope of the various virtual hosting configurations. For + example, you could have one IP address for homepages customers + and another for commercial customers with the following setup. + This can of course be combined with conventional + <code><VirtualHost></code> configuration sections.</p> +<pre> +UseCanonicalName Off + +LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon + +<Directory /www/commercial> + Options FollowSymLinks + AllowOverride All +</Directory> + +<Directory /www/homepages> + Options FollowSymLinks + AllowOverride None +</Directory> + +<VirtualHost 111.22.33.44> + ServerName www.commercial.isp.com + + CustomLog logs/access_log.commercial vcommon + + VirtualDocumentRoot /www/commercial/%0/docs + VirtualScriptAlias /www/commercial/%0/cgi-bin +</VirtualHost> + +<VirtualHost 111.22.33.45> + ServerName www.homepages.isp.com + + CustomLog logs/access_log.homepages vcommon + + VirtualDocumentRoot /www/homepages/%0/docs + ScriptAlias /cgi-bin/ /www/std-cgi/ +</VirtualHost> +</pre> + <hr /> + + <h2><a id="ipbased" name="ipbased">More efficient IP-based + virtual hosting</a></h2> + + <p>After <a href="#simple">the first example</a> I noted that + it is easy to turn it into an IP-based virtual hosting setup. + Unfortunately that configuration is not very efficient because + it requires a DNS lookup for every request. This can be avoided + by laying out the filesystem according to the IP addresses + themselves rather than the corresponding names and changing the + logging similarly. Apache will then usually not need to work + out the server name and so incur a DNS lookup.</p> +<pre> +# get the server name from the reverse DNS of the IP address +UseCanonicalName DNS + +# include the IP address in the logs so they may be split +LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon +CustomLog logs/access_log vcommon + +# include the IP address in the filenames +VirtualDocumentRootIP /www/hosts/%0/docs +VirtualScriptAliasIP /www/hosts/%0/cgi-bin +</pre> + <hr /> + + <h2><a id="oldversion" name="oldversion">Using older versions + of Apache</a></h2> + + <p>The examples above rely on <code>mod_vhost_alias</code> + which appeared after version 1.3.6. If you are using a version + of Apache without <code>mod_vhost_alias</code> then you can + implement this technique with <code>mod_rewrite</code> as + illustrated below, but only for Host:-header-based virtual + hosts.</p> + + <p>In addition there are some things to beware of with logging. + Apache 1.3.6 is the first version to include the + <code>%V</code> log format directive; in versions 1.3.0 - 1.3.3 + the <code>%v</code> option did what <code>%V</code> does; + version 1.3.4 has no equivalent. In all these versions of + Apache the <code>UseCanonicalName</code> directive can appear + in <code>.htaccess</code> files which means that customers can + cause the wrong thing to be logged. Therefore the best thing to + do is use the <code>%{Host}i</code> directive which logs the + <code>Host:</code> header directly; note that this may include + <code>:port</code> on the end which is not the case for + <code>%V</code>.</p> + <hr /> + + <h2><a id="simple.rewrite" name="simple.rewrite">Simple dynamic + virtual hosts using <code>mod_rewrite</code></a></h2> + + <p>This extract from <code>httpd.conf</code> does the same + thing as <a href="#simple">the first example</a>. The first + half is very similar to the corresponding part above but with + some changes for backward compatibility and to make the + <code>mod_rewrite</code> part work properly; the second half + configures <code>mod_rewrite</code> to do the actual work.</p> + + <p>There are a couple of especially tricky bits: By default, + <code>mod_rewrite</code> runs before the other URI translation + modules (<code>mod_alias</code> etc.) so if they are used then + <code>mod_rewrite</code> must be configured to accommodate + them. Also, mome magic must be performed to do a + per-dynamic-virtual-host equivalent of + <code>ScriptAlias</code>.</p> +<pre> +# get the server name from the Host: header +UseCanonicalName Off + +# splittable logs +LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon +CustomLog logs/access_log vcommon + +<Directory /www/hosts> + # ExecCGI is needed here because we can't force + # CGI execution in the way that ScriptAlias does + Options FollowSymLinks ExecCGI +</Directory> + +# now for the hard bit + +RewriteEngine On + +# a ServerName derived from a Host: header may be any case at all +RewriteMap lowercase int:tolower + +## deal with normal documents first: +# allow Alias /icons/ to work - repeat for other aliases +RewriteCond %{REQUEST_URI} !^/icons/ +# allow CGIs to work +RewriteCond %{REQUEST_URI} !^/cgi-bin/ +# do the magic +RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1 + +## and now deal with CGIs - we have to force a MIME type +RewriteCond %{REQUEST_URI} ^/cgi-bin/ +RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [T=application/x-httpd-cgi] + +# that's it! +</pre> + <hr /> + + <h2><a id="homepages.rewrite" name="homepages.rewrite">A + homepages system using <code>mod_rewrite</code></a></h2> + + <p>This does the same thing as <a href="#homepages">the second + example</a>.</p> +<pre> +RewriteEngine on + +RewriteMap lowercase int:tolower + +# allow CGIs to work +RewriteCond %{REQUEST_URI} !^/cgi-bin/ + +# check the hostname is right so that the RewriteRule works +RewriteCond ${lowercase:%{SERVER_NAME}} ^www\.[a-z-]+\.isp\.com$ + +# concatenate the virtual host name onto the start of the URI +# the [C] means do the next rewrite on the result of this one +RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C] + +# now create the real file name +RewriteRule ^www\.([a-z-]+)\.isp\.com/(.*) /home/$1/$2 + +# define the global CGI directory +ScriptAlias /cgi-bin/ /www/std-cgi/ +</pre> + <hr /> + + <h2><a id="xtra-conf" name="xtra-conf">Using a separate virtual + host configuration file</a></h2> + + <p>This arrangement uses more advanced <code>mod_rewrite</code> + features to get the translation from virtual host to document + root from a separate configuration file. This provides more + flexibility but requires more complicated configuration.</p> + + <p>The <code>vhost.map</code> file contains something like + this:</p> +<pre> +www.customer-1.com /www/customers/1 +www.customer-2.com /www/customers/2 +# ... +www.customer-N.com /www/customers/N +</pre> + <br /> + <br /> + + + <p>The <code>http.conf</code> contains this:</p> +<pre> +RewriteEngine on + +RewriteMap lowercase int:tolower + +# define the map file +RewriteMap vhost txt:/www/conf/vhost.map + +# deal with aliases as above +RewriteCond %{REQUEST_URI} !^/icons/ +RewriteCond %{REQUEST_URI} !^/cgi-bin/ +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$ +# this does the file-based remap +RewriteCond ${vhost:%1} ^(/.*)$ +RewriteRule ^/(.*)$ %1/docs/$1 + +RewriteCond %{REQUEST_URI} ^/cgi-bin/ +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$ +RewriteCond ${vhost:%1} ^(/.*)$ +RewriteRule ^/(.*)$ %1/cgi-bin/$1 +</pre> + <br /> + <br /> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/vhosts/name-based.html.en b/htdocs/manual/vhosts/name-based.html.en new file mode 100644 index 0000000000..a2de9817a1 --- /dev/null +++ b/htdocs/manual/vhosts/name-based.html.en @@ -0,0 +1,240 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>Name-based Virtual Hosts</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Name-based Virtual Host Support</h1> + +<p>This document describes when and how to use name-based virtual hosts.</p> + +<ul> +<li><a href="#namevip">Name-based vs. IP-based Virtual Hosts</a></li> +<li><a href="#using">Using Name-based Virtual Hosts</a></li> +<li><a href="#compat">Compatibility With Older Browsers</a></li> +</ul> + +<p>See also: <a href="examples.html">Virtual Host examples for common +setups</a>, <a href="ip-based.html">IP-based Virtual Host Support</a>, +<a href="details.html">An In-Depth Discussion of Virtual Host +Matching</a>, and <a href="mass.html">Dynamically configured mass +virtual hosting</a>.</p> + +<hr /> + +<h2><a name="namevip">Name-based vs. IP-based Virtual Hosts</a></h2> + +<p>IP-based virtual hosts use the IP address of the connection to +determine the correct virtual host to serve. Therefore you need to +have a separate IP address for each host. With name-based virtual +hosting, the server relies on the client to report the hostname as +part of the HTTP headers. Using this technique, many different hosts +can share the same IP address.</p> + +<p>Name-based virtual hosting is usually simpler, since you need +only configure your DNS server to map each hostname to the correct +IP address and then configure the Apache HTTP Server to recognize +the different hostnames. Name-based virtual hosting also eases +the demand for scarce IP addresses. Therefore you should use +name-based virtual hosting unless there is a specific reason to +choose IP-based virtual hosting. Some reasons why you might consider +using IP-based virtual hosting:</p> + +<ul> + +<li>Some ancient clients are not compatible with name-based virtual +hosting. For name-based virtual hosting to work, the client must send +the HTTP Host header. This is required by HTTP/1.1, and is +implemented by all modern HTTP/1.0 browsers as an extension. If you +need to support obsolete clients and still use name-based virtual +hosting, a possible technique is discussed at the end of this +document.</li> + +<li>Name-based virtual hosting cannot be used with SSL secure servers +because of the nature of the SSL protocol.</li> + +<li>Some operating systems and network equipment implement bandwidth +management techniques that cannot differentiate between hosts unless +they are on separate IP addresses.</li> + +</ul> + +<h2><a name="using">Using Name-based Virtual Hosts</a></h2> + +<table border="1"> +<tr><td align="top"> +<strong>Related Directives</strong><br><br> + +<a href="../mod/core.html#documentroot">DocumentRoot</a><br /> +<a href="../mod/core.html#namevirtualhost">NameVirtualHost</a><br /> +<a href="../mod/core.html#serveralias">ServerAlias</a><br /> +<a href="../mod/core.html#servername">ServerName</a><br /> +<a href="../mod/core.html#serverpath">ServerPath</a><br /> +<a href="../mod/core.html#virtualhost">VirtualHost</a><br /> +</td></tr></table> + +<p>To use name-based virtual hosting, you must designate the IP +address (and possibly port) on the server that will be accepting +requests for the hosts. This is configured using the <a +href="../mod/core.html#namevirtualhost">NameVirtualHost</a> directive. +In the normal case where any and all IP addresses on the server should +be used, you can use <code>*</code> as the argument to +<code>NameVirtualHost</code>. (<code>NameVirtualHost *</code> will +work only in version 1.3.13 and later.) Note that mentioning an IP +address in a <code>NameVirtualHost</code> directive does not +automatically make the server listen to that IP address. See <a +href="../bind.html">Setting which addresses and ports Apache uses</a> +for more details. In addition, any IP address specified here must be +associated with a network interface on the server.</p> + +<p>The next step is to create a <a +href="../mod/core.html#virtualhost"><VirtualHost></a> block for +each different host that you would like to serve. The argument to the +<code><VirtualHost></code> directive should be the same as the +argument to the <code>NameVirtualHost</code> directive (ie, an IP +address, or <code>*</code> for all addresses). Inside each +<code><VirtualHost></code> block, you will need at minimum a <a +href="../mod/core.html#servername">ServerName</a> directive to +designate which host is served and a <a +href="../mod/core.html#documentroot">DocumentRoot</a> directive to +show where in the filesystem the content for that host lives.</p> + +<p>If you are adding virtual hosts to an existing web server, you +must also create a <VirtualHost> block for the existing host. +The <code>ServerName</code> and <code>DocumentRoot</code> included in +this virtual host should be the same as the global +<code>ServerName</code> and <code>DocumentRoot</code>. List this +virtual host first in the configuration file so that it will act as +the default host.</p> + +<p>For example, suppose that you are serving the domain +<samp>www.domain.tld</samp> and you wish to add the virtual host +<samp>www.otherdomain.tld</samp>, which points at the same IP address. +Then you simply add the following to <code>httpd.conf</code>:</p> +<pre> + NameVirtualHost * + + <VirtualHost *> + ServerName www.domain.tld + DocumentRoot /www/domain + </VirtualHost> + + <VirtualHost *> + ServerName www.otherdomain.tld + DocumentRoot /www/otherdomain + </VirtualHost> +</pre> + +<p>You can alternatively specify an explicit IP address in place of +the * in both the <code>NameVirtualHost</code> and +<code><VirtualHost></code> directives. The IP address is +required in version 1.3.12 and earlier.</p> + +<p>Many servers want to be accessible by more than one name. This is +possible with the <a +href="../mod/core.html#serveralias"><code>ServerAlias</code></a> +directive, placed inside the <VirtualHost> section. For +example if you add this to the first <VirtualHost> block +above</p> + +<blockquote><code> +ServerAlias domain.tld *.domain.tld +</code></blockquote> + +<p>then requests for all hosts in the <code>domain.tld</code> domain +will be served by the <code>www.domain.tld</code> virtual host. The +wildcard characters * and ? can be used to match names. Of course, +you can't just make up names and place them in <code>ServerName</code> +or <code>ServerAlias</code>. You must first have your DNS server +properly configured to map those names to an IP address associated +with your server.</p> + +<p>Finally, you can fine-tune the configuration of the virtual hosts +by placing other directives inside the +<code><VirtualHost></code> containers. Most directives can be +placed in these containers and will then change the configuration only +of the relevant virtual host. To find out if a particular directive +is allowed, check the <a +href="../mod/directive-dict.html#Context">Context</a> of the +directive. Configuration directives set in the <em>main server +context</em> (outside any <code><VirtualHost></code> container) +will be used only if they are not overriden by the virtual host +settings.</p> + +<p>Now when a request arrives, the server will first check if it is +using an IP address that matches the <code>NameVirtualHost</code>. If +it is, then it will look at each <code><VirtualHost></code> +section with a matching IP address and try to find one where the +<code>ServerName</code> or <code>ServerAlias</code> matches the +requested hostname. If it finds one, then it uses the configuration +for that server. If no matching virtual host is found, then +<strong>the first listed virtual host</strong> that matches the IP +address will be used.</p> + +<p>As a consequence, the first listed virtual host is the +<em>default</em> virtual host. The <code>DocumentRoot</code> from the +<em>main server</em> will <strong>never</strong> be used when an IP +address matches the <code>NameVirtualHost</code> directive. If you +would like to have a special configuration for requests that do not +match any particular virtual host, simply put that configuration in a +<code><VirtualHost></code> container and list it first in the +configuration file.</p> + +<h2><a name="compat">Compatibility with Older Browsers</a></h2> + + <p>As mentioned earlier, there are some clients + who do not send the required data for the name-based virtual + hosts to work properly. These clients will always be sent the + pages from the first virtual host listed for that IP address + (the <cite>primary</cite> name-based virtual host).</p> + + <p>There is a possible workaround with the <a + href="../mod/core.html#serverpath"><code>ServerPath</code></a> + directive, albeit a slightly cumbersome one:</p> + + <p>Example configuration:</p> +<pre> + NameVirtualHost 111.22.33.44 + + <VirtualHost 111.22.33.44> + ServerName www.domain.tld + ServerPath /domain + DocumentRoot /web/domain + </VirtualHost> +</pre> + + <p>What does this mean? It means that a request for any URI + beginning with "<samp>/domain</samp>" will be served from the + virtual host <samp>www.domain.tld</samp> This means that the + pages can be accessed as + <code>http://www.domain.tld/domain/</code> for all clients, + although clients sending a <samp>Host:</samp> header can also + access it as <code>http://www.domain.tld/</code>.</p> + + <p>In order to make this work, put a link on your primary + virtual host's page to + <samp>http://www.domain.tld/domain/</samp> Then, in the virtual + host's pages, be sure to use either purely relative links + (<em>e.g.</em>, "<samp>file.html</samp>" or + "<samp>../icons/image.gif</samp>" or links containing the + prefacing <samp>/domain/</samp> (<em>e.g.</em>, + "<samp>http://www.domain.tld/domain/misc/file.html</samp>" or + "<samp>/domain/misc/file.html</samp>").</p> + + <p>This requires a bit of discipline, but adherence to these + guidelines will, for the most part, ensure that your pages will + work with all browsers, new and old.</p> + + <p>See also: <a href="examples.html#serverpath">ServerPath + configuration example</a></p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/vhosts/name-based.html.html b/htdocs/manual/vhosts/name-based.html.html new file mode 100644 index 0000000000..91ea0bfd13 --- /dev/null +++ b/htdocs/manual/vhosts/name-based.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="name-based.html.en" --> + diff --git a/htdocs/manual/vhosts/name-based.html.ja.jis b/htdocs/manual/vhosts/name-based.html.ja.jis new file mode 100644 index 0000000000..a0eaa537f1 --- /dev/null +++ b/htdocs/manual/vhosts/name-based.html.ja.jis @@ -0,0 +1,241 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + <title>巳苳餐哀戞スのバ・踉札船礇襯曠好蜚跂鹿粡寂蝟赱齠洲痲筵娼縺筅苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩鱚皷闔窺憶苳纂蝟昭粡竚癈鷭п粐Ь踉獅閼砒竢跫鮟■聿聿聿就0旭旭唖蜴觸■旭旭聿⊆蝟昭粡竚癈鷭п粐Ь跚鉉就0旭宛唖跚鉉就f羂旭唖鹿粡寂蝟赱齠洲痲筵娼´蜴竚鶯貊∵縺粤鬯蔗迪鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢこの文書では巳苳餐哀戞スのバ・踉札船礇襯曠好箸鬚匹鵑覆箸鹿粡寂蝟赱齠洲痲筵娼またどう瘢雹やって使う瘢雹のかという瘢雹ことを説明します。</p> + + <ul> + <li><a href="#namevip">巳苳餐哀戞ス と IP-based + のバ・踉札船礇襯曠好箸糧羈薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蜴腆巳苳餐哀戞スのバ・踉札船礇襯曠好箸鰺僂垢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■竢逅癆▽苳ぢ古いブラウ瘢雹ザとの互換性</a></li> + </ul> + + <p>参考: <a href="examples.html">標準的なセットアップでの + バ・踉札船礇襯曠好箸領、 <a href="ip-based.html">IP ベ・踉札垢鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好箸離汽檗ト</a>、 <a href="details.html"> + バ・踉札船礇襯曠好箸離泪奪船鵐阿龍饌療弗苳施細</a> と <a + href="mass.html">大量のバ・踉札船礇襯曠好箸鯑暗棒瀋蠅垢鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就釶辣陟瘢綵瘢纐蜷⊆蝟昭粡竚癈鷭п粐Ь苳ぢ巳苳餐哀戞スと IP ベ・踉札垢離弌チャルホストの比較</a></h2> + + <p>初期のバ・踉札献腑鵑墺では (側苳擦梁燭離廛蹈肇灰襦⇔磴┐墅鹿粡寂蝟赱齠洲痲筵娼と同様) 一つのサ・踉札丶苳糸でのバ・踉札船礇襯曠好箸瓦箸飽曚覆辰仄蝟昭粡竚癈鷭п粐Ьぢアドレスが必要でした。いくつかのプラットフォ・踉札爐任蓮△海里海箸鹿粡寂蝟赱齠洲痲筵娼孫垈椎修淵弌チャルホストの数を限定してしまう瘢雹ことになりました。また、 + IP アドレスの数には限りがあるという瘢雹ことについての懸念から、レジストラ + (ARIN, RIPE, APNIC) はバ・踉札船礇襯曠好箸瓦箸鹿粡寂蝟赱齠洲痲筵娼賓ぢを割り当てるよう瘢雹なことは避けるよう瘢雹強く要請しています。</p> + + <p>巳苳餐哀戞スのバ・踉札船礇襯曠好箸歪巳苳誌単純で、 + それう苳擦譴離曠好般とそれに対応する正確な IP アドレスを DNS + で設定し、異なるホスト巳苳擦魘菠冥侏茲襪茲逅擦鞜竏挽墅鹿粡寂蝟赱齠洲痲筵娼サ・踉札个鮴瀋蠅垢襪世韻任后気蕕法¬前ベ・踉札垢離弌チャルホストは不足する + IP アドレスの廚魎墨造靴泙后靴燭辰董賓鹿粡寂蝟赱齠洲痲筵娼ベ・踉札垢離弌チャルホストを選択すべき特定の理由がなければ巳苳餐哀戞スの + バ・踉札船礇襯曠好箸鮖箸逅擦戮任后鹿粡寂蝟赱齠洲痲筵娼賓ぢベ・踉札垢離弌チャルホストを使用することを考慮する理由として、</p> + + <ul> + <li>巳苳餐哀戞スのバ・踉札船礇襯曠好箸紡弍靴討い覆じ鼎ぅ薀ぅ▲鵐箸△鹿粡寂蝟赱齠洲痲筵娼巳苳餐哀戞スのバ・踉札船礇襯曠好箸燭瓩砲蓮▲薀ぅ▲鵐箸鹿粡寂蝟赱齠洲痲筵娼挽墅ぢホストヘッダを送ってこなければなりません。 + これは HTTP/1.1 の仕様で要求されていて、すべての現代的な + HTTP/1.0 ブラウ瘢雹ザでも拡張として汰気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼とても古いクライアントをサポ・踉札箸靴弔帖¬前ベ・踉札垢鹿粡寂蝟赱齠洲痲筵娼バ・踉札船礇襯曠好箸鮃圓い燭う苳詞合は、この文書の最後の方に + 書かれている解決策になるかもしれない方法を見てください。</li> + + <li>巳苳餐哀戞スのバ・踉札船礇襯曠好箸嗅ぢプロトコルの特徴により、 + SSL セキュアサ・踉札个砲六箸┐泙擦鵝薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢオペレ・踉札謄鵐哀轡好謄爐筌優奪肇錙ク装置のなかには、別の IP + アドレス紊任覆う苳詞合、複数のホストを別扱いできないよう瘢雹な + 帯域管理の方法を汰靴討い襪發里△蠅泙后薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就蜴腆鹿粡寂蝟赱齠洲痲筵娼釶辣就蜴腆巳苳餐哀戞スのバ・踉札船礇襯曠好箸鰺僂垢王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉飼痰跂闥粤鮟▽苳纂蝟昭粡竚癈鷭п粐Ь踉飼鬢苳纂蝟昭粡竚癈鷭п粐Ь踉飼瘡蜃扈♯關▽苳殺踉雌闔胼苳ぢ関連ディレクティブ</strong><br /> + <br /> + <a href="../mod/core.html#documentroot">DocumentRoot</a><br /> + <a + href="../mod/core.html#namevirtualhost">NameVirtualHost</a><br /> + <a href="../mod/core.html#serveralias">ServerAlias</a><br /> + <a href="../mod/core.html#servername">ServerName</a><br /> + <a href="../mod/core.html#serverpath">ServerPath</a><br /> + <a href="../mod/core.html#virtualhost">VirtualHost</a><br /> + </td> + </tr> + </table> + + <p>巳苳餐哀戞スのバ・踉札船礇襯曠好箸鮖箸逅擦砲蓮△修離曠好箸悗鹿粡寂蝟赱齠洲痲筵娼リクエストを栄佞韻襯機バの IP アドレス (もしかしたらポ・踉札箸蝟昭粡竚癈鷭п粐Ьぢを指定する必要があります。 + これは <a href="../mod/core.html#namevirtualhost">NameVirtualHost</a> + ディレクティブで設定します。通錙竢粤令辣帷鶯貳闢熙踉晒竢粤ぢで + <code>*</code> の属性を使ってサ・踉札个里垢戮討アドレスを使います。 + (<code>NameVirtualHost *</code> はバ・踉札献腑以降のみで動作します。) + <code>NameVirtualHost</code> ディレクティブで IP アドレスを書いても、 + 暗縫機バがその IP アドレスをリッスンするという瘢雹ことはないことに + 注意してください。楮戮踉氏鱚羹〓砠鈔譬草痺蒹ぢの使う瘢雹アドレスと + ポ・踉札箸鮴瀋蠅垢ぢを読んでください。さらに、ここで指定された + IP アドレスはすべてサ・踉札个離優奪肇錙クインタ・踉札侫Аスと関連付けられて + いなければなりません。</p> + + <p>,蓮靴い燭い修譴れのホストに対して <a + href="../mod/core.html#virtualhost"><VirtualHost></a> + ブロックを作成してください。<code><VirtualHost></code> + ディレクティブの引数は <code>NameVirtualHost</code> + ディレクティブの引数と同じにしてください (すなわち、IP + アドレス一つやすべてのアドレスを表す <code>*</code>)。それう苳擦譴鹿粡寂蝟赱齠洲痲筵娼竢粤逅詞帷鶯貳闢熙瘢雹苳殺踉晒竢粤ぢディレクティブの中には、最低限、 + どのホストが扱われるかを┐踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就閼闥絎蔗迪s纈鴈瘢紜嚆鴟纈令辣ぢディレクティブと、 + そのホスト用のコンテンツがファイルシステム紊里匹海砲△襪鬢踉雑す + <a href="../mod/core.html#documentroot">DocumentRoot</a> + ディレクティブを書く必要があります。</p> + + <p>既に存在するウ瘢雹ェブサ・踉札个縫弌チャルホストを追加する豺隋鹿粡寂蝟赱齠洲痲筵娼存在するホスト用の <VirtualHost> ブロックを作らなければなりません。 + <code>ServerName</code> と <code>DocumentRoot</code> + はこのバ・踉札船礇襯曠好箸盍泙瓩董△修譴れグロ・踉札丱襪鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈令辣閼絋苳及び <code>DocumentRoot</code> + と同じものにするべきです。設定ファイル中で最初に記述した + このバ・踉札船礇襯曠好箸鹿粡寂蝟赱齠洲痲筵娼デフォルトのバ・踉札船礇襯曠好箸箸靴討眇兇詆颪い泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ例えば、ドメイン <samp>www.domain.tld</samp> を運用しているところに + バ・踉札船礇襯曠好踉雌瘢隍苳似纈粹轣蜴趙瘢隍苳を追加する豺腓如鹿粡寂蝟赱齠洲痲筵娼陸苳司韻アドレスを指しているとします。そのよう瘢雹な豺腓蓮鹿粡寂蝟赱齠洲痲筵娼竢粤蔗筮竢鈕閼絋苳に以王踉擦里茲逅擦淵魁ドを追加するだけです</p> +<pre> + NameVirtualHost * + + <VirtualHost *> + ServerName www.domain.tld + DocumentRoot /www/domain + </VirtualHost> + + <VirtualHost *> + ServerName www.otherdomain.tld + DocumentRoot /www/otherdomain + </VirtualHost> +</pre> + + <p><code>NameVirtualHost</code> 及び + <code><VirtualHost></code> のどちらの豺腓癲鹿粡寂蝟赱齠洲痲筵娼の部分には明アドレスを指定することができます。 + バ・踉札献腑以前では IP アドレスの指定が必要でした。</p> + + <p>複数の巳苳餐阿妊機バアクセスができるよう瘢雹にしたいことも多いでしょう瘢雹。 + このよう瘢雹なことは、<a href="../mod/core.html#serveralias" + ><code>ServerAlias</code></a> ディレクティブを <VirtualHost> + セクションに記述することで存修任泙后鹿粡寂蝟赱齠洲痲筵娼例えばこれを最初の <VirtualHost> ブロックに書き加えると、</p> +<pre> + ServerAlias domain.tld *.domain.tld +</pre> + + <p><code>domain.tld</code> ドメインへのすべてのホストへのリクエストは + <code>www.domain.tld</code> のバ・踉札船礇襯曠好箸萢靴泙后鹿粡寂蝟赱齠洲痲筵娼や ? をワイルドカ・踉札品源箸靴道藩僂任泙垢海覆蕕修譴世韻鹿粡寂蝟赱齠洲痲筵娼竢粤嚆鴟纈令辣閼絋苳や <code>ServerAlias</code> + の巳苳餐阿筅苳詞所を構成することはできません。まず最初に DNS のホスト巳苳擦鹿粡寂蝟赱齠洲痲筵娼賓ぢアドレスをサ・踉札个砲△錣擦禿擇棒瀋蠅垢觧廚任鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢ最後に、<code><VirtualHost></code> コンテナの中に + 側苳擦離妊譽謄屬鮟颪海箸如▲弌チャルホストの設定を細かく変更 + することができます。どのディレクティブを書くことができるかは、 + ディレクティブの <a + href="../mod/directive-dict.html#context">コンテキスト</a> を + 調べてください。<em>腑機バコンテキスト</em> + (<code><VirtualHost></code> コンテナの外) の + 設定用ディレクティブはバ・踉札船礇襯曠好箸任寮瀋蠅忍苳糸書きされていない + ときのみ使用されます。</p> + + <p>リクエストが来ると、サ・踉札个呂泙査能蕕踉祉閼絋苳士瘢縉蜥瘡被齡閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢにマッチする IP アドレスかどう瘢雹かをチェックします。マッチすれば + マッチした IP アドレスの <code><VirtualHost></code> + のそれう苳擦譴離札轡腑鵑涼罎踉祉閼絋苳屍纈鯲瘢絋踉晒竢粤ぢか + <code>ServerAlias</code> に要求されたホスト巳苳擦△襪気靴泙后鹿粡寂蝟赱齠洲痲筵娼見つかればそのサ・踉札侏僂寮瀋蠅鮖箸い泙后泪奪舛垢襯弌チャルホスト + が見つからなければ、マッチした IP アドレスの + <strong>リストの最初にあるバ・踉札船礇襯曠好闔胼苳が使われます。</p> + + <p>結果として、リストの最初のバ・踉札船礇襯曠好箸踉糸蹙苳ぢデフォルト</em> の + バ・踉札船礇襯曠好箸砲覆蠅泙后賓ぢアドレスが <code>NameVirtualHost</code> + ディレクティブにマッチした豺腓蓮纃メインのサ・踉札蹙苳の + <code>DocumentRoot</code> 使われ <strong>ません</strong> + どのバ・踉札船礇襯曠好箸砲皀泪奪舛靴覆ぅ螢┘好箸紡个靴董鹿粡寂蝟赱齠洲痲筵娼特別な設定をしたいのであれば、設定ファイル中の最初の + <code><VirtualHost></code> にそれを記述してください。</p> + + <h2><a id="compat" name="compat">古いブラウ瘢雹ザとの互換性</a></h2> + + <p>紊能颪い燭茲逅擦法¬前ベ・踉札垢離弌チャルホストが正しく動作する + ために必要な霾鵑鯀辰討海覆ぅ薀ぅ▲鵐箸輿海箸靴涜減澆靴討い泙后鹿粡寂蝟赱齠洲痲筵娼そのよう瘢雹なクライアントに対しては、該当する IP アドレスについて、 + 一番最初に設定されているバ・踉札船礇襯曠好鹿粡寂蝟赱齠洲痲筵娼└踉祉蜚絋苳ぢプライマリ</cite>の巳苳餐哀戞スのバ・踉札船礇襯曠好蝟昭粡竚癈鷭п粐Ьぢからペ・踉札犬衒屬気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉氏鱚羹〓迴箝竢鱚譯黼鴟纈鞜▽苳殺踉祉閼絋苳屍纈鯰癆荀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼ディレクティブで対処が可能です。ちょっと不格好ですけれども。</p> + + <p>設定例</p> +<pre> + NameVirtualHost 111.22.33.44 + + <VirtualHost 111.22.33.44> + ServerName www.domain.tld + ServerPath /domain + DocumentRoot /web/domain + </VirtualHost> +</pre> + + <p>この例にはどう瘢雹いう瘢雹意味があるでしょう瘢雹か? これは + "<samp>/domain</samp>" で始まる URI へのリクエストはすべて、 + バ・踉札船礇襯曠好踉雌瘢隍苳似闕瘟隨筅踉晒黶逅ぢで処理される、 + という瘢雹意味です。つまり、すべてのクライアントで + <code>http://www.domain.tld/domain/</code> でアクセスできるペ・踉札犬鹿粡寂蝟赱齠洲痲筵娼黶逅被齡墾踉晒黶逅ぢヘッダを送ってくるクライアントであれば + <code>http://www.domain.tld/</code> としてもアクセスできる、 + という瘢雹意味です。</p> + + <p>これを騨囘覆發里箸垢襪燭瓩砲蓮鹿粡寂蝟赱齠洲痲筵娼プライマリのバ・踉札船礇襯曠好箸離據ジに + <samp>http://www.domain.tld/domain/</samp> へのリンクを設置します。 + そして、バ・踉札船礇襯曠好箸離據ジでは、純粋な相対リンク (<em>例:</em> + "<samp>file.html</samp>" や "<samp>../icons/image.gif</samp>")、 + あるいは <samp>/domain/</samp> で始まるリンク (<em>例:</em> + "<samp>http://www.domain.tld/domain/misc/file.html</samp>" や + "<samp>/domain/misc/file.html</samp>") だけを設置します。</p> + + <p>これには、幾分かの規律が必要となりますが、 + このよう瘢雹なガイドラインを忠造胞踉脂ることにより、たいていの豺隋鹿粡寂蝟赱齠洲痲筵娼すべてのブラウ瘢雹ザで ― 新しいブラウ瘢雹ザでも古いものでも ― + 作成したペ・踉札犬┐襪箸い逅擦海箸鯤檸苳孜します。</p> + + <p>参考: <a href="examples.html#serverpath">ServerPath 設定例</a></p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/vhosts/vhosts-in-depth.html b/htdocs/manual/vhosts/vhosts-in-depth.html new file mode 100644 index 0000000000..30cb9561be --- /dev/null +++ b/htdocs/manual/vhosts/vhosts-in-depth.html @@ -0,0 +1,386 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>An In-Depth Discussion of VirtualHost Matching</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">An In-Depth Discussion of VirtualHost + Matching</h1> + + <p>This is a very rough document that was probably out of date + the moment it was written. It attempts to explain exactly what + the code does when deciding what virtual host to serve a hit + from. It's provided on the assumption that something is better + than nothing. The server version under discussion is Apache + 1.2.</p> + + <p>If you just want to "make it work" without understanding + how, there's a <a href="#whatworks">What Works</a> section at + the bottom.</p> + + <h3>Config File Parsing</h3> + + <p>There is a main_server which consists of all the definitions + appearing outside of <code>VirtualHost</code> sections. There + are virtual servers, called <em>vhosts</em>, which are defined + by <a + href="../mod/core.html#virtualhost"><samp>VirtualHost</samp></a> + sections.</p> + + <p>The directives <a + href="../mod/core.html#port"><samp>Port</samp></a>, <a + href="../mod/core.html#servername"><samp>ServerName</samp></a>, + <a + href="../mod/core.html#serverpath"><samp>ServerPath</samp></a>, + and <a + href="../mod/core.html#serveralias"><samp>ServerAlias</samp></a> + can appear anywhere within the definition of a server. However, + each appearance overrides the previous appearance (within that + server).</p> + + <p>The default value of the <code>Port</code> field for + main_server is 80. The main_server has no default + <code>ServerName</code>, <code>ServerPath</code>, or + <code>ServerAlias</code>.</p> + + <p>In the absence of any <a + href="../mod/core.html#listen"><samp>Listen</samp></a> + directives, the (final if there are multiple) <code>Port</code> + directive in the main_server indicates which port httpd will + listen on.</p> + + <p>The <code>Port</code> and <code>ServerName</code> directives + for any server main or virtual are used when generating URLs + such as during redirects.</p> + + <p>Each address appearing in the <code>VirtualHost</code> + directive can have an optional port. If the port is unspecified + it defaults to the value of the main_server's most recent + <code>Port</code> statement. The special port <samp>*</samp> + indicates a wildcard that matches any port. Collectively the + entire set of addresses (including multiple <samp>A</samp> + record results from DNS lookups) are called the vhost's + <em>address set</em>.</p> + + <p>The magic <code>_default_</code> address has significance + during the matching algorithm. It essentially matches any + unspecified address.</p> + + <p>After parsing the <code>VirtualHost</code> directive, the + vhost server is given a default <code>Port</code> equal to the + port assigned to the first name in its <code>VirtualHost</code> + directive. The complete list of names in the + <code>VirtualHost</code> directive are treated just like a + <code>ServerAlias</code> (but are not overridden by any + <code>ServerAlias</code> statement). Note that subsequent + <code>Port</code> statements for this vhost will not affect the + ports assigned in the address set.</p> + + <p>All vhosts are stored in a list which is in the reverse + order that they appeared in the config file. For example, if + the config file is:</p> + + <blockquote> +<pre> + <VirtualHost A> + ... + </VirtualHost> + + <VirtualHost B> + ... + </VirtualHost> + + <VirtualHost C> + ... + </VirtualHost> +</pre> + </blockquote> + Then the list will be ordered: main_server, C, B, A. Keep this + in mind. + + <p>After parsing has completed, the list of servers is scanned, + and various merges and default values are set. In + particular:</p> + + <ol> + <li>If a vhost has no <a + href="../mod/core.html#serveradmin"><code>ServerAdmin</code></a>, + <a + href="../mod/core.html#resourceconfig"><code>ResourceConfig</code></a>, + <a + href="../mod/core.html#accessconfig"><code>AccessConfig</code></a>, + <a href="../mod/core.html#timeout"><code>Timeout</code></a>, + <a + href="../mod/core.html#keepalivetimeout"><code>KeepAliveTimeout</code></a>, + <a + href="../mod/core.html#keepalive"><code>KeepAlive</code></a>, + <a + href="../mod/core.html#maxkeepaliverequests"><code>MaxKeepAliveRequests</code></a>, + or <a + href="../mod/core.html#sendbuffersize"><code>SendBufferSize</code></a> + directive then the respective value is inherited from the + main_server. (That is, inherited from whatever the final + setting of that value is in the main_server.)</li> + + <li>The "lookup defaults" that define the default directory + permissions for a vhost are merged with those of the main + server. This includes any per-directory configuration + information for any module.</li> + + <li>The per-server configs for each module from the + main_server are merged into the vhost server.</li> + </ol> + Essentially, the main_server is treated as "defaults" or a + "base" on which to build each vhost. But the positioning of + these main_server definitions in the config file is largely + irrelevant -- the entire config of the main_server has been + parsed when this final merging occurs. So even if a main_server + definition appears after a vhost definition it might affect the + vhost definition. + + <p>If the main_server has no <code>ServerName</code> at this + point, then the hostname of the machine that httpd is running + on is used instead. We will call the <em>main_server address + set</em> those IP addresses returned by a DNS lookup on the + <code>ServerName</code> of the main_server.</p> + + <p>Now a pass is made through the vhosts to fill in any missing + <code>ServerName</code> fields and to classify the vhost as + either an <em>IP-based</em> vhost or a <em>name-based</em> + vhost. A vhost is considered a name-based vhost if any of its + address set overlaps the main_server (the port associated with + each address must match the main_server's <code>Port</code>). + Otherwise it is considered an IP-based vhost.</p> + + <p>For any undefined <code>ServerName</code> fields, a + name-based vhost defaults to the address given first in the + <code>VirtualHost</code> statement defining the vhost. Any + vhost that includes the magic <samp>_default_</samp> wildcard + is given the same <code>ServerName</code> as the main_server. + Otherwise the vhost (which is necessarily an IP-based vhost) is + given a <code>ServerName</code> based on the result of a + reverse DNS lookup on the first address given in the + <code>VirtualHost</code> statement.</p> + + <h3>Vhost Matching</h3> + + <p><strong>Apache 1.3 differs from what is documented here, and + documentation still has to be written.</strong></p> + + <p>The server determines which vhost to use for a request as + follows:</p> + + <p><code>find_virtual_server</code>: When the connection is + first made by the client, the local IP address (the IP address + to which the client connected) is looked up in the server list. + A vhost is matched if it is an IP-based vhost, the IP address + matches and the port matches (taking into account + wildcards).</p> + + <p>If no vhosts are matched then the last occurrence, if it + appears, of a <samp>_default_</samp> address (which if you + recall the ordering of the server list mentioned above means + that this would be the first occurrence of + <samp>_default_</samp> in the config file) is matched.</p> + + <p>In any event, if nothing above has matched, then the + main_server is matched.</p> + + <p>The vhost resulting from the above search is stored with + data about the connection. We'll call this the <em>connection + vhost</em>. The connection vhost is constant over all requests + in a particular TCP/IP session -- that is, over all requests in + a KeepAlive/persistent session.</p> + + <p>For each request made on the connection the following + sequence of events further determines the actual vhost that + will be used to serve the request.</p> + + <p><code>check_fulluri</code>: If the requestURI is an + absoluteURI, that is it includes <code>http://hostname/</code>, + then an attempt is made to determine if the hostname's address + (and optional port) match that of the connection vhost. If it + does then the hostname portion of the URI is saved as the + <em>request_hostname</em>. If it does not match, then the URI + remains untouched. <strong>Note</strong>: to achieve this + address comparison, the hostname supplied goes through a DNS + lookup unless it matches the <code>ServerName</code> or the + local IP address of the client's socket.</p> + + <p><code>parse_uri</code>: If the URI begins with a protocol + (<em>i.e.</em>, <code>http:</code>, <code>ftp:</code>) then the + request is considered a proxy request. Note that even though we + may have stripped an <code>http://hostname/</code> in the + previous step, this could still be a proxy request.</p> + + <p><code>read_request</code>: If the request does not have a + hostname from the earlier step, then any <code>Host:</code> + header sent by the client is used as the request hostname.</p> + + <p><code>check_hostalias</code>: If the request now has a + hostname, then an attempt is made to match for this hostname. + The first step of this match is to compare any port, if one was + given in the request, against the <code>Port</code> field of + the connection vhost. If there's a mismatch then the vhost used + for the request is the connection vhost. (This is a bug, see + observations.)</p> + + <p>If the port matches, then httpd scans the list of vhosts + starting with the next server <strong>after</strong> the + connection vhost. This scan does not stop if there are any + matches, it goes through all possible vhosts, and in the end + uses the last match it found. The comparisons performed are as + follows:</p> + + <ul> + <li>Compare the request hostname:port with the vhost + <code>ServerName</code> and <code>Port</code>.</li> + + <li>Compare the request hostname against any and all + addresses given in the <code>VirtualHost</code> directive for + this vhost.</li> + + <li>Compare the request hostname against the + <code>ServerAlias</code> given for the vhost.</li> + </ul> + + <p><code>check_serverpath</code>: If the request has no + hostname (back up a few paragraphs) then a scan similar to the + one in <code>check_hostalias</code> is performed to match any + <code>ServerPath</code> directives given in the vhosts. Note + that the <strong>last match</strong> is used regardless (again + consider the ordering of the virtual hosts).</p> + + <h3>Observations</h3> + + <ul> + <li>It is difficult to define an IP-based vhost for the + machine's "main IP address". You essentially have to create a + bogus <code>ServerName</code> for the main_server that does + not match the machine's IPs.</li> + + <li> + During the scans in both <code>check_hostalias</code> and + <code>check_serverpath</code> no check is made that the + vhost being scanned is actually a name-based vhost. This + means, for example, that it's possible to match an IP-based + vhost through another address. But because the scan starts + in the vhost list at the first vhost that matched the local + IP address of the connection, not all IP-based vhosts can + be matched. + + <p>Consider the config file above with three vhosts A, B, + C. Suppose that B is a named-based vhost, and A and C are + IP-based vhosts. If a request comes in on B or C's address + containing a header "<samp>Host: A</samp>" then it will be + served from A's config. If a request comes in on A's + address then it will always be served from A's config + regardless of any Host: header.</p> + </li> + + <li> + Unless you have a <samp>_default_</samp> vhost, it doesn't + matter if you mix name-based vhosts in amongst IP-based + vhosts. During the <code>find_virtual_server</code> phase + above no named-based vhost will be matched, so the + main_server will remain the connection vhost. Then scans + will cover all vhosts in the vhost list. + + <p>If you do have a <samp>_default_</samp> vhost, then you + cannot place named-based vhosts after it in the config. + This is because on any connection to the main server IPs + the connection vhost will always be the + <samp>_default_</samp> vhost since none of the name-based + are considered during <code>find_virtual_server</code>.</p> + </li> + + <li>You should never specify DNS names in + <code>VirtualHost</code> directives because it will force + your server to rely on DNS to boot. Furthermore it poses a + security threat if you do not control the DNS for all the + domains listed. <a href="dns-caveats.html">There's more + information available on this and the next two + topics</a>.</li> + + <li><code>ServerName</code> should always be set for each + vhost. Otherwise A DNS lookup is required for each + vhost.</li> + + <li>A DNS lookup is always required for the main_server's + <code>ServerName</code> (or to generate that if it isn't + specified in the config).</li> + + <li>If a <code>ServerPath</code> directive exists which is a + prefix of another <code>ServerPath</code> directive that + appears later in the configuration file, then the former will + always be matched and the latter will never be matched. (That + is assuming that no Host header was available to disambiguate + the two.)</li> + + <li>If a vhost that would otherwise be a name-vhost includes + a <code>Port</code> statement that doesn't match the + main_server <code>Port</code> then it will be considered an + IP-based vhost. Then <code>find_virtual_server</code> will + match it (because the ports associated with each address in + the address set default to the port of the main_server) as + the connection vhost. Then <code>check_hostalias</code> will + refuse to check any other name-based vhost because of the + port mismatch. The result is that the vhost will steal all + hits going to the main_server address.</li> + + <li>If two IP-based vhosts have an address in common, the + vhost appearing later in the file is always matched. Such a + thing might happen inadvertently. If the config has + name-based vhosts and for some reason the main_server + <code>ServerName</code> resolves to the wrong address then + all the name-based vhosts will be parsed as ip-based vhosts. + Then the last of them will steal all the hits.</li> + + <li>The last name-based vhost in the config is always matched + for any hit which doesn't match one of the other name-based + vhosts.</li> + </ul> + + <h3><a id="whatworks" name="whatworks">What Works</a></h3> + + <p>In addition to the tips on the <a + href="../dns-caveats.html#tips">DNS Issues</a> page, here are some + further tips:</p> + + <ul> + <li>Place all main_server definitions before any VirtualHost + definitions. (This is to aid the readability of the + configuration -- the post-config merging process makes it + non-obvious that definitions mixed in around virtualhosts + might affect all virtualhosts.)</li> + + <li>Arrange your VirtualHosts such that all name-based + virtual hosts come first, followed by IP-based virtual hosts, + followed by any <samp>_default_</samp> virtual host</li> + + <li>Avoid <code>ServerPaths</code> which are prefixes of + other <code>ServerPaths</code>. If you cannot avoid this then + you have to ensure that the longer (more specific) prefix + vhost appears earlier in the configuration file than the + shorter (less specific) prefix (<em>i.e.</em>, "ServerPath + /abc" should appear after "ServerPath /abcdef").</li> + + <li>Do not use <em>port-based</em> vhosts in the same server + as name-based vhosts. A loose definition for port-based is a + vhost which is determined by the port on the server + (<em>i.e.</em>, one server with ports 8000, 8080, and 80 - + all of which have different configurations).</li> + </ul> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/vhosts/virtual-host.html b/htdocs/manual/vhosts/virtual-host.html new file mode 100644 index 0000000000..e8a88143c5 --- /dev/null +++ b/htdocs/manual/vhosts/virtual-host.html @@ -0,0 +1,239 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Apache Server Virtual Host Support</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Virtual Host Support</h1> + <strong>See Also:</strong> <a href="host.html">Non-IP based + virtual hosts</a> + + <h2>What are virtual hosts?</h2> + This is the ability of a single machine to be a web server for + multiple domains. For example, an Internet service provider + might have a machine called <code>www.serve.com</code> which + provides Web space for several organizations including, say, + <em>smallco</em> and <em>baygroup</em>. Ordinarily, these + groups would be given parts of the Web tree on www.serve.com. + So smallco's home page would have the URL + + <blockquote> + http://www.serve.com/smallco/ + </blockquote> + and baygroup's home page would have the URL + + <blockquote> + http://www.serve.com/baygroup/ + </blockquote> + + <p>For esthetic reasons, however, both organizations would + rather their home pages appeared under their own names rather + than that of the service provider's; but they do not want to + set up their own Internet links and servers.</p> + + <p>Virtual hosts are the solution to this problem. smallco and + baygroup would have their own Internet name registrations, + <code>www.smallco.com</code> and <code>www.baygroup.org</code> + respectively. These hostnames would both correspond to the + service provider's machine (www.serve.com). Thus smallco's home + page would now have the URL</p> + + <blockquote> + http://www.smallco.com/ + </blockquote> + and baygroup's home page would have the URL + + <blockquote> + http://www.baygroup.org/ + </blockquote> + + <h2>System requirements</h2> + Due to limitations in the HTTP/1.0 protocol, the web server + <strong>must have a different IP address for each virtual + host</strong>. This can be achieved by the machine having + several physical network connections, or by use of a <a + href="../misc/vif-info.html">virtual interface</a> on some + operating systems. + + <h2>How to set up Apache</h2> + There are two ways of configuring apache to support multiple + hosts. Either by running a separate httpd daemon for each + hostname, or by running a single daemon which supports all the + virtual hosts. + + <p>Use multiple daemons when:</p> + + <ul> + <li>The different virtual hosts need very different httpd + configurations, such as different values for: <a + href="../mod/core.html#servertype">ServerType</a>, <a + href="../mod/core.html#user">User</a>, <a + href="../mod/core.html#group">Group</a>, <a + href="../mod/mod_mime.html#typesconfig">TypesConfig</a> or <a + href="../mod/core.html#serverroot">ServerRoot</a>.</li> + + <li>The machine does not process a very high request + rate.</li> + </ul> + Use a single daemon when: + + <ul> + <li>Sharing of the httpd configuration between virtual hosts + is acceptable.</li> + + <li>The machine services a large number of requests, and so + the performance loss in running separate daemons may be + significant.</li> + </ul> + + <h2>Setting up multiple daemons</h2> + Create a separate httpd installation for each virtual host. For + each installation, use the <a + href="../mod/core.html#bindaddress">BindAddress</a> directive + in the configuration file to select which IP address (or + virtual host) that daemon services. <em>E.g.</em>, + + <blockquote> + <code>BindAddress www.smallco.com</code> + </blockquote> + This hostname can also be given as an IP address. + + <h2>Setting up a single daemon</h2> + For this case, a single httpd will service requests for all the + virtual hosts. The <a + href="../mod/core.html#virtualhost">VirtualHost</a> directive + in the configuration file is used to set the values of <a + href="../mod/core.html#serveradmin">ServerAdmin</a>, <a + href="../mod/core.html#servername">ServerName</a>, <a + href="../mod/core.html#documentroot">DocumentRoot</a>, <a + href="../mod/core.html#errorlog">ErrorLog</a> and <a + href="../mod/mod_log_config.html#transferlog">TransferLog</a> + configuration directives to different values for each virtual + host. <em>E.g.</em>, + + <blockquote> + <code><VirtualHost www.smallco.com><br /> + ServerAdmin webmaster@mail.smallco.com<br /> + DocumentRoot /groups/smallco/www<br /> + ServerName www.smallco.com<br /> + ErrorLog /groups/smallco/logs/error_log<br /> + TransferLog /groups/smallco/logs/access_log<br /> + </VirtualHost><br /> + <br /> + <VirtualHost www.baygroup.org><br /> + ServerAdmin webmaster@mail.baygroup.org<br /> + DocumentRoot /groups/baygroup/www<br /> + ServerName www.baygroup.org<br /> + ErrorLog /groups/baygroup/logs/error_log<br /> + TransferLog /groups/baygroup/logs/access_log<br /> + </VirtualHost><br /> + </code> + </blockquote> + This VirtualHost hostnames can also be given as IP addresses. + + <p>Almost <strong>ANY</strong> configuration directive can be + put in the VirtualHost directive, with the exception of <a + href="../mod/core.html#servertype">ServerType</a>, <a + href="../mod/core.html#user">User</a>, <a + href="../mod/core.html#group">Group</a>, <a + href="../mod/core.html#startservers">StartServers</a>, <a + href="../mod/core.html#maxspareservers">MaxSpareServers</a>, <a + href="../mod/core.html#minspareservers">MinSpareServers</a>, <a + href="../mod/core.html#maxrequestsperchild">MaxRequestsPerChild</a>, + <a href="../mod/core.html#bindaddress">BindAddress</a>, <a + href="../mod/core.html#pidfile">PidFile</a>, <a + href="../mod/mod_mime.html#typesconfig">TypesConfig</a>, and <a + href="../mod/core.html#serverroot">ServerRoot</a>.</p> + + <p><em>SECURITY:</em> When specifying where to write log files, + be aware of some security risks which are present if anyone + other than the user that starts Apache has write access to the + directory where they are written. See the <a + href="../misc/security_tips.html">security tips</a> document + for details.</p> + + <h2>File Handle/Resource Limits:</h2> + When using a large number of Virtual Hosts, Apache may run out + of available file descriptors if each Virtual Host specifies + different log files. The total number of file descriptors used + by Apache is one for each distinct error log file, one for + every other log file directive, plus 10-20 for internal use. + Unix operating systems limit the number of file descriptors + that may be used by a process; the limit is typically 64, and + may usually be increased up to a large hard-limit. + + <p>Although Apache attempts to increase the limit as required, + this may not work if:</p> + + <ol> + <li>Your system does not provide the setrlimit() system + call.</li> + + <li>The setrlimit(RLIMIT_NOFILE) call does not function on + your system (such as Solaris 2.3)</li> + + <li>The number of file descriptors required exceeds the hard + limit.</li> + + <li>Your system imposes other limits on file descriptors, + such as a limit on stdio streams only using file descriptors + below 256. (Solaris 2)</li> + </ol> + In the event of problems you can: + + <ul> + <li>Reduce the number of log files; don't specify log files + in the VirtualHost sections, but only log to the main log + files.</li> + + <li> + If you system falls into 1 or 2 (above), then increase the + file descriptor limit before starting Apache, using a + script like + + <blockquote> + <code>#!/bin/sh<br /> + ulimit -S -n 100<br /> + exec httpd</code> + </blockquote> + </li> + </ul> + The have been reports that Apache may start running out of + resources allocated for the root process. This will exhibit + itself as errors in the error log like "unable to fork". There + are two ways you can bump this up: + + <ol> + <li>Have a <code>csh</code> script wrapper around httpd which + sets the "rlimit" to some large number, like 512.</li> + + <li> + Edit http_main.c to add calls to setrlimit() from main(), + along the lines of +<pre> + struct rlimit rlp; + + rlp.rlim_cur = rlp.rlim_max = 512; + if (setrlimit(RLIMIT_NPROC, &rlp)) { + fprintf(stderr, "setrlimit(RLIMIT_NPROC) failed.\n"); + exit(1); + } +</pre> + (thanks to "Aaron Gifford <agifford@InfoWest.COM>" + for the patch) + </li> + </ol> + The latter will probably manifest itself in a later version of + Apache. <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/win_compiling.html.en b/htdocs/manual/win_compiling.html.en new file mode 100644 index 0000000000..1c0ffd5168 --- /dev/null +++ b/htdocs/manual/win_compiling.html.en @@ -0,0 +1,263 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Compiling Apache for Microsoft Windows</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Compiling Apache for Microsoft Windows</h1> + + <p>There are many important points before you begin compiling + Apache. See <a href="windows.html">Using Apache with Microsoft + Windows</a> before you begin.</p> + + <p>Compiling Apache requires Microsoft Visual C++ 5.0 or 6.0 to + be properly installed. It can be built with command-line tools, + or within the Visual Studio environment. Consult the VC++ + manual to determine how to install them. Be especially aware + that the vcvars32.bat file from the Program + Files/DevStudio/VC/bin folder, and the setenv.bat file from the + Platform SDK, may be required to prepare the command-line tools + for command-line builds (e.g. using nmake). To install apache + with the Makefile.win or the InstallBin project in the Visual + Studio IDE, the awk utility is also required. If you use Visual + Studio 7.0 (.net), loading Apache.dsw converts it to .msproj + format. When changes are made to the project (.dsp) files, you + must reconvert Apache.dsw all over again.</p> + + <p>First, you should install awk.exe where it can be found in + the path and the DevStudio environment, if you plan to use the + IDE. There are many versions of awk available for Windows; the + easiest to install is available from Brian Kernighan's <a + href="http://cm.bell-labs.com/cm/cs/who/bwk/">http://cm.bell-labs.com/cm/cs/who/bwk/</a> + site. When downloading <a + href="http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe">http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe</a> + from this site, you must save it with the name awk.exe rather + than awk95.exe.</p> + + <p>Note that Developer Studio IDE will only find awk.exe from + the <u>T</u>ools menu <u>O</u>ptions... Directories tab + (the Projects - VC++ Directories pane in Developer Studio 7.0) + listing Executable file paths. Add the path for awk.exe to this + list, and your system PATH environment variable, as needed.</p> + + <p>Then unpack the Apache distribution into an appropriate + directory. Open a command-line prompt, and change to the + <code>src</code> subdirectory of the Apache distribution.</p> + + <p>The master Apache makefile instructions are contained in the + <code>Makefile.win</code> file. To compile Apache on Windows + NT, simply use one of the following commands:</p> + + <ul> + <li><code>nmake /f Makefile.win _apacher</code> (release + build)</li> + + <li><code>nmake /f Makefile.win _apached</code> (debug + build)</li> + </ul> + + <p>These will both compile Apache. The latter will include + debugging information in the resulting files, making it easier + to find bugs and track down problems.</p> + + <p>If you get an error such as "the name specified is not + recognized..." then you need to run vcvars32.bat first. Enter + the following command;</p> +<pre> + "c:\Program Files\DevStudio\VC\Bin\VCVARS32.BAT" +</pre> + + <p>(you will need to adjust this command so it matches the + directory where your VC was installed.)</p> + + <p>If you are a Visual C++ 5.0 user, and have installed a + recent Platform SDK, you may also need to enter the following + command (adjusted for the install directory of the Platform SDK + update);</p> +<pre> + "c:\Program Files\Platform SDK\SETENV.BAT" +</pre> + + <p>Then try the nmake command again.</p> + + <p><strong>Note</strong> that the Windows Platform SDK update + is required to enable all supported mod_isapi features. The SDK + files distributed with Microsoft Visual C++ 5.0 are out of + date. Without a recent update, Apache will issue warnings under + MSVC++ 5.0 that some mod_isapi features will be disabled. Look + for the update at <a + href="http://msdn.microsoft.com/platformsdk/"> + http://msdn.microsoft.com/platformsdk/</a>.</p> + + <p>Apache can also be compiled using VC++'s Visual Studio + development environment. To simplify this process, a Visual + Studio workspace, Apache.dsw, is provided in the + <code>src</code> folder. This workspace exposes the entire list + of working .dsp projects that are required for the complete + Apache binary release. It includes dependencies between the + projects to assure that they are built in the appropriate + order. InstallBin is the top-level project that will build all + other projects, and install the compiled files into their + proper locations.</p> + + <p>These .dsp project files are distributed in Visual C++ 6.0 + format. Visual C++ 5.0 (97) will recognize them with the single + exception of the /ZI flag, which corresponds to the VC 5.0 /Zi + flag for debugging symbols. To quickly prepare the .dsp files + for the Visual Studio 5.0 (97), you can use the perl scripts + distributed in the <code>src\helpers</code> folder:</p> +<pre> + cd src\helpers + cvstodsp5.pl +</pre> + + <p>This command assumes you have a Perl interpreter installed + and registered for files of type .pl. The list of converted + .dsp project files will be displayed as they are converted. If + you contribute back a patch that offers revised project files, + please convert them back with the script dsp5tocvs.pl, which + puts the projects back to Visual Studio 6.0 format.</p> + + <p>The core .dsp projects built by Apache.dsw and makefile.win + are:</p> + + <ul> + <li><code>os\win32\ApacheOS.dsp</code></li> + <li><code>os\win32\Win9xConHook.dsp</code></li> + <li><code>regex\regex.dsp</code></li> + <li><code>ap\ap.dsp</code></li> + <li><code>lib\expat-lite\xmltok.dsp</code></li> + <li><code>lib\expat-lite\xmlparse.dsp <em>requires + xmltok</em></code></li> + <li><code>lib\sdbm.dsp</code></li> + <li><code>main\gen_uri_delims.dsp</code></li> + <li><code>main\gen_test_char.dsp</code></li> + <li><code>ApacheCore.dsp <em>requires all of the + above</em></code></li> + <li><code>Apache.dsp <em>requires ApacheCore</em></code></li> + </ul> + + <p>In addition, the <code>os\win32</code> subdirectory contains + project files for the optional modules, all of which require + ApacheCore.</p> + + <ul> + <li><code>os\win32\mod_auth_anon.dsp</code></li> + <li><code>os\win32\mod_auth_dbm.dsp <em>also requires + sdbm</em></code></li> + <li><code>os\win32\mod_auth_digest.dsp</code></li> + <li><code>os\win32\mod_cern_meta.dsp</code></li> + <li><code>os\win32\mod_digest.dsp</code></li> + <li><code>os\win32\mod_expires.dsp</code></li> + <li><code>os\win32\mod_headers.dsp</code></li> + <li><code>os\win32\mod_info.dsp</code></li> + <li><code>os\win32\mod_mime_magic.dsp</code></li> + <li><code>os\win32\mod_proxy.dsp</code></li> + <li><code>os\win32\mod_rewrite.dsp</code></li> + <li><code>os\win32\mod_speling.dsp</code></li> + <li><code>os\win32\mod_status.dsp</code></li> + <li><code>os\win32\mod_unique_id.dsp</code></li> + <li><code>os\win32\mod_usertrack.dsp</code></li> + <li><code>os\win32\mod_vhost_alias.dsp</code></li> + </ul> + + <p>The <code>support\</code> folder contains project files for + additional programs that are not part of the Apache runtime, + but are used by the administrator to maintain password and log + files.</p> + + <ul> + <li><code>support\htdigest.dsp</code></li> + <li><code>support\htpasswd.dsp</code></li> + <li><code>support\logresolve.dsp</code></li> + <li><code>support\rotatelogs.dsp</code></li> + </ul> + + <p>Once Apache has been compiled, it needs to be installed in + its server root directory. The default is the + <code>\Apache</code> directory, on the current hard drive.</p> + + <p>To install the files into the <code>c:\ServerRoot</code> + directory automatically, use one of the following nmake commands + (see above):</p> + + <ul> + <li><code>nmake /f Makefile.win installr + INSTDIR=<em>c:\ServerRoot</em></code> (for release + build)</li> + <li><code>nmake /f Makefile.win installd + INSTDIR=<em>c:\ServerRoot</em></code> (for debug build)</li> + </ul> + + <p>The <em>c:\ServerRoot</em> argument to INSTDIR gives the + installation directory (it can be omitted if Apache is to be + installed into <samp>\Apache</samp>).</p> + + <p>This will install the following:</p> + + <ul> + <li><code><em>c:\ServerRoot</em>\Apache.exe</code> - Apache + program</li> + <li><code><em>c:\ServerRoot</em>\ApacheCore.dll</code> - + Apache runtime [shared library]</li> + <li><code><em>c:\ServerRoot</em>\Win9xConHook.dll</code> - + Win9x console fixups [shared library]</li> + <li><code><em>c:\ServerRoot</em>\xmlparse.dll</code> - XML + parser [shared library]</li> + <li><code><em>c:\ServerRoot</em>\xmltok.dll</code> - XML + token engine [shared library]</li> + <li><code><em>c:\ServerRoot</em>\bin\*.exe</code> - + Administration programs</li> + <li><code><em>c:\ServerRoot</em>\cgi-bin</code> - Example CGI + scripts</li> + <li><code><em>c:\ServerRoot</em>\conf</code> - Configuration + files directory</li> + <li><code><em>c:\ServerRoot</em>\icons</code> - Icons for + FancyIndexing</li> + <li><code><em>c:\ServerRoot</em>\include\*.h</code> - Apache + header files</li> + <li><code><em>c:\ServerRoot</em>\htdocs</code> - Welcome + index.html pages</li> + <li><code><em>c:\ServerRoot</em>\htdocs\manual</code> - + Apache documentation</li> + <li><code><em>c:\ServerRoot</em>\lib</code> - Static library + files</li> + <li><code><em>c:\ServerRoot</em>\libexec</code> - Dynamic + link libraries</li> + <li><code><em>c:\ServerRoot</em>\logs</code> - Empty logging + directory</li> + <li><code><em>c:\ServerRoot</em>\modules\mod_*.dll</code> - + Loadable Apache modules</li> + </ul> + + <p>If you do not have nmake, or wish to install in a different + directory, be sure to use a similar naming scheme.</p> + + <p>To simplify the process, dependencies between all projects + are defined in the Microsoft Visual Studio workspace file:</p> +<pre> + src/Apache.dsw +</pre> + + <p>This assures that lower-level sources are rebuilt from + within Visual Studio. The top level project is InstallBin, + which invokes Makefile.win to move the compiled executables and + dlls. You may personalize the INSTDIR= setting by changing the + Settings for InstallBin, Build command line entry under the + General tab. The default from within the InstallBin.dsp project + is one level up (..) from the src tree. Modify the InstallBin + settings and edit the INSTDIR=.. entry to the desired target + directory.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/win_compiling.html.html b/htdocs/manual/win_compiling.html.html new file mode 100644 index 0000000000..35a053bc01 --- /dev/null +++ b/htdocs/manual/win_compiling.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="win_compiling.html.en" --> + diff --git a/htdocs/manual/win_compiling.html.ja.jis b/htdocs/manual/win_compiling.html.ja.jis new file mode 100644 index 0000000000..84f713f96c --- /dev/null +++ b/htdocs/manual/win_compiling.html.ja.jis @@ -0,0 +1,268 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Microsoft Windows での Apache のコンパイル</title> + + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + <!-- English revision: 1.16 --> + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="center">Microsoft Windows での Apache のコンパイル</h1> + + <p>Apache のコンパイルを始めるにあたって、多くの重要なポイントがあります。 + 始める前に、<a href="windows.html">Microsoft Windows での Apache + の使用</a>を見てください。</p> + + <p>Apache をコンパイルするには Microsoft Visual C++ 5.0 + または 6.0 が適切にインスト・踉札襪気譴討い襪海箸廚任后鹿粡寂蝟赱齠洲痲筵娼ビルドはコマンドラインツ・踉札襦△泙燭蜩囈蜿鹿粡寂蝟赱齠洲痲筵娼環境で可能です。インスト・踉札襪諒,蓮崔鹿粡寂蝟赱齠洲痲筵娼のマニュアルを参考にしてください。コマンドラインでのビルド + (例えば nmake の使用)では、コマンドラインツ・踉札襪僚猗鳫苒瘢鹿粡寂蝟赱齠洲痲筵娼鍋跂鶩偵粡鎭崔蜴ぢフォルダにある vcvars32.bat 及び Platform + SDK の setenv.bat のファイルが必要になるであろう瘢雹ことについて、 + 特に注意してください。Makefile.win や Visual Studio IDE の + InstallBin プロジェクトを使って Apache をインスト・踉札襪垢襴苳詞合は、 + awk ユ・踉札謄螢謄睇廚砲覆蠅泙后帷齦瘡粡勲┏鈬鹿粡寂蝟赱齠洲痲筵娼を使う瘢雹豺腓蓮草痺蒹齬ぢを読み込み .msproj + フォ・踉札泪奪箸吠儡垢靴討世気ぁ廛蹈献Д肇侫.ぅ齔蝟昭粡竚癈鷭п粐Ьぢに変更があった豺腓鞜竏絎糂蝟昭粡竚癈鷭п粐Ьぢを一から変換し彫苳擦気覆韻譴个覆蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢまず、IDE を使う瘢雹つもりならパスが通り、DevStudio + 環境が解瓩任襪箸海蹐ぢをインスト・踉札襪靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼怏鈔阯で利用可能な awk は様々なバ・踉札献腑鵑△蠅泙后鹿粡寂蝟赱齠洲痲筵娼一番インスト・踉札襪靴笋垢い發里鱸瘤纈鉗艾瘤ぢの <a + href="http://cm.bell-labs.com/cm/cs/who/bwk/" + >http://cm.bell-labs.com/cm/cs/who/bwk/</a> サイトから入蟆椎修任后鹿粡寂蝟赱齠洲痲筵娼このサイトから <a href="http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe" + >http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe</a> + をダウ瘢雹ンロ・踉札匹靴職苳詞合は、awk95.exe を awk.exe + という瘢雹巳苳餐阿琶歛犬靴覆韻譴个覆蠅泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳残纐繻關纈粡苗はツ・踉札苳市メニュ・踉擦離廛轡腑鹿粡寂蝟赱齠洲痲筵娼└踉歯櫓踉晒苳皐ぢ以王踉擦痢▲妊譽肇螢織偵跫鞳囈蜿ぢでは + Projects - VC++ Directories) + の孫垈椎愁侫.ぅ襪縫螢好箸気譴職苳詞所にある豺腓砲里漾癡覡纔綣蝟昭粡竚癈鷭п粐Ьぢを見つけられることに注意してください。必要に応じ、awk.exe + へのパスをこのリスト、システムの環境変数 PATH に追加してください。</p> + + <p>それから、適切なディレクトリに Apache の配布を展開してください。 + コマンドプロンプトを開き、Apache 配布サブディレクトリ + <code>src</code> に移動してください</p> + + <p><code>Makefile.win</code> ファイルには Apache の makefile + の元となる指┐泙泙譴討い泙后怏鈔阯麥で Apache + をコンパイルするには、単に以王踉擦離灰泪鵐匹里逅擦舛琉譴弔鮖箸辰討世気鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚竢粤鉈瘠瘠繙蛹絎焉鞜竏纈閼絋苳纂蝟昭粡竚癈鷭п粐Ьリリ・踉札好咼襯踉晒跚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚竢粤鉈瘠瘠繙蛹絎焉鞜竏繖閼絋苳纂蝟昭粡竚癈鷭п粐Ьデバッグビルド)</li> + </ul> + + <p>これらはどちらも Apache をコンパイルします。 + 後圓任蓮⊇侘呂気譴織侫.ぅ襪縫妊丱奪愛苳諮報が含まれ、 + バグを見つけたり問題を追跡したりしやすくなります。</p> + + <p>もし、「...として認韻気譴討い泙擦鵝鹿粡寂蝟赱齠洲痲筵娼のよう瘢雹なエラ・踉擦个職苳詞合はまず、vcvars32.bat を孫圓垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼以王踉擦離灰泪鵐匹鯑呂靴討世気鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瘢雹髟阡祉載會閾鱇鍋跂黠偵粡閔崔楝蜴榜置倉啌荻矚熙瘢雹髟阡纂蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮ぢこのコマンドは VC がインスト・踉札襪気譴織妊譽肇蠅帽腓錣擦鹿粡寂蝟赱齠洲痲筵娼調整する必要があります。)</p> + + <p>Visual C++ 5.0 ユ・踉札兇如△帖∈廼瓩離廛薀奪肇侫ム SDK + をインスト・踉札襪靴討い襴苳詞合は、以王踉擦離灰泪鵐匹鯑呂垢詆廚△襪任靴腓逅鹿粡寂蝟赱齠洲痲筵娼赱闥喞アップデ・踉札箸ぅ鵐好函ルされているディレクトリに合わせて + 調整する必要があります)</p> +<pre> + "c:\Program Files\Platform SDK\SETENV.BAT" +</pre> + + <p>それから、再び nmake コマンドを試してください。</p> + + <p>サポ・踉札箸気譴燭垢戮討閼煢黶韈ぢ機能を有効にするには Windows + Platform SDK の更新が必要になることに<strong>注意してください</strong>。 + Microsoft Visual C++ 5.0 とともに配布された SDK ファイルは古いために + 使えません。 + 最近のアップデ・踉札箸覆気譴討い覆う苳詞合、Apache は MSVC++ 5.0 では、 + mod_isapi 機能がいくつか使用不可になることを警告します。 + アップデ・踉札箸亡悗靴討踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕黻隨迚竰闢閹竢躁韭癆肬鴉黻覩⊆蝟昭粡竚癈鷭п粐Ь苳肢雕逑粮蜒鳫閹竢躁韭癆肬鴉黻覩ぢで探してください。</p> + + <p>Apache は、VC++ の Visual Studio 開発環境を使ってコンパイル + することもできます。このプロセスを簡素化するために、Visual Studio + workspace (Apache.dsw) が <code>src</code> フォルダにおいて + 提供されています。 + この workspace は、完全な Apache のバイナリリリ・踉札垢防廚糂霄蝟昭粡竚癈鷭п粐Ьぢプロジェクトの全体のリストが書かれています。 + また、それらが適切な順序でビルドされるよう瘢雹にするために、 + プロジェクトの間の依存関係も含まれています。 + InstallBin が、側苳擦里垢戮討離廛蹈献Д箸鬟咼襯匹掘鹿粡寂蝟赱齠洲痲筵娼コンパイルされたファイルを適切な位置にインスト・踉札襪垢襦鹿粡寂蝟赱齠洲痲筵娼トップレベルのプロジェクトです。</p> + + <p>これらの .dsp プロジェクトファイルは Visual C++ 6.0 + のフォ・踉札泪奪箸杷柯曚気譴泙后帷齦瘡┨粂ぢは + 唯一の例外、デバッグシンボル用のフラグである /ZI + フラグを除いてこのフォ・踉札泪奪箸鯒Е踉傘します。 + VC 5.0 では /Zi フラグがこれに相当します。 + Visual Studio 5.0 (97) の .dsp ファイルをすぐに準備するには、 + <code>src\helpers</code> フォルダにて配布されている perl + スクリプトを使う瘢雹ことができます</p> +<pre> + cd src\helpers + cvstodsp5.pl +</pre> + + <p>このコマンドは、Perl インタプリタがインスト・踉札襪気譴討い董鹿粡寂蝟赱齠洲痲筵娼のファイルタイプが登録されていると王苳残蠅靴泙后J儡垢気譴糂霄蝟昭粡竚癈鷭п粐Ьぢプロジェクトファイルのリストはそれらが変換されるにつれて表┐気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼改訂されたプロジェクトファイルを提供するパッチを寄与するときは、 + Visual Studio6.0 フォ・踉札泪奪箸縫廛蹈献Д箸鯡瓩好好螢廛鹿粡寂蝟赱齠洲痲筵娼糂雉笆鶤韭ぢによってそれらを変換してください。</p> + + <p>Apache.dsw 及び makefile.win によりビルドされるコアの .dsp + プロジェクトは以王踉擦猟未蠅任鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚竢粤闢樸蜴害楞鞜竏縅哺糂隍踉晒竢粤薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳誌黠邀蝦怏邱闔被闍齔閼絋苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼跚竢粤鱚艱鱚艱糂隍踉晒竢粤薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳氏靺瘰齔閼絋苳殺踉晒跚鹿粡寂蝟赱齠洲痲筵娼跚竢粤跚瞽纔鞜跚樢迪覡糂隍踉晒竢粤薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳詞蛯槭癆蜚縵跟癇黼齔踉糸蹙苳侍迪が必要</em></code></li> + <li><code>lib\sdbm.dsp</code></li> + <li><code>main\gen_uri_delims.dsp</code></li> + <li><code>main\gen_test_char.dsp</code></li> + <li><code>ApacheCore.dsp <em>以總瓦討蹙苳殺踉晒竢粤薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳餐鞜竏絎糂纃草痺蒹衷鱚ぢが必要</em></code></li> + </ul> + + <p>さらに <code>os\win32</code> サブディレクトリには、 + オプションのモジュ・踉札襪垢戮討離廛蹈献Д肇侫.ぅ襪泙泙譴泙后鹿粡寂蝟赱齠洲痲筵娼ぢこれらはすべて ApacheCore を必要とします。 + </p> + + <ul> + <li><code>os\win32\mod_auth_anon.dsp</code></li> + <li><code>os\win32\mod_auth_dbm.dsp <em>sdbm も必要</em></code></li> + <li><code>os\win32\mod_auth_digest.dsp</code></li> + <li><code>os\win32\mod_cern_meta.dsp</code></li> + <li><code>os\win32\mod_digest.dsp</code></li> + <li><code>os\win32\mod_expires.dsp</code></li> + <li><code>os\win32\mod_headers.dsp</code></li> + <li><code>os\win32\mod_info.dsp</code></li> + <li><code>os\win32\mod_mime_magic.dsp</code></li> + <li><code>os\win32\mod_proxy.dsp</code></li> + <li><code>os\win32\mod_rewrite.dsp</code></li> + <li><code>os\win32\mod_speling.dsp</code></li> + <li><code>os\win32\mod_status.dsp</code></li> + <li><code>os\win32\mod_unique_id.dsp</code></li> + <li><code>os\win32\mod_usertrack.dsp</code></li> + <li><code>os\win32\mod_vhost_alias.dsp</code></li> + </ul> + + <p><code>support\</code> フォルダは、Apache + ランタイムの一部ではないけれども、パスワ・踉札匹肇蹈哀侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼管理するために、管理圓砲茲蟷藩僂気譴訥媛辰離廛蹈哀薀爐鹿粡寂蝟赱齠洲痲筵娼プロジェクトファイルが含まれます。</p> + + <ul> + <li><code>support\htdigest.dsp</code></li> + <li><code>support\htpasswd.dsp</code></li> + <li><code>support\logresolve.dsp</code></li> + <li><code>support\rotatelogs.dsp</code></li> + </ul> + + <p>Apache がコンパイルできたらサ・踉札丱襦トディレクトリにインスト・踉札鹿粡寂蝟赱齠洲痲筵娼する必要があります。デフォルトは現在のハ・踉札疋妊好離妊譽肇鹿粡寂蝟赱齠洲痲筵娼竢粤楞鞜竏絋踉晒竢粤ぢです。</p> + + <p>暗踉祉閼絋苳祉載嚆鴟纈呰阡閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢにファイルをインスト・踉札襪垢襪砲蓮焚の nmake + コマンド(緝王苳使)のどちらかを使ってください。</p> + + <ul> + <li><code>nmake /f Makefile.win installr + INSTDIR=<em>c:\ServerRoot</em></code> (リリ・踉札紅妊咼襯浜蝟昭粡竚癈鷭п粐Ь踉晒跚鹿粡寂蝟赱齠洲痲筵娼跚竢粤鉈瘠瘠繙蛹絎蜴齡瘡趙鹿粡寂蝟赱齠洲痲筵娼瀕嘖追匳纃禳樮纈鰔闖熙踉晒纃閼絋苳ぢデバッグ版ビルド用)</li> + </ul> + + <p>INSTDIR への<em>c:\ServerRoot</em> + 引数がインスト・踉札襯妊譽肇蠅鮖慊蠅靴泙草痺蒹ぢを <samp>\Apache</samp> + にインスト・踉札襪垢襴苳詞合は蔑ぢ。</p> + + <p>これにより以王踉擦ぅ鵐好函ルされます</p> + + <ul> + <li><code><em>c:\ServerRoot</em>\Apache.exe</code> - Apache + プログラム</li> + <li><code><em>c:\ServerRoot</em>\ApacheCore.dll</code> - + Apache ランタイム [共瘢雹有ライブラリ]</li> + <li><code><em>c:\ServerRoot</em>\Win9xConHook.dll</code> - + Win9x console fixups [共瘢雹有ライブラリ]</li> + <li><code><em>c:\ServerRoot</em>\xmlparse.dll</code> - XML + パ・踉札共瘢雹有ライブラリ]</li> + <li><code><em>c:\ServerRoot</em>\xmltok.dll</code> - XML + ト・踉札鵐┘鵐献共瘢雹有ライブラリ]</li> + <li><code><em>c:\ServerRoot</em>\bin\*.exe</code> - + 管理用プログラム</li> + <li><code><em>c:\ServerRoot</em>\cgi-bin</code> - CGI + スクリプトの例</li> + <li><code><em>c:\ServerRoot</em>\conf</code> - 設定ファイル + ディレクトリ</li> + <li><code><em>c:\ServerRoot</em>\icons</code> - FancyIndexing + 用のアイコン</li> + <li><code><em>c:\ServerRoot</em>\include\*.h</code> - Apache + ヘッダファイル</li> + <li><code><em>c:\ServerRoot</em>\htdocs</code> - よう瘢雹こそ、の + index.html ペ・踉札薤苳纂蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉祉閼絋苳殺踉糸蹙苳祉載嚆鴟纈呰阡蹙苳施蔗粹笂橄瘤讀踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢドキュメント</li> + <li><code><em>c:\ServerRoot</em>\lib</code> - 静的ライブラリ + </li> + <li><code><em>c:\ServerRoot</em>\libexec</code> - 動的ライブラリ + </li> + <li><code><em>c:\ServerRoot</em>\logs</code> - 空のログディレクトリ + </li> + <li><code><em>c:\ServerRoot</em>\modules\mod_*.dll</code> - + ロ・踉札媛椎修鞜竏モジュ・踉札薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢもし nmake を持っていないか、違う瘢雹ディレクトリにインスト・踉札鹿粡寂蝟赱齠洲痲筵娼したい豺腓蓮再瑛佑量震体系を使ってください。</p> + + <p>プロセスの簡素化のためすべてのプロジェクトの間の依存関係は + Microsoft Visual Studio workspace ファイルにおいて定義されています</p> +<pre> + src/Apache.dsw +</pre> + + <p>これは、より低位のソ・踉札垢蜩囈蜿鹿粡寂蝟赱齠洲痲筵娼内で再ビルドされることを保擇靴泙后忍苳糸位のプロジェクトは InstallBin + であり、Makefile.win を孫圓靴謄灰鵐僖ぅ襪気譴職踉斬行ファイルと dll + を移動します。InstallBin の、「設定」から、「一般」タブにある、 + 「コマンドライン」エントリで INSTDIR= を変更することができます。 + InstallBin.dsp プロジェクト内のデフォルトは、src ツリ・踉擦鹿粡寂蝟赱齠洲痲筵娼階層です。InstallBin 設定を修正し、 + INSTDIR= を目的のディレクトリへと編集してください。 + </p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/win_service.html.en b/htdocs/manual/win_service.html.en new file mode 100644 index 0000000000..00598223ad --- /dev/null +++ b/htdocs/manual/win_service.html.en @@ -0,0 +1,435 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Running Apache for Windows as a Service</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER">Running Apache for Windows as a Service</h1> + + <p>Apache can be run as a service on Windows NT/2000. (There is + also some experimental support for similar behavior on + <a href="#win95svc">Windows 95/98</a>, introduced with Apache + 1.3.13).</p> + + <p>Installing Apache as a service should only be done once you + can successfully run it in a console window. See <a + href="windows.html">Using Apache with Microsoft Windows</a> + before you attempt to install or run Apache as a service. + Changes to the httpd.conf file should always be followed by + starting Apache as a console window. If this succeeds, the + service should succeed.</p> + + <p><strong>NOTE: Prior to version 1.3.13, the configuration was + <em>not tested</em> prior to performing the + installation</strong>, and a lack of service dependencies often + caused the console window to succeed, but the service would + still fail. See <a href="#service">below</a> if you are having + problems running a version of Apache prior to 1.3.13 to resolve + the issue. If you have this problem with version 1.3.13 or + greater, first try uninstalling (-u) and re-installing (-i) the + Apache service. Better yet, upgrade to the most recent version.</p> + <hr /> + + <p>To start Apache as a service, you first need to install it + as a service. Multiple Apache services can be installed, each + with a different name and configuration. To install the default + Apache service named "Apache", choose the "Install as Service for + All Users" option when launching the Apache installation package. + Once this is done you can start the "Apache" service by opening + the Services window (in the Control Panel, hidden in "Administrative + Tools" on Windows 2000), selecting Apache, then clicking + on Start. Apache will now be running, hidden in the background. + You can later stop Apache by clicking on Stop. As an + alternative to using the Services window, you can start and + stop the "Apache" service from the command line with</p> +<pre> + NET START APACHE + NET STOP APACHE +</pre> + + <p>See <a href="#signal">Controlling Apache as a Service</a> + for more information on installing and controlling Apache + services.</p> + + <p><strong>Apache, unlike many other Windows NT/2000 services, + logs most errors to its own error.log file, in the logs folder + within the Apache server root folder. You will find few Apache + error details in the Windows NT Event Log. Only errors as + Apache attempts to start are captured in the Application Event + Log.</strong></p> + + <p>After starting Apache as a service (or if you have trouble + starting it) you can test it using the same <a + href="windows.html#test">procedure</a> as for running in a + console window. Remember to use the command:</p> +<pre> + apache -n "service name" +</pre> + + <p>to assure you are using the service's default + configuration.</p> + + <h2><a id="service" name="service">Running Apache for Windows + as a Service</a></h2> + + <p><strong>Note: The -n option to specify a service name is + only available with Apache 1.3.7 and later.</strong> Earlier + versions of Apache only support the default service name + 'Apache'. Only version 1.3.21 supports Windows 2000 ability + to 'rename' the display name of a service.</p> + + <p>You can install Apache as a Windows NT service as + follows:</p> +<pre> + apache -i -n "service name" +</pre> + + <p>To install a service to use a particular configuration, + specify the configuration file when the service is + installed:</p> +<pre> + apache -i -n "service name" -f "\my server\conf\my.conf" +</pre> + + <p>You can pass any other arguments, such as -d to change the + default server root directory, -D, -C or -c to change config + file processing, etc. Since these are stored in the registry + and are difficult to modify, use this command to clear the + options and replace them with a new list of options;</p> +<pre> + apache -k config -n "service name" -f "\my server\conf\my.conf" +</pre> + + <p>To remove an Apache service, use:</p> +<pre> + apache -u -n "service name" +</pre> + + <p>The default "service name", if one is not specified, is + "Apache".</p> + + <p>Once a service is installed, you can use the <samp>-n</samp> + option, in conjunction with other options, to refer to a + service's configuration file. For example:</p> + + <p>To test a service's configuration file and report the + default options for the service (configured with -i, -k install + or -k config) use:</p> +<pre> + apache -n "service name" -t +</pre> + + <p>To start a console Apache using a service's configuration + file and its default options, use:</p> +<pre> + apache -n "service name" +</pre> + + <p>Effective with Apache release 1.3.15, the -k install option + was added as an alias to -i, and the -k uninstall option was + added as an alias to -u. The original -i and -u options are + deprecated in Apache 2.0. These aliases were added to ease the + transition for administrators running both versions.</p> + + <h2><a id="depends" name="depends">Important Note on service + dependencies:</a></h2> + + <p>Prior to Apache release 1.3.13, the dependencies required to + successfully start an installed service were not configured. + After installing a service using earlier versions of Apache, + you must follow these steps:</p> +<pre> + Run regedt32 + Select <u>W</u>indow - "HKEY_LOCAL_MACHINE on Local Machine" from the menu + Double-click to open the SYSTEM, then the CurrentControlSet keys + Scroll down and click on the Apache servicename + Select <u>E</u>dit - Add <u>V</u>alue... from the menu + Fill in the Add Value dialog with + <u>V</u>alue Name: DependOnGroup + <u>D</u>ata Type: REG_MULTI_SZ + and click OK + Leave the Multi-String Editor dialog empty and click OK + Select <u>E</u>dit - Add <u>V</u>alue... from the menu + Fill in the Add Value dialog with + <u>V</u>alue Name: DependOnService + <u>D</u>ata Type: REG_MULTI_SZ + and click OK + Type the following list (one per line) in the Multi-String Editor dialog + Tcpip + Afd + and click OK +</pre> + + <p>If you are using COM or DCOM components from a third party + module, ISAPI, or other add-in scripting technologies such as + ActiveState Perl, you may also need to add the entry Rpcss to + the DependOnService list. To avoid exposing the TCP port 135 + when it is unnecessary, Apache does not create that entry upon + installation. Follow the directions above to find or create the + DependOnService value, double click that value if it already + exists, and add the Rpcss entry to the list.</p> + + <p>Other installations may require additional dependencies. + If any files required at startup reside on a network drive, you + may need to first configure the service to depend on the network + redirector (usually lanmanworkstation) and follow the directions + below under the "User Account for Apache Service to Run As" section.</p> + + <p>Attempting to use both IIS and Apache, on the same port but on + two different IP addresses may require the W3SVC (IIS) to start prior + to Apache, because IIS tries to glom onto all IP addresses (0.0.0.0) + as it starts, and will fail if Apache has already started on a + specific IP address.</p> + + <p>Apache 1.3.21 introduces a MUCH simpler way to add a dependency. + The -W "servicename" argument modifies the -k install or -k config + commands to configure a dependency for Apache. Multiple -W arguments + may be given, but they should all occur after the -k option. + For example, to add the LanmanWorkstation dependency to an installed + "Apache" service, use this command:</p> +<pre> + apache -k config -n Apache -W LanmanWorkstation +</pre> + + <h2>User Account for Apache Service to Run As (NT/2000)</h2> + + <p>When Apache is first installed as a service (e.g. with the + -i option) it will run as user "System" (the LocalSystem + account). There should be few issues if all resources for the + web server reside on the local system, but it has broad + security privileges to affect the local machine!</p> + + <blockquote> + LocalSystem is a very privileged account locally, so you + shouldn't run any shareware applications there. However, it + has no network privileges and cannot leave the machine via + any NT-secured mechanism, including file system, named pipes, + DCOM, or secure RPC. + </blockquote> + + <p><strong>NEVER grant network privileges to the SYSTEM + account!</strong> Create a new user account instead, grant the + appropriate privileges to that user, and use the 'Log On As:' + option. Select the Start Menu -> Settings -> Control + Panel -> Services -> apache service ... and click the + "Startup" button to access this setting.</p> + + <blockquote> + A service that runs in the context of the LocalSystem account + inherits the security context of the SCM. It is not + associated with any logged-on user account and does not have + credentials (domain name, user name, and password) to be used + for verification. + </blockquote> + + <p>The SYSTEM account has no privileges to the network, so + shared pages or a shared installation of Apache is invisible to + the service. If you intend to use <em>any</em> network + resources, the following steps should help:</p> + + <ul> + <li>Select Apache from the Control Panel's Service dialog and + click Startup.</li> + + <li>Verify that the service account is correct. You may wish + to create an account for your Apache services.</li> + + <li>Retype the password and password confirmation.</li> + + <li>Go to User Manager for Domains.</li> + + <li>Click on Policies from the title bar menu, and select + User Rights.</li> + + <li>Select the option for Advanced User Rights.</li> + + <li> + In the drop-down list, verify that the following rights + have been granted to the selected account: + + <ul> + <li>Act as part of the operating system</li> + + <li>Back up files and directories</li> + + <li>Log on as a service</li> + + <li>Restore files and directories</li> + </ul> + </li> + + <li>Confirm that the selected account is a member of the + Users group.</li> + + <li>Confirm the selected account has access to all document + and script directories (minimally read and browse + access).</li> + + <li>Confirm the selected account has read/write/delete access + to the Apache logs directory!</li> + </ul> + + <p>If you allow the account to log in as a user, then you can + log in yourself and test that the account has the privileges to + execute the scripts, read the web pages, and that you can start + Apache in a console window. If this works, and you have + followed the steps above, Apache should execute as a service + with no problems.</p> + + <p><strong>Note: error code 2186</strong> is a good indication + that you need to review the 'Log On As' configuration, since + the server can't access a required network resource.</p> + + <h2><a id="trouble" name="trouble">Troubleshooting Apache for + Windows as a Service</a></h2> + + <p>When starting Apache as a service you may encounter an error + message from Windows service manager. For example if you try to + start Apache using the Services applet in Windows Control Panel + you may get the following message;</p> +<pre> + Could not start the apache service on \\COMPUTER + Error 1067; The process terminated unexpectedly. +</pre> + + <p>You will get this error if there is any problem starting + Apache. In order to see what is causing the problem you should + follow the instructions for <a href="windows.html#test">Testing + Apache at the Command Prompt</a>.</p> + + <p>Also, Apache 1.3.13 now records startup errors in the + Application Event Log under Windows NT/2000, if Apache is run + as a service. Run the Event Viewer and select <u>L</u>og ... + <u>A</u>pplication to see these events.</p> + + <p><strong>Check the Application Event Log with the Event + Viewer in case of any problems, even if no error message pops + up to warn you that an error occurred.</strong></p> + + <h2><a id="cmdline" name="cmdline">Running Apache for Windows + from the Command Line</a></h2> + For details on controlling Apache service from the command + line, please refer to <a href="windows.html#cmdline">console + command line</a> section. + + <h2><a id="signal" name="signal">Controlling Apache as a + Service</a></h2> + + <p>Multiple instances of Apache can be installed and run as + services. Signal an installed Apache service to start, restart, + or shutdown/stop as follows:</p> +<pre> + apache -n "service name" -k start + apache -n "service name" -k restart + apache -n "service name" -k shutdown + apache -n "service name" -k stop +</pre> + + <p>For the default "Apache" service, the -n Apache option is + still required, since the -k commands without the -n option are + directed at Apache running in a console window. The quotes are + only required if the service name contains spaces.</p> + + <p><strong>Note: the -k stop alias for the -k shutdown command + was introduced in Apache version 1.3.13.</strong> Earlier + versions of Apache will only recognize the -k shutdown option. + Prior to 1.3.3, Apache did not recognize <em>any</em> -k + options at all!</p> + + <p>Note that you may specify startup options on the apache -k + start command line, including the -D, -C and -c options. These + affect the processing of the service configuration, and may be + used with an <IfDefine> block to conditionally process + directives. You may also override the server root path or + configuration file with the -d or -f options. The options + should also be passed to the -k restart command, but they are + ignored if the service is running, and only processed if the + service is started.</p> + + <p>The service also appears in the Service Control applet on + Windows NT/2000. For NT, this is found in the Settings -> + Control Panel -> Services entry, and on 2000 it is found in + the Settings -> Control Panel -> Administrative Tools + -> Services entry. Here you can select the desired Apache + service to start or stop it. Pass additional options such as + -D, -C and -c, or override the default -d or -f options in the + Start Parameters box before clicking the Start button. These + options behave identically to the apache -k start command.</p> + + <p>In addition, you can use the native Windows NT/2000 command + NET to start and stop Apache services:</p> +<pre> + NET START "service name" + NET STOP "service name" +</pre> + + <p>Again, quotes are only required if the service name contains + spaces. There is no way using the NET START command to pass + additional options such as -D, -c or -C using the NET START + command. If options are required, use one of the other two + methods instead.</p> + + <h2><a id="win95svc" name="win95svc">Experimental + Windows 95/98 Service</a></h2> + + <p><strong>Note: The service options for Windows 95 and 98 are + only available with Apache 1.3.13 and later.</strong> Earlier + versions of Apache only supported Apache in a console window + for Windows 95/98.</p> + + <p>There is some support for Apache on Windows 95/98 to behave + in a similar manner as a service on Windows NT/2000. It is + <em>experimental</em>, if it works (at all) the Apache + Software Foundation will not attest to its reliability or + future support. Proceed at your own risk!</p> + + <p>Once you have confirmed that Apache runs correctly at the <a + href="windows.html#test">Command Prompt</a> you can install, + control and uninstall it with the same commands as the Windows + NT/2000 version.</p> + + <p>There are, however, significant differences that you should + note:</p> + + <p>Apache will attempt to start and if successful it will run + in the background. If you run the command</p> +<pre> + Apache -n "service name" -k start +</pre> + + <p>via a shortcut on your desktop, for example, then if the + service starts successfully a console window will flash up but + immediately disappears. If Apache detects any errors on startup + such as a incorrect entries in the httpd.conf file, then the + console window will remain visible. This may display an error + message which will be useful in tracking down the cause of the + problem, and you should also review the error.log file in the + Apache logs directory.</p> + + <p>Windows 95/98 does not support NET START or NET STOP + commands so you must use Apache's Service Control options at a + command prompt. You may wish to set up a shortcut for each of + these commands so that you can just choose it from the start + menu or desktop to perform the required action.</p> + + <p>Apache and Windows 95/98 offer no support for running the + Apache service as a specific user with network privileges. In + fact, Windows 95/98 offers no security on the local machine, + either. This is the simple reason that the Apache Software + Foundation never endorses the use of Windows 95/98 as a public + httpd server. These facilities exist only to assist the user in + developing web content and learning the Apache server, and + perhaps as a intranet server on a secured, private network.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/win_service.html.html b/htdocs/manual/win_service.html.html new file mode 100644 index 0000000000..66272ce960 --- /dev/null +++ b/htdocs/manual/win_service.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="win_service.html.en" --> + diff --git a/htdocs/manual/win_service.html.ja.jis b/htdocs/manual/win_service.html.ja.jis new file mode 100644 index 0000000000..27ecede826 --- /dev/null +++ b/htdocs/manual/win_service.html.ja.jis @@ -0,0 +1,434 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Windows で Apache をサ・踉札咼垢箸靴篤阿蜚跂鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼踉晒蒹痲鹿粡寂蝟赱齠洲痲筵娼´梼芟蜩鱚皷闔艮苳纂蝟昭粡竚癈鷭п粐Ь踉察痺諛鳫蜚絳蜴謫跿鉚蜩蜚繖癘蜩蜚繖繖痺鹿粡寂蝟赱齠洲痲筵娼硼糯艫闌闥就f聿聿罌纔■旭旭旭跚鉉就0旭井罌鹿粡寂蝟赱齠洲痲筵娼蜴觸■旭旭鍵瘡蜴觸■聿旭旭▽苳纂蝟昭粡竚癈鷭п粐Ь踉察i釿跿粤蜥瘡就蒹痲纈譬苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉肢瘡蜃扈≪緕鬆怏鈔阯で Apache をサ・踉札咼垢箸靴篤阿右苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮怏鈔阯淋旭では Apache + をサ・踉札咼垢箸靴篤阿垢海箸任泙后鞜竏窺凱嘘鹿粡寂蝟赱齠洲痲筵娼で、非錣胞踉斬験的に<a href="#win95svc">Windows 95/98</a> + においても同様の動作をサポ・踉札箸鬚垢襪茲逅擦砲覆蠅泙靴ぢ。</p> + + <p>サ・踉札咼垢箸靴鞜竏をインスト・踉札襪垢襪砲蓮鹿粡寂蝟赱齠洲痲筵娼コンソ・踉札襯逅札鵐疋逅擦任燭辰唇貪戮海陸踉斬行が成功できればいいはずです。 + Apache をサ・踉札咼垢箸靴謄ぅ鵐好函ルしたり、動かそう瘢雹とする前に <a + href="windows.html">Microsoft Windows で Apache を動かす</a> + を参箸靴討世気ぁ蔗筮竢鈕ぢファイルへの変更はコンソ・踉札襯逅札鵐疋逅擦鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢを起動することにより、いつも反映されます。 + これでう瘢雹まくいけば、サ・踉札咼垢論垢襪任靴腓逅察鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ注意: バ・踉札献腑より前ではインスト・踉札襴踉斬行前に + 設定は<em>テストされません</em></strong>。サ・踉札咼垢琉預言良埖鹿粡寂蝟赱齠洲痲筵娼原因で、コンソ・踉札襯逅札鵐疋逅擦任呂靴个靴个逅擦泙い泙垢鹿粡寂蝟赱齠洲痲筵娼サ・踉札咼垢呂泙畝踉産敗します。Apache の 1.3.13 より前のバ・踉札献腑鵑鹿粡寂蝟赱齠洲痲筵娼動かすときに問題があるならば、<a href="#service">後述の説明</a> + を参箸靴討世気ぁ弌ジョン 1.3.13 以降でこの問題があるなら、 + まず最初に Apache をアンインスト・踉札してから再インスト・踉札鹿粡寂蝟赱齠洲痲筵娼┃薊ぢを試してみてください。 + もっとよい蠱覆郎膿靴離弌ジョンにアップグレ・踉札匹垢襪海箸任后鹿粡寂蝟赱齠洲痲筵娼蓿鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏をサ・踉札咼垢箸靴導呂垢襪燭瓩砲蓮△泙査能蕕縫機ビスとして + インスト・踉札襪垢詆廚△蠅泙后修譴れ別の巳苳餐阿叛瀋蠅鮖箸辰董鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢサ・踉札咼垢鯤凜ぅ鵐好函ルすることができます。デフォルトの + "Apache" という瘢雹巳苳餐阿鞜竏サ・踉札咼垢鬟ぅ鵐好函ルするには、スタ・踉札鹿粡寂蝟赱齠洲痲筵娼メニュ・踉擦侮齡瘡草痺蒹嚆鴟蜒紜ぢオプションを孫圓靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼これを一度行なえば、(コントロ・踉札襯僖優訝罎サ・踉札咼好逅札鵐疋逅鹿粡寂蝟赱齠洲痲筵娼(Windows 2000では管理ツ・踉札襪涼罎砲△蠅泙后砲魍い董草痺蒹ぢを選択して、 + ,鶯ぢをクリックすることで、"Apache" サ・踉札咼垢魍呂任泙后鹿粡寂蝟赱齠洲痲筵娼これで Apache はバックグラウ瘢雹ンドで動きます。 + その後は Stop をクリックすることで、Apache を終了できます。 + サ・踉札咼好逅札鵐疋逅擦鮖箸逅斬紊錣蠅法▲灰泪鵐疋薀ぅ鵑蕁鹿粡寂蝟赱齠洲痲筵娼以王踉擦鬢踉斬行することで、"Apache" サ・踉札咼垢魍蓮⊇擦任泙后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь都堊參仭暖甜蝟昭粡竚癈鷭п粐Ь都塹双礎氾鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏サ・踉札咼垢離ぅ鵐好函ルとコントロ・踉札襪亡悗垢襪気蕕覆襴苳諮報は、 + <a href="#signal">Apache サ・踉札咼垢離灰鵐肇蹇ル</a>を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳餐鞜竏は、側苳擦梁燭蜴粹坏屋旭ぢのサ・踉札咼垢醗曚覆蝓鹿粡寂蝟赱齠洲痲筵娼ほとんどのエラ・踉擦脇筈踉捌に Apache のサ・踉札丱襦トの logs フォルダにある + error.log ファイルに記録します。ほとんどの Apache のエラ・踉擦亡悗垢鹿粡寂蝟赱齠洲痲筵娼楮戮怏鈔阯淋ぢのイベントログでは分からないでしょう瘢雹。Apache + を起動しよう瘢雹としたときに発生したエラ・踉擦世韻ぅ戰鵐肇蹈阿傍燭気譴泙后鹿粡寂蝟赱齠洲痲筵娼闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢをサ・踉札咼垢箸靴導呂靴晋または、開始することに問題が + あれば)、コンソ・踉札襯逅札鵐疋逅擦蘰韻蓿繙就鈔阯鶤蔗迪t纉槇蟒鹿粡寂蝟赱齠洲痲筵娼でテストできます。デフォルトのサ・踉札咼浩瀋蠅魍稜Г垢襪燭瓩砲蓮鹿粡寂蝟赱齠洲痲筵娼このコマンド:</p> +<pre> + apache -n "service name" +</pre> + + <p>を使う瘢雹ことを覚えておいてください。</p> + + + <h2><a id="service" name="service">Windows で Apache をサ・踉札咼垢箸靴鹿粡寂蝟赱齠洲痲筵娼動かす</a></h2> + + <p><strong>注意: サ・踉札咼耕を指定する -n オプションは Apache 1.3.7 + 以降でのみ利用可能です。</strong> 以前のバ・踉札献腑鵑鞜竏では、 + デフォルトのサ・踉札咼耕 'Apache' だけがサポ・踉札箸気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼バ・踉札献腑に限り、Windows 2000 でサ・踉札咼耕として表┐気譴鹿粡寂蝟赱齠洲痲筵娼巳苳餐阿諒儿垢汽檗トされています。</p> + + <p>以王踉擦里茲逅擦砲垢襪海箸如草痺蒹ぢを Windows NT のサ・踉札咼垢箸靴鹿粡寂蝟赱齠洲痲筵娼インスト・踉札襪任泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼瘰痺蒹黼鴟蜒釶辣⊆蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮特定の設定を使ってサ・踉札咼垢鬟ぅ鵐好函ルするには、 + インスト・踉札襪虜櫃棒瀋螢侫.ぅ襪鮖慊蠅靴討世気墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼瘰痺蒹黼鴟蜒釶辣橄黼鴟纈榱闔聚逋闔罌鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢサ・踉札丱襦トディレクトリをデフォルトから変更するための -d、 + 設定ファイルを変更するための -D, -C や -c など、その側苳擦梁粟鹿粡寂蝟赱齠洲痲筵娼蔑任泙后海譴蕕譽献好肇蠅暴颪泙譴討い栃儿垢て颪覆箸蓮鹿粡寂蝟赱齠洲痲筵娼このコマンドを使ってオプションをクリアし、新しいオプションに置き換えます。 + </p> +<pre> + apache -k config -n "service name" -f "\my server\conf\my.conf" +</pre> + + <p>Apache サ・踉札咼垢鮑鐔垢襪砲蓮焚のよう瘢雹にします:</p> +<pre> + apache -u -n "service name" +</pre> + + <p>サ・踉札咼耕が指定されない豺腓離妊侫襯箸痢屮機ビス巳苳察廚鹿粡寂蝟赱齠洲痲筵娼∩鞜竏紜ぢとなります。</p> + + <p>サ・踉札咼垢ぅ鵐好函ルされると、サ・踉札咼垢寮瀋螢侫.ぅ襪鬢踉雑すのに + 側苳擦離廛轡腑鵑汎瓜踉雌瘢隍苳鮫遉踉晒黶逅ぢオプションを使用することが + できます。例:</p> + + <p>サ・踉札咼垢寮瀋螢侫.ぅ襪鬟謄好箸靴董▲機ビスのデフォルトの + オプションを確認するには,里茲逅擦砲靴泙后弊瀋蠅砲薔蜴齡瘡讙鹿粡寂蝟赱齠洲痲筵娼闔肅オプションを使います) 例:</p> +<pre> + apache -n "service name" -t +</pre> + + <p>サ・踉札咼垢寮瀋螢侫.ぅ襪肇妊侫襯箸離廛轡腑鵑鮖藩僂靴董鹿粡寂蝟赱齠洲痲筵娼コンソ・踉札襪鞜竏を起動するには,里茲逅擦砲靴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼瘰痺蒹‰纈竇瘢紜鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏リリ・踉札で -k install オプションが -i オプションの、 + また、-k uninstall オプションが -u オプションの別巳苳擦箸靴督媛辰気譴泙靴拭鹿粡寂蝟赱齠洲痲筵娼元の -i そして -u オプションは Apache 2.0 では使用しないよう瘢雹にしてください。 + これらの別巳苳擦蓮⇔方のバ・踉札献腑鵑魃人僂垢覺浜踉市が (訳注: Apache 2.0 に) + 移行しやすくするために追加されました。</p> + + <h2><a id="depends" name="depends">サ・踉札咼垢琉預犬亡悗垢觸斗廚蔑碓嫖鹿粡寂蝟赱齠洲痲筵娼王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮リリ・踉札以前の Apache では、インスト・踉札襪気譴織機ビスが + う瘢雹まく開始することが前提魴錣箸覆覦預鹸愀犬蝋柔気譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢの以前のバ・踉札献腑鵑鮖藩僂靴謄機ビスをインスト・踉札襪靴晋紊法鹿粡寂蝟赱齠洲痲筵娼以王踉擦陸踉至順を踏まなければなりません : </p> +<pre> + Run regedt32 + Select <u>W</u>indow - "HKEY_LOCAL_MACHINE on Local Machine" from the menu + Double-click to open the SYSTEM, then the CurrentControlSet keys + Scroll down and click on the Apache servicename + Select <u>E</u>dit - Add <u>V</u>alue... from the menu + Fill in the Add Value dialog with + <u>V</u>alue Name: DependOnGroup + <u>D</u>ata Type: REG_MULTI_SZ + and click OK + Leave the Multi-String Editor dialog empty and click OK + Select <u>E</u>dit - Add <u>V</u>alue... from the menu + Fill in the Add Value dialog with + <u>V</u>alue Name: DependOnService + <u>D</u>ata Type: REG_MULTI_SZ + and click OK + Type the following list (one per line) in the Multi-String Editor dialog + Tcpip + Afd + and click OK +</pre> + + <p>また、サ・踉札疋僉ティ・踉擦離皀献紂ル、ISAPI、その側苳笏蝟縒纈貅蝟昭粡竚癈鷭п粐Ьぢなどによる、COM や DCOM の構成要素を使用しているならば、DependOnService + リストに Rpcss のエントリ・踉擦鯆媛辰垢詆廚△襪發靴譴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼それが不要な豺腓法埣ポ・踉札概ぢを露出するのを避けるために、 + Apache はインスト・踉札襪里箸砲修離┘鵐肇蝓を作成しません。 + 紊了悧踉雑に拾苳擦辰董偵鞳鈔嚆鴟蜒値を確認、または作成してください。 + 既に存在しているならばその値をダブルクリックして、Rpcss のエントリ・踉擦鹿粡寂蝟赱齠洲痲筵娼リストに追加してください。</p> + + <p>依存性のためまだ側苳擦鵬燭ぅ鵐好函ルが要求されるかもしれません。 + 開始時にネットワ・踉札疋薀ぅ乢苳糸に存在するファイルを要求される豺隋鹿粡寂蝟赱齠洲痲筵娼まず最初にネットワ・踉札螢瀬ぅ譽ぢ通瘤轣鋏闥謫闔蝟昭粡竚癈鷭п粐Ьぢの依存性に関わるサ・踉札咼垢鮴瀋蠅靴董ユ・踉札競▲逅札鵐箸鞜竏綣蝟昭粡竚癈鷭п粐Ьぢを動かす " セクション以王踉擦寮睫世暴ってください</p> + + <p>IIS と Apache の陸苳司鮖箸逅擦箸垢襪覆蕁曚覆仄蝟昭粡竚癈鷭п粐Ьぢアドレスの同じポ・踉札犯峭罎較崔鰭唏ぢを Apache + の前に開始させておく必要があります。なう踉擦覆蕁草痺蒹ぢが先に特定の + IP アドレスで開始していると、IIS は開始するときに全ての IP アドレス + (0.0.0.0) を確保しよう瘢雹として最圓垢襪蕕任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏窺凱憶ぢで依存性を加えるはるかに単純な方法が導入されました。 + -W "サ・踉札咼耕" 引数は Apache の依存性を設定する -k install や + -k config コマンドに機能を付け加えます。複数の -W + 引数が与えられますが、すべて -k オプションの後ろで指定するべきです。 + 例えば、インスト・踉札觝僂澆草痺蒹サ・踉札咼垢瘤轣釁闥謫闔鹿粡寂蝟赱齠洲痲筵娼依存性を加えるなら、このコマンドを使います。</p> +<pre> + apache -k config -n Apache -W LanmanWorkstation +</pre> + + <h2>ユ・踉札競▲逅札鵐箸鞜竏を動かす (NT/2000)</h2> + + <p>Apache が最初にサ・踉札咼ぢ例えば、-i オプション ) としてインスト・踉札襪気譴襪箸鹿粡寂蝟赱齠洲痲筵娼蹉ぢという瘢雹ユ・踉札弥竅贄アカウ瘢雹ント ) で動作するでしょう瘢雹。 + もし web サ・踉札个里垢戮討離螢宗スがロ・踉札襯轡好謄爨苳糸にあるなら + ほとんど問題ありませんが、(LocalSystem アカウ瘢雹ント ) はロ・踉札襯泪轡鵑鹿粡寂蝟赱齠洲痲筵娼影響を与える幅広いセキュリティ特権を持っています。</p> + + <blockquote> + LocalSystem は局所的に非錣貌淡▲▲逅札鵐箸覆里如鹿粡寂蝟赱齠洲痲筵娼どんなシェアウ瘢雹ェアアプリケ・踉札轡腑鵑發修海覇虻遒気擦襪戮任鹿粡寂蝟赱齠洲痲筵娼ありません。しかしながら、それはネットワ・踉札淡△鮖燭覆董鹿粡寂蝟赱齠洲痲筵娼淋ぢの機密保持機能、ファイルシステム、パイプ、DCOM 、セキュア RPC を含めて + そのままにしておくことはできません + </blockquote> + + <p><strong>決してシステムアカウ瘢雹ントにネットワ・踉札淡△鰺燭┐討鹿粡寂蝟赱齠洲痲筵娼いけません !</strong> 代わりに新しいユ・踉札競▲逅札鵐箸鮑鄒靴董鹿粡寂蝟赱齠洲痲筵娼そのユ・踉札兇謀擇文造鰺燭┐董閾蒼という瘢雹オプションを + 使ってください。スタ・踉札肇瓮縫紂 -> 設定 -> コントロ・踉札襯僖優鹿粡寂蝟赱齠洲痲筵娼瘢雹苳サ・踉札咼逅紫鞜竏嚆鴟蜒と選択して、「スタ・踉札肇▲奪廖鹿粡寂蝟赱齠洲痲筵娼ボタンをクリックして、この設定にアクセスしてください。</p> + + <blockquote> + LocalSystem アカウ瘢雹ントの環境で動作するサ・踉札咼垢値鹿粡寂蝟赱齠洲痲筵娼関連のセキュリティ環境を引き継ぎます。 + サ・踉札咼垢呂匹離罅ザアカウ瘢雹ントとも関連づけられず、 + また確認に使用されるべき斂ぢドメイン巳苳察▲罅ザ巳苳察▲僖好錙ド ) + を持ちません。 + </blockquote> + + <p>SYSTEM アカウ瘢雹ントはネットワ・踉札貌淡△鮖燭覆い里如逅四気譴織據ジや + 共瘢雹有されたインスト・踉札襪魯機ビスからは見えません。 + あなたが<em>どんな</em>ネットワ・踉札螢宗スも使用するつもりであるならば、 + 以王踉擦離好謄奪廚鰐鬚卜弔發靴譴泙擦鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚衷銓鳫倚鈬の Service ダイアログから Apache を選択して、 + Startup をクリックします。</li> + + <li>サ・踉札咼好▲逅札鵐箸気靴い海箸魍稜Г靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢサ・踉札咼考僂離▲逅札鵐箸鮑鄒垢襪海箸發茲な,任后薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳ぢパスワ・踉札匹魴衒屬憩呂靴謄僖好錙ド確認をします。</li> + + <li>ドメインのユ・踉札競泪諭ジャに行ってください。</li> + + <li>タイトルバ・踉札瓮縫紂から Policies をクリックして、 + User Rights を選択してください。</li> + + <li>Advanced User Rights のオプションを選択してください。</li> + + <li> + ドロップダウ瘢雹ンリスト中で、選択されたアカウ瘢雹ントに以王踉擦慮造鹿粡寂蝟赱齠洲痲筵娼与えられたことを確認してください。 + + <ul> + <li>Act as part of the operating system</li> + + <li>Back up files and directories</li> + + <li>Log on as a service</li> + + <li>Restore files and directories</li> + </ul> + </li> + + <li>選択されたアカウ瘢雹ントが Users グル・踉札廚離瓮鵐个任△襪海箸鹿粡寂蝟赱齠洲痲筵娼確認してください。</li> + + <li>選択されたアカウ瘢雹ントがすべてのドキュメントとスクリプトディレクトリに + アクセスする蠱最低限読み込みとブラウ瘢雹ズ) を持っていることを + 確認してください。</li> + + <li>選択されたアカウ瘢雹ントが Apache logs ディレクトリに対して読み書き、 + 削除する蠱覆鮖辰討い襪海箸魍稜Г靴討世気ぁ薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢそのアカウ瘢雹ントでユ・踉札兇箸靴謄蹈哀ぅ鵑垢襪海箸魑弔靴燭蕁鹿粡寂蝟赱齠洲痲筵娼踉捌身でログインしてそのアカウ瘢雹ントがスクリプトの孫圈▲逅札Д鹿粡寂蝟赱齠洲痲筵娼ペ・踉札犬瞭匹濆澆鬚垢觚造鮖辰討い襪海函▲灰鵐宗ルウ瘢雹ィンドウ瘢雹から + Apache を起動できることをテストすることができます。これがう瘢雹まくいき、 + 綉離好謄奪廚暴って蟒腓鯑Г瓩弌草痺蒹ぢは問題なくサ・踉札咼垢箸靴鹿粡寂蝟赱齠洲痲筵娼孫圓垢襪呂困任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳ぢ注意: エラ・踉札魁ド 2186</strong> はサ・踉札个廚鹿粡寂蝟赱齠洲痲筵娼ネットワ・踉札螢宗スにアクセスすることができないので 'Log On As' + の設定を見彫苳擦紘廚△襦△箸い逅算悧踉雑です。</p> + + <h2><a id="trouble" name="trouble"> Apache を Windows でサ・踉札咼垢箸靴鹿粡寂蝟赱齠洲痲筵娼動かすときの トラブルシュ・踉札謄鵐王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮サ・踉札咼垢箸靴鞜竏を開始する豺隋怏鈔阯サ・踉札咼好泪諭ジャからの + エラ・踉札瓮奪察ジを見ることになるかもしれません。例えばコントロ・踉札襯僖優襪鹿粡寂蝟赱齠洲痲筵娼サ・踉札咼ぢアプレットを使用して Apache を開始させよう瘢雹とする時に、 + 以王踉擦離瓮奪察ジを見るかもしれません。</p> +<pre> + Could not start the apache service on \\COMPUTER + Error 1067; The process terminated unexpectedly. +</pre> + + <p>Apache の開始において何らかの問題がある豺隋△海離┘蕁に遭います。 + 問題の原因を確認するためには、<a href="windows.html#test">コマンド + プロンプトで Apache をテストする</a>の指┐暴ってください。</p> + + + <p>また、Apache 1.3.13 では Windows NT/2000 でサ・踉札咼垢箸靴篤阿垢箸鹿粡寂蝟赱齠洲痲筵娼開始時のエラ・踉擦ぢアプリケ・踉札轡腑ぢログ に記録します。イベント ビュ・踉札鹿粡寂蝟赱齠洲痲筵娼を起動し、<u>L</u>og ... <u>A</u>pplication + と選択してイベントを確認することができます。</p> + + <p><strong>問題があった豺腓蓮▲┘蕁が発生したことを警告のための + エラ・踉札瓮奪察ジがポップアップされなくても、イベント ビュ・踉札△鹿粡寂蝟赱齠洲痲筵娼アプリケ・踉札轡腑ぢログをチェックしてください。</strong></p> + + <h2><a id="cmdline" name="cmdline">Windows でコマンドラインから + Apache を動かす</a></h2> + コマンドラインから Apache サ・踉札咼垢鮴罎垢襪海箸亡悗垢襴苳施細については、 + <a href="windows.html#cmdline" + >コンソ・踉札襯灰泪鵐疋薀ぅの呂鮖王苳使してください。 + + <h2><a id="signal" name="signal">サ・踉札咼垢箸靴討鞜竏綣蝟昭粡竚癈鷭п粐Ьぢを制御する</a></h2> + + <p>Apache は複数インスト・踉札襪靴董▲機ビスとして動かすことができます。 + インスト・踉札襪気譴鞜竏サ・踉札咼垢魍蓮∈導⊇察篁澆垢襪砲鹿粡寂蝟赱齠洲痲筵娼以王踉擦里茲逅擦砲靴泙墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼瘰痺蒹‰纈竇瘢紜齡癇蝟昭粡竚癈鷭п粐Ь鞜竏黼鴟蜒釶辣纉鶯鹿粡寂蝟赱齠洲痲筵娼瘰痺蒹‰纈竇瘢紜鼈粹鹿粡寂蝟赱齠洲痲筵娼瘰痺蒹‰纈竇瘢紜齡關鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳鮫オプションのない -k コマンドはコンソ・踉札襯逅札鵐疋逅擦乃阿靴討い鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢに向けられるので、デフォルトの "Apache" サ・踉札咼垢任草痺蒹鹿粡寂蝟赱齠洲痲筵娼オプションが必要です。引用符はサ・踉札咼耕にスペ・踉札垢泙泙譴襴苳詞合に限り + 必要になります。</p> + + <p><strong>注意: -k shutdown コマンドの別巳苳擦齡關ぢコマンドは + Apache バ・踉札献腑で導入されました。</strong> + それより前のバ・踉札献腑鵑鞜竏では -k shutdown + オプションだけが認韻気譴泙后窺凱より前の Apache + では<em>どんな</em> -k オプションも認韻気譴泙擦鵑任靴拭鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳鮫潮狸オプションを含めた apache -k start + コマンドで起動時のオプションを指定することもできます。 + これらはサ・踉札咼垢寮瀋螢廛蹈札垢鳳洞舛靴泙瘢雹踉刺翊繙蜴絋瘢雹苳纂蝟昭粡竚癈鷭п粐Ьぢブロックで使う瘢雹ことで魴錣弔了慊蠅鬚垢襪海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼サ・踉札丱襦トのパスや -d オプションや -f + オプションを使って設定ファイルを綵颪垢襪海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼これらのオプションは -k restart コマンドによっても読み込まれますが、 + サ・踉札咼垢瞭虻鄰罎砲枠娠任気譴此▲機ビスの起動時にのみ反映されます。 + </p> + + <p>サ・踉札咼垢蜴粹坏屋旭ぢの Service Control + アプレットにも現れます。NT の豺隋嚆蜴苴逅紫闔闌瘤繻鹿粡寂蝟赱齠洲痲筵娼瘢雹苳嚆鴟蜒纉ぢエントリ、2000 の豺隋嚆蜴苴逅紫闔闌瘤繻鹿粡寂蝟赱齠洲痲筵娼瘢雹苳槍迚鉗齡鱇闖踈逅紫纈竇エントリで参箸任泙后鹿粡寂蝟赱齠洲痲筵娼そこから開始や終了させる Apache サ・踉札咼垢鯀鬚任泙后鹿粡寂蝟赱齠洲痲筵娼ぢのよう瘢雹な追加のオプションや、開始パラメ・踉札燭離妊侫襯箸鹿粡寂蝟赱齠洲痲筵娼ぢや -f オプションの綵颪漏魯椒織鵑鬟螢奪垢訌阿砲靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼これらのオプションは apache -k start + コマンドと全く同じよう瘢雹に処理されます。</p> + + <p>さらに、Apache サ・踉札咼垢粒蓮⊇擦縫優ぅ謄屬鹿粡寂蝟赱齠洲痲筵娼怏鈔阯淋旭の NET コマンドを使う瘢雹こともできます:</p> +<pre> + NET START "service name" + NET STOP "service name" +</pre> + + <p>繰り返しますが、サ・踉札咼耕がスペ・踉札垢魎泙爨苳詞合のみ、 + 引用符が必要になります。-D, -c, -C などの追加オプションを + NET START コマンドで指定する方法はありません。 + オプションが必要なときは、側苳擦鹿粡寂蝟赱齠洲痲筵娼鑪爐離瓮愁奪匹里匹舛蕕鮖藩僂靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼莢蜆就邱挙釶辣就邱挙▽苳ぢ非錣胞踉斬験的な + Windows 95/98 サ・踉札咼王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮齡鳫鈑注意: Windows 95 と 98 でのサ・踉札咼好廛轡腑鵑鹿粡寂蝟赱齠洲痲筵娼草痺蒹以降でのみ有効です。</strong>以前のバ・踉札献腑鵑鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢでは Windows 95/98 + においてはコンソ・踉札襯逅札鵐疋逅擦任里潺汽檗トされています。</p> + + <p>Windows NT/2000 でのサ・踉札咼垢汎韻犬茲逅擦蜴粹起晃ぢ紊任鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢの動作をある程度サポ・踉札箸靴討い泙后鹿粡寂蝟赱齠洲痲筵娼それは<em>非錣胞踉斬験的</em>なもので、もし (すべて順調に) + 動いたとしても Apache Software Foundation は、信頼性や茲離汽檗ト + は保擇靴泙擦鵝0聞澆砲弔い討櫓踉捌分箸離螢好膿覆鵑任世気・踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢが <a href="windows.html#test">Command Prompt</a> + で正錣貌虻遒垢襪海箸魍稜Г靴燭蕁怏鈔阯淋旭絢蝟昭粡竚癈鷭п粐Ьぢの豺腓汎韻献灰泪鵐匹妊ぅ鵐好函ル、制御、 + アンインスト・踉札襪垢襪海箸任泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢただし、注意すべき重要な違いがあります:</p> + + + <p>Apache は、起動が成功すると、バックグラウ瘢雹ンドで動作します。 + デスクトップのショ・踉札肇奪箸鯆未靴董▲灰泪鵐鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь草痺蒹‰纈竇瘢紜齡癇蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮を孫圓靴燭蕁⇔磴┐弌▲機ビスがう瘢雹まく開始されれば、 + コンソ・踉札襯逅札鵐疋逅擦鷲拾踉雑されますがすぐに見えなくなります。 + Apache が開始時に、httpd.conf + ファイルにおける不正なエントリのよう瘢雹なエラ・踉擦鮓弔韻襪函鹿粡寂蝟赱齠洲痲筵娼コンソ・踉札襯逅札鵐疋逅擦鷲拾踉雑されたままで残ります。 + そこには問題の原因の追求に役に立つ + エラ・踉札瓮奪察ジが表┐気譴討い襪任靴腓逅察修虜鞜竏の + logs ディレクトリにある error.log ファイルを調べ彫苳擦垢戮任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蜴粹起晃ぢでは NET START や NET STOP コマンドを + サポ・踉札箸靴討い覆い里如衷迯瘤會闕頸ぢから Apache のService Control + オプションを使用しなければなりません。これらのコマンド毎に + ショ・踉札肇奪箸鰺儖佞掘▲好拭トメニュ・踉擦筌妊好肇奪廚鹿粡寂蝟赱齠洲痲筵娼それをただ選ぶことで必要な動作を孫圓垢襪茲逅擦砲垢襪里呂茲な,任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏と Windows 95/98 は特定のユ・踉札兇紡个靴董草痺蒹鹿粡寂蝟赱齠洲痲筵娼サ・踉札咼垢鬟優奪肇錙ク特権では提供しません。尊檗怏鈔阯控玄蝟昭粡竚癈鷭п粐Ьぢはどんなセキュリティもロ・踉札襯泪轡鵑膨鷆,靴討い泙擦鵝鹿粡寂蝟赱齠洲痲筵娼草痺蒹閹癇楠鈔癆蜿がパブリックな httpd サ・踉札个箸靴鹿粡寂蝟赱齠洲痲筵娼怏鈔阯控の使用を決して認めないのは、これが単純な理由です。 + これらは、web コンテンツの制作や Apache サ・踉札个粒惱鹿粡寂蝟赱齠洲痲筵娼または安全なイントラネット紊離機バ、プライベ・踉札肇優奪肇錙クの + ユ・踉札兇鯤篏垢襪燭瓩吠惶孔苳糸存在しているにすぎません。</p> + <!--#include virtual="footer.html" --> + </body> +</html> diff --git a/htdocs/manual/windows.html.en b/htdocs/manual/windows.html.en new file mode 100644 index 0000000000..3d6c0b4dbd --- /dev/null +++ b/htdocs/manual/windows.html.en @@ -0,0 +1,625 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta name="generator" content="HTML Tidy, see www.w3.org" /> + + <title>Using Apache with Microsoft Windows</title> + </head> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" + vlink="#000080" alink="#FF0000"> + <!--#include virtual="header.html" --> + + <h1 align="CENTER"><a id="help" name="help">Using Apache With + Microsoft Windows</a></h1> + + <p>This document explains how to install, configure and run + Apache 1.3 under Microsoft Windows. Most of this document + assumes that you are installing Windows from a binary + distribution. If you want to compile Apache yourself (possibly + to help with development, or to track down bugs), see <a + href="win_compiling.html">Compiling Apache for Microsoft + Windows</a>.</p> + + <p>If you find any bugs, please document them on our <a + href="http://httpd.apache.org/bug_report.html">bug reporting + page.</a> Contributions are welcomed, please submit your code + or suggestions to the bug report page, or join the new-httpd + mailing list.</p> + + <p>The bug reporting page and new-httpd mailing list are + <em>not</em> provided to answer questions about configuration + or running Apache. Before you submit a bug report or request, + first consult this document, the <a + href="misc/FAQ.html">Frequently Asked Questions</a> page and + the other relevant documentation topics. If you still have a + question or problem, post it to the <a + href="news:comp.infosystems.www.servers.ms-windows">comp.infosystems.www.servers.ms-windows</a> + newsgroup, where many Apache users and several contributions + are more than willing to answer new and obscure questions about + using Apache on Windows.</p> + + <p><a + href="http://groups.google.com/groups?hl=en&lr=&safe=off&group=comp.infosystems.www.servers.ms-windows"> + groups.google.com's newsgroup archive</a> offers easy browsing + of previous questions. Searching the newsgroup archives, you + will usually find your question was already asked and answered + by other users!</p> + + <p><strong>Warning: Apache on NT has not yet been optimized for + performance.</strong> Apache still performs best, and is most + reliable on Unix platforms. Over time NT performance has + improved, and great progress is being made in the upcoming + version 2.0 of Apache for the Windows platforms. Folks doing + comparative reviews of webserver performance are still asked to + compare against Apache on a Unix platform such as Solaris, + FreeBSD, or Linux.</p> + <hr /> + + <ul> + <li><a href="#req">Requirements</a></li> + + <li><a href="#down">Downloading Apache for Windows</a></li> + + <li><a href="#inst">Installing Apache for Windows (binary + install)</a></li> + + <li><a href="#run">Running Apache for Windows</a></li> + + <li><a href="#test">Testing Apache for Windows</a></li> + + <li><a href="#use">Configuring Apache for Windows</a></li> + + <li><a href="#cmdline">Running Apache in a Console + Window</a></li> + + <li><a href="#signal">Controlling Apache in a Console + Window</a></li> + + <li><a href="win_service.html">Running Apache for Windows as + a Service</a></li> + + <li><a href="win_service.html#signal">Controlling Apache as a + Service</a></li> + + <li><a href="win_compiling.html">Compiling Apache for + Microsoft Windows</a></li> + </ul> + <hr /> + + <h2><a id="req" name="req">Requirements</a></h2> + + <p>Apache 1.3 is designed to run on Windows NT 4.0 and Windows + 2000. The binary installer will only work with the x86 family + of processors, such as Intel's. Apache may also run on Windows + 95 and 98, but these have not been tested. In all cases TCP/IP + networking must be installed.</p> + + <p>If running on NT 4.0, installing Service Pack 3 or 6 is + recommended, as Service Pack 4 created known issues with + TCP/IP and WinSock integrity that were resolved in Service + Pack 5 and later.</p> + + <p><strong>Note: "Winsock2" is required for Apache 1.3.7 and + later.</strong></p> + + <p>If running on Windows 95, the "Winsock2" upgrade must be + installed before Apache will run. "Winsock2" for Windows 95 is + available <a + href="http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp"> + here</a> or via <a + href="http://www.microsoft.com/windows95/downloads/">here</a>. + Be warned that the Dialup Networking 1.2 (MS DUN) updates + include a Winsock2 that is entirely insufficient, and the + Winsock2 update must be reinstalled after installing Windows 95 + dialup networking. Windows 98, NT (Service Pack 3 or later) and + 2000 users need to take no special action, those versions provide + Winsock2 as distributed.</p> + + <h2><a id="down" name="down">Downloading Apache for + Windows</a></h2> + + <p>Information on the latest version of Apache can be found on + the Apache web server at <a + href="http://httpd.apache.org/">http://httpd.apache.org/</a>. + This will list the current release, any more recent alpha or + beta-test releases, together with details of mirror web and + anonymous FTP sites.</p> + + <p>You should download the binary build of Apache for Windows + named as <code>apache_1_3_#-win32-src.msi</code> if you are + interested in the source code, or simply + <code>apache_1_3_#-win32-no_src.msi</code> if you don't plan to + do anything with the source code and appreciate a faster + download. Each of these files contains the complete Apache + runtime. You must have the Microsoft Installer version 1.10 + installed on your PC before you can install the Apache runtime + distributions. Windows 2000 and Windows ME are both delivered + with the Microsoft Installer support, others will need to + download it. For more information, visit the main download + page at <a + href="http://httpd.apache.org/download.cgi">http://httpd.apache.org/download.cgi</a>. + Instructions on locating the Microsoft Installer, + as well as the binary distributions of Apache, are found at + <a href="http://www.apache.org/dyn/closer.cgi/httpd/binaries/win32/" + >the win32 download directory on the mirrors.</a></p> + + <p>The source code is available in the <code>-src.msi</code> + distribution, or from the + <a href="http://www.apache.org/dyn/closer.cgi/httpd/" + >distribution directory</a> as a <code>.zip</code> file. If you plan + on compiling Apache yourself, there is no need to install + either <code>.msi</code> package. The <code>.zip</code> file + contains only source code, with MS-DOS line endings (that is + cr/lf line endings, instead of the single lf used for Unix + files distributed in .tar.gz or .tar.Z archives.)</p> + + <p>While the source is also available as a <samp>.tar.gz</samp> + <samp>.tar.Z</samp> archive, these contain unix lf line endings + that cause grief for Windows users. To use those archives, you + must convert at least the <samp>.mak</samp> and + <samp>.dsp</samp> files to have DOS line endings before MSVC + can understand them. Please stick with the <samp>.zip</samp> + file to spare yourself the headache.</p> + + <p>Note: prior to 1.3.17 Apache was distributed as an + InstallShield 2.0 <samp>.exe</samp> file. With an increasing + number of users unable to run the InstallShield package [on + Windows ME or Windows 2000] the binaries were repackaged into + the readily available Microsoft Installer <samp>.msi</samp> + format.</p> + + <h2><a id="inst" name="inst">Installing Apache for + Windows</a></h2> + + <p>Run the Apache <samp>.msi</samp> file you downloaded above. + This will prompt you for:</p> + + <ul> + <li>whether or not you want to run Apache for all users + (installing Apache as a Service), or if you want it installed + to run in a console window when you choose the Start Apache + shortcut.</li> + + <li>your Server name, Domain name and administrative email + account.</li> + + <li>the directory to install Apache into (the default is + <code>C:\Program Files\Apache Group\Apache</code> although + you can change this to any other directory you wish)</li> + + <li>the installation type. The "Complete" option installs + everything, including the source code if you downloaded the + <samp>-src.msi</samp> package. Choose the "Custom" install if + you choose not to install the documentation, or the source + code from that package.</li> + </ul> + + <p>During the installation, Apache will configure the files in + the <samp>conf</samp> directory for your chosen installation + directory. However if any of the files in this directory + already exist they will <strong>not</strong> be overwritten. + Instead the new copy of the corresponding file will be left + with the extension <samp>.default.conf</samp>. So, for example, + if <samp>conf\httpd.conf</samp> already exists it will not be + altered, but the version which would have been installed will + be left in <samp>conf\httpd.default.conf</samp>. After the + installation has finished you should manually check to see what + in new in the <samp>.default.conf</samp> file, and if necessary + update your existing configuration files.</p> + + <p>Also, if you already have a file called + <samp>htdocs\index.html</samp> then it will not be overwritten + (no <samp>index.html.default</samp> file will be installed + either). This should mean it is safe to install Apache over an + existing installation (but you will have to stop the existing + server running before doing the installation, then start the + new one after the installation is finished).</p> + + <p>After installing Apache, you should edit the configuration + files in the <samp>conf</samp> directory as required. These + files will be configured during the install ready for Apache to + be run from the directory where it was installed, with the + documents served from the subdirectory <samp>htdocs</samp>. + There are lots of other options which should be set before you + start really using Apache. However to get started quickly the + files should work as installed.</p> + + <p>If you eventually uninstall Apache, your configuration and log + files will not be removed. You will need to delete the installation + directory tree ("C:\Program Files\Apache Group" by default) + yourself if you do not care to keep your configuration and + other web files. Since the httpd.conf file is your + accumulated effort in using Apache, you need to take the effort + to remove it. The same happens for all other files you may have + created, as well as any log files Apache created.</p> + + <h2><a id="run" name="run">Running Apache for Windows</a></h2> + + <p>There are two ways you can run Apache:</p> + + <ul> + <li>As a <a href="win_service.html">"service"</a>. This is + the best option if you want Apache to automatically start + when your machine boots, and to keep Apache running when you + log-off.</li> + + <li>From a <a href="#cmdline">console window</a>. Closing + this console window will terminate the Apache server.</li> + </ul> + + <p><strong>Complete the steps below before you attempt to start + Apache as a Windows "<a + href="win_service.html">service</a>"!</strong></p> + + <p>To run Apache from a console window, select the "Start + Apache as console app" option from the Start menu (in Apache + 1.3.4 and earlier, this option was called "Apache Server"). + This will open a console window and start Apache running inside + it. The window will remain active until you stop Apache. To + stop Apache running, either press select the "Shutdown Apache + console app" icon option from the Start menu (this is not + available in Apache 1.3.4 or earlier), or see <a + href="#signal">Controlling Apache in a Console Window</a> for + commands to control Apache in a console window.</p> + + <p>In Apache 1.3.13 and above it is now quite safe to press + Ctrl+C or Ctrl+Break to stop the Apache in the console window. + And on Windows NT/2000 with version 1.3.13, Apache will stop if + you select 'Close' from the system menu (clicking the icon on + the top-left corner of the console window) or click the close + (X) button on the top-right corner. The Close menu item and + close (X) button also work on Windows 95/98 as of Apache + version 1.3.15. But do <em>not</em> try any of these approaches + on earlier versions of the Apache server, since Apache would + not clean up.</p> + + <h2><a id="test" name="test">Testing Apache for + Windows</a></h2> + + <p>If you have trouble starting Apache please use the following + steps to isolate the problem. This applies if you started + Apache using the "Start Apache as a console app" shortcut from + the Start menu and the Apache console window closes immediately + (or unexpectedly) or if you have trouble starting Apache as a + service.</p> + + <p>Run the "Command Prompt" from the Start Menu - Programs + list. Change to the folder to which you installed Apache, type + the command apache, and read the error message. Then review the + error.log file for configuration mistakes. If you accepted the + defaults when you installed Apache, the commands would be:</p> +<pre> + c: + cd "\program files\apache group\apache" + apache + <em>Wait for Apache to exit, or press</em> Ctrl+C + more <logs\error.log +</pre> + + <p>After looking at the error.log you will probably have a good + chance of working out what went wrong and be able to fix the + problem and try again. If you are unable to work it out then + please follow the <a href="#help">guidelines for assistance</a> + at the top of this document or in the <a + href="misc/FAQ.html#what2do">FAQ</a>. Many users discover that + the nature of the httpd.conf file is easier to manage and audit + than page after page of configuration dialog boxes.</p> + + <p>After starting Apache running (either in a console window or + as a service) it will be listening to port 80 (unless you + changed the <samp>Port</samp>, <samp>Listen</samp> or + <samp>BindAddress</samp> directives in the configuration + files). To connect to the server and access the default page, + launch a browser and enter this URL:</p> +<pre> + http://localhost/ +</pre> + + <p>This should respond with a welcome page, and a link to the + Apache manual. If nothing happens or you get an error, look in + the <samp>error.log</samp> file in the <samp>logs</samp> + directory. If your host isn't connected to the net, you may + have to use this URL:</p> +<pre> + http://127.0.0.1/ +</pre> + + <p>Once your basic installation is working, you should + configure it properly by editing the files in the + <samp>conf</samp> directory.</p> + + <p>Because Apache <em>CANNOT</em> share the same port with + another TCP/IP application, you may need to stop or uninstall + certain services first. These include (but are not limited to) + other web servers, and firewall products such as BlackIce. If + you can only start Apache with these services disabled, + reconfigure either Apache or the other product so that they do + not listen on the same TCP/IP ports. You may find the Windows + "netstat -an" command useful in finding out what ports are in + use.</p> + + <h2><a id="use" name="use">Configuring Apache for + Windows</a></h2> + + <p>Apache is configured by files in the <samp>conf</samp> + directory. These are the same as files used to configure the + Unix version, but there are a few different directives for + Apache on Windows. See the <a href="./">Apache + documentation</a> for all the available directives.</p> + + <p>Begin configuring the Apache server by reviewing + <code>httpd.conf</code> and its directives. Although the files + <code>access.conf</code> and <code>srm.conf</code> both exist, + these are old files which are no longer used by most + administrators, and you will find no directives there.</p> + + <p><code>httpd.conf</code> contains a great deal of + documentation itself, followed by the default configuration + directives recommended when starting with the Apache server. + Begin by reading these comments to understand the configuration + file, and make small changes, starting Apache in a console + window with each change. If you make a mistake, it will be + easier to back up to configuration that last worked. You will + have a better idea of which change caused the server to + fail.</p> + + <p>The main differences in Apache for Windows are:</p> + + <ul> + <li> + Because Apache for Windows is multithreaded, it does not + use a separate process for each request, as Apache does + with Unix. Instead there are usually only two Apache + processes running: a parent process, and a child which + handles the requests. Within the child each request is + handled by a separate thread. So, "process"-management + directives are different: + + <ul> + <li><a + href="mod/core.html#maxrequestsperchild">MaxRequestsPerChild</a> + - Like the Unix directive, this controls how many + requests a process will serve before exiting. However, + unlike Unix, a process serves all the requests at once, + not just one, so if this is set, it is recommended that a + very high number is used. The recommended default, + <code>MaxRequestsPerChild 0</code>, does not cause the + process to ever exit.</li> + + <li><a + href="mod/core.html#threadsperchild">ThreadsPerChild</a> + - This directive is new, and tells the server how many + threads it should use. This is the maximum number of + connections the server can handle at once; be sure and + set this number high enough for your site if you get a + lot of hits. The recommended default is + <code>ThreadsPerChild 50</code>.</li> + </ul> + </li> + + <li>The directives that accept filenames as arguments now + must use Windows filenames instead of Unix ones. However, + because Apache uses Unix-style names internally, you must use + forward slashes, not backslashes. Drive letters can be used; + if omitted, the drive with the Apache executable will be + assumed.</li> + + <li> + Apache for Windows has the ability to load modules at + runtime, without recompiling the server. If Apache is + compiled normally, it will install a number of optional + modules in the <code>modules</code> directory. To activate + these, or other modules, the new <a + href="mod/mod_so.html#loadmodule">LoadModule</a> directive + must be used. For example, to activate the status module, use + the following (in addition to the status-activating + directives in <code>httpd.conf</code> - see <a + href="mod/mod_status.html">the mod_status docs</a> for more + details.): +<pre> + LoadModule status_module modules/mod_status.so +</pre> + + <p>Information on <a + href="mod/mod_so.html#creating">creating loadable + modules</a> is also available. Note that some 3rd party + modules may be distributed in the old style names, + ApacheModuleFoo.dll. Always set the LoadModule command as + directed by the 3rd party module's own documentation.</p> + </li> + + <li>Apache for Windows version 1.3 series is implemented in + synchronous calls. This poses an enormous problem for CGI + authors, who won't see unbuffered results sent immediately to + the browser. This is not the behavior described for CGI in + Apache, but it is a side-effect of the Windows port. Apache + 2.0 is making progress to implement the expected asynchronous + behavior, and we hope to discover that the NT/2000 + implementation allows CGI's to behave as documented.</li> + + <li> + <p>Apache can also load ISAPI Extensions (<em>i.e.</em>, + Internet Server Applications), such as those used by + Microsoft's IIS, and other Windows servers. <a + href="mod/mod_isapi.html">More information is + available.</a> Note that Apache <em>CANNOT</em> load ISAPI + Filters.</p> + </li> + + <li>When running CGI scripts, the method Apache uses to find + the interpreter for the script is configurable using the <a + href="mod/core.html#scriptinterpretersource">ScriptInterpreterSource</a> + directive.</li> + + <li>Since it is often difficult to manage files with names + like <code>.htaccess</code> under windows, you may find it + useful to change the name of this configuration file using + the <a href="mod/core.html#accessfilename">AccessFilename</a> + directive.</li> + </ul> + + <h2><a id="cmdline" name="cmdline">Running Apache in a Console + Window</a></h2> + + <p>The Start menu icons and the NT Service manager can provide + a simple interface for administering Apache. But in some cases + it is easier to work from the command line.</p> + + <p>When working with Apache it is important to know how it will + find the configuration files. You can specify a configuration + file on the command line in two ways:</p> + + <ul> + <li>-f specifies a path to a particular configuration + file:</li> + </ul> +<pre> + apache -f "c:\my server\conf\my.conf" +</pre> +<pre> + apache -f test\test.conf +</pre> + + <ul> + <li>-n specifies the configuration file of an installed + Apache service (Apache 1.3.7 and later):</li> + </ul> +<pre> + apache -n "service name" +</pre> + + <p>In these cases, the proper ServerRoot should be set in the + configuration file.</p> + + <p>If you don't specify a configuration file name with -f or + -n, Apache will use the file name compiled into the server, + usually "conf/httpd.conf". Invoking Apache with the -V switch + will display this value labeled as SERVER_CONFIG_FILE. Apache + will then determine its ServerRoot by trying the following, in + this order:</p> + + <ul> + <li>A ServerRoot directive via a -C switch.</li> + + <li>The -d switch on the command line.</li> + + <li>The current working directory</li> + + <li>A registry entry, created if you did a binary + install.</li> + + <li>The server root compiled into the server.</li> + </ul> + + <p>The server root compiled into the server is usually + "/apache". invoking apache with the -V switch will display this + value labeled as HTTPD_ROOT.</p> + + <p>When invoked from the start menu, Apache is usually passed + no arguments, so using the registry entry is the preferred + technique for console Apache.</p> + + <p>During a binary installation, a registry key will have been + installed, for example:</p> +<pre> + HKEY_LOCAL_MACHINE\Software\Apache Group\Apache\1.3.13\ServerRoot +</pre> + + <p>This key is compiled into the server and can enable you to + test new versions without affecting the current version. Of + course you must take care not to install the new version on top + of the old version in the file system.</p> + + <p>If you did not do a binary install then Apache will in some + scenarios complain about the missing registry key. This warning + can be ignored if it otherwise was able to find its + configuration files.</p> + + <p>The value of this key is the "ServerRoot" directory, + containing the <samp>conf</samp> directory. When Apache starts + it will read the <samp>httpd.conf</samp> file from this + directory. If this file contains a <samp>ServerRoot</samp> + directive which is different from the directory obtained from + the registry key above, Apache will forget the registry key and + use the directory from the configuration file. If you copy the + Apache directory or configuration files to a new location it is + vital that you update the <samp>ServerRoot</samp> directory in + the <samp>httpd.conf</samp> file to the new location.</p> + + <p>To run Apache from the command line as a console + application, use the following command:</p> +<pre> + apache +</pre> + + <p>Apache will execute, and will remain running until it is + stopped by pressing control-C.</p> + + <h2><a id="signal" name="signal">Controlling Apache in a + Console Window</a></h2> + + <p>You can tell a running Apache to stop by opening another + console window and running:</p> +<pre> + apache -k shutdown +</pre> + + <p><strong>Note: This option is only available with Apache + 1.3.3 and later.</strong></p> + + <p>For earlier versions, you must use Control-C in the Apache + console window to shut down the server.</p> + + <p>From version 1.3.3 through 1.3.12, this should be used + instead of pressing Control-C in a running Apache console + window, because it allowed Apache to end any current + transactions and cleanup gracefully.</p> + + <p>As of version 1.3.13 pressing Control-C in the running + window will cleanup Apache quite gracefully, and you may use -k + stop as an alias for -k shutdown. Earlier versions do not + understand -k stop.</p> + + <p>You can also tell Apache to restart. This makes it re-read + the configuration files. Any transactions in progress are + allowed to complete without interruption. To restart Apache, + run:</p> +<pre> + apache -k restart +</pre> + + <p><strong>Note: This option is only available with Apache + 1.3.3 and later. For earlier versions, you need to use + Control-C in the Apache console window to shut down the server, + and then restart the server with the Apache + command.</strong></p> + + <p>Another <em>very useful</em> feature is the configuration + files test option. To test the Apache configuration files, + run:</p> +<pre> + apache -t +</pre> + + <p>This is especially useful following alterations to the + configuration files while Apache is still running. You can make + the changes, confirm that the syntax is good by issuing the + "apache -t" command, then restart Apache with "apache -k + restart". Apache will re-read the configuration files, allowing + any transactions in progress to complete without interruption. + Any new request will then be served using the new + configuration.</p> + + <p>Note: for people familiar with the Unix version of Apache, + these commands provide a Windows equivalent to <code>kill -TERM + <em>pid</em></code> and <code>kill -USR1 <em>pid</em></code>. + The command line option used, <code>-k</code>, was chosen as a + reminder of the "kill" command used on Unix.</p> + <!--#include virtual="footer.html" --> + </body> +</html> + diff --git a/htdocs/manual/windows.html.html b/htdocs/manual/windows.html.html new file mode 100644 index 0000000000..f916c347ee --- /dev/null +++ b/htdocs/manual/windows.html.html @@ -0,0 +1,4 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<!--#include virtual="windows.html.en" --> + diff --git a/htdocs/manual/windows.html.ja.jis b/htdocs/manual/windows.html.ja.jis new file mode 100644 index 0000000000..c06f6ba5bb --- /dev/null +++ b/htdocs/manual/windows.html.ja.jis @@ -0,0 +1,636 @@ +<?xml version="1.0" encoding="iso-2022-jp"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> + <head> + + <title>Microsoft Windows での Apache の使用</title> + + </head> + <!-- English revision: 1.58 --> + <!-- Background white, links blue (unvisited), navy (visited), red (active) --> + + <body bgcolor="#ffffff" text="#000000" link="#0000ff" + vlink="#000080" alink="#ff0000"> + <!--#include virtual="header.html" --> + + <h1 align="center"><a id="help" name="help">Microsoft Windows での Apache の使用</a></h1> + + <p>この文書は、Microsoft Windows 紊任鞜竏窺骸蝟昭粡竚癈鷭п粐Ьぢのインスト・踉札襦∪瀋蝓▽踉斬行方法を説明します。この文書の大部分は、 + バイナリ配布から Windows にインスト・踉札襪靴討い襪帆枋蠅靴討い泙后鹿粡寂蝟赱齠洲痲筵娼もし (開発の蟒韻筌丱按廟廚里燭草痺蒹ぢを妊灰鵐僖ぅ鹿粡寂蝟赱齠洲痲筵娼したい豺腓蓮蓿繙就釼竢逅蛹蜴膊蔗迪▽苳四蜒鳫齒胄蜴粹ぢでの + Apache のコンパイル</a> を見てください。 + </p> + + <p>もしバグを見つけたら、<a + href="http://httpd.apache.org/bug_report.html" + >バグ報告ペ・踉札で報告してください。 + そう瘢雹いった寄与は歓迎します。 + コ・踉札匹泙燭歪鶲討鬟丱以鷙陬據ジで報告するか、 + new-httpd メ・踉札螢鵐哀螢好箸忙臆辰靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢバグ報告ペ・踉札犬纓鞣ぢメ・踉札螢鵐哀螢好箸蓮草痺蒹鹿粡寂蝟赱齠洲痲筵娼の設定や孫塋,砲弔い豆踉餐問するために用意しているわけでは + <em>ありません</em>。 バグ・瘢雹レポ・踉札箸簍弋瓩鯆鷭个垢訌阿砲泙此鹿粡寂蝟赱齠洲痲筵娼この文書、<a href="misc/FAQ.html">よく出る遡鹿粡寂蝟赱齠洲痲筵娼のペ・踉札検△修梁関連する文書を参箸靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼それでもまだ疑問や問題があるなら、<a + href="news:comp.infosystems.www.servers.ms-windows" + >comp.infosystems.www.servers.ms-windows</a> + ニュ・踉札好哀襦プに投稿してください。多くの Apache ユ・踉札兇い鹿粡寂蝟赱齠洲痲筵娼怏鈔阯紊鞜竏を使用するにあたっての新しい疑問、 + わかりにくい疑問に対して返答をくれるでしょう瘢雹。</p> + + <p><a + href="http://groups.google.com/groups?hl=en&lr=&safe=off&group=comp.infosystems.www.servers.ms-windows" + >groups.google.com のニュ・踉札好哀襦プのア・踉札ぅにより以前の問題を + 簡単に閲覧できます。ニュ・踉札好哀襦プのア・踉札ぅ屬鮓〆垢譴弌鹿粡寂蝟赱齠洲痲筵娼ほとんどの問題は既出で、誰かが回答しているのを見つけられるでしょう瘢雹。 + </p> + + <p><strong>警告: NT 紊任鞜竏は性能面でまだ最適化されていません。</strong> + 現時点では Apache は Unix プラットフォ・踉札爐悩嚢發寮修鯣掘鹿粡寂蝟赱齠洲痲筵娼最も信頼できます。時とともに NT での性能は改善されて、Windows + プラットフォ・踉札爨苳糸では来たるべきバ・踉札献腑鹿粡寂蝟赱齠洲痲筵娼において大きく進歩しています。ウ瘢雹ェブサ・踉札仞修料蠡佚淵譽咼紂を + している人に対しては、まだ、Solaris、FreeBSD、Linux などの Unix + プラットフォ・踉札爐任鞜竏に対して比較するよう瘢雹にお願いしています。 + </p> + <hr /> + + <ul> + <li><a href="#req">要件</a></li> + + <li><a href="#down">Windows 用の Apache をダウ瘢雹ンロ・踉札匹垢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■蜴齡▽苳思蜴粹ぢ用の Apache をインスト・踉札襪垢鹿粡寂蝟赱齠洲痲筵娼(バイナリインスト・踉札)</li> + + <li><a href="#run">Windows 用の Apache を孫圓垢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■齡▽苳思蜴粹ぢ用の Apache をテストする</a></li> + + <li><a href="#use">Windows 用の Apache を設定する</a></li> + + <li><a href="#cmdline">コンソ・踉札襯逅札鵐疋逅擦鞜竏綣蝟昭粡竚癈鷭п粐Ьぢを孫圓垢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹■皷芬瘡▽苳ぢコンソ・踉札襯逅札鵐疋逅擦鞜竏綣蝟昭粡竚癈鷭п粐Ьぢをコントロ・踉札襪垢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹†蜴燗纈竇譬サ・踉札咼垢箸靴蜴粹ぢ用の + Apache を孫圓垢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹†蜴燗纈竇譯皷芬瘡▽苳ぢサ・踉札咼垢箸靴鞜竏綣蝟昭粡竚癈鷭п粐Ьぢをコントロ・踉札襪垢薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鱚羹†蜴焜闕韈跚鈑譬莱竰闢閹怏鈔阯用の Apache + をコンパイルする</a></li> + </ul> + <hr /> + + <h2><a id="req" name="req">要件</a></h2> + + <p>Apache 1.3 は、WindowsNT 4.0 と Windows 2000 + で動くよう瘢雹に設計されています。バイナリのインスト・踉札蕕鹿粡寂蝟赱齠洲痲筵娼インテル製のものなど x86 ファミリ・踉擦離廛蹈札奪気任里瀑虻遒靴泙后鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢは Windows 95 や 98 でも動作しますが、 + これらはテストされていません。 + すべての豺弛ネットワ・踉札ぅ鵐好函ルされていなければなりません。</p> + + <p>NT 4.0 で孫圓垢襴苳詞合、サ・踉札咼好僖奪ぢまたは 6 + のインスト・踉札襪鮨筅苳皐します。サ・踉札咼好僖奪ぢには TCP/IP と WinSock + の問題があり、それはサ・踉札咼好僖奪ぢ以降では解決されています。</p> + + + <p><strong>注: Apache 1.3.7 以降では "Winsock2" + が必要になります。</strong></p> + + <p>Windows 95 で孫圓垢襴苳詞合、Apache を孫圓垢訌阿瘢雹髟阡思蜴齒站王瘢雹髟阡纂蝟昭粡竚癈鷭п粐Ьぢアップグレ・踉札匹鬟ぅ鵐好函ルしなければなりません。 + Windows 95 用の "Winsock2" は<a + href="http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp" + >ここ</a>か<a href="http://www.microsoft.com/windows95/downloads/" + >ここ</a>から入蟆椎修任后瀬ぅ▲襯▲奪廛優奪肇錙ク 1.2 (MS DUN) + アップデ・踉札箸砲倭瓦堙蜴齒站が含まれているので Winsock2 + アップデ・踉札箸蓮怏鈔阯控ぢダイアルアップネットワ・踉札鬟ぅ鵐好函ル + した後に再インスト・踉札襪靴覆韻譴个覆蕕覆い海箸肪躇佞靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼怏鈔阯晃、NT (サ・踉札咼好僖奪ぢ以降)、および 2000 のユ・踉札兇鹿粡寂蝟赱齠洲痲筵娼怏銖閭覯ぢが配布されているものに含まれているためここでは特にする + 必要はありません。</p> + + <h2><a id="down" name="down">Windows 用の Apache + のダウ瘢雹ンロ・踉札王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢの最新のバ・踉札献腑鵑砲弔い討陸苳諮報は、<a + href="http://httpd.apache.org/">http://httpd.apache.org/</a> の + Apache ウ瘢雹ェブサ・踉札个離據ジで見つけられます。そこには、現在のリリ・踉札后鹿粡寂蝟赱齠洲痲筵娼最新のアルファ、またはベ・踉札織謄好肇螢蝓スとともにミラ・踉札逅札Д屮汽ぅ函鹿粡寂蝟赱齠洲痲筵娼瘤闔阨瀞サイトの楮戮螢好箸気譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蜴粹ぢ用の Apache のバイナリ配布は、ソ・踉札好魁ドに興味があるなら + <code>apache_1_3_#-win32-src.msi</code> と巳苳刺佞韻蕕譴燭發里髻鹿粡寂蝟赱齠洲痲筵娼またはソ・踉札好魁ドに対して何もするつもりがなく、 + ダウ瘢雹ンロ・踉札匹瓩僂鵑席いい隼廚逅擦覆鹿粡寂蝟赱齠洲痲筵娼竢粤瘰痺蒹澑潦滷蜴害閙齟祟逑薤踉晒竢粤ぢをダウ瘢雹ンロ・踉札匹靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼これらのファイルはそれう苳擦譴亡袷瓦鞜竏ランタイムを含んでいます。 + Apache ランタイム配布をインスト・踉札襪垢訌阿蜒鳫齒胄銖跛纈鹿粡寂蝟赱齠洲痲筵娼鴦蜿窺碓ぢが PC にインスト・踉札襪気譴討い覆韻譴个覆蠅泙擦鵝怏鈔阯鷦蝟昭粡竚癈鷭п粐Ь旭及び Windows Me では Microsoft Installer が標準で + サポ・踉札箸気譴討い泙垢ではそれをダウ瘢雹ンロ・踉札匹垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼さらなる霾鵑魯瓮ぅ鵑離瀬逅札鵐蹇ドペ・踉札踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就蔗痕鞣鞜竏絎闥膀粹跫痲芍⊆蝟昭粡竚癈鷭п粐Ь苳肢雕蔗筮瘰痺蒹鱧阯鉤閨筮竍薤踉晒瓲苳に行ってください。 + Microsoft Installer を見つける蟒腓鞜竏のバイナリ配布と同様、 + <a href="http://www.apache.org/dyn/closer.cgi/httpd/binaries/win32/" + >ミラ・踉札汽ぅ箸蜴害ぢダウ瘢雹ンロ・踉札疋妊譽肇に見つかります</p> + + <p>ソ・踉札好魁ドは <code>-src.msi</code> の配布または <a + href="http://www.apache.org/dyn/closer.cgi/httpd/" + >配布ディレクトリ</a> にある <code>.zip</code> + ファイルから入蟆椎修任后發鞜竏綣蝟昭粡竚癈鷭п粐Ьぢを妊灰鵐僖ぅ襪垢襪弔發蠅覆蕁竢粤皷閼絋苳パッケ・踉札犬鹿粡寂蝟赱齠洲痲筵娼インスト・踉札襪垢詆廚呂泙辰燭△蠅泙擦鵝竢粤蜷閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢファイルは、MS-DOS の改行 (.tar.gz や .tar.Z で配布される unix + で使われる lf だけの改行の代わりに cr/lf の改行) が使われた + ソ・踉札好魁ドだけが含まれます。 + </p> + + <p>また、ソ・踉札垢黶逅癇踉晒黶逅黶逅癇瘢隍苳纂蝟昭粡竚癈鷭п粐Ьぢのア・踉札ぅ屬蕕眛踉至できます。これらのファイルには、 + Windows ユ・踉札兇砲楼靴い砲鉗趾ぢ改行が含まれます。 + そのア・踉札ぅ屬鮖箸逅擦燭瓩砲櫓苳晒なくとも <samp>.mak</samp> と + <samp>.dsp</samp> を MSVC が解瓩任襪茲逅察掴喙蝟昭粡竚癈鷭п粐Ьぢ改行に変換しなければなりません。頭痛の錣鮑遒蕕覆い燭瓩砲鹿粡寂蝟赱齠洲痲筵娼黶逅蜷瘢隍苳ファイルを選んでください。</p> + + <p>注: Apache 1.3.17 より前では、InstallShield 2.0 の形阿鹿粡寂蝟赱齠洲痲筵娼黶逅瘢隍苳ファイルが配布されました + [Windows Me や Windows 2000 で] InstallShield + パッケ・踉札犬鮖箸┐覆ぅ罅ザが増大したため、 + バイナリ配布は簡単に利用できる Microsoft Installer の + <samp>.msi</samp> の形阿悩謄僖奪院ジされました</p> + + <h2><a id="inst" name="inst">Windows 用の Apache + のインスト・踉札王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮紊妊瀬逅札鵐蹇ドした Apache <samp>.msi</samp> を孫圓靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼すると以王踉擦瞭呂弋瓩気譴泙鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚すべてのユ・踉札兇鞜竏を孫圓気擦燭サ・踉札咼垢箸靴討鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢのインスト・踉札のか、または Start Apache + のショ・踉札肇奪箸鯀崚靴董鹿粡寂蝟赱齠洲痲筵娼必要なときにコンソ・踉札襯逅札鵐疋逅擦薤踉斬行させたいのか。</li> + + <li>サ・踉札侈、ドメイン巳苳察△茲售浜踉市の E メ・踉札襯▲逅札鵐函薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳餐鞜竏をインスト・踉札襪垢襯妊譽肇デフォルトは + <code>C:\Program Files\Apache Group\Apache</code> ですが + これはどのディレクトリにでも変更できます)。</li> + + <li>インスト・踉札襯織ぅ廖闕韭續紜ぢオプションでは、 + すべてがインスト・踉札襪気譴泙后發踉雌瘢隍苳鮫齟祟逑薤踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼パッケ・踉札犬鬟瀬逅札鵐蹇ドしたのならソ・踉札好魁ドも含まれます。 + ドキュメントやソ・踉札好魁ドをインスト・踉札鹿粡寂蝟赱齠洲痲筵娼したくない豺腓瀦齡闕インスト・踉札襪鯀鵑任世気ぁ薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢインスト・踉札襪隆屬法草痺蒹ぢはインスト・踉札襯妊譽肇蠱罎鹿粡寂蝟赱齠洲痲筵娼黶逅竢鈕瘢隍苳ディレクトリのファイルを設定します。しかし、 + このディレクトリのファイルがどれか存在した豺腓蓮△修譴鬢苳糸書き + <strong>しません</strong>。代わりに、対応したファイルが + <samp>.default.conf</samp> の拡張子を付けて保存されます。 + つまり、例えば <samp>conf\httpd.conf</samp> が存在したなら、 + それ里亙儿垢気譴覆い韻譴匹癲▲ぅ鵐好函ルされたであろう瘢雹バ・踉札献腑鵑鹿粡寂蝟赱齠洲痲筵娼黶逅竢鈕樊鞣繙癜踉闔网踉晒黶逅ぢとして残されます。インスト・踉札觚紊法鹿粡寂蝟赱齠洲痲筵娼黶逅繙癜踉闔网踉晒黶逅ぢでどこが新しくなったのか、 + 蠧阿妊船Д奪垢戮如廚鳳犬憧犬寮瀋螢侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼更新してください。</p> + + <p><samp>htdocs\index.html</samp> + ファイルも、すでに存在すれば綵颪気譴泙擦鹿粡寂蝟赱齠洲痲筵娼└踉雌瘢隍苳脂鈔纔谺粤聲熙踉晒黶逅ぢファイルとしてインスト・踉札鹿粡寂蝟赱齠洲痲筵娼されることもありません)。 + これは、既存の Apache への綵颪ぅ鵐好函ルが安全なことを意味します + (しかし、インスト・踉札襪鬚垢訌阿貌阿い討い覺犬離機バは + 止めなければなりません。 + インスト・踉札覺偉燦紊某靴靴い發里魍呂靴討世気ぢ。</p> + + <p>Apache をインスト・踉札襪靴晋紊法廚覆踉雌瘢隍苳祉闔网踉晒黶逅鹿粡寂蝟赱齠洲痲筵娼ディレクトリ内の設定ファイルを編集してください。 + これらのファイルはインスト・踉札襪隆屬法鹿粡寂蝟赱齠洲痲筵娼インスト・踉札襪気譴織妊譽肇蠅鞜竏綣蝟昭粡竚癈鷭п粐Ьぢが動作できるよう瘢雹に設定され、ドキュメントはサブディレクトリ + <samp>htdocs</samp> のものがクライアントに送られます。 + Apache を尊櫃忙箸せ呂瓩訌阿法鹿粡寂蝟赱齠洲痲筵娼設定されるべきオプションは側苳擦砲眤海△蠅泙垢鹿粡寂蝟赱齠洲痲筵娼すぐに使い始めたい豺腓蓮鹿粡寂蝟赱齠洲痲筵娼インスト・踉札襪気譴燭泙泙陸苳歯態でも動作するでしょう瘢雹。</p> + + <p>もし Apache をアンインスト・踉札襪垢襪海箸砲覆辰職苳詞合、設定ファイルと + ログファイルは削除されません。設定ファイルや側苳擦離逅札Д屮侫.ぅ襪鹿粡寂蝟赱齠洲痲筵娼残したいと思わないならディレクトリツリ・踉デフォルトでは + "C:\Program Files\Apache Group") を悩鐔垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼蔗筮竢鈕ぢファイルは Apache を使う瘢雹紊巴濱僂気譴神未任△襪里如鹿粡寂蝟赱齠洲痲筵娼削除するためには労力を払う瘢雹必要があります。 + あなたの作った可能性がある側苳擦料瓦討離侫.ぅ襪砲い討眛韻犬海箸鹿粡寂蝟赱齠洲痲筵娼言えます。Apache が作ったログファイルも同様です。</p> + + <h2><a id="run" name="run">Windows 用の Apache を孫圓垢王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢを孫圓垢襪砲ぢつの方法があります</p> + + <ul> + <li>「<a href="win_service.html">サ・踉札咼」として。 + もしマシンブ・踉札隼鞜竏に、暗乏呂靴燭ぁ鹿粡寂蝟赱齠洲痲筵娼またログオフしても、Apache の動作は続けたいなら、 + これが最善のオプションです。</li> + + <li><a href="#cmdline">コンソ・踉札襯逅札鵐疋逅から。 + このコンソ・踉札襯逅札鵐疋逅擦鯤弔犬襪海箸砲茲鞜竏綣蝟昭粡竚癈鷭п粐Ьぢサ・踉札个禄擦気譴泙后薤苳纂蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳殺踉雌闔胼苳餐鞜竏を Windows <a href="win_service.html" + >サ・踉札咼として開始しよう瘢雹とする前に、 + 以王踉擦陸踉至順を完了させてください!</strong></p> + + <p>コンソ・踉札襯逅札鵐疋逅擦鞜竏を孫圓垢襪砲魯好拭トメニュ・踉擦蕁鹿粡寂蝟赱齠洲痲筵娼鶯鞜竏癈闔齒跂韶オプションを選んでください (Apache + 1.3.4 以前ではこのオプションは "Apache Server" と呼ばれていました)。 + これによりコンソ・踉札襯逅札鵐疋逅擦譟草痺蒹ぢはその中で孫圓気譴泙后鹿粡寂蝟赱齠洲痲筵娼ウ瘢雹ィンドウ瘢雹は、Apache を止めるまで、アクティブであり続けます。Apache + を止めるには、スタ・踉札肇瓮縫紂から、"Shutdown Apache console app" + を選択するか (Apache 1.3.4 以前では使えません)、<a + href="#signal">コンソ・踉札襯逅札鵐疋逅擦鞜竏をコントロ・踉札襪垢鹿粡寂蝟赱齠洲痲筵娼を参箸靴董▲灰鵐宗ルウ瘢雹ィンドウ瘢雹で Apache + をコントロ・踉札襪垢襯灰泪鵐匹鮖箸辰討世気ぁ鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏窺凱嘘ぢ以降では、Ctrl+C または Ctrl+Break + を押しても、コンソ・踉札襯逅札鵐疋逅擦鞜竏を安全に + 止められるよう瘢雹になりました。そして、バ・踉札献腑から、 + Windows NT/2000 紊濃箸逅殺苳詞合は、システムメニュ・踉鹿粡寂蝟赱齠洲痲筵娼ぢコンソ・踉札襯逅札鵐疋逅擦虜研苳糸コ・踉札福のアイコンをクリック) + から「閉じる」を選ぶか、右瘢雹絅魁ナ・踉擦僚悸鹿粡寂蝟赱齠洲痲筵娼ボタンをクリックすることにより Apache を停止させることもできます。 + Apache バ・踉札献腑から、メニュ・踉珊猝椶痢嵎弔犬襦廚篏悸鹿粡寂蝟赱齠洲痲筵娼ボタンは Windows 95/98 でも働きます。しかし、それより前のバ・踉札献腑鵑鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢサ・踉札个任呂譴い暴擦靴覆い里任修逅擦い辰職踉至段は + <em>採らないでください</em>。</p> + + <h2><a id="test" name="test">Windows 用の Apache をテストする</a></h2> + + <p>Apache の起動においてトラブルがあれば、問題を切り離すため、 + 以王踉擦陸踉至順に拾苳擦辰討世気ぁ海譴囈癇草痺蒹竢銖闌瘰陟鹿粡寂蝟赱齠洲痲筵娼のショ・踉札肇奪箸鬟好拭トメニュ・踉擦藾屬海箸砲茲鞜竏綣蝟昭粡竚癈鷭п粐Ьぢを起動したらすぐに (あるいは突然) コンソ・踉札襯逅札鵐疋逅擦弔犬拭△泙燭鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢをサ・踉札咼垢箸靴導呂垢襪箸縫肇薀屮襪冒辰職苳詞合に + あてはまります。 + </p> + + <p>スタ・踉札肇瓮縫紂 - プログラム から「コマンドプロンプト」を孫圓靴討世気ぁ鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢをインスト・踉札襪靴織侫襯世飽榮阿掘瘰痺蒹鹿粡寂蝟赱齠洲痲筵娼コマンドを入力してエラ・踉札瓮奪察ジを読んでください。 + そして、設定ミスがないか、error.log ファイルを調べてください。 + Apache をデフォルトでインスト・踉札襪靴職苳詞合は、コマンドは以王踉擦陵佑砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь瑳蝟昭粡竚癈鷭п粐Ь∠頏閾鱇肅跂黠瘰痺蒹鳫槧鞜竏紜鹿粡寂蝟赱齠洲痲筵娼瘰痺蒹鹿粡寂蝟赱齠洲痲筵娼纃草痺蒹ぢが終了するのを待つか、Ctrl+C を入力</em> + more <logs\error.log +</pre> + + <p>error.log を確認することで、おそらく悪かったところを彫苳擦掘鹿粡寂蝟赱齠洲痲筵娼問題を解決してやり彫苳擦垢海箸任襪任靴腓逅察發窪踉捌力で + 解決できなかった豺腓蓮鹿粡寂蝟赱齠洲痲筵娼この文書の冒頭の <a href="#help">補助のためのガイドライン</a> + や <a href="misc/FAQ.html#what2do">FAQ</a> に拾苳擦辰討世気ぁ鹿粡寂蝟赱齠洲痲筵娼多くのユ・踉札兇呂燭気鵑寮瀋螢瀬ぅ▲蹈阿茲蠅癲鹿粡寂蝟赱齠洲痲筵娼蔗筮竢鈕ぢファイルの方が管理や検査が簡単なことに気づくでしょう瘢雹。</p> + + + <p>開始後は Apache は(設定ファイルで <samp>Port</samp>, + <samp>Listen</samp> または <samp>BindAddress</samp> + ディレクティブを変更していなければ) + (コンソ・踉札襯逅札鵐疋逅擦任皀機ビスでも) 80 番ポ・踉札箸蜩郤蝟昭粡竚癈鷭п粐Ьぢして孫圓気譴泙后屮薀逅札兇魑阿掘△海厂鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь雕跫竅跏闢鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼隍苳ぢを入力してサ・踉札个棒楝海掘▲妊侫襯肇據ジにアクセスしてください</p> + + <p>これで welcome ペ・踉札犬屬気譟草痺蒹鹿粡寂蝟赱齠洲痲筵娼マニュアルへのリンクがあるはずです。もし何も起こらないか、 + エラ・踉擦世辰職苳詞合は、<samp>logs</samp> ディレクトリ中の + <samp>error.log</samp> ファイルを見てください。もしホストがネットに + 接続されていない豺腓蓮△海厂鹿粡寂蝟赱齠洲痲筵娼頏絋苳纂蝟昭粡竚癈鷭п粐Ь雕渦勲握握丑鹿粡寂蝟赱齠洲痲筵娼鱚鹿粡寂蝟赱齠洲痲筵娼隍苳ぢを使う瘢雹必要があるかもしれません</p> + + <p>いったん基本的なインスト・踉札襪覇虻遒靴燭蕁黶逅竢鈕瘢隍苳纂蝟昭粡竚癈鷭п粐Ьぢディレクトリ中のファイルを編集して適切に設定してください。</p> + + <p>Apache は同じポ・踉札箸鯊の TCP/IP アプリケ・踉札轡腑鵑閥逅四垢襪海箸鹿粡寂蝟赱齠洲痲筵娼纃出来ない</em> ので、まず特定のサ・踉札咼垢鮖澆瓩襪▲鵐ぅ鵐好函ル + する必要があるかもしれません。これには側苳擦離逅札Д屮機バや BlackIce + などのファイアウ瘢雹ォ・踉札訐宿覆これらに限られませんが) 含まれます。 + それらのサ・踉札咼垢鮖藩僂擦鞜竏だけを起動させるか、 + それらの製品と同じ TCP/IP ポ・踉札箸蜩しないよう瘢雹に、Apache + または側苳擦寮宿覆鮑得瀋蠅靴討世気ぁ匹離檗トが使用されているのか + を確認するには Windows の "netstat -an" + コマンドが便利かも知れません。</p> + + <h2><a id="use" name="use">Windows 用の Apache を設定する</a></h2> + + <p>Apache は <samp>conf</samp> + ディレクトリ中のファイルにより設定されます。これらは、Unix + バ・踉札献腑鵑寮瀋衢僖侫.ぅ襪汎韻犬任垢怏鈔阯の Apache + はいくらか異なるディレクティブがあります。 + 有効なディレクティブを知るためには <a href="./">Apache + ドキュメント</a>を見てください。</p> + + + <p><code>httpd.conf</code> とそのディレクティブを読むことから + Apache サ・踉札个寮瀋蠅鬚呂犬瓩討世気ぁ竢粤痺竇齠闔网踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼と <code>srm.conf</code> は存在はしていますが、 + 現在ではほとんどの管理圓忙箸錣譴覆じ鼎ぅ侫.ぅ襪如鹿粡寂蝟赱齠洲痲筵娼その中にはディレクティブが全く書かれていないことが分かるでしょう瘢雹。</p> + + <p><code>httpd.conf</code> にはそれ里縫疋絅瓮鵐箸燭気鶸泙泙譴討い董鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢサ・踉札个魍呂垢觧某筅苳皐されるデフォルト設定のディレクティブが続いています。 + 設定ファイルを理解するにはそれらのコメントを読むことから始めて、 + 景儿垢鬚靴討魯灰鵐宗ルウ瘢雹ィンドウ瘢雹から Apache + を開始し、変更を適用させてください。 + 間違えたときに最後に行った変更を元に戻すのはより簡単でしょう瘢雹。 + そう瘢雹するう瘢雹ちにどの変更がサ・踉札个良垓餽腓砲弔覆襪里箸い逅鹿粡寂蝟赱齠洲痲筵娼知韻犬泙譴泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳思蜴粹ぢ用の Apache で異なる腓陛世楼焚の通りです</p> + + <ul> + <li> + Windows 用の Apache はマルチスレッドなので、Unix での Apache + のよう瘢雹にそれう苳擦譴陵弋瓩瓦箸吠霧弔離廛蹈札垢鮖箸い泙擦鵝鹿粡寂蝟赱齠洲痲筵娼代わりに、通鞜竏プロセスが二つだけ使われます。 + 親プロセスとリクエストを処理する子プロセスです。 + 子プロセスでは、それう苳擦譴離螢┘好箸亙霧弔離好譽奪匹砲茲鹿粡寂蝟赱齠洲痲筵娼処理されます。拾苳擦辰董◆屮廛蹈札后鹿粡寂蝟赱齠洲痲筵娼を管理するディレクティブが異なります: + + <ul> + <li><a + href="mod/core.html#maxrequestsperchild" + >MaxRequestsPerChild</a> - Unix 用のディレクティブと同じよう瘢雹に、 + プロセスが辰┐襪泙任砲匹譴蕕い離螢┘好箸鮟萢垢襪里鹿粡寂蝟赱齠洲痲筵娼コントロ・踉札襪靴泙后燭世掘寰蝌ぢとは異なり一つのプロセスは + 一つのリクエストだけの処理ではなく、すべての要求を同時に処理します。 + 拾苳擦辰董△海譴鮴瀋蠅垢襴苳詞合は、非錣帽發た瑤鮖箸逅擦海箸筅苳皐されます。 + 推気譴織妊侫襯箸踉祉閼絋苳四癢吶髟纉倥鮹蓍趙閼絋苳纂蝟昭粡竚癈鷭п粐Ьぢではプロセスは辰┐泙擦鵝薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳殺踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯鱚痲齔纈竏蛹笄壽鱚痲麸纈宙蛹筅踉晒瓲苳蝟昭粡竚癈鷭п粐Ьぢこの新しいディレクティブは、いくつのスレッドを使う瘢雹のかを + ┐靴泙后海譴蓮瓜縫機バが処理できる接続の + 最大数になります。大量のアクセスが有るのなら、 + これを十分に高い数値に設定してください。推離妊侫襯箸鹿粡寂蝟赱齠洲痲筵娼竢粤壽鱚痲麸纈宙蛹軌閼絋苳です。 + </li> + </ul> + </li> + + <li>ディレクティブの引数のファイル巳苳擦鉗形阿任覆蜴粹鹿粡寂蝟赱齠洲痲筵娼形阿離侫.ぅ詭を使われなければなりません。しかし、Apache + 内部では Unix 形阿量前を使う瘢雹ので、バックスラッシュの代わりに + スラッシュを使わなければなりません。ドライブ巳苳擦鮖箸逅擦海箸發任泙后鹿粡寂蝟赱齠洲痲筵娼蔑靴職苳詞合は、Apache の孫團侫.ぅ襪△襯疋薀ぅ屬砲覆蠅泙后鹿粡寂蝟赱齠洲痲筵娼薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳纂蝟昭粡竚癈鷭п粐Ь蜴粹ぢ用の Apache はサ・踉札个鮑謄灰鵐僖ぅ襪擦困胞踉斬行時に + モジュ・踉札襪鬟蹇ドすることが出来ます。Apache を普通にコンパイル + した豺腓踉祉閼絋苳詩閼纉閼絋苳ディレクトリにある多くの + オプションのモジュ・踉札襪鬟ぅ鵐好函ルします。それらのモジュ・踉札襪鹿粡寂蝟赱齠洲痲筵娼側苳擦離皀献紂ルを有効にするには、新しい <a + href="mod/mod_so.html#loadmodule">LoadModule</a> + ディレクティブを使わなければなりません。例えば、status + モジュ・踉札襪鰺砲垢襪砲楼焚 (さらに、<code>httpd.conf</code> に + status を有効にするディレクティブが必要。楮戮砲弔い討踉氏鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖齡癆譬迴籖齡癆鹿粡寂蝟赱齠洲痲筵娼を参が必要です。 +<pre> + LoadModule status_module modules/mod_status.so +</pre> + + <p><a + href="mod/mod_so.html#creating" + >ロ・踉札匹任襯皀献紂ルの作成</a>についての霾鵑發△蠅泙后鹿粡寂蝟赱齠洲痲筵娼サ・踉札疋僉ティ・踉擦離皀献紂ルの中には + 古い形阿量前、ApacheModuleFoo.dll で配布されていることが + あることに注意してください。 + LoadModule ディレクティブは錣縫機ドパ・踉札謄のモジュ・踉札襴踉捌身の + ドキュメントに拾苳擦辰得瀋蠅靴討世気ぁ薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉詞薤苳思蜴粹ぢ用の Apache バ・踉札献腑鹿粡寂蝟赱齠洲痲筵娼系では同期的な呼び出しが汰気譴討い泙后鹿粡寂蝟赱齠洲痲筵娼このことは、バッファされていない結果が彫苳擦舛縫屮薀逅札兇埜蕕譴覆い箸い逅鹿粡寂蝟赱齠洲痲筵娼断制作圓砲箸辰討和腓別簑蠅慮彊砲覆蠅泙后海譴蓮草痺蒹鹿粡寂蝟赱齠洲痲筵娼の CGI に記述された動作ではなく、Windows への移植の副作用です。 + Apache 2.0 では、胞苳擦泙譴詒麁唄瞭虻遒鬢踉斬装が行なわれていて、 + NT/2000 での汰如断が額面通りの動作が可能になることを + 期待しています。</li> + + <li> + <p>Apache は、Microsoft の IIS や側苳擦蜴粹鹿粡寂蝟赱齠洲痲筵娼サ・踉札个濃箸錣譴襪茲逅擦啻佗ぢ拡張 (<em>すなわち</em>、 + インタ・踉札優奪肇機バアプリケ・踉札轡腑もロ・踉札匹任泙后鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝迴籖蜩瘰藪蔗迪▽苳ぢ椶靴う苳諮報もあります</a>。 + Apache は ISAPI + フィルタはロ・踉札纃できない</em>ことに注意してください。</p> + </li> + + <li>CGI が動作する時に Apache がスクリプトのインタプリタを + 判断する方法を <a href="mod/core.html#scriptinterpretersource" + >ScriptInterpreterSource</a> ディレクティブを使って設定できます。 + </li> + + <li>Windows では <code>.htaccess</code> + のよう瘢雹な巳苳餐阿離侫.ぅ襪牢浜靴砲い海箸燭い里如鹿粡寂蝟赱齠洲痲筵娼蓿繙就迴箝竢鱚譯痺竇齠肅跂釶辣▽苳餐窿纉麁蛹緕瘢絋踉晒瓲苳纂蝟昭粡竚癈鷭п粐Ьぢディレクティブを使ってこのファイル巳苳擦鯤儿垢垢襪鹿粡寂蝟赱齠洲痲筵娼便利かもしれません。</li> + </ul> + + <h2><a id="cmdline" name="cmdline">コンソ・踉札襯逅札鵐疋逅擦鞜竏綣蝟昭粡竚癈鷭п粐Ьぢを孫圓垢王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮スタ・踉札肇瓮縫紂アイコン及び NT サ・踉札咼好泪優献磧は、 + Apache を管理するための簡単なインタフェ・踉札垢鯆鷆,靴泙后鹿粡寂蝟赱齠洲痲筵娼しかし、コマンドラインからの方が簡単な豺腓發△蠅泙后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏で何かするときには設定ファイルをどのよう瘢雹に見つけるのかを + 知っていることが重要です。コマンドラインで設定ファイルを指定するには + 二つの方法があります</p> + + <ul> + <li>-f では特定の設定ファイルのパスを指定します</li> + </ul> + +<pre> + apache -f "c:\my server\conf\my.conf" +</pre> +<pre> + apache -f test\test.conf +</pre> + + <ul> + <li>-n は、インスト・踉札襪気譴鞜竏綣蝟昭粡竚癈鷭п粐Ьぢサ・踉札咼垢寮瀋螢侫.ぅ襪鮖慊蠅靴泙草痺蒹以降)</li> + </ul> +<pre> + apache -n "service name" +</pre> + + <p>これらの豺隋∪瀋螢侫.ぅ襪播擇淵機バル・踉札鹿粡寂蝟赱齠洲痲筵娼ぢが設定されている必要があります。</p> + + <p> -f や -n で設定ファイル巳苳擦鮖慊蠅靴覆う苳詞合は、Apache は通鹿粡寂蝟赱齠洲痲筵娼≪闔罸蔗筮竢鈕という瘢雹サ・踉札个冒箸濆泙譴鹿粡寂蝟赱齠洲痲筵娼ファイル巳苳擦箸錣譴泙后草痺蒹ぢに -V スイッチを付けた豺隋鹿粡寂蝟赱齠洲痲筵娼單雙賭瀉藁読梅読姪ぢと巳苳刺佞韻蕕譴燭海涼佑拾踉雑されます。 + Apache は、以王踉擦僚臀濃遒靴謄機バル・踉札箸魴萃蠅靴泙鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼跚ぢスイッチによる ServerRoot ディレクティブ</li> + + <li>コマンドラインの -d スイッチ</li> + + <li>現在の作業ディレクトリ</li> + + <li>バイナリインスト・踉札襪靴職苳詞合はレジストリのエントリ</li> + + <li>サ・踉札个縫灰鵐僖ぅ襪気譴討い襯機バル・踉札薤苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉晒鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢサ・踉札个冒箸濆泙譴襯機バル・踉札箸蓮巳苳誌 "/apache" + になります。apache に -V スイッチを付けた豺腓蓮挽墅吊厦鹿粡寂蝟赱齠洲痲筵娼巳苳刺佞韻蕕譴燭海涼佑拾踉雑されます。</p> + + <p>スタ・踉札肇瓮縫紂からの豺腓歪巳苳誌、Apache に引数が渡されないので + コンソ・踉札襪鞜竏でもレジストリのエントリを使う瘢雹ことが + 推気譴詈,任后鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳ぢバイナリインスト・踉札訝罎法▲譽献好肇蠅離がインスト・踉札襪気譴泙后鹿粡寂蝟赱齠洲痲筵娼例えば</p> +<pre> + HKEY_LOCAL_MACHINE\Software\Apache Group\Apache\1.3.13\ServerRoot +</pre> + + <p>このキ・踉擦魯機バに組み込まれていて、現在のバ・踉札献腑鵑鳳洞舛鹿粡寂蝟赱齠洲痲筵娼与えずに新しいバ・踉札献腑鵑鬟謄好箸垢襪海箸魏椎修砲靴泙后鹿粡寂蝟赱齠洲痲筵娼もちろん、ファイルシステム紊埜鼎ぅ弌ジョンの紊某靴靴鹿粡寂蝟赱齠洲痲筵娼バ・踉札献腑鵑鬟ぅ鵐好函ルしないよう瘢雹に注意しなければなりません。</p> + + <p>もしバイナリインスト・踉札襪鬚靴覆辰職苳詞合は、Apache + はいくつかの筋書に沿って、欠落しているレジストリキ・踉擦砲弔い討侶拗陲鯣靴泙后鹿粡寂蝟赱齠洲痲筵娼この警告は、設定ファイルを見つけることが何らかの形で出来たなら + 無視してかまいません。</p> + + <p>このキ・踉擦涼佑踉雌瘢隍苳祉闔网踉晒黶逅ぢディレクトリのある + "ServerRoot" ディレクトリです。Apache は開始時に + <samp>httpd.conf</samp> ファイルをこのディレクトリから読みます。 + 綉離譽献好肇螢から得たディレクトリと異なるディレクトリが + このファイルの <samp>ServerRoot</samp> ディレクティブで指定された豺腓蓮鹿粡寂蝟赱齠洲痲筵娼草痺蒹ぢはレジストリキ・踉擦鯔困譴得瀋螢侫.ぅ襪濃悧踉雑されたディレクトリを + 使います。もし Apache ディレクトリや設定ファイルを別の貊蠅鹿粡寂蝟赱齠洲痲筵娼コピ・踉擦垢襴苳詞合は <samp>httpd.conf</samp> の <samp>ServerRoot</samp> + を更新することが肝心です。 + </p> + + <p>コンソ・踉札襯▲廛螢院ションとしてコマンドラインから Apache + を孫圓垢襪砲蓮焚のコマンドを使ってください</p> +<pre> + apache +</pre> + + <p>Apache が孫圓気譟竢銓鳫讚端蝟昭粡竚癈鷭п粐Ьぢを使う瘢雹ことにより止められるまで動き続けます。</p> + + <h2><a id="signal" name="signal">コンソ・踉札襯逅札鵐疋逅擦鞜竏綣蝟昭粡竚癈鷭п粐Ьぢをコントロ・踉札襪靴泙王苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮孫埣罎鞜竏を、別のコンソ・踉札襯逅札鵐疋逅擦鹿粡寂蝟赱齠洲痲筵娼以王踉擦鬢踉斬行することにより止めることができます</p> +<pre> + apache -k shutdown +</pre> + + <p><strong>注: このオプションは Apache 1.3.3 以降でのみ有効です。 + </strong></p> + + <p>より以前のバ・踉札献腑鵑任蓮▲機バを止めるには、Apache + のコンソ・踉札襯逅札鵐疋逅擦闔闌ぢを使わなければなりません。</p> + + <p>バ・踉札献腑ぢから 1.3.12 まででは、Apache + のコンソ・踉札襯逅札鵐疋逅擦闔闌ぢを使う瘢雹代わりにこれの方を + 使う瘢雹のが必要でした。それを使う瘢雹と、Apache がその時点での + 処理を終了してきれいに終了できることができたからです。 + </p> + + <p>バ・踉札献腑で、動作しているウ瘢雹ィンドウ瘢雹で Control-C + を使っても Apache がきれいに終了するよう瘢雹になったので + -k shutdown の別巳苳擦箸靴齡關ぢを使ってかまいません。 + 早期のバ・踉札献腑鵑任齡關ぢを解瓩靴泙擦鵝鹿粡寂蝟赱齠洲痲筵娼鹿粡寂蝟赱齠洲痲筵娼隍苳餐鞜竏を、再スタ・踉札箸気擦襪海箸發任泙后修譴砲茲蠕瀋螢侫.ぅ鹿粡寂蝟赱齠洲痲筵娼の再読込をします。経過中のどの処理も割込ませずに完了することが許されます。 + Apache を再スタ・踉札箸垢襪砲呂海譴鬢踉斬行してください + </p> +<pre> + apache -k restart +</pre> + + <p><strong>注: このオプションは Apache 1.3.3 以降でのみ有効です。 + 早期のバ・踉札献腑鵑任蓮草痺蒹ぢのコンソ・踉札襯逅札鵐疋逅擦闔闌鹿粡寂蝟赱齠洲痲筵娼によりサ・踉札个鮟擦気察△修譴鞜竏綣蝟昭粡竚癈鷭п粐Ьぢコマンドによってサ・踉札个鮑撞阿垢詆廚△蠅泙后鹿粡寂蝟赱齠洲痲筵娼闔胼苳殺踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮側苳擦法∪瀋螢侫.ぅ襯謄好肇廛轡腑鵑箸い逅纃非錣吠慷蹙苳纂蝟昭粡竚癈鷭п粐Ьぢ機能があります。Apache + の設定ファイルをテストするにはこれを孫圓靴討世気墾踉晒隍苳纂蝟昭粡竚癈鷭п粐Ь踉諮鱚鹿粡寂蝟赱齠洲痲筵娼瘰痺蒹蝟昭粡竚癈鷭п粐Ь踉晒頏絋苳纂蝟昭粡竚癈鷭п粐Ь蝟昭粡竚癈鷭п粐Ь踉諮草痺蒹ぢがまだ孫圓靴討い襪箸棒瀋螢侫.ぅ襪諒儿垢鬚靴燭箸鹿粡寂蝟赱齠洲痲筵娼特に便利です。変更を加え、"apache -t" + コマンドにより構文が正しいか確認してから "apache -k restart" により + Apache を再起動するという瘢雹ことができます。Apache + は設定ファイルを読み彫苳擦掘鹿粡寂蝟赱齠洲痲筵娼割込みさせることなく処理を進めることが出来ます。 + 新しいリクエストは新しい設定に基づいて処理されます。 + </p> + + <p>注: Apache の Unix + バ・踉札献腑鵑棒債未靴真諭垢砲蓮△海譴蕕離灰泪鵐匹鹿粡寂蝟赱齠洲痲筵娼竢粤謇跛堙厖踉糸蹙苳諮蜆蹙苳殺踉晒竢粤鹿粡寂蝟赱齠洲痲筵娼および <code>kill -USR1 <em>pid</em></code> と同等の機能を Windows + に提供する、と言った方がわかりやすいでしょう瘢雹。 + コマンドラインのオプションで使われる <code>-k</code> + は Unix における "kill" コマンドを連想させるものとして選ばれました。</p> + <!--#include virtual="footer.html" --> + </body> +</html> |