- [x] **Harmonize `<seealso>` blocks** — htaccess.xml not consistently
listed in other files' seealso despite being a major topic.
-- [ ] **Deprecated stub files** (access.xml, advanced.xml, proxy.xml) —
+- [x] **Deprecated stub files** (access.xml, advanced.xml, proxy.xml) —
Remove from trunk. Leave in 2.4 during sync (they'll drop in 2.6).
- [x] **Figure numbering collision** — both intro.xml and tech.xml use
+++ /dev/null
-# GENERATED FROM XML -- DO NOT EDIT
-
-URI: access.html.de
-Content-Language: de
-Content-type: text/html; charset=ISO-8859-1
-
-URI: access.html.en.utf8
-Content-Language: en
-Content-type: text/html; charset=UTF-8
-
-URI: access.html.es.utf8
-Content-Language: es
-Content-type: text/html; charset=UTF-8
-
-URI: access.html.fr.utf8
-Content-Language: fr
-Content-type: text/html; charset=UTF-8
-
-URI: access.html.ja.utf8
-Content-Language: ja
-Content-type: text/html; charset=UTF-8
-
-URI: access.html.ko.euc-kr
-Content-Language: ko
-Content-type: text/html; charset=EUC-KR
-
-URI: access.html.tr.utf8
-Content-Language: tr
-Content-type: text/html; charset=UTF-8
-
-URI: access.html.zh-cn.utf8
-Content-Language: zh-cn
-Content-type: text/html; charset=UTF-8
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"><head>
-<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Zugriffskontrolle mit mod_rewrite - Apache HTTP Server Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Module</a> | <a href="../mod/quickreference.html">Direktiven</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Server Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP-Server</a> > <a href="http://httpd.apache.org/docs/">Dokumentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Zugriffskontrolle mit mod_rewrite</h1>
-<div class="toplang">
-<p><span>Verfügbare Sprachen: </span><a href="../de/rewrite/access.html" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Diese Übersetzung ist möglicherweise
- nicht mehr aktuell. Bitte prüfen Sie die englische Version auf
- die neuesten Änderungen.</div>
-
-
-<p>Dieses Dokument ergänzt die <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">Referenzdokumentation</a>. Es beschreibt,
-wie Sie <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> zur Zugriffskontrolle auf
-verschiedene Ressourcen verwenden können, sowie weitere verwandte Techniken.
-Dies beinhaltet viele Beispiele für gängige Verwendungen von <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>,
-einschließlich detaillierter Beschreibungen, wie jedes einzelne funktioniert.</p>
-
-<div class="warning">Beachten Sie, dass viele dieser Beispiele nicht unverändert in Ihrer
-speziellen Serverkonfiguration funktionieren werden. Es ist daher wichtig, dass Sie
-sie verstehen, anstatt die Beispiele einfach auszuschneiden und in Ihre
-Konfiguration einzufügen.</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#blocked-inline-images">Verhindern von Bild-"Hotlinking"</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#blocking-of-robots">Blockieren von Robots</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#host-deny">Ablehnung von Hosts in einer Sperrliste</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#referer-deflector">Referer-basierter Umleiter</a></li>
-</ul><h3>Siehe auch</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Moduldokumentation</a></li><li><a href="intro.html">Einführung in mod_rewrite</a></li><li><a href="remapping.html">Umleitung und Neuzuordnung</a></li><li><a href="vhosts.html">Virtuelle Hosts</a></li><li><a href="proxy.html">Proxying</a></li><li><a href="rewritemap.html">Verwendung von RewriteMap</a></li><li><a href="advanced.html">Fortgeschrittene Techniken</a></li><li><a href="avoid.html">Wann man mod_rewrite nicht verwenden sollte</a></li><li><a href="#comments_section">Kommentare</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocked-inline-images" id="blocked-inline-images">Verhindern von Bild-"Hotlinking"</a> <a title="Permanent link" href="#blocked-inline-images" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Die folgende Technik verhindert die Praxis, dass andere Websites
- Ihre Bilder direkt in ihre Seiten einbinden. Diese Praxis wird
- oft als "Hotlinking" bezeichnet und führt dazu,
- dass Ihre Bandbreite verwendet wird, um Inhalte für die Website
- einer anderen Person bereitzustellen.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Diese Technik beruht auf dem Wert der
- <code>HTTP_REFERER</code>-Variable, die optional ist. Daher
- ist es möglich, dass einige Personen diese Einschränkung
- umgehen. Die meisten Benutzer werden jedoch die fehlgeschlagene
- Anfrage bemerken, was im Laufe der Zeit dazu führen sollte,
- dass das Bild von der anderen Website entfernt wird.</p>
- <p>Es gibt mehrere Möglichkeiten, mit dieser Situation
- umzugehen.</p>
-
- <p>Im ersten Beispiel verweigern wir die Anfrage einfach, wenn sie nicht
- von einer Seite unserer Website stammt. Für dieses Beispiel nehmen wir
- an, dass unsere Website <code>www.example.com</code> ist.</p>
-
-
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]</pre>
-
-
- <p>Im zweiten Beispiel zeigen wir statt einer fehlgeschlagenen Anfrage
- ein alternatives Bild an.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]</pre>
-
-
- <p>Im dritten Beispiel leiten wir die Anfrage auf ein Bild auf einer
- anderen Website um.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]</pre>
-
-
- <p>Von diesen Techniken sind die letzten beiden am effektivsten,
- um Personen davon abzuhalten, Ihre Bilder per Hotlink einzubinden,
- da sie einfach nicht das Bild sehen werden, das sie erwartet haben.</p>
-
- </dd>
-
- <dt>Diskussion:</dt>
-
- <dd>
- <p>Wenn Sie lediglich den Zugriff auf die Ressource verweigern möchten,
- anstatt die Anfrage woanders umzuleiten, kann dies ohne die
- Verwendung von <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> erreicht werden:</p>
-
- <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch></pre>
-
- </dd>
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocking-of-robots" id="blocking-of-robots">Blockieren von Robots</a> <a title="Permanent link" href="#blocking-of-robots" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>
- In diesem Rezept besprechen wir, wie man hartnäckige Anfragen von
- einem bestimmten Robot oder User-Agent blockiert.</p>
-
- <p>Der Standard für den Ausschluss von Robots definiert eine Datei,
- <code>/robots.txt</code>, die die Bereiche Ihrer Website festlegt,
- von denen Sie Robots ausschließen möchten. Einige Robots halten sich
- jedoch nicht an diese Dateien.
- </p>
-
- <p>Beachten Sie, dass es Methoden gibt, dies ohne die Verwendung
- von <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> zu erreichen. Beachten Sie auch, dass jede Technik, die auf
- dem <code>USER_AGENT</code>-String des Clients basiert, sehr leicht
- umgangen werden kann, da dieser String geändert werden kann.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Wir verwenden einen Regelsatz, der das zu schützende Verzeichnis
- und den Client-<code>USER_AGENT</code> angibt, der den bösartigen
- oder hartnäckigen Robot identifiziert.</p>
-
- <p>In diesem Beispiel blockieren wir einen Robot namens
- <code>NameOfBadRobot</code> vom Standort
- <code>/secret/files</code>. Sie können auch einen IP-Adressbereich
- angeben, wenn Sie den User-Agent nur von einer bestimmten Quelle
- blockieren möchten.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]</pre>
-
- </dd>
-
- <dt>Diskussion:</dt>
-
- <dd>
- <p>
- Anstatt <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> hierfür zu verwenden, können Sie dasselbe
- Ziel mit alternativen Mitteln erreichen, wie hier gezeigt:
- </p>
- <pre class="prettyprint lang-config">SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location></pre>
-
- <p>
- Wie oben erwähnt, ist diese Technik trivial zu umgehen, indem man
- einfach den <code>USER_AGENT</code>-Anfrage-Header ändert. Wenn Sie
- einen anhaltenden Angriff erleben, sollten Sie erwägen, diesen
- auf einer höheren Ebene zu blockieren, beispielsweise an Ihrer Firewall.
- </p>
-
- </dd>
-
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="host-deny" id="host-deny">Ablehnung von Hosts in einer Sperrliste</a> <a title="Permanent link" href="#host-deny" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Wir möchten eine Liste von Hosts pflegen, ähnlich wie
- <code>hosts.deny</code>, und diesen Hosts den Zugriff auf
- unseren Server verweigern.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]</pre>
-
-
-<div class="example"><p><code>
-##<br />
-## hosts.deny<br />
-##<br />
-## ACHTUNG! Dies ist eine Map, keine Liste, auch wenn wir sie als solche behandeln.<br />
-## mod_rewrite parst sie nach Schlüssel/Wert-Paaren, daher muss mindestens<br />
-## ein Dummy-Wert "-" für jeden Eintrag vorhanden sein.<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</code></p></div>
- </dd>
-
- <dt>Diskussion:</dt>
- <dd>
- <p>
- Die zweite RewriteCond setzt voraus, dass HostNameLookups aktiviert ist,
- damit Client-IP-Adressen aufgelöst werden. Wenn dies nicht der Fall ist,
- sollten Sie die zweite RewriteCond weglassen und das <code>[OR]</code>-Flag
- von der ersten RewriteCond entfernen.
- </p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="referer-deflector" id="referer-deflector">Referer-basierter Umleiter</a> <a title="Permanent link" href="#referer-deflector" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Anfragen basierend auf dem Referer umleiten, von dem die Anfrage
- kam, mit unterschiedlichen Zielen pro Referer.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Der folgende Regelsatz verwendet eine Map-Datei, um jeden Referer
- mit einem Umleitungsziel zu verknüpfen.</p>
-
-<pre class="prettyprint lang-config">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>
-
-
- <p>Die Map-Datei listet Umleitungsziele für jeden Referer auf, oder,
- wenn wir nur zurück dorthin umleiten möchten, woher sie kamen, wird ein
- "-" in die Map eingetragen:</p>
-
-<pre class="prettyprint lang-config">##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/</pre>
-
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Verfügbare Sprachen: </span><a href="../de/rewrite/access.html" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Module</a> | <a href="../mod/quickreference.html">Direktiven</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Using mod_rewrite to control access - Apache HTTP Server Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page" class="no-sidebar"><div id="page-header">
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Server Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Using mod_rewrite to control access</h1>
-<div class="toplang">
-<p><span>Available Languages: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-
-
-<div class="warning">This document has been deprecated. Its content has
-been reorganized into the
-<a href="avoid.html">When not to use mod_rewrite</a> document, since
-the recipes here are better accomplished using other Apache httpd
-features. This page will be removed in a future version of this
-documentation.</div>
-
-<ul>
-<li><strong>Forbidding image hotlinking</strong> - See
- <a href="avoid.html#blocked-inline-images">When not to use mod_rewrite</a></li>
-<li><strong>Blocking of robots</strong> - See
- <a href="avoid.html#blocking-of-robots">When not to use mod_rewrite</a></li>
-<li><strong>Denying hosts in a reject list</strong> - See
- <a href="avoid.html#host-deny">When not to use mod_rewrite</a></li>
-</ul>
-
-</div>
-</div>
-<div class="bottomlang">
-<p><span>Available Languages: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Uso de mod_rewrite para control de acceso - Servidor HTTP Apache Versión 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Reportar un error</a></p>
-<p class="apache">Versión 2.5 del Servidor HTTP Apache</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="../">Versión 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Uso de mod_rewrite para control de acceso</h1>
-<div class="toplang">
-<p><span>Idiomas disponibles: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Esta traducción podría estar
- obsoleta. Consulte la versión en inglés de la
- documentación para comprobar si se han producido cambios
- recientemente.</div>
-
-
-<p>Este documento complementa la <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">documentación de referencia</a>. Describe
-cómo puede usar <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> para controlar el acceso a
-varios recursos, y otras técnicas relacionadas.
-Esto incluye muchos ejemplos de usos comunes de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>,
-incluyendo descripciones detalladas de cómo funciona cada uno.</p>
-
-<div class="warning">Tenga en cuenta que muchos de estos ejemplos no funcionarán sin cambios en su
-configuración particular del servidor, por lo que es importante que los
-entienda, en lugar de simplemente copiar y pegar los ejemplos en su
-configuración.</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#blocked-inline-images">Prohibir el "Hotlinking" de imágenes</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#blocking-of-robots">Bloqueo de Robots</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#host-deny">Denegación de Hosts en una Lista de Rechazo</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#referer-deflector">Deflector basado en Referer</a></li>
-</ul><h3>Consulte también</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentación del módulo</a></li><li><a href="intro.html">Introducción a mod_rewrite</a></li><li><a href="remapping.html">Redirección y remapeo</a></li><li><a href="vhosts.html">Hosts virtuales</a></li><li><a href="proxy.html">Proxy</a></li><li><a href="rewritemap.html">Uso de RewriteMap</a></li><li><a href="advanced.html">Técnicas avanzadas</a></li><li><a href="avoid.html">Cuándo no usar mod_rewrite</a></li><li><a href="#comments_section">Comentarios</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocked-inline-images" id="blocked-inline-images">Prohibir el "Hotlinking" de imágenes</a> <a title="Enlace permanente" href="#blocked-inline-images" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>La siguiente técnica prohíbe la práctica de que otros sitios
- incluyan sus imágenes en línea en sus páginas. Esta práctica se
- conoce a menudo como "hotlinking", y resulta en que
- su ancho de banda se use para servir contenido del sitio de
- otra persona.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Esta técnica se basa en el valor de la
- variable <code>HTTP_REFERER</code>, que es opcional. Como
- tal, es posible que algunas personas eviten esta
- limitación. Sin embargo, la mayoría de los usuarios experimentarán la
- solicitud fallida, lo que debería, con el tiempo, resultar en que la
- imagen sea eliminada del otro sitio.</p>
- <p>Hay varias formas en las que puede manejar esta
- situación.</p>
-
- <p>En este primer ejemplo, simplemente denegamos la solicitud, si no se
- originó desde una página en nuestro sitio. Para el propósito de este ejemplo,
- asumimos que nuestro sitio es <code>www.example.com</code>.</p>
-
-
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]</pre>
-
-
- <p>En este segundo ejemplo, en lugar de denegar la solicitud, mostramos
- una imagen alternativa en su lugar.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]</pre>
-
-
- <p>En el tercer ejemplo, redirigimos la solicitud a una imagen en algún
- otro sitio.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]</pre>
-
-
- <p>De estas técnicas, las dos últimas tienden a ser las más efectivas
- para lograr que la gente deje de hacer hotlinking de sus imágenes, porque
- simplemente no verán la imagen que esperaban ver.</p>
-
- </dd>
-
- <dt>Discusión:</dt>
-
- <dd>
- <p>Si todo lo que desea hacer es denegar el acceso al recurso, en lugar
- de redirigir esa solicitud a otro lugar, esto se puede
- lograr sin el uso de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>:</p>
-
- <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch></pre>
-
- </dd>
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocking-of-robots" id="blocking-of-robots">Bloqueo de Robots</a> <a title="Enlace permanente" href="#blocking-of-robots" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>
- En esta receta, discutimos cómo bloquear solicitudes persistentes de
- un robot o agente de usuario en particular.</p>
-
- <p>El estándar para exclusión de robots define un archivo,
- <code>/robots.txt</code> que especifica aquellas partes de su
- sitio web donde desea excluir robots. Sin embargo, algunos robots
- no respetan estos archivos.
- </p>
-
- <p>Tenga en cuenta que hay métodos para lograr esto que no
- usan <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Tenga en cuenta también que cualquier técnica que dependa
- de la cadena <code>USER_AGENT</code> del cliente puede ser evitada
- muy fácilmente, ya que esa cadena puede cambiarse.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Usamos un conjunto de reglas que especifica el directorio a ser
- protegido, y el <code>USER_AGENT</code> del cliente que
- identifica al robot malicioso o persistente.</p>
-
- <p>En este ejemplo, estamos bloqueando un robot llamado
- <code>NameOfBadRobot</code> de una ubicación
- <code>/secret/files</code>. También puede especificar un rango de
- direcciones IP, si está intentando bloquear ese agente de usuario solo desde
- la fuente particular.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]</pre>
-
- </dd>
-
- <dt>Discusión:</dt>
-
- <dd>
- <p>
- En lugar de usar <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> para esto, puede lograr el
- mismo resultado usando medios alternativos, como se ilustra aquí:
- </p>
- <pre class="prettyprint lang-config">SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location></pre>
-
- <p>
- Como se indicó anteriormente, esta técnica es trivial de evadir, simplemente
- modificando la cabecera de solicitud <code>USER_AGENT</code>. Si
- está experimentando un ataque sostenido, debería considerar bloquearlo
- a un nivel superior, como en su firewall.
- </p>
-
- </dd>
-
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="host-deny" id="host-deny">Denegación de Hosts en una Lista de Rechazo</a> <a title="Enlace permanente" href="#host-deny" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Deseamos mantener una lista de hosts, similar a
- <code>hosts.deny</code>, y hacer que esos hosts sean bloqueados
- del acceso a nuestro servidor.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]</pre>
-
-
-<div class="example"><p><code>
-##<br />
-## hosts.deny<br />
-##<br />
-## ¡ATENCIÓN! Esto es un mapa, no una lista, incluso cuando lo tratamos como tal.<br />
-## mod_rewrite lo analiza buscando pares clave/valor, así que al menos un<br />
-## valor ficticio "-" debe estar presente para cada entrada.<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</code></p></div>
- </dd>
-
- <dt>Discusión:</dt>
- <dd>
- <p>
- La segunda RewriteCond asume que tiene HostNameLookups activado,
- de modo que las direcciones IP de los clientes sean resueltas. Si ese no es el
- caso, debería eliminar la segunda RewriteCond, y eliminar la
- bandera <code>[OR]</code> de la primera RewriteCond.
- </p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="referer-deflector" id="referer-deflector">Deflector basado en Referer</a> <a title="Enlace permanente" href="#referer-deflector" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Redirigir solicitudes basadas en el Referer del cual provino la solicitud,
- con diferentes destinos por Referer.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>El siguiente conjunto de reglas usa un archivo de mapa para asociar cada Referer
- con un destino de redirección.</p>
-
-<pre class="prettyprint lang-config">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>
-
-
- <p>El archivo de mapa lista los destinos de redirección para cada referer, o, si
- simplemente deseamos redirigir de vuelta a donde vinieron, se coloca un "-"
- en el mapa:</p>
-
-<pre class="prettyprint lang-config">##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/</pre>
-
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Idiomas disponibles: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Reportar un error</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Utiliser mod_rewrite pour le contrôle d'accès - Serveur HTTP Apache Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
-<p class="apache">Serveur HTTP Apache Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Utiliser mod_rewrite pour le contrôle d'accès</h1>
-<div class="toplang">
-<p><span>Langues Disponibles: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
-
-
-<p>Ce document est un complément à la <a href="../mod/mod_rewrite.html">documentation de référence</a> de
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Il explique comment utiliser
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour contrôler l'accès à diverses
-ressources, ainsi que d'autres techniques en rapport. Il contient de
-nombreux exemples d'utilisation courante de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> avec une
-description détaillée de leur fonctionnement.</p>
-
-<div class="warning">Vous devez vous attacher à comprendre le
-fonctionnement des exemples, car la plupart d'entre eux ne
-fonctionneront pas sur votre système si vous vous contentez de les
-copier/coller dans vos fichiers de configuration.</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#blocked-inline-images">Blocage du référencement à chaud (Hotlinking) d'images</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#blocking-of-robots">Blocage des robots</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#host-deny">Rejet des clients contenus dans une liste de proscrits</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#referer-deflector">Aiguillage basé sur l'en-tête Referer</a></li>
-</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module mod_rewrite</a></li><li><a href="intro.html">Introduction à mod_rewrite</a></li><li><a href="remapping.html">Redirection et remise en
-correspondance</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="proxy.html">Serveurs mandataires</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li><li><a href="#comments_section">Commentaires</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocked-inline-images" id="blocked-inline-images">Blocage du référencement à chaud (Hotlinking) d'images</a> <a title="Lien permanent" href="#blocked-inline-images" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Cette technique vous permet d'interdire à d'autres sites
- d'inclure directement vos images dans leurs pages. On fait
- souvent référence à cette pratique sous le nom de
- référencement à chaud (Hotlinking) qui entraîne l'utilisation
- de votre bande passante pour servir des contenus faisant
- partie du site de quelqu'un d'autre.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Cette technique repose sur la valeur de la variable
- optionnelle <code>HTTP_REFERER</code>. Certaines personnes
- pourront donc contourner cette limitation. Pour la plupart des
- utilisateurs cependant, la requête échouera, en ce sens que
- l'image ne sera pas affichée depuis le site tiers.</p>
- <p>Il y a plusieurs manières de gérer cette situation.</p>
-
- <p>Dans le premier exemple, nous rejetons tout simplement la
- requête si elle ne provenait pas d'une page appartenant à notre
- site. Pour les besoins de cet exemple, nous supposons que le nom
- de votre site est <code>www.example.com</code>.</p>
-
-
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]</pre>
-
-
- <p>Dans le second exemple, plutôt que de rejeter la requête,
- nous affichons une autre image à la place.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]</pre>
-
-
- <p>Dans le troisième exemple, nous redirigeons la requête vers
- une image appartenant à un autre site.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]</pre>
-
-
- <p>De tous ces exemples, les deux derniers semblent les plus
- efficaces pour faire en sorte que les gens arrêtent de
- référencer vos images à chaud, car il ne verront pas les images
- qu'ils s'attendent à voir.</p>
-
- </dd>
-
- <dt>Discussion :</dt>
-
- <dd>
- <p>Si vous ne voulez pas rediriger la requête, mais
- simplement interdire l'accès à la ressource, vous pouvez y
- parvenir sans utiliser <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> :</p>
-
- <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch></pre>
-
- </dd>
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocking-of-robots" id="blocking-of-robots">Blocage des robots</a> <a title="Lien permanent" href="#blocking-of-robots" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>
- Dans cet exemple, nous allons discuter d'une méthode permettant
- de bloquer les requêtes persistentes en provenance d'un robot
- particulier, ou d'un navigateur.</p>
-
- <p>La méthode classique pour exclure un robot consiste à définir
- un fichier, <code>/robots.txt</code> qui spécifie les parties de
- votre site web pour lesquelles vous voulez exclure les robots.
- Malheureusement, certains robots ne tiennent pas compte de ces
- fichiers.
- </p>
-
- <p>Notez qu'il existe des méthodes d'exclusion qui n'utilisent
- pas <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Notez aussi que toute technique qui repose sur
- le contenu de la chaîne client <code>USER_AGENT</code> peut être
- contournée très facilement car cette chaîne peut être modifiée.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>On utilise un jeu de règles qui spécifie le répertoire à
- protéger, ainsi que la chaîne client <code>USER_AGENT</code> qui
- identifie le robot malin ou envahissant.</p>
-
- <p>Dans cet exemple, nous bloquons un robot nommé
- <code>Vilain_Robot</code> pour le répertoire
- <code>/secret/fichiers</code>. Si vous voulez bloquer ce client
- seulement depuis une source particulière, vous pouvez aussi
- spécifier un intervalle d'adresses IP.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]</pre>
-
- </dd>
-
- <dt>Discussion :</dt>
-
- <dd>
- <p>
- Vous pouvez cependant parvenir au même résultat sans utiliser
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> via la méthode alternative suivante :
- </p>
- <pre class="prettyprint lang-config">SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location></pre>
-
- <p>
- Comme indiqué plus haut, il est aisé de contourner cette
- technique, simplement en modifiant le contenu de l'en-tête
- <code>USER_AGENT</code>. Si vous subissez une attaque en règle,
- vous allez devoir réfléchir à un blocage à un niveau supérieur,
- par exemple une règle de filtrage de votre pare-feu.
- </p>
-
- </dd>
-
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="host-deny" id="host-deny">Rejet des clients contenus dans une liste de proscrits</a> <a title="Lien permanent" href="#host-deny" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Nous voulons interdire l'accès à notre serveur aux clients
- contenus dans une liste de proscrits similaire à
- <code>hosts.deny</code>.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]</pre>
-
-
-<div class="example"><p><code>
-##<br />
-## hosts.deny<br />
-##<br />
-## ATTENTION! Ceci est une table de correspondances, non une liste,<br />
-## même si elle est traitée comme telle. mod_rewrite<br />
-## l'interprète comme une liste de paires clé/valeur, et<br />
-## chaque entrée doit au moins posséder une valeur par<br />
-## défaut "-".<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</code></p></div>
- </dd>
-
- <dt>Discussion :</dt>
- <dd>
- <p>
- La seconde condition RewriteCond présuppose que HostNameLookups est
- défini à On, de façon à ce que les adresses IP des clients puissent
- être résolues. Dans le cas contraire, vous devez supprimer la
- seconde condition, ainsi que le drapeau <code>[OR]</code> de la
- première.
- </p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="referer-deflector" id="referer-deflector">Aiguillage basé sur l'en-tête Referer</a> <a title="Lien permanent" href="#referer-deflector" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Redirige les requêtes en fonction du Referer de provenance de
- la requête, avec des cibles différentes pour chaque Referer.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Le jeu de règles suivant utilise un fichier de correspondances pour
- associer chaque Referer à une cible de redirection.</p>
-
-<pre class="prettyprint lang-config">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>
-
-
- <p>Le fichier de correspondances contient les cibles de
- redirection associées à chaque Referer, ou, si nous voulons
- simplement rediriger les requêtes vers leur Referer, un "-" est
- inscrit dans le fichier de correspondances :</p>
-
-<pre class="prettyprint lang-config">##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/</pre>
-
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Langues Disponibles: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>mod_rewrite を使ったアクセス制御 - Apache HTTP サーバ バージョン 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/quickreference.html">ディレクティブ</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP サーバ バージョン 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーバ</a> > <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> > <a href="../">バージョン 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>mod_rewrite を使ったアクセス制御</h1>
-<div class="toplang">
-<p><span>翻訳済み言語: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">この日本語訳はすでに古くなっている
- 可能性があります。
- 最近更新された内容を見るには英語版をご覧下さい。
- </div>
-
-
-<p>このドキュメントは <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">リファレンスドキュメント</a>を補足するものです。
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> を使用してさまざまなリソースへのアクセスを制御する方法と、
-その他の関連テクニックについて説明します。
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> の一般的な使用例を多数含んでおり、
-それぞれの動作についての詳細な説明も含まれています。</p>
-
-<div class="warning">これらの例の多くは、特定のサーバ設定ではそのまま
-動作しないことに注意してください。そのため、単にコピー&ペーストするのではなく、
-内容を理解することが重要です。</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#blocked-inline-images">画像の "直リンク" の禁止</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#blocking-of-robots">ロボットのブロック</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#host-deny">拒否リストのホストの拒否</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#referer-deflector">リファラに基づくデフレクタ</a></li>
-</ul><h3>参照</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">モジュールドキュメント</a></li><li><a href="intro.html">mod_rewrite 入門</a></li><li><a href="remapping.html">リダイレクトとリマッピング</a></li><li><a href="vhosts.html">バーチャルホスト</a></li><li><a href="proxy.html">プロキシ</a></li><li><a href="rewritemap.html">RewriteMap の使用</a></li><li><a href="advanced.html">高度なテクニック</a></li><li><a href="avoid.html">mod_rewrite を使わない場合</a></li><li><a href="#comments_section">コメント</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocked-inline-images" id="blocked-inline-images">画像の "直リンク" の禁止</a> <a title="Permanent link" href="#blocked-inline-images" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>以下のテクニックは、他のサイトがあなたの画像をそのページに
- インラインで含める行為を禁止します。この行為は
- "直リンク" と呼ばれることが多く、あなたの帯域幅が
- 他のサイトのコンテンツ提供のために使用される結果となります。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>このテクニックは <code>HTTP_REFERER</code> 変数の値に
- 依存していますが、この値はオプションです。そのため、一部の
- ユーザはこの制限を回避できます。ただし、ほとんどのユーザは
- リクエスト失敗を経験し、時間の経過とともにその画像が
- 他のサイトから削除される結果となるはずです。</p>
- <p>この状況に対処する方法はいくつかあります。</p>
-
- <p>最初の例では、リクエストが当サイトのページから開始されたものでない
- 場合、単純にリクエストを拒否します。この例では、当サイトが
- <code>www.example.com</code> であると仮定しています。</p>
-
-
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]</pre>
-
-
- <p>2 番目の例では、リクエストを失敗させる代わりに、
- 代替画像を表示します。</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]</pre>
-
-
- <p>3 番目の例では、リクエストを他のサイトの画像にリダイレクト
- します。</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]</pre>
-
-
- <p>これらのテクニックのうち、後の 2 つが画像の直リンクをやめさせる
- のに最も効果的です。期待していた画像が表示されなくなるためです。</p>
-
- </dd>
-
- <dt>議論:</dt>
-
- <dd>
- <p>リクエストを他の場所にリダイレクトするのではなく、単にリソースへの
- アクセスを拒否したいだけの場合、<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> を使わずに
- 実現できます:</p>
-
- <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch></pre>
-
- </dd>
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocking-of-robots" id="blocking-of-robots">ロボットのブロック</a> <a title="Permanent link" href="#blocking-of-robots" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>
- このレシピでは、特定のロボットやユーザエージェントからの
- しつこいリクエストをブロックする方法について説明します。</p>
-
- <p>ロボット排除の標準では、ウェブサイトのどの部分でロボットを
- 除外したいかを指定する <code>/robots.txt</code> というファイルが
- 定義されています。しかし、一部のロボットはこれらのファイルを
- 尊重しません。</p>
-
- <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> を使用しない方法もあることに注意してください。
- また、クライアントの <code>USER_AGENT</code> 文字列に依存する
- テクニックは、その文字列を変更できるため、非常に簡単に回避できる
- ことにも注意してください。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>保護するディレクトリと、悪意のあるまたはしつこいロボットを
- 識別するクライアント <code>USER_AGENT</code> を指定する
- ルールセットを使用します。</p>
-
- <p>この例では、<code>NameOfBadRobot</code> というロボットを
- <code>/secret/files</code> という場所からブロックしています。
- 特定のソースからのみそのユーザエージェントをブロックしたい場合は、
- IP アドレス範囲も指定できます。</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]</pre>
-
- </dd>
-
- <dt>議論:</dt>
-
- <dd>
- <p>
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> を使わずに、次に示すような代替手段で
- 同じ目的を達成できます:
- </p>
- <pre class="prettyprint lang-config">SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location></pre>
-
- <p>
- 上記で述べたように、このテクニックは <code>USER_AGENT</code>
- リクエストヘッダを変更するだけで簡単に回避できます。持続的な
- 攻撃を受けている場合は、ファイアウォールなどのより上位のレベルで
- ブロックすることを検討してください。
- </p>
-
- </dd>
-
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="host-deny" id="host-deny">拒否リストのホストの拒否</a> <a title="Permanent link" href="#host-deny" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p><code>hosts.deny</code> のようなホストのリストを管理し、
- それらのホストがサーバにアクセスするのをブロックしたいと
- 考えています。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]</pre>
-
-
-<div class="example"><p><code>
-##<br />
-## hosts.deny<br />
-##<br />
-## 注意! これはリストではなくマップです。リストとして扱う場合でも、<br />
-## mod_rewrite はキー/値のペアとして解析するため、各エントリに<br />
-## 少なくともダミーの値 "-" が必要です。<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</code></p></div>
- </dd>
-
- <dt>議論:</dt>
- <dd>
- <p>
- 2 番目の RewriteCond は、HostNameLookups がオンになっていて、
- クライアント IP アドレスが解決されることを前提としています。
- そうでない場合は、2 番目の RewriteCond を削除し、最初の
- RewriteCond から <code>[OR]</code> フラグを削除してください。
- </p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="referer-deflector" id="referer-deflector">リファラに基づくデフレクタ</a> <a title="Permanent link" href="#referer-deflector" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>リクエストの送信元のリファラに基づいてリクエストをリダイレクトし、
- リファラごとに異なるターゲットを設定します。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>以下のルールセットは、マップファイルを使用して各リファラを
- リダイレクト先に関連付けます。</p>
-
-<pre class="prettyprint lang-config">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>
-
-
- <p>マップファイルには各リファラのリダイレクト先が記述されています。
- 単にリファラ元にリダイレクトしたい場合は、マップに
- "-" を配置します:</p>
-
-<pre class="prettyprint lang-config">##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/</pre>
-
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>翻訳済み言語: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
-<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/quickreference.html">ディレクティブ</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="EUC-KR"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head>
-<meta content="text/html; charset=EUC-KR" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>mod_rewriteë¥� �¬ì�©í�� ��ê·� ���� - Apache HTTP Server Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">¸ðµâ</a> | <a href="../mod/quickreference.html">Áö½Ã¾îµé</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">¿ë¾î</a> | <a href="../sitemap.html">»çÀÌÆ®¸Ê</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Server Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>mod_rewriteë¥� �¬ì�©í�� ��ê·� ����</h1>
-<div class="toplang">
-<p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">ÀÌ ¹®¼´Â ÃÖ½ÅÆÇ ¹ø¿ªÀÌ ¾Æ´Õ´Ï´Ù.
- ÃÖ±Ù¿¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼¸¦ Âü°íÇϼ¼¿ä.</div>
-
-
-<p>�� 문��� <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">참조 문ì��</a>ë¥� ë³´ì¶©�©ë����.
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ë¥� �¬ì�©í���� �¤ì���� ������ ����
-��ê·¼ì�� ���´í���� ë°©ë�ê³� 기í�� ê´��� 기ì���� �¤ë��©ë����.
-�¬ê¸°���� <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>�� �¼ë����� �¬ì�� ����ê°�
-ë§��� �¬í�¨ë���� ���¼ë©°, ê°�ê°��� �´ë�»ê� ��������ì§��� ����
-���¸í�� �¤ë��� ���µë����.</p>
-
-<div class="warning">�� ������ ì¤� ë§��� ê²��� �¹ì�� ��ë²� �¤ì������
-ê·¸ë��ë¡� ������ì§� ���� �� ���¼ë��ë¡�, �¨ì���� ����ë¥� ë³µì�¬í����
-�¤ì���� ë¶��¬ë�£ê¸°ë³´ë�¤ë�� �´í�´í���� ê²��� ì¤����©ë����.</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#blocked-inline-images">�´ë�¸ì� "�«ë���" ê¸�ì§�</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#blocking-of-robots">�� 차�</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#host-deny">ê±°ë� 목ë��� �¸ì�¤í�� ì°¨ë��</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#referer-deflector">리í�¼ë�� 기ë� ��������</a></li>
-</ul><h3>Âü°í</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">모ë�� 문ì��</a></li><li><a href="intro.html">mod_rewrite ��ê°�</a></li><li><a href="remapping.html">리ë�¤ì�´ë����ê³� �¬ë§¤��</a></li><li><a href="vhosts.html">ê°��� �¸ì�¤í��</a></li><li><a href="proxy.html">��ë¡���</a></li><li><a href="rewritemap.html">RewriteMap �¬ì�©í��ê¸�</a></li><li><a href="advanced.html">ê³�ê¸� 기ì��</a></li><li><a href="avoid.html">mod_rewriteë¥� �¬ì�©í��ì§� ë§����� �� ê²½ì��</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocked-inline-images" id="blocked-inline-images">�´ë�¸ì� "�«ë���" ê¸�ì§�</a> <a title="Permanent link" href="#blocked-inline-images" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p>�¤ì�� 기ì���� �¤ë¥¸ �¬ì�´í�¸ê� �¬ë�¬ë��� �´ë�¸ì�ë¥�
- ������ ���´ì��� �¸ë�¼ì�¸ì�¼ë� �¬í�¨í���� ê²��� ê¸�ì§��©ë����.
- �� ������ ���� "�«ë���"�´ë�¼ê� ��ë©�,
- �¬ë�¬ë��� �������� �¤ë¥¸ �¬ì�´í�¸ì�� ì½���ì¸�ë¥� ��ê³µí���� ��
- �¬ì�©ë���� ê²°ê³¼ë¥� ì´����©ë����.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- <p>�� 기��� <code>HTTP_REFERER</code> ����� ���
- ��ì¡´í��ë©�, �´ë�� ������������. �°ë�¼ì�� �¼ë� �¬ì�©ì��ê°�
- �� ������ �°í���� �� ���µë����. ê·¸ë�¬ë�� ��ë¶�ë¶���
- �¬ì�©ì���� �¤í�¨í�� ��ì²��� ê²½í����ê²� ��ë©�, ��ê°��� ì§���ë©�
- �´ë�� �´ë�¸ì�ê°� �¤ë¥¸ �¬ì�´í�¸ì���� ��ê±°ë���� ê²°ê³¼ë¥�
- ê°��¸ì�� ê²�������.</p>
- <p>�� ���©ì�� ì²�리í���� ëª� ê°�ì§� ë°©ë��� ���µë����.</p>
-
- <p>ì²� ë²�ì§� ���������� �°ë¦¬ �¬ì�´í�¸ì�� ���´ì����� ������ì§� ����
- ��ì²��� �¨ì���� ê±°ë��©ë����. �� ���������� �°ë¦¬ �¬ì�´í�¸ê�
- <code>www.example.com</code>�´ë�¼ê� ê°����©ë����.</p>
-
-
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]</pre>
-
-
- <p>�� ë²�ì§� ���������� ��ì²��� �¤í�¨ì���¤ë�� ����
- ��ì²� �´ë�¸ì�ë¥� �����©ë����.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]</pre>
-
-
- <p>�� ë²�ì§� ���������� ��ì²��� �¤ë¥¸ �¬ì�´í�¸ì�� �´ë�¸ì�ë¡�
- 리ë�¤ì�´ë���¸í�©ë����.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]</pre>
-
-
- <p>�� 기ì���� ì¤� ë§�ì§�ë§� �� ê°�ì§�ê°� �´ë�¸ì� �«ë��¹ì��
- ì¤��¨ì���¤ë�� �� ê°��� �¨ê³¼��������. �¬ì�©ì���¤ì�� 기ë����
- �´ë�¸ì�ë¥� ë³� �� ��ê¸� ��문ì������.</p>
-
- </dd>
-
- <dt>���:</dt>
-
- <dd>
- <p>��ì²��� �¤ë¥¸ ê³³ì�¼ë� 리ë�¤ì�´ë���¸í���� ê²��� ������
- �¨ì���� ������ ���� ��ê·¼ì�� ê±°ë����¤ë�� ê²½ì��,
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ë¥� �¬ì�©í��ì§� ��ê³���
- �´ë�� ������ �� ���µë����:</p>
-
- <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch></pre>
-
- </dd>
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocking-of-robots" id="blocking-of-robots">ë¡�ë´� ì°¨ë��</a> <a title="Permanent link" href="#blocking-of-robots" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p>�� �����¼ì������ �¹ì�� ë¡�ë´� ���� �¬ì�©ì�� ���´ì���¸ì��
- ì§������� ��ì²��� ì°¨ë�¨í���� ë°©ë��� �¼ì���©ë����.</p>
-
- <p>ë¡�ë´� ë°°ì�� ��ì¤��� <code>/robots.txt</code>�¼ë��
- ���¼ì�� ������ë©�, �� ���¼ì�� ë¡�ë´��� ë°°ì����ê³��� ����
- �¹ì�¬ì�´í�¸ì�� ë¶�ë¶��� ì§����©ë����. ê·¸ë�¬ë�� �¼ë� ë¡�ë´���
- �� ���¼ì�� ì¤�����ì§� ���µë����.</p>
-
- <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ë¥� �¬ì�©í��ì§� ��ê³���
- �´ë�� ������ �� ���� ë°©ë��� ���¤ë�� ���� ������������.
- ���� �´ë�¼ì�´ì�¸í�¸ì�� <code>USER_AGENT</code> 문ì���´ì��
- ��ì¡´í���� 기ì���� �´ë�� 문ì���´ì�� �½ê� ë³�ê²½í�� �� ���¼ë��ë¡�
- 매ì�� �½ê� �°í���� �� ���¤ë�� ���� ������������.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- <p>ë³´í�¸í�� ������리ì�� �������´ê±°�� ì§������� ë¡�ë´���
- ��ë³����� �´ë�¼ì�´ì�¸í�� <code>USER_AGENT</code>ë¥�
- ì§������� ê·�ì¹� �¸í�¸ë�� �¬ì�©í�©ë����.</p>
-
- <p>�� ���������� <code>NameOfBadRobot</code>�´ë�¼ë��
- ���� <code>/secret/files</code> �������
- ì°¨ë�¨í�©ë����. �¹ì�� ���¤ì����ë§� �´ë�� �¬ì�©ì�� ���´ì���¸ë��
- ì°¨ë�¨í���¤ë�� ê²½ì�� IP 주ì�� ë²���ë¥� ì§����� ���� ���µë����.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]</pre>
-
- </dd>
-
- <dt>���:</dt>
-
- <dd>
- <p>
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ë¥� �¬ì�©í���� ����, �¬ê¸°�� �¤ë��� ��ë¡�
- �¤ë¥¸ ë°©ë��� �¬ì�©í���� ���¼í�� ê²°ê³¼ë¥� �¬ì�±í�� �� ���µë����:
- </p>
- <pre class="prettyprint lang-config">SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location></pre>
-
- <p>
- ������ �¸ê��� ë°��� ê°���, �� 기ì���� <code>USER_AGENT</code>
- ��ì²� �¤ë��ë¥� �������� ê²�ë§��¼ë��� �½ê� �°í���� �� ���µë����.
- ì§������� 공격�� ë°�ê³� ���¤ë©´, ë°©í��벽과 ê°��� ���� ��ì¤�����
- ì°¨ë�¨í���� ê²��� ê³��¤í�´ì�� �©ë����.
- </p>
-
- </dd>
-
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="host-deny" id="host-deny">ê±°ë� 목ë��� �¸ì�¤í�� ì°¨ë��</a> <a title="Permanent link" href="#host-deny" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p><code>hosts.deny</code>�� ê°��� �¸ì�¤í�� 목ë��� ê´�리í����
- �´ë�� �¸ì�¤í�¸ê� ��ë²��� ��ê·¼í��ì§� 못í����ë¡� ì°¨ë�¨í��ê³��� �©ë����.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]</pre>
-
-
-<div class="example"><p><code>
-##<br />
-## hosts.deny<br />
-##<br />
-## 주ì��! �´ê��� 목ë��� ������ ë§µì������.<br />
-## mod_rewriteê°� ��/ê°� ���� ���±í��ë¯�ë¡� ê°� ��목ì��<br />
-## ìµ����� ��ë¯� ê°� "-"�� ���´ì�� �©ë����.<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</code></p></div>
- </dd>
-
- <dt>���:</dt>
- <dd>
- <p>
- �� �� RewriteCond�� HostNameLookups� ��� ����
- �´ë�¼ì�´ì�¸í�� IP 주ì��ê°� �´ì�����¤ê� ê°����©ë����. ê·¸ë��ì§�
- ���� 경�, �� �� RewriteCond� ������� � ��
- RewriteCond���� <code>[OR]</code> ����그� ��거��
- �©ë����.
- </p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="referer-deflector" id="referer-deflector">리í�¼ë�� 기ë� ��������</a> <a title="Permanent link" href="#referer-deflector" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p>��ì²��� �� 리í�¼ë�¬ì�� �°ë�� ��ì²��� 리ë�¤ì�´ë���¸í��ë©�,
- 리í�¼ë�¬ë�ë¡� �¤ë¥¸ ������ ì§����©ë����.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- <p>�¤ì�� ê·�ì¹� �¸í�¸ë�� ë§� ���¼ì�� �¬ì�©í���� ê°� 리í�¼ë�¬ë��
- 리ë�¤ì�´ë���� ����ê³� �°ê²°�©ë����.</p>
-
-<pre class="prettyprint lang-config">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>
-
-
- <p>ë§� ���¼ì�� ê°� 리í�¼ë�¬ì�� ���� 리ë�¤ì�´ë���� ������
- ���´í��ê±°ë��, �¨ì���� ���� ��ì¹�ë¡� 리ë�¤ì�´ë���¸í���¤ë��
- ê²½ì�� ë§µì�� "-"�� �£ì�µë����:</p>
-
-<pre class="prettyprint lang-config">##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/</pre>
-
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">¸ðµâ</a> | <a href="../mod/quickreference.html">Áö½Ã¾îµé</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">¿ë¾î</a> | <a href="../sitemap.html">»çÀÌÆ®¸Ê</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Erişim Denetimi için mod_rewrite Kullanımı - Apache HTTP Sunucusu Sürüm 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/quickreference.html">Yönergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Sunucusu Sürüm 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">Sürüm 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Erişim Denetimi için mod_rewrite Kullanımı</h1>
-<div class="toplang">
-<p><span>Mevcut Diller: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
-
-
-<p>Bu belge, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">başvuru belgelerini</a> tamamlar.
-Çeşitli kaynaklara erişimi denetlemek için <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-modülünü nasıl kullanabileceğinizi ve diğer ilgili teknikleri açıklar.
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> modülünün yaygın kullanımlarına ilişkin,
-her birinin nasıl çalıştığının ayrıntılı açıklamalarını içeren birçok
-örnek sunulmaktadır.</p>
-
-<div class="warning">Bu örneklerin birçoğunun sizin sunucu yapılandırmanızda
-değişiklik yapılmadan çalışmayacağını unutmayın; bu nedenle örnekleri
-yapılandırmanıza kopyalayıp yapıştırmak yerine anlamanız
-önemlidir.</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#blocked-inline-images">Resim "Hotlinking"inin Engellenmesi</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#blocking-of-robots">Robotların Engellenmesi</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#host-deny">Reddetme Listesindeki Konakların Engellenmesi</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#referer-deflector">Referer Tabanlı Yönlendirici</a></li>
-</ul><h3>Ayrıca bakınız:</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Modül belgeleri</a></li><li><a href="intro.html">mod_rewrite'a giriş</a></li><li><a href="remapping.html">Yeniden yönlendirme ve yeniden eşleme</a></li><li><a href="vhosts.html">Sanal konaklar</a></li><li><a href="proxy.html">Vekil kullanımı</a></li><li><a href="rewritemap.html">RewriteMap Kullanımı</a></li><li><a href="advanced.html">İleri teknikler</a></li><li><a href="avoid.html">mod_rewrite kullanılmaması gereken durumlar</a></li><li><a href="#comments_section">Yorum</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocked-inline-images" id="blocked-inline-images">Resim "Hotlinking"inin Engellenmesi</a> <a title="Permanent link" href="#blocked-inline-images" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Aşağıdaki teknik, diğer sitelerin resimlerinizi kendi
- sayfalarına satır içi olarak dahil etme uygulamasını engeller.
- Bu uygulama genellikle "hotlinking" olarak anılır ve
- bant genişliğinizin başkasının sitesi için içerik sunmak
- amacıyla kullanılmasına neden olur.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Bu teknik, isteğe bağlı olan <code>HTTP_REFERER</code>
- değişkeninin değerine dayanır. Bu nedenle, bazı kişilerin bu
- sınırlamayı atlaması mümkündür. Ancak çoğu kullanıcı başarısız
- isteği deneyimleyecektir ve bu, zamanla resmin o diğer siteden
- kaldırılmasına yol açacaktır.</p>
- <p>Bu durumu ele almanın birkaç yolu vardır.</p>
-
- <p>Bu ilk örnekte, istek sitemizden bir sayfadan başlatılmadıysa
- isteği reddederiz. Bu örnek için sitemizin
- <code>www.example.com</code> olduğunu varsayıyoruz.</p>
-
-
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]</pre>
-
-
- <p>Bu ikinci örnekte, isteği reddetmek yerine alternatif bir resim
- gösteriyoruz.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]</pre>
-
-
- <p>Üçüncü örnekte, isteği başka bir sitedeki bir resme
- yönlendiriyoruz.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]</pre>
-
-
- <p>Bu tekniklerden son ikisi, insanların resimlerinizi
- hotlinking yapmayı bırakmasını sağlamada en etkili olanlardır;
- çünkü görmeyi bekledikleri resmi göremeyeceklerdir.</p>
-
- </dd>
-
- <dt>Tartışma:</dt>
-
- <dd>
- <p>Tek yapmak istediğiniz kaynağa erişimi reddetmekse, isteği
- başka bir yere yönlendirmek yerine bu,
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> kullanılmadan da
- gerçekleştirilebilir:</p>
-
- <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch></pre>
-
- </dd>
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocking-of-robots" id="blocking-of-robots">Robotların Engellenmesi</a> <a title="Permanent link" href="#blocking-of-robots" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>
- Bu tarifle, belirli bir robot veya kullanıcı aracısından gelen
- sürekli isteklerin nasıl engelleneceğini tartışıyoruz.</p>
-
- <p>Robot dışlama standardı, web sitenizin robotları dışlamak
- istediğiniz bölümlerini belirten <code>/robots.txt</code>
- adında bir dosya tanımlar. Ancak bazı robotlar bu dosyalara
- uymaz.</p>
-
- <p>Bunu gerçekleştirmenin <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
- kullanmayan yöntemleri olduğunu unutmayın. Ayrıca istemcinin
- <code>USER_AGENT</code> dizgesine dayanan herhangi bir tekniğin
- kolayca atlanabileceğini de unutmayın; çünkü bu dizge
- değiştirilebilir.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Korunacak dizini ve zararlı ya da ısrarcı robotu tanımlayan
- istemci <code>USER_AGENT</code> dizgesini belirten bir kural
- kümesi kullanıyoruz.</p>
-
- <p>Bu örnekte, <code>NameOfBadRobot</code> adlı bir robotu
- <code>/secret/files</code> konumundan engelliyoruz. Kullanıcı
- aracısını yalnızca belirli bir kaynaktan engellemek istiyorsanız
- bir IP adresi aralığı da belirtebilirsiniz.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]</pre>
-
- </dd>
-
- <dt>Tartışma:</dt>
-
- <dd>
- <p>
- Bunun için <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> kullanmak yerine, aynı
- sonucu burada gösterildiği gibi alternatif yollarla elde
- edebilirsiniz:
- </p>
- <pre class="prettyprint lang-config">SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location></pre>
-
- <p>
- Yukarıda belirtildiği gibi, bu teknik <code>USER_AGENT</code>
- istek başlığını değiştirerek kolayca atlanabilir. Sürekli bir
- saldırıyla karşılaşıyorsanız, bunu güvenlik duvarınız gibi daha
- üst bir düzeyde engellemeyi düşünmelisiniz.
- </p>
-
- </dd>
-
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="host-deny" id="host-deny">Reddetme Listesindeki Konakların Engellenmesi</a> <a title="Permanent link" href="#host-deny" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p><code>hosts.deny</code> gibi bir konak listesi tutmak ve bu
- konakların sunucumuza erişimini engellemek istiyoruz.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]</pre>
-
-
-<div class="example"><p><code>
-##<br />
-## hosts.deny<br />
-##<br />
-## DİKKAT! Bu bir liste değil, bir eşlem dosyasıdır.<br />
-## mod_rewrite bunu anahtar/değer çiftleri olarak çözümler,<br />
-## bu yüzden her girdi için en azından bir yapay "-" değeri<br />
-## mevcut olmalıdır.<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</code></p></div>
- </dd>
-
- <dt>Tartışma:</dt>
- <dd>
- <p>
- İkinci RewriteCond, istemci IP adreslerinin çözümlenmesi için
- HostNameLookups özelliğinin açık olduğunu varsayar. Durum böyle
- değilse, ikinci RewriteCond'u kaldırmalı ve birinci RewriteCond'dan
- <code>[OR]</code> bayrağını çıkarmalısınız.
- </p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="referer-deflector" id="referer-deflector">Referer Tabanlı Yönlendirici</a> <a title="Permanent link" href="#referer-deflector" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>İstekleri, isteğin geldiği Referer'a göre, her Referer için
- farklı hedeflerle yeniden yönlendirir.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Aşağıdaki kural kümesi, her Referer'ı bir yönlendirme hedefiyle
- ilişkilendirmek için bir eşlem dosyası kullanır.</p>
-
-<pre class="prettyprint lang-config">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>
-
-
- <p>Eşlem dosyası, her referer için yeniden yönlendirme hedeflerini
- listeler veya yalnızca geldikleri yere geri yönlendirmek
- istiyorsak eşleme bir "-" konur:</p>
-
-<pre class="prettyprint lang-config">##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/</pre>
-
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Mevcut Diller: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> adı altında lisanslıdır.</p>
-<p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/quickreference.html">Yönergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn" xml:lang="zh-cn"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>使用 mod_rewrite 控制访问 - Apache HTTP 服务器 版本 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">模块</a> | <a href="../mod/quickreference.html">指令</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">常见问题</a> | <a href="../glossary.html">术语</a> | <a href="../sitemap.html">网站导航</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP 服务器版本 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP 服务器</a> > <a href="http://httpd.apache.org/docs/">文档</a> > <a href="../">版本 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>使用 mod_rewrite 控制访问</h1>
-<div class="toplang">
-<p><span>可用语言: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">此翻译可能过期。要了解最近的更改,请阅读英文版。</div>
-
-
-<p>本文档是 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">参考文档</a>的补充。它描述了如何使用
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 来控制对各种资源的访问,以及其他相关技术。
-其中包括许多 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 的常见用法示例,
-以及每个示例工作原理的详细描述。</p>
-
-<div class="warning">请注意,这些示例中的许多不会在你的特定服务器配置中直接生效,
-因此理解它们非常重要,而不仅仅是将示例复制粘贴到你的配置中。</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#blocked-inline-images">禁止图片"盗链"</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#blocking-of-robots">阻止机器人</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#host-deny">拒绝列表中的主机</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#referer-deflector">基于 Referer 的转向器</a></li>
-</ul><h3>参见</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">模块文档</a></li><li><a href="intro.html">mod_rewrite 简介</a></li><li><a href="remapping.html">重定向和重映射</a></li><li><a href="vhosts.html">虚拟主机</a></li><li><a href="proxy.html">代理</a></li><li><a href="rewritemap.html">使用 RewriteMap</a></li><li><a href="advanced.html">高级技术</a></li><li><a href="avoid.html">何时不使用 mod_rewrite</a></li><li><a href="#comments_section">评论</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocked-inline-images" id="blocked-inline-images">禁止图片"盗链"</a> <a title="Permanent link" href="#blocked-inline-images" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>以下技术禁止其他站点将你的图片内联到他们的页面中。
- 这种做法通常被称为"盗链",会导致你的带宽被用来为他人的站点提供内容。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>此技术依赖于 <code>HTTP_REFERER</code> 变量的值,
- 该变量是可选的。因此,某些人可能会绕过此限制。
- 但是,大多数用户将会遇到请求失败的情况,
- 随着时间推移,这应该会导致图片从其他站点上被移除。</p>
- <p>有几种方法可以处理这种情况。</p>
-
- <p>在第一个示例中,如果请求不是从我们站点上的页面发起的,
- 我们只是简单地拒绝请求。在本示例中,
- 我们假设我们的站点是 <code>www.example.com</code>。</p>
-
-
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]</pre>
-
-
- <p>在第二个示例中,我们不是让请求失败,而是显示一个替代图片。</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]</pre>
-
-
- <p>在第三个示例中,我们将请求重定向到另一个站点上的图片。</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]</pre>
-
-
- <p>在这些技术中,后两种往往最能有效地阻止盗链行为,
- 因为他们根本看不到预期的图片。</p>
-
- </dd>
-
- <dt>讨论:</dt>
-
- <dd>
- <p>如果你只想拒绝对资源的访问,而不是将请求重定向到其他地方,
- 可以不使用 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 来实现:</p>
-
- <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch></pre>
-
- </dd>
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="blocking-of-robots" id="blocking-of-robots">阻止机器人</a> <a title="Permanent link" href="#blocking-of-robots" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>在本配置方案中,我们讨论如何阻止来自特定机器人或用户代理的持续请求。</p>
-
- <p>机器人排除标准定义了一个文件 <code>/robots.txt</code>,
- 用于指定你网站中希望排除机器人访问的部分。但是,某些机器人不遵守这些文件。</p>
-
- <p>请注意,有些方法可以在不使用 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 的情况下实现此目的。
- 还要注意,任何依赖客户端 <code>USER_AGENT</code>
- 字符串的技术都可以很容易地被绕过,因为该字符串可以被更改。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>我们使用一组规则来指定要保护的目录,
- 以及标识恶意或持续机器人的客户端 <code>USER_AGENT</code>。</p>
-
- <p>在本示例中,我们从位置 <code>/secret/files</code>
- 阻止一个名为 <code>NameOfBadRobot</code> 的机器人。
- 如果你只想从特定来源阻止该用户代理,
- 也可以指定 IP 地址范围。</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]</pre>
-
- </dd>
-
- <dt>讨论:</dt>
-
- <dd>
- <p>
- 你可以使用替代方法来实现相同的目的,而不必使用
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>,如下所示:
- </p>
- <pre class="prettyprint lang-config">SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location></pre>
-
- <p>
- 如上所述,这种技术很容易被绕过,只需修改
- <code>USER_AGENT</code> 请求头即可。如果你遭受持续攻击,
- 应考虑在更高层级(如防火墙)进行阻止。
- </p>
-
- </dd>
-
- </dl>
-
- </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="host-deny" id="host-deny">拒绝列表中的主机</a> <a title="Permanent link" href="#host-deny" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>我们希望维护一个主机列表,类似于 <code>hosts.deny</code>,
- 并阻止这些主机访问我们的服务器。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]</pre>
-
-
-<div class="example"><p><code>
-##<br />
-## hosts.deny<br />
-##<br />
-## 注意!这是一个映射文件,不是列表,即使我们将其作为列表使用。<br />
-## mod_rewrite 将其解析为键/值对,因此每个条目<br />
-## 至少必须存在一个虚拟值 "-"。<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</code></p></div>
- </dd>
-
- <dt>讨论:</dt>
- <dd>
- <p>
- 第二个 RewriteCond 假设你已启用 HostNameLookups,
- 以便客户端 IP 地址会被解析。如果未启用,
- 你应该删除第二个 RewriteCond,并从第一个 RewriteCond 中删除
- <code>[OR]</code> 标志。
- </p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="referer-deflector" id="referer-deflector">基于 Referer 的转向器</a> <a title="Permanent link" href="#referer-deflector" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>根据请求来源的 Referer 重定向请求,
- 对每个 Referer 使用不同的目标。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>以下规则集使用映射文件将每个 Referer 与重定向目标关联。</p>
-
-<pre class="prettyprint lang-config">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>
-
-
- <p>映射文件列出了每个 referer 的重定向目标,
- 或者如果我们只想重定向回他们的来源地,则在映射中放置 "-":</p>
-
-<pre class="prettyprint lang-config">##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/</pre>
-
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>可用语言: </span><a href="../de/rewrite/access.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/access.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/access.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/access.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/access.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/access.html" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />基于 <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> 许可证.</p>
-<p class="menu"><a href="../mod/">模块</a> | <a href="../mod/quickreference.html">指令</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">常见问题</a> | <a href="../glossary.html">术语</a> | <a href="../sitemap.html">网站导航</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- $LastChangedRevision$ -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="access.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Using mod_rewrite to control access</title>
-
-<summary>
-
-<note type="warning">This document has been deprecated. Its content has
-been reorganized into the
-<a href="avoid.html">When not to use mod_rewrite</a> document, since
-the recipes here are better accomplished using other Apache httpd
-features. This page will be removed in a future version of this
-documentation.</note>
-
-<ul>
-<li><strong>Forbidding image hotlinking</strong> - See
- <a href="avoid.html#blocked-inline-images">When not to use mod_rewrite</a></li>
-<li><strong>Blocking of robots</strong> - See
- <a href="avoid.html#blocking-of-robots">When not to use mod_rewrite</a></li>
-<li><strong>Denying hosts in a reject list</strong> - See
- <a href="avoid.html#host-deny">When not to use mod_rewrite</a></li>
-</ul>
-
-</summary>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933060:1933620 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="access.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Zugriffskontrolle mit mod_rewrite</title>
-
-<summary>
-
-<p>Dieses Dokument ergänzt die <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">Referenzdokumentation</a>. Es beschreibt,
-wie Sie <module>mod_rewrite</module> zur Zugriffskontrolle auf
-verschiedene Ressourcen verwenden können, sowie weitere verwandte Techniken.
-Dies beinhaltet viele Beispiele für gängige Verwendungen von <module>mod_rewrite</module>,
-einschließlich detaillierter Beschreibungen, wie jedes einzelne funktioniert.</p>
-
-<note type="warning">Beachten Sie, dass viele dieser Beispiele nicht unverändert in Ihrer
-speziellen Serverkonfiguration funktionieren werden. Es ist daher wichtig, dass Sie
-sie verstehen, anstatt die Beispiele einfach auszuschneiden und in Ihre
-Konfiguration einzufügen.</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Moduldokumentation</a></seealso>
-<seealso><a href="intro.html">Einführung in mod_rewrite</a></seealso>
-<seealso><a href="remapping.html">Umleitung und Neuzuordnung</a></seealso>
-<!-- <seealso><a href="access.html">Zugriffskontrolle</a></seealso> -->
-<seealso><a href="vhosts.html">Virtuelle Hosts</a></seealso>
-<seealso><a href="proxy.html">Proxying</a></seealso>
-<seealso><a href="rewritemap.html">Verwendung von RewriteMap</a></seealso>
-<seealso><a href="advanced.html">Fortgeschrittene Techniken</a></seealso>
-<seealso><a href="avoid.html">Wann man mod_rewrite nicht verwenden sollte</a></seealso>
-
- <section id="blocked-inline-images">
-
- <title>Verhindern von Bild-"Hotlinking"</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Die folgende Technik verhindert die Praxis, dass andere Websites
- Ihre Bilder direkt in ihre Seiten einbinden. Diese Praxis wird
- oft als "Hotlinking" bezeichnet und führt dazu,
- dass Ihre Bandbreite verwendet wird, um Inhalte für die Website
- einer anderen Person bereitzustellen.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Diese Technik beruht auf dem Wert der
- <code>HTTP_REFERER</code>-Variable, die optional ist. Daher
- ist es möglich, dass einige Personen diese Einschränkung
- umgehen. Die meisten Benutzer werden jedoch die fehlgeschlagene
- Anfrage bemerken, was im Laufe der Zeit dazu führen sollte,
- dass das Bild von der anderen Website entfernt wird.</p>
- <p>Es gibt mehrere Möglichkeiten, mit dieser Situation
- umzugehen.</p>
-
- <p>Im ersten Beispiel verweigern wir die Anfrage einfach, wenn sie nicht
- von einer Seite unserer Website stammt. Für dieses Beispiel nehmen wir
- an, dass unsere Website <code>www.example.com</code> ist.</p>
-
-<!-- TODO: Diskussion hinzufügen, warum wir !^$ dort haben. -->
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]
-</highlight>
-
- <p>Im zweiten Beispiel zeigen wir statt einer fehlgeschlagenen Anfrage
- ein alternatives Bild an.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]
-</highlight>
-
- <p>Im dritten Beispiel leiten wir die Anfrage auf ein Bild auf einer
- anderen Website um.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]
-</highlight>
-
- <p>Von diesen Techniken sind die letzten beiden am effektivsten,
- um Personen davon abzuhalten, Ihre Bilder per Hotlink einzubinden,
- da sie einfach nicht das Bild sehen werden, das sie erwartet haben.</p>
-
- </dd>
-
- <dt>Diskussion:</dt>
-
- <dd>
- <p>Wenn Sie lediglich den Zugriff auf die Ressource verweigern möchten,
- anstatt die Anfrage woanders umzuleiten, kann dies ohne die
- Verwendung von <module>mod_rewrite</module> erreicht werden:</p>
-
- <highlight language="config">
-SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch>
- </highlight>
- </dd>
- </dl>
-
- </section>
-
- <section id="blocking-of-robots">
-
- <title>Blockieren von Robots</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>
- In diesem Rezept besprechen wir, wie man hartnäckige Anfragen von
- einem bestimmten Robot oder User-Agent blockiert.</p>
-
- <p>Der Standard für den Ausschluss von Robots definiert eine Datei,
- <code>/robots.txt</code>, die die Bereiche Ihrer Website festlegt,
- von denen Sie Robots ausschließen möchten. Einige Robots halten sich
- jedoch nicht an diese Dateien.
- </p>
-
- <p>Beachten Sie, dass es Methoden gibt, dies ohne die Verwendung
- von <module>mod_rewrite</module> zu erreichen. Beachten Sie auch, dass jede Technik, die auf
- dem <code>USER_AGENT</code>-String des Clients basiert, sehr leicht
- umgangen werden kann, da dieser String geändert werden kann.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Wir verwenden einen Regelsatz, der das zu schützende Verzeichnis
- und den Client-<code>USER_AGENT</code> angibt, der den bösartigen
- oder hartnäckigen Robot identifiziert.</p>
-
- <p>In diesem Beispiel blockieren wir einen Robot namens
- <code>NameOfBadRobot</code> vom Standort
- <code>/secret/files</code>. Sie können auch einen IP-Adressbereich
- angeben, wenn Sie den User-Agent nur von einer bestimmten Quelle
- blockieren möchten.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]
-</highlight>
- </dd>
-
- <dt>Diskussion:</dt>
-
- <dd>
- <p>
- Anstatt <module>mod_rewrite</module> hierfür zu verwenden, können Sie dasselbe
- Ziel mit alternativen Mitteln erreichen, wie hier gezeigt:
- </p>
- <highlight language="config">
-SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location>
- </highlight>
- <p>
- Wie oben erwähnt, ist diese Technik trivial zu umgehen, indem man
- einfach den <code>USER_AGENT</code>-Anfrage-Header ändert. Wenn Sie
- einen anhaltenden Angriff erleben, sollten Sie erwägen, diesen
- auf einer höheren Ebene zu blockieren, beispielsweise an Ihrer Firewall.
- </p>
-
- </dd>
-
- </dl>
-
- </section>
-
-<section id="host-deny">
-
- <title>Ablehnung von Hosts in einer Sperrliste</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Wir möchten eine Liste von Hosts pflegen, ähnlich wie
- <code>hosts.deny</code>, und diesen Hosts den Zugriff auf
- unseren Server verweigern.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
-<highlight language="config">
-RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]
-</highlight>
-
-<example>
-##<br />
-## hosts.deny<br />
-##<br />
-## ACHTUNG! Dies ist eine Map, keine Liste, auch wenn wir sie als solche behandeln.<br />
-## mod_rewrite parst sie nach Schlüssel/Wert-Paaren, daher muss mindestens<br />
-## ein Dummy-Wert "-" für jeden Eintrag vorhanden sein.<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</example>
- </dd>
-
- <dt>Diskussion:</dt>
- <dd>
- <p>
- Die zweite RewriteCond setzt voraus, dass HostNameLookups aktiviert ist,
- damit Client-IP-Adressen aufgelöst werden. Wenn dies nicht der Fall ist,
- sollten Sie die zweite RewriteCond weglassen und das <code>[OR]</code>-Flag
- von der ersten RewriteCond entfernen.
- </p>
- </dd>
- </dl>
-
-</section>
-
-<section id="referer-deflector">
-
- <title>Referer-basierter Umleiter</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Anfragen basierend auf dem Referer umleiten, von dem die Anfrage
- kam, mit unterschiedlichen Zielen pro Referer.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Der folgende Regelsatz verwendet eine Map-Datei, um jeden Referer
- mit einem Umleitungsziel zu verknüpfen.</p>
-
-<highlight language="config">
-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]
-</highlight>
-
- <p>Die Map-Datei listet Umleitungsziele für jeden Referer auf, oder,
- wenn wir nur zurück dorthin umleiten möchten, woher sie kamen, wird ein
- "-" in die Map eingetragen:</p>
-
-<highlight language="config">
-##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/
-</highlight>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933060:1933620 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="access.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Uso de mod_rewrite para control de acceso</title>
-
-<summary>
-
-<p>Este documento complementa la <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">documentación de referencia</a>. Describe
-cómo puede usar <module>mod_rewrite</module> para controlar el acceso a
-varios recursos, y otras técnicas relacionadas.
-Esto incluye muchos ejemplos de usos comunes de <module>mod_rewrite</module>,
-incluyendo descripciones detalladas de cómo funciona cada uno.</p>
-
-<note type="warning">Tenga en cuenta que muchos de estos ejemplos no funcionarán sin cambios en su
-configuración particular del servidor, por lo que es importante que los
-entienda, en lugar de simplemente copiar y pegar los ejemplos en su
-configuración.</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Documentación del módulo</a></seealso>
-<seealso><a href="intro.html">Introducción a mod_rewrite</a></seealso>
-<seealso><a href="remapping.html">Redirección y remapeo</a></seealso>
-<!-- <seealso><a href="access.html">Control de acceso</a></seealso> -->
-<seealso><a href="vhosts.html">Hosts virtuales</a></seealso>
-<seealso><a href="proxy.html">Proxy</a></seealso>
-<seealso><a href="rewritemap.html">Uso de RewriteMap</a></seealso>
-<seealso><a href="advanced.html">Técnicas avanzadas</a></seealso>
-<seealso><a href="avoid.html">Cuándo no usar mod_rewrite</a></seealso>
-
- <section id="blocked-inline-images">
-
- <title>Prohibir el "Hotlinking" de imágenes</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>La siguiente técnica prohíbe la práctica de que otros sitios
- incluyan sus imágenes en línea en sus páginas. Esta práctica se
- conoce a menudo como "hotlinking", y resulta en que
- su ancho de banda se use para servir contenido del sitio de
- otra persona.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Esta técnica se basa en el valor de la
- variable <code>HTTP_REFERER</code>, que es opcional. Como
- tal, es posible que algunas personas eviten esta
- limitación. Sin embargo, la mayoría de los usuarios experimentarán la
- solicitud fallida, lo que debería, con el tiempo, resultar en que la
- imagen sea eliminada del otro sitio.</p>
- <p>Hay varias formas en las que puede manejar esta
- situación.</p>
-
- <p>En este primer ejemplo, simplemente denegamos la solicitud, si no se
- originó desde una página en nuestro sitio. Para el propósito de este ejemplo,
- asumimos que nuestro sitio es <code>www.example.com</code>.</p>
-
-<!-- TODO: Añadir discusión aquí de por qué tenemos !^$ ahí. -->
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]
-</highlight>
-
- <p>En este segundo ejemplo, en lugar de denegar la solicitud, mostramos
- una imagen alternativa en su lugar.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]
-</highlight>
-
- <p>En el tercer ejemplo, redirigimos la solicitud a una imagen en algún
- otro sitio.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]
-</highlight>
-
- <p>De estas técnicas, las dos últimas tienden a ser las más efectivas
- para lograr que la gente deje de hacer hotlinking de sus imágenes, porque
- simplemente no verán la imagen que esperaban ver.</p>
-
- </dd>
-
- <dt>Discusión:</dt>
-
- <dd>
- <p>Si todo lo que desea hacer es denegar el acceso al recurso, en lugar
- de redirigir esa solicitud a otro lugar, esto se puede
- lograr sin el uso de <module>mod_rewrite</module>:</p>
-
- <highlight language="config">
-SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch>
- </highlight>
- </dd>
- </dl>
-
- </section>
-
- <section id="blocking-of-robots">
-
- <title>Bloqueo de Robots</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>
- En esta receta, discutimos cómo bloquear solicitudes persistentes de
- un robot o agente de usuario en particular.</p>
-
- <p>El estándar para exclusión de robots define un archivo,
- <code>/robots.txt</code> que especifica aquellas partes de su
- sitio web donde desea excluir robots. Sin embargo, algunos robots
- no respetan estos archivos.
- </p>
-
- <p>Tenga en cuenta que hay métodos para lograr esto que no
- usan <module>mod_rewrite</module>. Tenga en cuenta también que cualquier técnica que dependa
- de la cadena <code>USER_AGENT</code> del cliente puede ser evitada
- muy fácilmente, ya que esa cadena puede cambiarse.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Usamos un conjunto de reglas que especifica el directorio a ser
- protegido, y el <code>USER_AGENT</code> del cliente que
- identifica al robot malicioso o persistente.</p>
-
- <p>En este ejemplo, estamos bloqueando un robot llamado
- <code>NameOfBadRobot</code> de una ubicación
- <code>/secret/files</code>. También puede especificar un rango de
- direcciones IP, si está intentando bloquear ese agente de usuario solo desde
- la fuente particular.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]
-</highlight>
- </dd>
-
- <dt>Discusión:</dt>
-
- <dd>
- <p>
- En lugar de usar <module>mod_rewrite</module> para esto, puede lograr el
- mismo resultado usando medios alternativos, como se ilustra aquí:
- </p>
- <highlight language="config">
-SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location>
- </highlight>
- <p>
- Como se indicó anteriormente, esta técnica es trivial de evadir, simplemente
- modificando la cabecera de solicitud <code>USER_AGENT</code>. Si
- está experimentando un ataque sostenido, debería considerar bloquearlo
- a un nivel superior, como en su firewall.
- </p>
-
- </dd>
-
- </dl>
-
- </section>
-
-<section id="host-deny">
-
- <title>Denegación de Hosts en una Lista de Rechazo</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Deseamos mantener una lista de hosts, similar a
- <code>hosts.deny</code>, y hacer que esos hosts sean bloqueados
- del acceso a nuestro servidor.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
-<highlight language="config">
-RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]
-</highlight>
-
-<example>
-##<br />
-## hosts.deny<br />
-##<br />
-## ¡ATENCIÓN! Esto es un mapa, no una lista, incluso cuando lo tratamos como tal.<br />
-## mod_rewrite lo analiza buscando pares clave/valor, así que al menos un<br />
-## valor ficticio "-" debe estar presente para cada entrada.<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</example>
- </dd>
-
- <dt>Discusión:</dt>
- <dd>
- <p>
- La segunda RewriteCond asume que tiene HostNameLookups activado,
- de modo que las direcciones IP de los clientes sean resueltas. Si ese no es el
- caso, debería eliminar la segunda RewriteCond, y eliminar la
- bandera <code>[OR]</code> de la primera RewriteCond.
- </p>
- </dd>
- </dl>
-
-</section>
-
-<section id="referer-deflector">
-
- <title>Deflector basado en Referer</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Redirigir solicitudes basadas en el Referer del cual provino la solicitud,
- con diferentes destinos por Referer.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>El siguiente conjunto de reglas usa un archivo de mapa para asociar cada Referer
- con un destino de redirección.</p>
-
-<highlight language="config">
-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]
-</highlight>
-
- <p>El archivo de mapa lista los destinos de redirección para cada referer, o, si
- simplemente deseamos redirigir de vuelta a donde vinieron, se coloca un "-"
- en el mapa:</p>
-
-<highlight language="config">
-##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/
-</highlight>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933060:1933620 (outdated) -->
-<!-- French translation : Lucien GENTIS -->
-<!-- Reviewed by : Vincent Deffontaines -->
-
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="access.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Utiliser mod_rewrite pour le contrôle d'accès</title>
-
-<summary>
-
-<p>Ce document est un complément à la <a
-href="../mod/mod_rewrite.html">documentation de référence</a> de
-<module>mod_rewrite</module>. Il explique comment utiliser
-<module>mod_rewrite</module> pour contrôler l'accès à diverses
-ressources, ainsi que d'autres techniques en rapport. Il contient de
-nombreux exemples d'utilisation courante de <module>mod_rewrite</module> avec une
-description détaillée de leur fonctionnement.</p>
-
-<note type="warning">Vous devez vous attacher à comprendre le
-fonctionnement des exemples, car la plupart d'entre eux ne
-fonctionneront pas sur votre système si vous vous contentez de les
-copier/coller dans vos fichiers de configuration.</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Documentation du module mod_rewrite</a></seealso>
-<seealso><a href="intro.html">Introduction à mod_rewrite</a></seealso>
-<seealso><a href="remapping.html">Redirection et remise en
-correspondance</a></seealso>
-<!-- <seealso><a href="access.html">Contrôler l'accès</a></seealso> -->
-<seealso><a href="vhosts.html">Serveurs virtuels</a></seealso>
-<seealso><a href="proxy.html">Serveurs mandataires</a></seealso>
-<seealso><a href="rewritemap.html">Utilisation de RewriteMap</a></seealso>
-<seealso><a href="advanced.html">Techniques avancées</a></seealso>
-<seealso><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></seealso>
-
- <section id="blocked-inline-images">
-
- <title>Blocage du référencement à chaud (Hotlinking) d'images</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Cette technique vous permet d'interdire à d'autres sites
- d'inclure directement vos images dans leurs pages. On fait
- souvent référence à cette pratique sous le nom de
- référencement à chaud (Hotlinking) qui entraîne l'utilisation
- de votre bande passante pour servir des contenus faisant
- partie du site de quelqu'un d'autre.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Cette technique repose sur la valeur de la variable
- optionnelle <code>HTTP_REFERER</code>. Certaines personnes
- pourront donc contourner cette limitation. Pour la plupart des
- utilisateurs cependant, la requête échouera, en ce sens que
- l'image ne sera pas affichée depuis le site tiers.</p>
- <p>Il y a plusieurs manières de gérer cette situation.</p>
-
- <p>Dans le premier exemple, nous rejetons tout simplement la
- requête si elle ne provenait pas d'une page appartenant à notre
- site. Pour les besoins de cet exemple, nous supposons que le nom
- de votre site est <code>www.example.com</code>.</p>
-
-<!-- TODO: Add discussion here of why we have !^$ in there. -->
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]
-</highlight>
-
- <p>Dans le second exemple, plutôt que de rejeter la requête,
- nous affichons une autre image à la place.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]
-</highlight>
-
- <p>Dans le troisième exemple, nous redirigeons la requête vers
- une image appartenant à un autre site.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]
-</highlight>
-
- <p>De tous ces exemples, les deux derniers semblent les plus
- efficaces pour faire en sorte que les gens arrêtent de
- référencer vos images à chaud, car il ne verront pas les images
- qu'ils s'attendent à voir.</p>
-
- </dd>
-
- <dt>Discussion :</dt>
-
- <dd>
- <p>Si vous ne voulez pas rediriger la requête, mais
- simplement interdire l'accès à la ressource, vous pouvez y
- parvenir sans utiliser <module>mod_rewrite</module> :</p>
-
- <highlight language="config">
-SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch>
- </highlight>
- </dd>
- </dl>
-
- </section>
-
- <section id="blocking-of-robots">
-
- <title>Blocage des robots</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>
- Dans cet exemple, nous allons discuter d'une méthode permettant
- de bloquer les requêtes persistentes en provenance d'un robot
- particulier, ou d'un navigateur.</p>
-
- <p>La méthode classique pour exclure un robot consiste à définir
- un fichier, <code>/robots.txt</code> qui spécifie les parties de
- votre site web pour lesquelles vous voulez exclure les robots.
- Malheureusement, certains robots ne tiennent pas compte de ces
- fichiers.
- </p>
-
- <p>Notez qu'il existe des méthodes d'exclusion qui n'utilisent
- pas <module>mod_rewrite</module>. Notez aussi que toute technique qui repose sur
- le contenu de la chaîne client <code>USER_AGENT</code> peut être
- contournée très facilement car cette chaîne peut être modifiée.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>On utilise un jeu de règles qui spécifie le répertoire à
- protéger, ainsi que la chaîne client <code>USER_AGENT</code> qui
- identifie le robot malin ou envahissant.</p>
-
- <p>Dans cet exemple, nous bloquons un robot nommé
- <code>Vilain_Robot</code> pour le répertoire
- <code>/secret/fichiers</code>. Si vous voulez bloquer ce client
- seulement depuis une source particulière, vous pouvez aussi
- spécifier un intervalle d'adresses IP.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]
-</highlight>
- </dd>
-
- <dt>Discussion :</dt>
-
- <dd>
- <p>
- Vous pouvez cependant parvenir au même résultat sans utiliser
- <module>mod_rewrite</module> via la méthode alternative suivante :
- </p>
- <highlight language="config">
-SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location>
- </highlight>
- <p>
- Comme indiqué plus haut, il est aisé de contourner cette
- technique, simplement en modifiant le contenu de l'en-tête
- <code>USER_AGENT</code>. Si vous subissez une attaque en règle,
- vous allez devoir réfléchir à un blocage à un niveau supérieur,
- par exemple une règle de filtrage de votre pare-feu.
- </p>
-
- </dd>
-
- </dl>
-
- </section>
-
-<section id="host-deny">
-
- <title>Rejet des clients contenus dans une liste de proscrits</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Nous voulons interdire l'accès à notre serveur aux clients
- contenus dans une liste de proscrits similaire à
- <code>hosts.deny</code>.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
-<highlight language="config">
-RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]
-</highlight>
-
-<example>
-##<br />
-## hosts.deny<br />
-##<br />
-## ATTENTION! Ceci est une table de correspondances, non une liste,<br />
-## même si elle est traitée comme telle. mod_rewrite<br />
-## l'interprète comme une liste de paires clé/valeur, et<br />
-## chaque entrée doit au moins posséder une valeur par<br />
-## défaut "-".<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</example>
- </dd>
-
- <dt>Discussion :</dt>
- <dd>
- <p>
- La seconde condition RewriteCond présuppose que HostNameLookups est
- défini à On, de façon à ce que les adresses IP des clients puissent
- être résolues. Dans le cas contraire, vous devez supprimer la
- seconde condition, ainsi que le drapeau <code>[OR]</code> de la
- première.
- </p>
- </dd>
- </dl>
-
-</section>
-
-<section id="referer-deflector">
-
- <title>Aiguillage basé sur l'en-tête Referer</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Redirige les requêtes en fonction du Referer de provenance de
- la requête, avec des cibles différentes pour chaque Referer.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Le jeu de règles suivant utilise un fichier de correspondances pour
- associer chaque Referer à une cible de redirection.</p>
-
-<highlight language="config">
-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]
-</highlight>
-
- <p>Le fichier de correspondances contient les cibles de
- redirection associées à chaque Referer, ou, si nous voulons
- simplement rediriger les requêtes vers leur Referer, un "-" est
- inscrit dans le fichier de correspondances :</p>
-
-<highlight language="config">
-##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/
-</highlight>
-
- </dd>
- </dl>
-
-</section>
-
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933060:1933620 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="access.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>mod_rewrite を使ったアクセス制御</title>
-
-<summary>
-
-<p>このドキュメントは <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">リファレンスドキュメント</a>を補足するものです。
-<module>mod_rewrite</module> を使用してさまざまなリソースへのアクセスを制御する方法と、
-その他の関連テクニックについて説明します。
-<module>mod_rewrite</module> の一般的な使用例を多数含んでおり、
-それぞれの動作についての詳細な説明も含まれています。</p>
-
-<note type="warning">これらの例の多くは、特定のサーバ設定ではそのまま
-動作しないことに注意してください。そのため、単にコピー&ペーストするのではなく、
-内容を理解することが重要です。</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">モジュールドキュメント</a></seealso>
-<seealso><a href="intro.html">mod_rewrite 入門</a></seealso>
-<seealso><a href="remapping.html">リダイレクトとリマッピング</a></seealso>
-<!-- <seealso><a href="access.html">アクセス制御</a></seealso> -->
-<seealso><a href="vhosts.html">バーチャルホスト</a></seealso>
-<seealso><a href="proxy.html">プロキシ</a></seealso>
-<seealso><a href="rewritemap.html">RewriteMap の使用</a></seealso>
-<seealso><a href="advanced.html">高度なテクニック</a></seealso>
-<seealso><a href="avoid.html">mod_rewrite を使わない場合</a></seealso>
-
- <section id="blocked-inline-images">
-
- <title>画像の "直リンク" の禁止</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>以下のテクニックは、他のサイトがあなたの画像をそのページに
- インラインで含める行為を禁止します。この行為は
- "直リンク" と呼ばれることが多く、あなたの帯域幅が
- 他のサイトのコンテンツ提供のために使用される結果となります。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>このテクニックは <code>HTTP_REFERER</code> 変数の値に
- 依存していますが、この値はオプションです。そのため、一部の
- ユーザはこの制限を回避できます。ただし、ほとんどのユーザは
- リクエスト失敗を経験し、時間の経過とともにその画像が
- 他のサイトから削除される結果となるはずです。</p>
- <p>この状況に対処する方法はいくつかあります。</p>
-
- <p>最初の例では、リクエストが当サイトのページから開始されたものでない
- 場合、単純にリクエストを拒否します。この例では、当サイトが
- <code>www.example.com</code> であると仮定しています。</p>
-
-<!-- TODO: Add discussion here of why we have !^$ in there. -->
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]
-</highlight>
-
- <p>2 番目の例では、リクエストを失敗させる代わりに、
- 代替画像を表示します。</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]
-</highlight>
-
- <p>3 番目の例では、リクエストを他のサイトの画像にリダイレクト
- します。</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]
-</highlight>
-
- <p>これらのテクニックのうち、後の 2 つが画像の直リンクをやめさせる
- のに最も効果的です。期待していた画像が表示されなくなるためです。</p>
-
- </dd>
-
- <dt>議論:</dt>
-
- <dd>
- <p>リクエストを他の場所にリダイレクトするのではなく、単にリソースへの
- アクセスを拒否したいだけの場合、<module>mod_rewrite</module> を使わずに
- 実現できます:</p>
-
- <highlight language="config">
-SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch>
- </highlight>
- </dd>
- </dl>
-
- </section>
-
- <section id="blocking-of-robots">
-
- <title>ロボットのブロック</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>
- このレシピでは、特定のロボットやユーザエージェントからの
- しつこいリクエストをブロックする方法について説明します。</p>
-
- <p>ロボット排除の標準では、ウェブサイトのどの部分でロボットを
- 除外したいかを指定する <code>/robots.txt</code> というファイルが
- 定義されています。しかし、一部のロボットはこれらのファイルを
- 尊重しません。</p>
-
- <p><module>mod_rewrite</module> を使用しない方法もあることに注意してください。
- また、クライアントの <code>USER_AGENT</code> 文字列に依存する
- テクニックは、その文字列を変更できるため、非常に簡単に回避できる
- ことにも注意してください。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>保護するディレクトリと、悪意のあるまたはしつこいロボットを
- 識別するクライアント <code>USER_AGENT</code> を指定する
- ルールセットを使用します。</p>
-
- <p>この例では、<code>NameOfBadRobot</code> というロボットを
- <code>/secret/files</code> という場所からブロックしています。
- 特定のソースからのみそのユーザエージェントをブロックしたい場合は、
- IP アドレス範囲も指定できます。</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]
-</highlight>
- </dd>
-
- <dt>議論:</dt>
-
- <dd>
- <p>
- <module>mod_rewrite</module> を使わずに、次に示すような代替手段で
- 同じ目的を達成できます:
- </p>
- <highlight language="config">
-SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location>
- </highlight>
- <p>
- 上記で述べたように、このテクニックは <code>USER_AGENT</code>
- リクエストヘッダを変更するだけで簡単に回避できます。持続的な
- 攻撃を受けている場合は、ファイアウォールなどのより上位のレベルで
- ブロックすることを検討してください。
- </p>
-
- </dd>
-
- </dl>
-
- </section>
-
-<section id="host-deny">
-
- <title>拒否リストのホストの拒否</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p><code>hosts.deny</code> のようなホストのリストを管理し、
- それらのホストがサーバにアクセスするのをブロックしたいと
- 考えています。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
-<highlight language="config">
-RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]
-</highlight>
-
-<example>
-##<br />
-## hosts.deny<br />
-##<br />
-## 注意! これはリストではなくマップです。リストとして扱う場合でも、<br />
-## mod_rewrite はキー/値のペアとして解析するため、各エントリに<br />
-## 少なくともダミーの値 "-" が必要です。<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</example>
- </dd>
-
- <dt>議論:</dt>
- <dd>
- <p>
- 2 番目の RewriteCond は、HostNameLookups がオンになっていて、
- クライアント IP アドレスが解決されることを前提としています。
- そうでない場合は、2 番目の RewriteCond を削除し、最初の
- RewriteCond から <code>[OR]</code> フラグを削除してください。
- </p>
- </dd>
- </dl>
-
-</section>
-
-<section id="referer-deflector">
-
- <title>リファラに基づくデフレクタ</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>リクエストの送信元のリファラに基づいてリクエストをリダイレクトし、
- リファラごとに異なるターゲットを設定します。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>以下のルールセットは、マップファイルを使用して各リファラを
- リダイレクト先に関連付けます。</p>
-
-<highlight language="config">
-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]
-</highlight>
-
- <p>マップファイルには各リファラのリダイレクト先が記述されています。
- 単にリファラ元にリダイレクトしたい場合は、マップに
- "-" を配置します:</p>
-
-<highlight language="config">
-##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/
-</highlight>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version='1.0' encoding='EUC-KR' ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933060:1933620 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="access.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>mod_rewrite를 사용한 접근 제어</title>
-
-<summary>
-
-<p>이 문서는 <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">참조 문서</a>를 보충합니다.
-<module>mod_rewrite</module>를 사용하여 다양한 자원에 대한
-접근을 제어하는 방법과 기타 관련 기술을 설명합니다.
-여기에는 <module>mod_rewrite</module>의 일반적인 사용 예제가
-많이 포함되어 있으며, 각각이 어떻게 작동하는지에 대한
-자세한 설명이 있습니다.</p>
-
-<note type="warning">이 예제들 중 많은 것이 특정 서버 설정에서
-그대로 작동하지 않을 수 있으므로, 단순히 예제를 복사하여
-설정에 붙여넣기보다는 이해하는 것이 중요합니다.</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">모듈 문서</a></seealso>
-<seealso><a href="intro.html">mod_rewrite 소개</a></seealso>
-<seealso><a href="remapping.html">리다이렉션과 재매핑</a></seealso>
-<!-- <seealso><a href="access.html">접근 제어</a></seealso> -->
-<seealso><a href="vhosts.html">가상 호스트</a></seealso>
-<seealso><a href="proxy.html">프록시</a></seealso>
-<seealso><a href="rewritemap.html">RewriteMap 사용하기</a></seealso>
-<seealso><a href="advanced.html">고급 기술</a></seealso>
-<seealso><a href="avoid.html">mod_rewrite를 사용하지 말아야 할 경우</a></seealso>
-
- <section id="blocked-inline-images">
-
- <title>이미지 "핫링킹" 금지</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p>다음 기술은 다른 사이트가 여러분의 이미지를
- 자신의 페이지에 인라인으로 포함하는 것을 금지합니다.
- 이 행위는 흔히 "핫링킹"이라고 하며,
- 여러분의 대역폭이 다른 사이트의 콘텐츠를 제공하는 데
- 사용되는 결과를 초래합니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- <p>이 기술은 <code>HTTP_REFERER</code> 변수의 값에
- 의존하며, 이는 선택적입니다. 따라서 일부 사용자가
- 이 제한을 우회할 수 있습니다. 그러나 대부분의
- 사용자는 실패한 요청을 경험하게 되며, 시간이 지나면
- 해당 이미지가 다른 사이트에서 제거되는 결과를
- 가져올 것입니다.</p>
- <p>이 상황을 처리하는 몇 가지 방법이 있습니다.</p>
-
- <p>첫 번째 예제에서는 우리 사이트의 페이지에서 시작되지 않은
- 요청을 단순히 거부합니다. 이 예제에서는 우리 사이트가
- <code>www.example.com</code>이라고 가정합니다.</p>
-
-<!-- TODO: Add discussion here of why we have !^$ in there. -->
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]
-</highlight>
-
- <p>두 번째 예제에서는 요청을 실패시키는 대신
- 대체 이미지를 표시합니다.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]
-</highlight>
-
- <p>세 번째 예제에서는 요청을 다른 사이트의 이미지로
- 리다이렉트합니다.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]
-</highlight>
-
- <p>이 기술들 중 마지막 두 가지가 이미지 핫링킹을
- 중단시키는 데 가장 효과적입니다. 사용자들이 기대한
- 이미지를 볼 수 없기 때문입니다.</p>
-
- </dd>
-
- <dt>토론:</dt>
-
- <dd>
- <p>요청을 다른 곳으로 리다이렉트하는 것이 아니라
- 단순히 자원에 대한 접근을 거부하려는 경우,
- <module>mod_rewrite</module>를 사용하지 않고도
- 이를 수행할 수 있습니다:</p>
-
- <highlight language="config">
-SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch>
- </highlight>
- </dd>
- </dl>
-
- </section>
-
- <section id="blocking-of-robots">
-
- <title>로봇 차단</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p>이 레시피에서는 특정 로봇 또는 사용자 에이전트의
- 지속적인 요청을 차단하는 방법을 논의합니다.</p>
-
- <p>로봇 배제 표준은 <code>/robots.txt</code>라는
- 파일을 정의하며, 이 파일은 로봇을 배제하고자 하는
- 웹사이트의 부분을 지정합니다. 그러나 일부 로봇은
- 이 파일을 준수하지 않습니다.</p>
-
- <p><module>mod_rewrite</module>를 사용하지 않고도
- 이를 수행할 수 있는 방법이 있다는 점에 유의하십시오.
- 또한 클라이언트의 <code>USER_AGENT</code> 문자열에
- 의존하는 기술은 해당 문자열을 쉽게 변경할 수 있으므로
- 매우 쉽게 우회할 수 있다는 점에 유의하십시오.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- <p>보호할 디렉토리와 악의적이거나 지속적인 로봇을
- 식별하는 클라이언트 <code>USER_AGENT</code>를
- 지정하는 규칙 세트를 사용합니다.</p>
-
- <p>이 예제에서는 <code>NameOfBadRobot</code>이라는
- 로봇을 <code>/secret/files</code> 위치에서
- 차단합니다. 특정 소스에서만 해당 사용자 에이전트를
- 차단하려는 경우 IP 주소 범위를 지정할 수도 있습니다.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]
-</highlight>
- </dd>
-
- <dt>토론:</dt>
-
- <dd>
- <p>
- <module>mod_rewrite</module>를 사용하는 대신, 여기에 설명된 대로
- 다른 방법을 사용하여 동일한 결과를 달성할 수 있습니다:
- </p>
- <highlight language="config">
-SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location>
- </highlight>
- <p>
- 위에서 언급한 바와 같이, 이 기술은 <code>USER_AGENT</code>
- 요청 헤더를 수정하는 것만으로도 쉽게 우회할 수 있습니다.
- 지속적인 공격을 받고 있다면, 방화벽과 같은 상위 수준에서
- 차단하는 것을 고려해야 합니다.
- </p>
-
- </dd>
-
- </dl>
-
- </section>
-
-<section id="host-deny">
-
- <title>거부 목록의 호스트 차단</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p><code>hosts.deny</code>와 같은 호스트 목록을 관리하여
- 해당 호스트가 서버에 접근하지 못하도록 차단하고자 합니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
-<highlight language="config">
-RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]
-</highlight>
-
-<example>
-##<br />
-## hosts.deny<br />
-##<br />
-## 주의! 이것은 목록이 아니라 맵입니다.<br />
-## mod_rewrite가 키/값 쌍을 파싱하므로 각 항목에<br />
-## 최소한 더미 값 "-"이 있어야 합니다.<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</example>
- </dd>
-
- <dt>토론:</dt>
- <dd>
- <p>
- 두 번째 RewriteCond는 HostNameLookups가 켜져 있어
- 클라이언트 IP 주소가 해석된다고 가정합니다. 그렇지
- 않은 경우, 두 번째 RewriteCond를 삭제하고 첫 번째
- RewriteCond에서 <code>[OR]</code> 플래그를 제거해야
- 합니다.
- </p>
- </dd>
- </dl>
-
-</section>
-
-<section id="referer-deflector">
-
- <title>리퍼러 기반 디플렉터</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p>요청이 온 리퍼러에 따라 요청을 리다이렉트하며,
- 리퍼러별로 다른 대상을 지정합니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- <p>다음 규칙 세트는 맵 파일을 사용하여 각 리퍼러를
- 리다이렉션 대상과 연결합니다.</p>
-
-<highlight language="config">
-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]
-</highlight>
-
- <p>맵 파일은 각 리퍼러에 대한 리다이렉션 대상을
- 나열하거나, 단순히 원래 위치로 리다이렉트하려는
- 경우 맵에 "-"을 넣습니다:</p>
-
-<highlight language="config">
-##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/
-</highlight>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!-- GENERATED FROM XML: DO NOT EDIT -->
-
-<metafile reference="access.xml">
- <basename>access</basename>
- <path>/rewrite/</path>
- <relpath>..</relpath>
-
- <variants>
- <variant outdated="yes">de</variant>
- <variant>en</variant>
- <variant outdated="yes">es</variant>
- <variant outdated="yes">fr</variant>
- <variant outdated="yes">ja</variant>
- <variant outdated="yes">ko</variant>
- <variant outdated="yes">tr</variant>
- <variant outdated="yes">zh-cn</variant>
- </variants>
-</metafile>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933060:1933620 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="access.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Erişim Denetimi için mod_rewrite Kullanımı</title>
-
-<summary>
-
-<p>Bu belge, <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">başvuru belgelerini</a> tamamlar.
-Çeşitli kaynaklara erişimi denetlemek için <module>mod_rewrite</module>
-modülünü nasıl kullanabileceğinizi ve diğer ilgili teknikleri açıklar.
-<module>mod_rewrite</module> modülünün yaygın kullanımlarına ilişkin,
-her birinin nasıl çalıştığının ayrıntılı açıklamalarını içeren birçok
-örnek sunulmaktadır.</p>
-
-<note type="warning">Bu örneklerin birçoğunun sizin sunucu yapılandırmanızda
-değişiklik yapılmadan çalışmayacağını unutmayın; bu nedenle örnekleri
-yapılandırmanıza kopyalayıp yapıştırmak yerine anlamanız
-önemlidir.</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Modül belgeleri</a></seealso>
-<seealso><a href="intro.html">mod_rewrite'a giriş</a></seealso>
-<seealso><a href="remapping.html">Yeniden yönlendirme ve yeniden eşleme</a></seealso>
-<!-- <seealso><a href="access.html">Erişim denetimi</a></seealso> -->
-<seealso><a href="vhosts.html">Sanal konaklar</a></seealso>
-<seealso><a href="proxy.html">Vekil kullanımı</a></seealso>
-<seealso><a href="rewritemap.html">RewriteMap Kullanımı</a></seealso>
-<seealso><a href="advanced.html">İleri teknikler</a></seealso>
-<seealso><a href="avoid.html">mod_rewrite kullanılmaması gereken durumlar</a></seealso>
-
- <section id="blocked-inline-images">
-
- <title>Resim "Hotlinking"inin Engellenmesi</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Aşağıdaki teknik, diğer sitelerin resimlerinizi kendi
- sayfalarına satır içi olarak dahil etme uygulamasını engeller.
- Bu uygulama genellikle "hotlinking" olarak anılır ve
- bant genişliğinizin başkasının sitesi için içerik sunmak
- amacıyla kullanılmasına neden olur.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Bu teknik, isteğe bağlı olan <code>HTTP_REFERER</code>
- değişkeninin değerine dayanır. Bu nedenle, bazı kişilerin bu
- sınırlamayı atlaması mümkündür. Ancak çoğu kullanıcı başarısız
- isteği deneyimleyecektir ve bu, zamanla resmin o diğer siteden
- kaldırılmasına yol açacaktır.</p>
- <p>Bu durumu ele almanın birkaç yolu vardır.</p>
-
- <p>Bu ilk örnekte, istek sitemizden bir sayfadan başlatılmadıysa
- isteği reddederiz. Bu örnek için sitemizin
- <code>www.example.com</code> olduğunu varsayıyoruz.</p>
-
-<!-- TODO: Burada neden !^$ kullandığımızı tartışma ekleyin. -->
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]
-</highlight>
-
- <p>Bu ikinci örnekte, isteği reddetmek yerine alternatif bir resim
- gösteriyoruz.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]
-</highlight>
-
- <p>Üçüncü örnekte, isteği başka bir sitedeki bir resme
- yönlendiriyoruz.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]
-</highlight>
-
- <p>Bu tekniklerden son ikisi, insanların resimlerinizi
- hotlinking yapmayı bırakmasını sağlamada en etkili olanlardır;
- çünkü görmeyi bekledikleri resmi göremeyeceklerdir.</p>
-
- </dd>
-
- <dt>Tartışma:</dt>
-
- <dd>
- <p>Tek yapmak istediğiniz kaynağa erişimi reddetmekse, isteği
- başka bir yere yönlendirmek yerine bu,
- <module>mod_rewrite</module> kullanılmadan da
- gerçekleştirilebilir:</p>
-
- <highlight language="config">
-SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch>
- </highlight>
- </dd>
- </dl>
-
- </section>
-
- <section id="blocking-of-robots">
-
- <title>Robotların Engellenmesi</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>
- Bu tarifle, belirli bir robot veya kullanıcı aracısından gelen
- sürekli isteklerin nasıl engelleneceğini tartışıyoruz.</p>
-
- <p>Robot dışlama standardı, web sitenizin robotları dışlamak
- istediğiniz bölümlerini belirten <code>/robots.txt</code>
- adında bir dosya tanımlar. Ancak bazı robotlar bu dosyalara
- uymaz.</p>
-
- <p>Bunu gerçekleştirmenin <module>mod_rewrite</module>
- kullanmayan yöntemleri olduğunu unutmayın. Ayrıca istemcinin
- <code>USER_AGENT</code> dizgesine dayanan herhangi bir tekniğin
- kolayca atlanabileceğini de unutmayın; çünkü bu dizge
- değiştirilebilir.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Korunacak dizini ve zararlı ya da ısrarcı robotu tanımlayan
- istemci <code>USER_AGENT</code> dizgesini belirten bir kural
- kümesi kullanıyoruz.</p>
-
- <p>Bu örnekte, <code>NameOfBadRobot</code> adlı bir robotu
- <code>/secret/files</code> konumundan engelliyoruz. Kullanıcı
- aracısını yalnızca belirli bir kaynaktan engellemek istiyorsanız
- bir IP adresi aralığı da belirtebilirsiniz.</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]
-</highlight>
- </dd>
-
- <dt>Tartışma:</dt>
-
- <dd>
- <p>
- Bunun için <module>mod_rewrite</module> kullanmak yerine, aynı
- sonucu burada gösterildiği gibi alternatif yollarla elde
- edebilirsiniz:
- </p>
- <highlight language="config">
-SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location>
- </highlight>
- <p>
- Yukarıda belirtildiği gibi, bu teknik <code>USER_AGENT</code>
- istek başlığını değiştirerek kolayca atlanabilir. Sürekli bir
- saldırıyla karşılaşıyorsanız, bunu güvenlik duvarınız gibi daha
- üst bir düzeyde engellemeyi düşünmelisiniz.
- </p>
-
- </dd>
-
- </dl>
-
- </section>
-
-<section id="host-deny">
-
- <title>Reddetme Listesindeki Konakların Engellenmesi</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p><code>hosts.deny</code> gibi bir konak listesi tutmak ve bu
- konakların sunucumuza erişimini engellemek istiyoruz.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
-<highlight language="config">
-RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]
-</highlight>
-
-<example>
-##<br />
-## hosts.deny<br />
-##<br />
-## DİKKAT! Bu bir liste değil, bir eşlem dosyasıdır.<br />
-## mod_rewrite bunu anahtar/değer çiftleri olarak çözümler,<br />
-## bu yüzden her girdi için en azından bir yapay "-" değeri<br />
-## mevcut olmalıdır.<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</example>
- </dd>
-
- <dt>Tartışma:</dt>
- <dd>
- <p>
- İkinci RewriteCond, istemci IP adreslerinin çözümlenmesi için
- HostNameLookups özelliğinin açık olduğunu varsayar. Durum böyle
- değilse, ikinci RewriteCond'u kaldırmalı ve birinci RewriteCond'dan
- <code>[OR]</code> bayrağını çıkarmalısınız.
- </p>
- </dd>
- </dl>
-
-</section>
-
-<section id="referer-deflector">
-
- <title>Referer Tabanlı Yönlendirici</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>İstekleri, isteğin geldiği Referer'a göre, her Referer için
- farklı hedeflerle yeniden yönlendirir.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Aşağıdaki kural kümesi, her Referer'ı bir yönlendirme hedefiyle
- ilişkilendirmek için bir eşlem dosyası kullanır.</p>
-
-<highlight language="config">
-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]
-</highlight>
-
- <p>Eşlem dosyası, her referer için yeniden yönlendirme hedeflerini
- listeler veya yalnızca geldikleri yere geri yönlendirmek
- istiyorsak eşleme bir "-" konur:</p>
-
-<highlight language="config">
-##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/
-</highlight>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933060:1933620 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="access.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>使用 mod_rewrite 控制访问</title>
-
-<summary>
-
-<p>本文档是 <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">参考文档</a>的补充。它描述了如何使用
-<module>mod_rewrite</module> 来控制对各种资源的访问,以及其他相关技术。
-其中包括许多 <module>mod_rewrite</module> 的常见用法示例,
-以及每个示例工作原理的详细描述。</p>
-
-<note type="warning">请注意,这些示例中的许多不会在你的特定服务器配置中直接生效,
-因此理解它们非常重要,而不仅仅是将示例复制粘贴到你的配置中。</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">模块文档</a></seealso>
-<seealso><a href="intro.html">mod_rewrite 简介</a></seealso>
-<seealso><a href="remapping.html">重定向和重映射</a></seealso>
-<!-- <seealso><a href="access.html">访问控制</a></seealso> -->
-<seealso><a href="vhosts.html">虚拟主机</a></seealso>
-<seealso><a href="proxy.html">代理</a></seealso>
-<seealso><a href="rewritemap.html">使用 RewriteMap</a></seealso>
-<seealso><a href="advanced.html">高级技术</a></seealso>
-<seealso><a href="avoid.html">何时不使用 mod_rewrite</a></seealso>
-
- <section id="blocked-inline-images">
-
- <title>禁止图片"盗链"</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>以下技术禁止其他站点将你的图片内联到他们的页面中。
- 这种做法通常被称为"盗链",会导致你的带宽被用来为他人的站点提供内容。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>此技术依赖于 <code>HTTP_REFERER</code> 变量的值,
- 该变量是可选的。因此,某些人可能会绕过此限制。
- 但是,大多数用户将会遇到请求失败的情况,
- 随着时间推移,这应该会导致图片从其他站点上被移除。</p>
- <p>有几种方法可以处理这种情况。</p>
-
- <p>在第一个示例中,如果请求不是从我们站点上的页面发起的,
- 我们只是简单地拒绝请求。在本示例中,
- 我们假设我们的站点是 <code>www.example.com</code>。</p>
-
-<!-- TODO: Add discussion here of why we have !^$ in there. -->
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]
-</highlight>
-
- <p>在第二个示例中,我们不是让请求失败,而是显示一个替代图片。</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png" [R,NC]
-</highlight>
-
- <p>在第三个示例中,我们将请求重定向到另一个站点上的图片。</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_REFERER}" "!^$"
-RewriteCond "%{HTTP_REFERER}" "!www.example.com" [NC]
-RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif" [R,NC]
-</highlight>
-
- <p>在这些技术中,后两种往往最能有效地阻止盗链行为,
- 因为他们根本看不到预期的图片。</p>
-
- </dd>
-
- <dt>讨论:</dt>
-
- <dd>
- <p>如果你只想拒绝对资源的访问,而不是将请求重定向到其他地方,
- 可以不使用 <module>mod_rewrite</module> 来实现:</p>
-
- <highlight language="config">
-SetEnvIf Referer example\.com localreferer
-<FilesMatch "\.(jpg|png|gif)$">
- Require env localreferer
-</FilesMatch>
- </highlight>
- </dd>
- </dl>
-
- </section>
-
- <section id="blocking-of-robots">
-
- <title>阻止机器人</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>在本配置方案中,我们讨论如何阻止来自特定机器人或用户代理的持续请求。</p>
-
- <p>机器人排除标准定义了一个文件 <code>/robots.txt</code>,
- 用于指定你网站中希望排除机器人访问的部分。但是,某些机器人不遵守这些文件。</p>
-
- <p>请注意,有些方法可以在不使用 <module>mod_rewrite</module> 的情况下实现此目的。
- 还要注意,任何依赖客户端 <code>USER_AGENT</code>
- 字符串的技术都可以很容易地被绕过,因为该字符串可以被更改。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>我们使用一组规则来指定要保护的目录,
- 以及标识恶意或持续机器人的客户端 <code>USER_AGENT</code>。</p>
-
- <p>在本示例中,我们从位置 <code>/secret/files</code>
- 阻止一个名为 <code>NameOfBadRobot</code> 的机器人。
- 如果你只想从特定来源阻止该用户代理,
- 也可以指定 IP 地址范围。</p>
-
-<highlight language="config">
-RewriteCond "%{HTTP_USER_AGENT}" "^NameOfBadRobot"
-RewriteCond "%{REMOTE_ADDR}" "=123\.45\.67\.[8-9]"
-RewriteRule "^/secret/files/" "-" [F]
-</highlight>
- </dd>
-
- <dt>讨论:</dt>
-
- <dd>
- <p>
- 你可以使用替代方法来实现相同的目的,而不必使用
- <module>mod_rewrite</module>,如下所示:
- </p>
- <highlight language="config">
-SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-<Location "/secret/files">
- <RequireAll>
- Require all granted
- Require not env goaway
- </RequireAll>
-</Location>
- </highlight>
- <p>
- 如上所述,这种技术很容易被绕过,只需修改
- <code>USER_AGENT</code> 请求头即可。如果你遭受持续攻击,
- 应考虑在更高层级(如防火墙)进行阻止。
- </p>
-
- </dd>
-
- </dl>
-
- </section>
-
-<section id="host-deny">
-
- <title>拒绝列表中的主机</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>我们希望维护一个主机列表,类似于 <code>hosts.deny</code>,
- 并阻止这些主机访问我们的服务器。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
-<highlight language="config">
-RewriteEngine on
-RewriteMap hosts-deny "txt:/path/to/hosts.deny"
-RewriteCond "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
-RewriteCond "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
-RewriteRule "^" "-" [F]
-</highlight>
-
-<example>
-##<br />
-## hosts.deny<br />
-##<br />
-## 注意!这是一个映射文件,不是列表,即使我们将其作为列表使用。<br />
-## mod_rewrite 将其解析为键/值对,因此每个条目<br />
-## 至少必须存在一个虚拟值 "-"。<br />
-##<br />
-<br />
-193.102.180.41 -<br />
-bsdti1.sdm.de -<br />
-192.76.162.40 -<br />
-</example>
- </dd>
-
- <dt>讨论:</dt>
- <dd>
- <p>
- 第二个 RewriteCond 假设你已启用 HostNameLookups,
- 以便客户端 IP 地址会被解析。如果未启用,
- 你应该删除第二个 RewriteCond,并从第一个 RewriteCond 中删除
- <code>[OR]</code> 标志。
- </p>
- </dd>
- </dl>
-
-</section>
-
-<section id="referer-deflector">
-
- <title>基于 Referer 的转向器</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>根据请求来源的 Referer 重定向请求,
- 对每个 Referer 使用不同的目标。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>以下规则集使用映射文件将每个 Referer 与重定向目标关联。</p>
-
-<highlight language="config">
-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]
-</highlight>
-
- <p>映射文件列出了每个 referer 的重定向目标,
- 或者如果我们只想重定向回他们的来源地,则在映射中放置 "-":</p>
-
-<highlight language="config">
-##
-## deflector.map
-##
-
-http://badguys.example.com/bad/index.html -
-http://badguys.example.com/bad/index2.html -
-http://badguys.example.com/bad/index3.html http://somewhere.example.com/
-</highlight>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-# GENERATED FROM XML -- DO NOT EDIT
-
-URI: advanced.html.de
-Content-Language: de
-Content-type: text/html; charset=ISO-8859-1
-
-URI: advanced.html.en.utf8
-Content-Language: en
-Content-type: text/html; charset=UTF-8
-
-URI: advanced.html.es.utf8
-Content-Language: es
-Content-type: text/html; charset=UTF-8
-
-URI: advanced.html.fr.utf8
-Content-Language: fr
-Content-type: text/html; charset=UTF-8
-
-URI: advanced.html.ja.utf8
-Content-Language: ja
-Content-type: text/html; charset=UTF-8
-
-URI: advanced.html.ko.euc-kr
-Content-Language: ko
-Content-type: text/html; charset=EUC-KR
-
-URI: advanced.html.tr.utf8
-Content-Language: tr
-Content-type: text/html; charset=UTF-8
-
-URI: advanced.html.zh-cn.utf8
-Content-Language: zh-cn
-Content-type: text/html; charset=UTF-8
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"><head>
-<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Fortgeschrittene Techniken mit mod_rewrite - Apache HTTP Server Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Module</a> | <a href="../mod/quickreference.html">Direktiven</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Server Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP-Server</a> > <a href="http://httpd.apache.org/docs/">Dokumentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Fortgeschrittene Techniken mit mod_rewrite</h1>
-<div class="toplang">
-<p><span>Verfügbare Sprachen: </span><a href="../de/rewrite/advanced.html" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Diese Übersetzung ist möglicherweise
- nicht mehr aktuell. Bitte prüfen Sie die englische Version auf
- die neuesten Änderungen.</div>
-
-
-<p>Dieses Dokument ergänzt die <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">Referenzdokumentation</a>. Es bietet
-einige fortgeschrittene Techniken zur Verwendung von <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
-
-
-
-<div class="warning">Beachten Sie, dass viele dieser Beispiele nicht unverändert in Ihrer
-speziellen Serverkonfiguration funktionieren werden. Es ist daher wichtig, dass Sie
-sie verstehen, anstatt die Beispiele einfach auszuschneiden und in Ihre
-Konfiguration einzufügen.</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#sharding">URL-basiertes Sharding über mehrere Backends</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#on-the-fly-content">Dynamische Inhaltsregenerierung</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#load-balancing">Lastverteilung</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#structuredhomedirs">Strukturierte Benutzerverzeichnisse</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#redirectanchors">Umleitung von Ankern</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#time-dependent">Zeitabhängiges Umschreiben</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#setenvvars">Umgebungsvariablen basierend auf URL-Teilen setzen</a></li>
-</ul><h3>Siehe auch</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Moduldokumentation</a></li><li><a href="intro.html">Einführung in mod_rewrite</a></li><li><a href="remapping.html">Umleitung und Neuzuordnung</a></li><li><a href="access.html">Zugriffskontrolle</a></li><li><a href="vhosts.html">Virtuelle Hosts</a></li><li><a href="proxy.html">Proxying</a></li><li><a href="rewritemap.html">Verwendung von RewriteMap</a></li><li><a href="avoid.html">Wann man mod_rewrite nicht verwenden sollte</a></li><li><a href="#comments_section">Kommentare</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sharding" id="sharding">URL-basiertes Sharding über mehrere Backends</a> <a title="Permanent link" href="#sharding" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Eine gängige Technik zur Verteilung der Serverlast oder des
- Speicherplatzes wird als "Sharding" bezeichnet.
- Bei Verwendung dieser Methode verwendet ein Frontend-Server die
- URL, um Benutzer oder Objekte konsistent auf separate
- Backend-Server zu "verteilen".</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Eine Zuordnung von Benutzern zu Zielservern wird in externen
- Map-Dateien gepflegt. Diese sehen wie folgt aus:</p>
-
-<div class="example"><p><code>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... und so weiter
-</code></p></div>
-
- <p>Wir legen dies in eine <code>map.users-to-hosts</code>-Datei. Das
- Ziel ist es, folgende Zuordnung vorzunehmen:</p>
-
-<div class="example"><p><code>
-/u/user1/anypath
-</code></p></div>
-
- <p>zu</p>
-
-<div class="example"><p><code>
-http://physical_host_of_user1/u/user/anypath
-</code></p></div>
-
- <p>Somit muss nicht jeder URL-Pfad auf jedem physischen Backend-Host
- gültig sein. Der folgende Regelsatz erledigt dies für uns mit Hilfe der
- Map-Dateien, wobei server0 ein Standardserver ist, der verwendet wird,
- wenn ein Benutzer keinen Eintrag in der Map hat:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"</pre>
-
- </dd>
- </dl>
-
- <p>Siehe die <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>-Dokumentation
- und das <a href="./rewritemap.html">RewriteMap-HowTo</a>
- für weitere Informationen zur Syntax dieser Direktive.</p>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="on-the-fly-content" id="on-the-fly-content">Dynamische Inhaltsregenerierung</a> <a title="Permanent link" href="#on-the-fly-content" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Wir möchten Inhalte dynamisch generieren, sie aber statisch
- speichern, sobald sie einmal generiert wurden. Diese Regel prüft,
- ob die statische Datei vorhanden ist, und generiert sie, falls
- nicht. Die statischen Dateien können bei Bedarf regelmäßig
- entfernt werden (z.B. per Cron) und werden bei Bedarf neu
- generiert.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- Dies wird durch den folgenden Regelsatz erreicht:
-
-<pre class="prettyprint lang-config"># This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]</pre>
-
-
- <p>Der <code>-U</code>-Operator prüft, ob der Teststring
- (in diesem Fall <code>REQUEST_URI</code>) eine gültige URL ist. Er
- macht dies über eine Unteranfrage. Falls diese Unteranfrage fehlschlägt -
- das heißt, die angeforderte Ressource existiert nicht - ruft diese
- Regel das CGI-Programm <code>/regenerate_page.cgi</code> auf, das
- die angeforderte Ressource generiert und im Dokumentenverzeichnis
- speichert, sodass beim nächsten Aufruf eine statische Kopie
- ausgeliefert werden kann.</p>
-
- <p>Auf diese Weise können Dokumente, die selten aktualisiert werden, in
- statischer Form ausgeliefert werden. Wenn Dokumente aktualisiert werden
- müssen, können sie aus dem Dokumentenverzeichnis gelöscht werden, und sie
- werden dann beim nächsten Aufruf erneut generiert.</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="load-balancing" id="load-balancing">Lastverteilung</a> <a title="Permanent link" href="#load-balancing" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Wir möchten die Last zufällig auf mehrere Server verteilen,
- indem wir <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> verwenden.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Wir verwenden <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> und eine Serverliste,
- um dies zu erreichen.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]</pre>
-
-
-<p><code>serverlist.txt</code> enthält eine Liste der Server:</p>
-
-<div class="example"><p><code>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</code></p></div>
-
-<p>Wenn Sie möchten, dass ein bestimmter Server mehr Last als die
-anderen erhält, fügen Sie ihn mehrmals zur Liste hinzu.</p>
-
- </dd>
-
- <dt>Diskussion</dt>
- <dd>
-<p>Apache wird mit einem Lastverteilungsmodul ausgeliefert -
-<code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> - das wesentlich flexibler und
-funktionsreicher ist als alles, was Sie mit <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-zusammenstellen können.</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="structuredhomedirs" id="structuredhomedirs">Strukturierte Benutzerverzeichnisse</a> <a title="Permanent link" href="#structuredhomedirs" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Einige Websites mit Tausenden von Benutzern verwenden ein
- strukturiertes Heimatverzeichnis-Layout, <em>d.h.</em> jedes
- Heimatverzeichnis befindet sich in einem Unterverzeichnis, das
- (beispielsweise) mit dem ersten Zeichen des Benutzernamens beginnt.
- So ist <code>/~larry/anypath</code> gleich
- <code>/home/<strong>l</strong>/larry/public_html/anypath</code>,
- während <code>/~waldo/anypath</code> gleich
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code> ist.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Wir verwenden den folgenden Regelsatz, um die Tilde-URLs
- in das obige Layout umzusetzen.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"</pre>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="redirectanchors" id="redirectanchors">Umleitung von Ankern</a> <a title="Permanent link" href="#redirectanchors" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Standardmäßig funktioniert die Umleitung zu einem HTML-Anker nicht,
- da <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> das <code>#</code>-Zeichen maskiert und
- es in <code>%23</code> umwandelt. Dies wiederum unterbricht die
- Umleitung.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Verwenden Sie das <code>[NE]</code>-Flag in der
- <code>RewriteRule</code>. NE steht für No Escape (Nicht maskieren).
- </p>
- </dd>
-
- <dt>Diskussion:</dt>
- <dd>Diese Technik funktioniert natürlich auch mit anderen
- Sonderzeichen, die <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> standardmäßig URL-kodiert.</dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="time-dependent" id="time-dependent">Zeitabhängiges Umschreiben</a> <a title="Permanent link" href="#time-dependent" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Wir möchten <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> verwenden, um je nach Tageszeit
- unterschiedliche Inhalte auszuliefern.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Es gibt viele Variablen namens <code>TIME_xxx</code>
- für Rewrite-Bedingungen. In Verbindung mit den speziellen
- lexikographischen Vergleichsmustern <code><STRING</code>,
- <code>>STRING</code> und <code>=STRING</code> können wir
- zeitabhängige Umleitungen durchführen:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"</pre>
-
-
- <p>Dies liefert den Inhalt von <code>foo.day.html</code>
- unter der URL <code>foo.html</code> von
- <code>07:01-18:59</code> und zur restlichen Zeit den
- Inhalt von <code>foo.night.html</code>.</p>
-
- <div class="warning"><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>, Zwischenproxys
- und Browser können jeweils Antworten zwischenspeichern und dazu
- führen, dass eine der beiden Seiten außerhalb des konfigurierten
- Zeitfensters angezeigt wird.
- <code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code> kann verwendet werden, um diesen
- Effekt zu kontrollieren. Es ist natürlich viel besser, die
- Inhalte einfach dynamisch auszuliefern und basierend auf der
- Tageszeit anzupassen.</div>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="setenvvars" id="setenvvars">Umgebungsvariablen basierend auf URL-Teilen setzen</a> <a title="Permanent link" href="#setenvvars" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Manchmal möchten wir eine Art Status beibehalten, wenn wir
- ein Umschreiben durchführen. Beispielsweise möchten Sie sich
- merken, dass dieses Umschreiben stattgefunden hat, damit Sie
- später prüfen können, ob eine Anfrage über dieses Umschreiben
- kam. Eine Möglichkeit dafür ist das Setzen einer
- Umgebungsvariable.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Verwenden Sie das [E]-Flag, um eine Umgebungsvariable zu setzen.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]</pre>
-
-
- <p>Später in Ihrem Regelsatz können Sie diese Umgebungsvariable
- mit einer RewriteCond prüfen:</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{ENV:rewritten}" =1</pre>
-
-
- <p>Beachten Sie, dass Umgebungsvariablen eine externe Umleitung nicht
- überleben. Sie könnten stattdessen das [CO]-Flag verwenden, um ein
- Cookie zu setzen. Für Verzeichniskontext- und htaccess-Umschreibungen,
- bei denen die endgültige Ersetzung als interne Umleitung verarbeitet
- wird, werden Umgebungsvariablen aus der vorherigen Runde des
- Umschreibens mit dem Präfix "REDIRECT_" versehen.</p>
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Verfügbare Sprachen: </span><a href="../de/rewrite/advanced.html" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Module</a> | <a href="../mod/quickreference.html">Direktiven</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Advanced Techniques with mod_rewrite - Apache HTTP Server Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page" class="no-sidebar"><div id="page-header">
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Server Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Advanced Techniques with mod_rewrite</h1>
-<div class="toplang">
-<p><span>Available Languages: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-
-
-<div class="warning">This document has been deprecated. Its content has
-been reorganized into the following topical documents, where it can be
-found alongside related recipes and examples. This page will be removed
-in a future version of this documentation.</div>
-
-<ul>
-<li><strong>URL-based sharding</strong> - See
- <a href="rewritemap.html#sharding">Using RewriteMap</a></li>
-<li><strong>On-the-fly content regeneration</strong> - See
- <a href="remapping.html#on-the-fly-content">Redirection and remapping</a></li>
-<li><strong>Load balancing</strong> - See
- <a href="avoid.html#load-balancing">When not to use mod_rewrite</a></li>
-<li><strong>Structured userdirs</strong> - See
- <a href="remapping.html#structuredhomedirs">Redirection and remapping</a></li>
-<li><strong>Redirecting anchors</strong> - See
- <a href="remapping.html#redirectanchors">Redirection and remapping</a></li>
-<li><strong>Time-dependent rewriting</strong> - See
- <a href="remapping.html#time-dependent">Redirection and remapping</a></li>
-<li><strong>Set environment variables based on URL</strong> - See
- <a href="flags.html#flag_e">RewriteRule Flags</a></li>
-</ul>
-
-</div>
-</div>
-<div class="bottomlang">
-<p><span>Available Languages: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Técnicas avanzadas con mod_rewrite - Servidor HTTP Apache Versión 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Reportar un error</a></p>
-<p class="apache">Versión 2.5 del Servidor HTTP Apache</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="../">Versión 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Técnicas avanzadas con mod_rewrite</h1>
-<div class="toplang">
-<p><span>Idiomas disponibles: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Esta traducción podría estar
- obsoleta. Consulte la versión en inglés de la
- documentación para comprobar si se han producido cambios
- recientemente.</div>
-
-
-<p>Este documento complementa la <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">documentación de referencia</a>. Proporciona
-algunas técnicas avanzadas usando <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
-
-
-
-<div class="warning">Tenga en cuenta que muchos de estos ejemplos no funcionarán sin cambios en su
-configuración particular del servidor, por lo que es importante que los
-entienda, en lugar de simplemente copiar y pegar los ejemplos en su
-configuración.</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#sharding">Fragmentación basada en URL entre múltiples backends</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#on-the-fly-content">Regeneración de Contenido sobre la marcha</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#load-balancing">Balanceo de Carga</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#structuredhomedirs">Directorios de Usuario Estructurados</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#redirectanchors">Redireccionando Anclas</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#time-dependent">Reescritura Dependiente del Tiempo</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#setenvvars">Establecer Variables de Entorno Basadas en Partes de la URL</a></li>
-</ul><h3>Consulte también</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentación del módulo</a></li><li><a href="intro.html">Introducción a mod_rewrite</a></li><li><a href="remapping.html">Redirección y remapeo</a></li><li><a href="access.html">Control de acceso</a></li><li><a href="vhosts.html">Hosts virtuales</a></li><li><a href="proxy.html">Proxy</a></li><li><a href="rewritemap.html">Uso de RewriteMap</a></li><li><a href="avoid.html">Cuándo no usar mod_rewrite</a></li><li><a href="#comments_section">Comentarios</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sharding" id="sharding">Fragmentación basada en URL entre múltiples backends</a> <a title="Enlace permanente" href="#sharding" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Una técnica común para distribuir la carga del
- servidor o el espacio de almacenamiento se llama "fragmentación" (sharding).
- Al usar este método, un servidor front-end usará la
- URL para "fragmentar" consistentemente usuarios u objetos a servidores
- backend separados.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Se mantiene un mapeo, de usuarios a servidores destino, en
- archivos de mapa externos. Tienen este aspecto:</p>
-
-<div class="example"><p><code>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... y así sucesivamente
-</code></p></div>
-
- <p>Colocamos esto en un archivo <code>map.users-to-hosts</code>. El
- objetivo es mapear;</p>
-
-<div class="example"><p><code>
-/u/user1/anypath
-</code></p></div>
-
- <p>a</p>
-
-<div class="example"><p><code>
-http://physical_host_of_user1/u/user/anypath
-</code></p></div>
-
- <p>por lo que no es necesario que cada ruta URL sea válida en cada host físico
- backend. El siguiente conjunto de reglas hace esto por nosotros con la ayuda de los
- archivos de mapa, asumiendo que server0 es un servidor predeterminado que se usará si
- un usuario no tiene entrada en el mapa:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"</pre>
-
- </dd>
- </dl>
-
- <p>Consulte la documentación de la directiva <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>
- y el <a href="./rewritemap.html">Cómo usar RewriteMap</a>
- para más discusión de la sintaxis de esta directiva.</p>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="on-the-fly-content" id="on-the-fly-content">Regeneración de Contenido sobre la marcha</a> <a title="Enlace permanente" href="#on-the-fly-content" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Deseamos generar contenido dinámicamente, pero almacenarlo
- estáticamente una vez que se ha generado. Esta regla verificará la
- existencia del archivo estático, y si no está allí, lo generará.
- Los archivos estáticos pueden eliminarse periódicamente, si se desea (digamos,
- mediante cron) y se regenerarán bajo demanda.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- Esto se hace mediante el siguiente conjunto de reglas:
-
-<pre class="prettyprint lang-config"># This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]</pre>
-
-
- <p>El operador <code>-U</code> determina si la cadena de prueba
- (en este caso, <code>REQUEST_URI</code>) es una URL válida. Lo hace
- mediante una sub-solicitud. En el caso de que esta sub-solicitud falle -
- es decir, el recurso solicitado no existe - esta regla invoca
- el programa CGI <code>/regenerate_page.cgi</code>, que genera
- el recurso solicitado y lo guarda en el directorio de documentos, de modo
- que la próxima vez que se solicite, se pueda servir una copia estática.</p>
-
- <p>De esta manera, documentos que se actualizan con poca frecuencia pueden servirse en
- forma estática. Si los documentos necesitan actualizarse, pueden eliminarse
- del directorio de documentos, y se regenerarán la
- próxima vez que se soliciten.</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="load-balancing" id="load-balancing">Balanceo de Carga</a> <a title="Enlace permanente" href="#load-balancing" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Deseamos distribuir aleatoriamente la carga entre varios servidores
- usando <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Usaremos <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> y una lista de servidores
- para lograr esto.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]</pre>
-
-
-<p><code>serverlist.txt</code> contendrá una lista de los servidores:</p>
-
-<div class="example"><p><code>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</code></p></div>
-
-<p>Si desea que un servidor particular reciba más carga que los
-otros, agreguelo más veces a la lista.</p>
-
- </dd>
-
- <dt>Discusión</dt>
- <dd>
-<p>Apache viene con un módulo de balanceo de carga -
-<code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> - que es mucho más flexible y
-con más funcionalidades que cualquier cosa que pueda construir usando <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="structuredhomedirs" id="structuredhomedirs">Directorios de Usuario Estructurados</a> <a title="Enlace permanente" href="#structuredhomedirs" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Algunos sitios con miles de usuarios usan una
- disposición de directorio personal estructurada, <em>es decir,</em> cada directorio personal está en un
- subdirectorio que comienza (por ejemplo) con el primer
- carácter del nombre de usuario. Así, <code>/~larry/anypath</code>
- es <code>/home/<strong>l</strong>/larry/public_html/anypath</code>
- mientras que <code>/~waldo/anypath</code> es
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code>.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Usamos el siguiente conjunto de reglas para expandir las URLs de tilde
- a la disposición anterior.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"</pre>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="redirectanchors" id="redirectanchors">Redireccionando Anclas</a> <a title="Enlace permanente" href="#redirectanchors" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Por defecto, redirigir a un ancla HTML no funciona,
- porque <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> escapa el carácter <code>#</code>,
- convirtiéndolo en <code>%23</code>. Esto, a su vez, rompe la
- redirección.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Use la bandera <code>[NE]</code> en la
- <code>RewriteRule</code>. NE significa No Escapar.
- </p>
- </dd>
-
- <dt>Discusión:</dt>
- <dd>Esta técnica por supuesto también funcionará con otros
- caracteres especiales que <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, por defecto, codifica en URL.</dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="time-dependent" id="time-dependent">Reescritura Dependiente del Tiempo</a> <a title="Enlace permanente" href="#time-dependent" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Deseamos usar <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> para servir contenido diferente basado en
- la hora del día.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Hay muchas variables llamadas <code>TIME_xxx</code>
- para condiciones de reescritura. En conjunto con los patrones
- especiales de comparación lexicográfica <code><STRING</code>,
- <code>>STRING</code> y <code>=STRING</code> podemos
- hacer redirecciones dependientes del tiempo:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"</pre>
-
-
- <p>Esto proporciona el contenido de <code>foo.day.html</code>
- bajo la URL <code>foo.html</code> de
- <code>07:01-18:59</code> y en el tiempo restante el
- contenido de <code>foo.night.html</code>.</p>
-
- <div class="warning"><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>, proxies intermedios
- y navegadores pueden cada uno almacenar en caché las respuestas y causar que cualquiera de las páginas se
- muestre fuera de la ventana de tiempo configurada.
- Se puede usar <code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code> para controlar este
- efecto. Por supuesto, es mucho mejor simplemente servir el
- contenido dinámicamente y personalizarlo basándose en la hora del día.</div>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="setenvvars" id="setenvvars">Establecer Variables de Entorno Basadas en Partes de la URL</a> <a title="Enlace permanente" href="#setenvvars" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>A veces, queremos mantener algún tipo de estado cuando
- realizamos una reescritura. Por ejemplo, desea tomar nota de que
- ha realizado esa reescritura, para poder verificar más tarde si una
- solicitud llegó a través de esa reescritura. Una forma de hacer esto es estableciendo una
- variable de entorno.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Use la bandera [E] para establecer una variable de entorno.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]</pre>
-
-
- <p>Más adelante en su conjunto de reglas puede verificar esta variable
- de entorno usando una RewriteCond:</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{ENV:rewritten}" =1</pre>
-
-
- <p>Tenga en cuenta que las variables de entorno no sobreviven a una
- redirección externa. Podría considerar usar la bandera [CO] para establecer una
- cookie. Para reescrituras en contexto per-directorio y htaccess, donde la sustitución
- final se procesa como una redirección interna, las variables
- de entorno de la ronda anterior de reescritura se prefijan con
- "REDIRECT_". </p>
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Idiomas disponibles: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Reportar un error</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Techniques avancées avec mod_rewrite - Serveur HTTP Apache Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
-<p class="apache">Serveur HTTP Apache Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Techniques avancées avec mod_rewrite</h1>
-<div class="toplang">
-<p><span>Langues Disponibles: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
-
-
-<p>Ce document complète la <a href="../mod/mod_rewrite.html">documentation de référence</a> du
- module <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Il présente un certain nombre
- de techniques avancées quant à
- l'utilisation de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
-
-
-
-<div class="warning">Notez que la plupart des exemples ne fonctionneront
-pas en l'état dans la configuration particulière de votre serveur ; il
-est donc important de bien comprendre leur fonctionnement, plutôt que de
-simplement les copier/coller dans votre configuration.</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#sharding">Distribution de la charge entre plusieurs serveurs
- d'arrière-plan en fonction de l'adresse IP</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#on-the-fly-content">Régéneration de contenu à la volée</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#load-balancing">Répartition de charge</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#structuredhomedirs">Répertoires Home structurés</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#redirectanchors">Redirection des ancrages</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#time-dependent">Réécriture dépendant de l'heure</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#setenvvars">Définir des variables d'environnement en fonction de
- certaines parties de l'URL</a></li>
-</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module</a></li><li><a href="intro.html">Introduction à mod_rewrite</a></li><li><a href="remapping.html">Redirection et remise en
-correspondance</a></li><li><a href="access.html">Contrôler l'accès</a></li><li><a href="vhosts.html">serveurs virtuels</a></li><li><a href="proxy.html">serveurs mandataires</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li><li><a href="#comments_section">Commentaires</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sharding" id="sharding">Distribution de la charge entre plusieurs serveurs
- d'arrière-plan en fonction de l'adresse IP</a> <a title="Lien permanent" href="#sharding" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>La fragmentation ou "sharding" est une technique courante de
- distribution de la charge du serveur ou de l'espace de stockage.
- Quand on utilise cette méthode, un serveur frontal utilise l'URL
- pour répartir de manière appropriée les utilisateurs et objets
- entre différents serveurs d'arrière-plan.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>On maintient une table de correspondance entre utilisateurs et
- serveurs cibles dans des fichiers externes. Ces derniers se
- présentent comme suit :</p>
-
-<div class="example"><p><code>
-utilisateur1 serveur_physique_utilisateur1<br />
-utilisateur2 serveur_physique_utilisateur2<br />
-# etc ...
-</code></p></div>
-
- <p>Tout ceci est enregistré dans un fichier
- <code>correspondances-utilisateurs-serveurs</code>. Le but est de
- faire correspondre</p>
-
-<div class="example"><p><code>
-/u/utilisateur1/chemin
-</code></p></div>
-
- <p>avec</p>
-
-<div class="example"><p><code>
-http://serveur_physique_utilisateur1/u/utilisateur/chemin
-</code></p></div>
-
- <p>il n'est ainsi pas nécessaire que tous les chemins URL soient
- valides sur tous les serveurs physiques d'arrière-plan. Le jeu de
- règles suivant fait tout ceci pour nous, en s'appuyant sur les
- fichiers de correspondances, en supposant que serveur0 est un
- serveur par défaut qui sera utilisé lorsqu'un utilisateur ne
- possèdera pas d'entrée dans la table de correspondances :</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"</pre>
-
- </dd>
- </dl>
-
- <p>Voir la documentation de <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> et le <a href="./rewritemap.html">RewriteMap HowTo</a> pour une description plus
- approfondie de la syntaxe de cette directive.</p>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="on-the-fly-content" id="on-the-fly-content">Régéneration de contenu à la volée</a> <a title="Lien permanent" href="#on-the-fly-content" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Nous voulons générer du contenu de manière dynamique, mais le
- conserver de manière statique lorsqu'il a été généré. La règle
- suivante vérifie l'existence du fichier statique, et le génère
- s'il est absent. Les fichiers statiques peuvent être supprimés
- périodiquement si on le désire (par exemple via cron), et seront
- régénérés à la demande.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- A cet effet, on utilise le jeu de règles suivant :
-
-<pre class="prettyprint lang-config"># Cet exemple n'est valable que dans un contexte de répertoire
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]</pre>
-
-
- <p>L'opérateur <code>-U</code> permet de déterminer si la chaîne
- de test (dans ce cas <code>REQUEST_URI</code>) est une URL valide.
- Pour ce faire, il utilise une sous-requête. Si cette sous-requête
- échoue, ou en d'autres termes, si la ressource demandée n'existe pas,
- cette règle invoque le programme CGI
- <code>/regenerate_page.cgi</code> qui génère la ressource
- demandée et la sauvegarde dans le répertoire des documents, de
- façon à ce qu'une copie statique puisse être servie lors d'une
- demande ultérieure.</p>
-
- <p>De cette façon, les documents qui ne sont pas mis à jour
- régulièrement peuvent être servis sous une forme statique. Si ces
- documents doivent être réactualisés, on peut les supprimer du
- répertoire des documents, et ils seront ainsi régénérés à la
- prochaine demande.</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="load-balancing" id="load-balancing">Répartition de charge</a> <a title="Lien permanent" href="#load-balancing" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Nous voulons répartir la charge de manière aléatoire entre
- plusieurs serveurs en utilisant <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Pour y parvenir, nous allons utiliser la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> et une liste de
- serveurs.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:serveurs}/$1" [P,L]</pre>
-
-
-<p><code>liste-serveurs.txt</code> contiendra la liste des serveurs :</p>
-
-<div class="example"><p><code>
-## liste-serveurs.txt<br />
-<br />
-serveurs un.example.com|deux.example.com|trois.example.com<br />
-</code></p></div>
-
-<p>Si vous voulez qu'un serveur se voit confier d'avantage de charge que
-les autres, faites le figurer plusieurs fois dans la liste.</p>
-
- </dd>
-
- <dt>Discussion</dt>
- <dd>
-<p>Apache possède un module de répartition de charge -
-<code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> - beaucoup plus souple et présentant
-plus de fonctionnalités dans ce domaine que <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="structuredhomedirs" id="structuredhomedirs">Répertoires Home structurés</a> <a title="Lien permanent" href="#structuredhomedirs" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Certains sites avec des milliers d'utilisateurs organisent
- les répertoires utilisateurs de manière structurée, c'est à
- dire que chaque répertoire utilisateur se trouve dans un
- sous-répertoire dont le nom commence (par exemple) par le
- premier caractère du nom de l'utilisateur. Ainsi,
- <code>/~larry/chemin</code> correspond à
- <code>/home/<strong>l</strong>/larry/public_html/chemin</code>, alors
- que <code>/~waldo/chemin</code> correspond à
- <code>/home/<strong>w</strong>/waldo/public_html/chemin</code>.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>On utilise le jeu de règles suivant pour développer les
- URLs avec tilde selon l'organisation structurée précédente.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"</pre>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="redirectanchors" id="redirectanchors">Redirection des ancrages</a> <a title="Lien permanent" href="#redirectanchors" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Par défaut, la redirection vers un ancrage HTML ne fonctionne
- pas, car <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> échappe le caractère <code>#</code> en le
- transformant en <code>%23</code>, ce qui rend la redirection
- inopérante.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>On utilise le drapeau <code>[NE]</code> dans la règle
- <code>RewriteRule</code>. NE signifie "No Escape".
- </p>
- </dd>
-
- <dt>Discussion :</dt>
- <dd>Cette technique fonctionne bien entendu pour tout autre
- caractère spécial que <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, par défaut, code pour insertion
- dans une URL.</dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="time-dependent" id="time-dependent">Réécriture dépendant de l'heure</a> <a title="Lien permanent" href="#time-dependent" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Nous voulons servir des contenus différents selon l'heure du
- jour en utilisant <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Il existe de nombreuses variables nommées
- <code>TIME_xxx</code> utilisables dans les conditions de
- réécriture. Utilisées en conjonction avec les modèles de
- comparaison lexicographique spéciaux <code><STRING</code>,
- <code>>STRING</code> et <code>=STRING</code>, elles
- permettent d'effectuer des redirections dépendant de
- l'heure :</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"</pre>
-
-
- <p>Avec cet exemple, l'URL <code>foo.html</code> renvoie
- le contenu de <code>foo.jour.html</code> durant le
- créneau horaire <code>07:01-18:59</code>, et le contenu de
- <code>foo.nuit.html</code> le reste du temps.</p>
-
- <div class="warning"><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>, les mandataires
- intermédiaires et les navigateurs peuvent chacun mettre en cache
- les réponses et ainsi afficher une des deux pages en dehors de
- la fenêtre de temps configurée. On peut utiliser
- <code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code> pour contourner ce problème. Il est
- cependant bien plus commode de servir un contenu dynamique, et
- de le personnaliser en fonction de l'heure du jour.</div> </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="setenvvars" id="setenvvars">Définir des variables d'environnement en fonction de
- certaines parties de l'URL</a> <a title="Lien permanent" href="#setenvvars" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Parfois, nous voulons conserver une certaine forme de statut
- lorsqu'une réécriture a eu lieu. Par exemple, vous souhaitez
- consigner le fait que cette réécriture a eu lieu, et vous servir
- plus tard de cette information pour déterminer si une requête était
- concernée par cette réécriture. Pour y parvenir, on peut utiliser
- une variable d'environnement.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Utiliser le drapeau [E] pour définir une variable
- d'environnement.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/cheval/(.*)" "/poney/$1" [E=<strong>rewritten:1</strong>]</pre>
-
-
- <p>Plus loin dans votre jeu de règles, vous pouvez vérifier le
- contenu de cette variable d'environnement via une directive
- RewriteCond :</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{ENV:rewritten}" =1</pre>
-
-
- <p>Notez que les variables d'environnement ne survivent pas à une
- redirection externe. Vous devez alors utiliser le drapeau [CO] pour définir
- un cookie. Pour les redirections de niveau répertoire et htaccess où la
- substitution finale est traitée en tant que redirection interne, les
- variables d'environnement du tour de réécriture précédent sont préfixées par
- "REDIRECT_".</p>
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Langues Disponibles: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>mod_rewrite の高度なテクニック - Apache HTTP サーバ バージョン 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/quickreference.html">ディレクティブ</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP サーバ バージョン 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーバ</a> > <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> > <a href="../">バージョン 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>mod_rewrite の高度なテクニック</h1>
-<div class="toplang">
-<p><span>翻訳済み言語: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">この日本語訳はすでに古くなっている
- 可能性があります。
- 最近更新された内容を見るには英語版をご覧下さい。
- </div>
-
-
-<p>このドキュメントは <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">リファレンスドキュメント</a>を補足するものです。
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> を使用したいくつかの高度なテクニックを提供します。</p>
-
-
-
-<div class="warning">これらの例の多くは、特定のサーバ設定ではそのまま
-動作しないことに注意してください。そのため、単にコピー&ペーストするのではなく、
-内容を理解することが重要です。</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#sharding">URL ベースの複数バックエンドへのシャーディング</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#on-the-fly-content">オンザフライのコンテンツ再生成</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#load-balancing">ロードバランシング</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#structuredhomedirs">構造化ユーザディレクトリ</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#redirectanchors">アンカーのリダイレクト</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#time-dependent">時間に依存する書き換え</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#setenvvars">URL の部分に基づく環境変数の設定</a></li>
-</ul><h3>参照</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">モジュールドキュメント</a></li><li><a href="intro.html">mod_rewrite 入門</a></li><li><a href="remapping.html">リダイレクトとリマッピング</a></li><li><a href="access.html">アクセス制御</a></li><li><a href="vhosts.html">バーチャルホスト</a></li><li><a href="proxy.html">プロキシ</a></li><li><a href="rewritemap.html">RewriteMap の使用</a></li><li><a href="avoid.html">mod_rewrite を使わない場合</a></li><li><a href="#comments_section">コメント</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sharding" id="sharding">URL ベースの複数バックエンドへのシャーディング</a> <a title="Permanent link" href="#sharding" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>サーバ負荷やストレージスペースの負担を分散するための
- 一般的なテクニックは「シャーディング」と呼ばれます。
- この方法を使用すると、フロントエンドサーバは URL を使用して
- ユーザやオブジェクトを別々のバックエンドサーバに一貫して
- 「シャード」します。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>ユーザからターゲットサーバへのマッピングが外部マップファイルに
- 保持されています。次のような形式です:</p>
-
-<div class="example"><p><code>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... 以下同様
-</code></p></div>
-
- <p>これを <code>map.users-to-hosts</code> ファイルに入れます。目的は
- 以下をマッピングすることです:</p>
-
-<div class="example"><p><code>
-/u/user1/anypath
-</code></p></div>
-
- <p>を以下にマッピング:</p>
-
-<div class="example"><p><code>
-http://physical_host_of_user1/u/user/anypath
-</code></p></div>
-
- <p>このようにすると、すべての URL パスがすべてのバックエンド物理
- ホストで有効である必要はありません。以下のルールセットは、
- マップファイルの助けを借りてこれを実現します。server0 は、
- ユーザがマップにエントリを持たない場合に使用されるデフォルト
- サーバとして想定しています:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"</pre>
-
- </dd>
- </dl>
-
- <p>このディレクティブの構文の詳細については、
- <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>
- ドキュメントと <a href="./rewritemap.html">RewriteMap ハウツー</a>
- を参照してください。</p>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="on-the-fly-content" id="on-the-fly-content">オンザフライのコンテンツ再生成</a> <a title="Permanent link" href="#on-the-fly-content" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>コンテンツを動的に生成したいが、一度生成したら静的に
- 保存したいとします。このルールは静的ファイルの存在を確認し、
- 存在しない場合は生成します。静的ファイルは必要に応じて
- (例えば cron で) 定期的に削除でき、要求に応じて再生成
- されます。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- これは以下のルールセットで実現されます:
-
-<pre class="prettyprint lang-config"># This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]</pre>
-
-
- <p><code>-U</code> 演算子は、テスト文字列 (この場合は
- <code>REQUEST_URI</code>) が有効な URL かどうかを判定します。
- これはサブリクエストを通じて行われます。このサブリクエストが
- 失敗した場合、つまりリクエストされたリソースが存在しない場合、
- このルールは CGI プログラム <code>/regenerate_page.cgi</code>
- を呼び出し、リクエストされたリソースを生成してドキュメント
- ディレクトリに保存します。これにより、次回リクエストされたときに
- 静的コピーを提供できます。</p>
-
- <p>このようにして、更新頻度の低いドキュメントを静的形式で
- 提供できます。ドキュメントを更新する必要がある場合は、
- ドキュメントディレクトリから削除すれば、次回リクエストされたときに
- 再生成されます。</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="load-balancing" id="load-balancing">ロードバランシング</a> <a title="Permanent link" href="#load-balancing" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> を使用して、複数のサーバに
- ランダムに負荷を分散したいとします。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>これを実現するために <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> とサーバの
- リストを使用します。</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]</pre>
-
-
-<p><code>serverlist.txt</code> にはサーバのリストが含まれます:</p>
-
-<div class="example"><p><code>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</code></p></div>
-
-<p>特定のサーバにより多くの負荷を割り当てたい場合は、
-リストにそのサーバを複数回追加してください。</p>
-
- </dd>
-
- <dt>議論</dt>
- <dd>
-<p>Apache にはロードバランシングモジュール -
-<code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> - が付属しており、
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> で構築できるものよりもはるかに柔軟で
-機能豊富です。</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="structuredhomedirs" id="structuredhomedirs">構造化ユーザディレクトリ</a> <a title="Permanent link" href="#structuredhomedirs" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>数千人のユーザを持つサイトの中には、構造化されたホームディレクトリ
- レイアウトを使用するものがあります。<em>つまり</em>、各ホームディレクトリは
- ユーザ名の最初の文字で始まるサブディレクトリにあります。例えば、
- <code>/~larry/anypath</code> は
- <code>/home/<strong>l</strong>/larry/public_html/anypath</code>
- であり、<code>/~waldo/anypath</code> は
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code>
- です。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>上記のレイアウトにチルダ URL を展開するために、以下のルールセットを
- 使用します。</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"</pre>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="redirectanchors" id="redirectanchors">アンカーのリダイレクト</a> <a title="Permanent link" href="#redirectanchors" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>デフォルトでは、HTML アンカーへのリダイレクトは機能しません。
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> が <code>#</code> 文字をエスケープして
- <code>%23</code> に変換するためです。これによりリダイレクトが
- 壊れます。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p><code>RewriteRule</code> で <code>[NE]</code> フラグを
- 使用します。NE は No Escape (エスケープしない) の略です。
- </p>
- </dd>
-
- <dt>議論:</dt>
- <dd>このテクニックは、<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> がデフォルトで
- URL エンコードする他の特殊文字にも適用できます。</dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="time-dependent" id="time-dependent">時間に依存する書き換え</a> <a title="Permanent link" href="#time-dependent" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> を使用して、時間帯に基づいて
- 異なるコンテンツを提供したいとします。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>書き換え条件に使用できる <code>TIME_xxx</code> という名前の
- 変数が多数あります。特殊な辞書順比較パターン
- <code><STRING</code>、<code>>STRING</code>、
- <code>=STRING</code> と組み合わせることで、時間に依存する
- リダイレクトを行えます:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"</pre>
-
-
- <p>これにより、URL <code>foo.html</code> で
- <code>07:01-18:59</code> の間は <code>foo.day.html</code> の
- コンテンツを、残りの時間帯は <code>foo.night.html</code> の
- コンテンツを提供します。</p>
-
- <div class="warning"><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>、中間プロキシ、
- およびブラウザはそれぞれレスポンスをキャッシュし、設定された
- 時間枠外にいずれかのページが表示される可能性があります。
- <code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code> を使用してこの影響を制御できます。
- もちろん、コンテンツを動的に提供し、時間帯に基づいて
- カスタマイズする方がはるかに良いでしょう。</div>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="setenvvars" id="setenvvars">URL の部分に基づく環境変数の設定</a> <a title="Permanent link" href="#setenvvars" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>書き換えを実行する際に何らかの状態を維持したい場合が
- あります。例えば、書き換えを行ったことをメモし、後でリクエストが
- その書き換えを経由したかどうかを確認したいとします。これを行う
- 1 つの方法は、環境変数を設定することです。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>[E] フラグを使用して環境変数を設定します。</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]</pre>
-
-
- <p>後のルールセットで RewriteCond を使用してこの環境変数を
- 確認できます:</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{ENV:rewritten}" =1</pre>
-
-
- <p>環境変数は外部リダイレクトでは保持されないことに注意
- してください。[CO] フラグを使用して cookie を設定することを
- 検討するとよいでしょう。ディレクトリ単位および htaccess の
- 書き換えでは、最終的な置換が内部リダイレクトとして処理されるため、
- 前回の書き換えラウンドの環境変数には "REDIRECT_" がプレフィックスとして
- 付きます。</p>
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>翻訳済み言語: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
-<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/quickreference.html">ディレクティブ</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="EUC-KR"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head>
-<meta content="text/html; charset=EUC-KR" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>mod_rewrite �� 기� - Apache HTTP Server Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">¸ðµâ</a> | <a href="../mod/quickreference.html">Áö½Ã¾îµé</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">¿ë¾î</a> | <a href="../sitemap.html">»çÀÌÆ®¸Ê</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Server Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>mod_rewrite �� 기�</h1>
-<div class="toplang">
-<p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">ÀÌ ¹®¼´Â ÃÖ½ÅÆÇ ¹ø¿ªÀÌ ¾Æ´Õ´Ï´Ù.
- ÃÖ±Ù¿¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼¸¦ Âü°íÇϼ¼¿ä.</div>
-
-
-<p>�� 문��� <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">참조 문ì��</a>ë¥� ë³´ì¶©�©ë����.
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ë¥� �¬ì�©í�� ëª� ê°�ì§� ê³�ê¸� 기ì����
-��공����.</p>
-
-<div class="warning">�� ������ ì¤� ë§��� ê²��� �¹ì�� ��ë²� �¤ì������
-ê·¸ë��ë¡� ������ì§� ���� �� ���¼ë��ë¡�, �¨ì���� ����ë¥� ë³µì�¬í����
-�¤ì���� ë¶��¬ë�£ê¸°ë³´ë�¤ë�� �´í�´í���� ê²��� ì¤����©ë����.</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#sharding">�¬ë�� ë°±ì������ ���� URL 기ë� �¤ë��</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#on-the-fly-content">�¤ì��ê°� ì½���ì¸� �¬ì����</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#load-balancing">��� ���</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#structuredhomedirs">구조���� �¬ì�©ì�� ������ë¦�</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#redirectanchors">�µì»¤ 리ë�¤ì�´ë����</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#time-dependent">��ê°� 기ë� �¬ì����</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#setenvvars">URL ë¶�ë¶��� �°ë¥¸ ��ê²� ë³��� �¤ì��</a></li>
-</ul><h3>Âü°í</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">모ë�� 문ì��</a></li><li><a href="intro.html">mod_rewrite ��ê°�</a></li><li><a href="remapping.html">리ë�¤ì�´ë����ê³� �¬ë§¤��</a></li><li><a href="access.html">��ê·� ����</a></li><li><a href="vhosts.html">ê°��� �¸ì�¤í��</a></li><li><a href="proxy.html">��ë¡���</a></li><li><a href="rewritemap.html">RewriteMap �¬ì�©í��ê¸�</a></li><li><a href="avoid.html">mod_rewriteë¥� �¬ì�©í��ì§� ë§����� �� ê²½ì��</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sharding" id="sharding">�¬ë�� ë°±ì������ ���� URL 기ë� �¤ë��</a> <a title="Permanent link" href="#sharding" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p>��ë²� ë¶����� ���� ê³µê��� ë¶��°í���� �¼ë����� 기ì����
- "�¤ë��"�´ë�¼ê� �©ë����. �� ë°©ë��� �¬ì�©í�� �� ��ë¡��¸ì����
- ��ë²��� URL�� �¬ì�©í���� �¬ì�©ì�� ���� ê°�ì²´ë�� ë³�����
- ë°±ì���� ��ë²��� �¼ê���ê²� "�¤ë��"�©ë����.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- <p>�¬ì�©ì������ ���� ��ë²�ë¡��� 매í���� �¸ë� ë§� ���¼ì��
- ��ì§��©ë����. �¤ì��ê³� ê°��� ����������:</p>
-
-<div class="example"><p><code>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... �±ë��
-</code></p></div>
-
- <p>�´ê��� <code>map.users-to-hosts</code> ���¼ì�� �£ì�µë����.
- 목ì���� �¤ì���� 매í������ ê²�������;</p>
-
-<div class="example"><p><code>
-/u/user1/anypath
-</code></p></div>
-
- <p>���� ê²��� �¤ì���¼ë�:</p>
-
-<div class="example"><p><code>
-http://physical_host_of_user1/u/user/anypath
-</code></p></div>
-
- <p>�°ë�¼ì�� 모ë�� URL ê²½ë�ê°� 모ë�� ë°±ì���� 물리�� �¸ì�¤í�¸ì����
- ���¨í�� ����ê°� ���µë����. �¤ì�� ê·�ì¹� �¸í�¸ë�� ë§� ���¼ì��
- �����¼ë� �´ë�� ������ë©�, �¬ì�©ì��ê°� ë§µì�� ��목ì�� ����
- ê²½ì�� server0�� 기본 ��ë²�ë¡� �¬ì�©ë�©ë����:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"</pre>
-
- </dd>
- </dl>
-
- <p>�� ì§����´ì�� 구문�� ���� ���¸í�� �´ì�©ì��
- <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>
- 문ì���� <a href="./rewritemap.html">RewriteMap �¬ì�©ë�</a>��
- 참조��������.</p>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="on-the-fly-content" id="on-the-fly-content">�¤ì��ê°� ì½���ì¸� �¬ì����</a> <a title="Permanent link" href="#on-the-fly-content" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p>ì½���ì¸�ë¥� �����¼ë� ���±í����, �� ë²� ���±ë��ë©�
- �����¼ë� ���¥í��ê³��� �©ë����. �� ê·�ì¹��� ���� ���¼ì��
- ì¡´ì�¬ë�� ���¸í��ê³�, ���¼ë©´ ���±í�©ë����. ���� ���¼ì��
- ������ ê²½ì�� (��ë¥� �¤ì�� cron�� �µí��) 주기���¼ë�
- ��ê±°í�� �� ���¼ë©°, ������ �°ë�� �¬ì���±ë�©ë����.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- �´ë�� �¤ì�� ê·�ì¹� �¸í�¸ë� �����©ë����:
-
-<pre class="prettyprint lang-config"># This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]</pre>
-
-
- <p><code>-U</code> �°ì�°ì���� ���¤í�� 문ì����(�� ê²½ì��
- <code>REQUEST_URI</code>)�� ���¨í�� URL�¸ì�
- ���¨í�©ë����. �´ë�� ��ë¸���ì²��� �µí�� �����©ë����.
- �� ��ë¸���ì²��� �¤í�¨í��ë©� - ì¦�, ��ì²��� ������ ì¡´ì�¬í��ì§�
- ���¼ë©´ - �� ê·�ì¹��� CGI ��ë¡�ê·¸ë��
- <code>/regenerate_page.cgi</code>ë¥� �¸ì�����
- ��ì²��� ������ ���±í��ê³� 문ì�� ������리ì�� ���¥í��ë¯�ë¡�,
- �¤ì���� ��ì²��� �� ���� ë³µì�¬ë³¸�� ��ê³µí�� �� ���µë����.</p>
-
- <p>�� ë°©ì���¼ë� ��ì£� ���°ì�´í�¸ë��ì§� ���� 문ì��ë¥� ����
- ����ë¡� ��ê³µí�� �� ���µë����. 문ì��ë¥� ��ë¡�ê³�침í�´ì�� ����
- ê²½ì�� 문ì�� ������리ì���� ������ �� ���¼ë©°, �¤ì����
- ��ì²��� �� �¬ì���±ë�©ë����.</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="load-balancing" id="load-balancing">ë¶��� ë¶���</a> <a title="Permanent link" href="#load-balancing" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ë¥� �¬ì�©í���� �¬ë�� ��ë²���
- 무ì����ë¡� ë¶���ë¥� ë¶��°í��ê³��� �©ë����.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- <p><code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>�
- ��ë²� 목ë��� �¬ì�©í���� �´ë�� �����©ë����.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]</pre>
-
-
-<p><code>serverlist.txt</code>���� ��ë²� 목ë��� �¬í�¨ë�©ë����:</p>
-
-<div class="example"><p><code>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</code></p></div>
-
-<p>�¹ì�� ��ë²�ê°� �¤ë¥¸ ��ë²�ë³´ë�� �� ë§��� ë¶���ë¥� ë°���ë¡� ���¤ë©´
-목ë��� �´ë�� ��ë²�ë¥� �� ë§��� ì¶�ê°���������.</p>
-
- </dd>
-
- <dt>���</dt>
- <dd>
-<p>Apache���� ��� ��� 모���
-<code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code>ê°� �¬í�¨ë���� ���¼ë©°,
-�´ê��� <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ë¥� �¬ì�©í���� ì¡°í�©í�� �� ����
-�´ë�� ê²�ë³´ë�� �¨ì�� �� ���°í��ê³� 기ë�¥ì�� ��ë¶��©ë����.</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="structuredhomedirs" id="structuredhomedirs">구조���� �¬ì�©ì�� ������ë¦�</a> <a title="Permanent link" href="#structuredhomedirs" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p>��ì²� ëª��� �¬ì�©ì��ê°� ���� �¼ë� �¬ì�´í�¸ë�� 구조����
- �� ������ë¦� ���´ì������ �¬ì�©í�©ë����. <em>ì¦�,</em> ê°�
- �� ������리ë�� �¬ì�©ì�� �´ë��� ì²� ë²�ì§� 문ì��ë¡� ��������
- ���� ������리ì�� ���µë����. ��ë¥� �¤ì��
- <code>/~larry/anypath</code>��
- <code>/home/<strong>l</strong>/larry/public_html/anypath</code>�´ê�
- <code>/~waldo/anypath</code>��
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code>������.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- <p>���� ���´ì�����¼ë� 물결�� URL�� ���¥í��ê¸� ����
- �¤ì�� ê·�ì¹� �¸í�¸ë�� �¬ì�©í�©ë����.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"</pre>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="redirectanchors" id="redirectanchors">�µì»¤ 리ë�¤ì�´ë����</a> <a title="Permanent link" href="#redirectanchors" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p>기본���¼ë� HTML �µì»¤ë¡��� 리ë�¤ì�´ë���¸ë�� ������ì§�
- ���µë����. <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ê°� <code>#</code>
- 문ì��ë¥� �´ì�¤ì��´í������ <code>%23</code>�¼ë� ë³�����ê¸�
- ��문ì������. �´ë� �¸í�� 리ë�¤ì�´ë������ ì¤��¨ë�©ë����.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- <p><code>RewriteRule</code>�� <code>[NE]</code>
- ����ê·¸ë�� �¬ì�©í�©ë����. NE�� No Escapeë¥� ��미í�©ë����.</p>
- </dd>
-
- <dt>���:</dt>
- <dd>�� 기ì���� <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ê°� 기본���¼ë�
- URL �¸ì��©í���� �¤ë¥¸ �¹ì�� 문ì������ 물ë� ���©ë�©ë����.</dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="time-dependent" id="time-dependent">��ê°� 기ë� �¬ì����</a> <a title="Permanent link" href="#time-dependent" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>ë¥� �¬ì�©í���� ��ê°����� �°ë��
- �¤ë¥¸ ì½���ì¸�ë¥� ��ê³µí��ê³��� �©ë����.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- <p>�¬ì���� ì¡°ê±´�� �¬ì�©í�� �� ���� <code>TIME_xxx</code>�¼ë��
- ë§��� ë³���ê°� ���µë����. �¹ì�� �¬ì���� ë¹�êµ� �¨í��
- <code><STRING</code>, <code>>STRING</code>,
- <code>=STRING</code>ê³� �¨ê� ��ê°� 기ë� 리ë�¤ì�´ë���¸ë��
- ������ �� ���µë����:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"</pre>
-
-
- <p>�´ê��� <code>07:01-18:59</code> �¬ì�´ì���� URL
- <code>foo.html</code> ���� <code>foo.day.html</code>��
- ì½���ì¸�ë¥� ��ê³µí��ê³�, ��머ì� ��ê°�����
- <code>foo.night.html</code>�� ����� ��공����.</p>
-
- <div class="warning"><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>, �� �����
- ë°� ë¸��¼ì�°ì���� ê°�ê°� ���µì�� ìº����� �� ���¼ë©°, 구ì�±ë��
- ��ê°� ì°� ë°����� �´ë�� ìª� ���´ì��� ������ �� ���µë����.
- <code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code>ë¥� �¬ì�©í���� �� �¨ê³¼ë¥�
- ���´í�� �� ���µë����. 물ë� ì½���ì¸�ë¥� �����¼ë� ��ê³µí��ê³�
- ��ê°����� �°ë�� �¬ì�©ì�� �������� ê²��� �¨ì�� ì¢��µë����.</div>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="setenvvars" id="setenvvars">URL ë¶�ë¶��� �°ë¥¸ ��ê²� ë³��� �¤ì��</a> <a title="Permanent link" href="#setenvvars" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p>����ë¡� �¬ì���±ì�� ������ �� �´ë�� ì¢�ë¥��� ����ë¥�
- ��ì§���ê³� �¶ì�� �� ���µë����. ��ë¥� �¤ì��, �´ë�� �¬ì���±ì��
- �������¤ë�� ê²��� 기ë����� ��ì¤��� ��ì²��� �´ë�� �¬ì���±ì��
- �µí�� ����ì§� ���¸í��ê³� �¶ì�� �� ���µë����. �´ë�� ��������
- �� ê°�ì§� ë°©ë��� ��ê²� ë³���ë¥� �¤ì������ ê²�������.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- <p>[E] ����ê·¸ë�� �¬ì�©í���� ��ê²� ë³���ë¥� �¤ì���©ë����.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]</pre>
-
-
- <p>��ì¤��� ê·�ì¹� �¸í�¸ì���� RewriteCondë¥� �¬ì�©í����
- �� ��ê²� ë³���ë¥� ���¸í�� �� ���µë����:</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{ENV:rewritten}" =1</pre>
-
-
- <p>��ê²� ë³����� �¸ë� 리ë�¤ì�´ë���¸ì���� ��ì§���ì§� �����¤ë��
- ���� ������������. ì¿��¤ë�� �¤ì�����¤ë©´ [CO] ����ê·¸ë��
- �¬ì�©í���� ê²��� ê³��¤í�� �� ���µë����. ������리ë� ë°�
- htaccess �¬ì���±ì���� ìµ�ì¢� ì¹����� �´ë� 리ë�¤ì�´ë���¸ë�
- ì²�리ë���� ê²½ì��, �´ì�� �¼ì�´ë���� �¬ì���±ì���� �� ��ê²� ë³�����
- "REDIRECT_" �����¬ê� ë¶��µë����.</p>
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">¸ðµâ</a> | <a href="../mod/quickreference.html">Áö½Ã¾îµé</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">¿ë¾î</a> | <a href="../sitemap.html">»çÀÌÆ®¸Ê</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>mod_rewrite ile İleri Teknikler - Apache HTTP Sunucusu Sürüm 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/quickreference.html">Yönergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Sunucusu Sürüm 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">Sürüm 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>mod_rewrite ile İleri Teknikler</h1>
-<div class="toplang">
-<p><span>Mevcut Diller: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
-
-
-<p>Bu belge, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">başvuru belgelerini</a> tamamlar.
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> kullanarak birkaç ileri teknik sunar.</p>
-
-
-
-<div class="warning">Bu örneklerin birçoğunun sizin sunucu yapılandırmanızda
-değişiklik yapılmadan çalışmayacağını unutmayın; bu nedenle örnekleri
-yapılandırmanıza kopyalayıp yapıştırmak yerine anlamanız
-önemlidir.</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#sharding">Birden Fazla Arka Uç Arasında URL Tabanlı Parçalama</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#on-the-fly-content">Anında İçerik Yeniden Oluşturma</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#load-balancing">Yük Dengeleme</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#structuredhomedirs">Yapılandırılmış Kullanıcı Dizinleri</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#redirectanchors">Çapaların Yeniden Yönlendirilmesi</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#time-dependent">Zamana Bağlı Yeniden Yazma</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#setenvvars">URL Parçalarına Göre Ortam Değişkenleri Atama</a></li>
-</ul><h3>Ayrıca bakınız:</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Modül belgeleri</a></li><li><a href="intro.html">mod_rewrite'a giriş</a></li><li><a href="remapping.html">Yeniden yönlendirme ve yeniden eşleme</a></li><li><a href="access.html">Erişim denetimi</a></li><li><a href="vhosts.html">Sanal konaklar</a></li><li><a href="proxy.html">Vekil kullanımı</a></li><li><a href="rewritemap.html">RewriteMap Kullanımı</a></li><li><a href="avoid.html">mod_rewrite kullanılmaması gereken durumlar</a></li><li><a href="#comments_section">Yorum</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sharding" id="sharding">Birden Fazla Arka Uç Arasında URL Tabanlı Parçalama</a> <a title="Permanent link" href="#sharding" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Sunucu yükünü veya depolama alanını dağıtmak için yaygın bir
- teknik "parçalama" (sharding) olarak adlandırılır. Bu yöntem
- kullanıldığında, bir ön uç sunucu kullanıcıları veya nesneleri
- tutarlı bir şekilde ayrı arka uç sunuculara "parçalamak" için
- URL'yi kullanır.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Kullanıcılardan hedef sunuculara bir eşleme, harici eşlem
- dosyalarında tutulur. Şöyle görünürler:</p>
-
-<div class="example"><p><code>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... ve böyle devam eder
-</code></p></div>
-
- <p>Bunu bir <code>map.users-to-hosts</code> dosyasına koyarız. Amaç
- şunu eşlemektir;</p>
-
-<div class="example"><p><code>
-/u/user1/anypath
-</code></p></div>
-
- <p>buna</p>
-
-<div class="example"><p><code>
-http://physical_host_of_user1/u/user/anypath
-</code></p></div>
-
- <p>böylece her URL yolunun her arka uç fiziksel konakta geçerli
- olması gerekmez. Aşağıdaki kural kümesi, eşlem dosyalarının
- yardımıyla bunu bizim için yapar; bir kullanıcının eşlemde
- girdisi yoksa server0'ın öntanımlı sunucu olarak
- kullanılacağını varsayar:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"</pre>
-
- </dd>
- </dl>
-
- <p>Bu yönergenin sözdizimi hakkında daha fazla tartışma için
- <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> belgelerine ve
- <a href="./rewritemap.html">RewriteMap Nasıl Yapılır</a> belgesine
- bakın.</p>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="on-the-fly-content" id="on-the-fly-content">Anında İçerik Yeniden Oluşturma</a> <a title="Permanent link" href="#on-the-fly-content" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>İçeriği devingen olarak oluşturmak, ancak oluşturulduktan
- sonra statik olarak saklamak istiyoruz. Bu kural, statik dosyanın
- varlığını kontrol eder ve yoksa oluşturur. Statik dosyalar
- istenirse periyodik olarak (örneğin cron ile) kaldırılabilir ve
- istek üzerine yeniden oluşturulur.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- Bu, aşağıdaki kural kümesiyle yapılır:
-
-<pre class="prettyprint lang-config"># This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]</pre>
-
-
- <p><code>-U</code> işleci, sınama dizgesinin (bu durumda
- <code>REQUEST_URI</code>) geçerli bir URL olup olmadığını belirler.
- Bunu bir alt istek aracılığıyla yapar. Bu alt istek başarısız
- olursa - yani istenen kaynak mevcut değilse - bu kural, istenen
- kaynağı oluşturan ve belge dizinine kaydeden
- <code>/regenerate_page.cgi</code> CGI programını çalıştırır; böylece
- bir sonraki istekte statik bir kopya sunulabilir.</p>
-
- <p>Bu şekilde, seyrek güncellenen belgeler statik biçimde
- sunulabilir. Belgelerin yenilenmesi gerekiyorsa belge dizininden
- silinebilir ve bir sonraki istekte yeniden oluşturulur.</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="load-balancing" id="load-balancing">Yük Dengeleme</a> <a title="Permanent link" href="#load-balancing" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> kullanarak yükü birkaç sunucu
- arasında rastgele dağıtmak istiyoruz.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Bunu gerçekleştirmek için <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> ve bir sunucu listesi
- kullanacağız.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]</pre>
-
-
-<p><code>serverlist.txt</code> sunucuların bir listesini içerecektir:</p>
-
-<div class="example"><p><code>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</code></p></div>
-
-<p>Belirli bir sunucunun diğerlerinden daha fazla yük almasını
-istiyorsanız, onu listeye daha fazla kez ekleyin.</p>
-
- </dd>
-
- <dt>Tartışma</dt>
- <dd>
-<p>Apache, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> ile bir araya getireceğiniz
-herhangi bir şeyden çok daha esnek ve özellik açısından zengin bir yük
-dengeleme modülü olan <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> ile
-birlikte gelir.</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="structuredhomedirs" id="structuredhomedirs">Yapılandırılmış Kullanıcı Dizinleri</a> <a title="Permanent link" href="#structuredhomedirs" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Binlerce kullanıcısı olan bazı siteler yapılandırılmış bir
- ev dizini düzeni kullanır; <em>yani</em> her ev dizini, kullanıcı
- adının (örneğin) ilk karakteriyle başlayan bir alt dizindedir.
- Böylece, <code>/~larry/anypath</code> şu olur:
- <code>/home/<strong>l</strong>/larry/public_html/anypath</code>;
- <code>/~waldo/anypath</code> ise şu olur:
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code>.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Tilde URL'leri yukarıdaki düzene göre genişletmek için
- aşağıdaki kural kümesini kullanırız.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"</pre>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="redirectanchors" id="redirectanchors">Çapaların Yeniden Yönlendirilmesi</a> <a title="Permanent link" href="#redirectanchors" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Öntanımlı olarak, bir HTML çapasına yönlendirme çalışmaz;
- çünkü <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> <code>#</code> karakterini
- kodlayarak <code>%23</code>'e dönüştürür. Bu da yönlendirmeyi
- bozar.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p><code>RewriteRule</code> üzerinde <code>[NE]</code> bayrağını
- kullanın. NE, Kodlama Yapma (No Escape) anlamına gelir.
- </p>
- </dd>
-
- <dt>Tartışma:</dt>
- <dd>Bu teknik, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> modülünün öntanımlı
- olarak URL-kodladığı diğer özel karakterlerle de çalışacaktır.</dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="time-dependent" id="time-dependent">Zamana Bağlı Yeniden Yazma</a> <a title="Permanent link" href="#time-dependent" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Günün saatine göre farklı içerik sunmak için
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> kullanmak istiyoruz.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Yeniden yazma koşulları için <code>TIME_xxx</code> adlı birçok
- değişken vardır. Özel sözlüksel karşılaştırma kalıpları olan
- <code><DİZGE</code>, <code>>DİZGE</code> ve
- <code>=DİZGE</code> ile birlikte zamana bağlı yönlendirmeler
- yapabiliriz:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"</pre>
-
-
- <p>Bu, <code>foo.html</code> URL'si altında
- <code>07:01-18:59</code> saatleri arasında
- <code>foo.day.html</code> içeriğini, geri kalan zamanda ise
- <code>foo.night.html</code> içeriğini sunar.</p>
-
- <div class="warning"><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>, ara vekiller
- ve tarayıcıların her biri yanıtları önbelleğe alabilir ve
- yapılandırılan zaman penceresinin dışında herhangi bir sayfanın
- gösterilmesine neden olabilir. Bu etkiyi kontrol etmek için
- <code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code> kullanılabilir. Elbette, içeriği
- devingen olarak sunmak ve günün saatine göre özelleştirmek çok
- daha iyidir.</div>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="setenvvars" id="setenvvars">URL Parçalarına Göre Ortam Değişkenleri Atama</a> <a title="Permanent link" href="#setenvvars" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Bazen bir yeniden yazma gerçekleştirdiğimizde bir tür durum
- bilgisi tutmak isteriz. Örneğin, bu yeniden yazmayı yaptığınıza
- dair bir not almak isteyebilirsiniz; böylece daha sonra bir
- isteğin bu yeniden yazma yoluyla gelip gelmediğini kontrol
- edebilirsiniz. Bunu yapmanın bir yolu bir ortam değişkeni
- ayarlamaktır.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Bir ortam değişkeni ayarlamak için [E] bayrağını kullanın.</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]</pre>
-
-
- <p>Daha sonra kural kümenizde bu ortam değişkenini bir RewriteCond
- kullanarak kontrol edebilirsiniz:</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{ENV:rewritten}" =1</pre>
-
-
- <p>Ortam değişkenlerinin harici bir yönlendirmeden sonra kalıcı
- olmadığını unutmayın. [CO] bayrağını kullanarak bir çerez
- ayarlamayı düşünebilirsiniz. Dizin başına ve htaccess yeniden
- yazmaları için, son değiştirme dahili bir yönlendirme olarak
- işlendiğinde, önceki yeniden yazma turundan gelen ortam
- değişkenlerinin başına "REDIRECT_" eklenir.</p>
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Mevcut Diller: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> adı altında lisanslıdır.</p>
-<p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/quickreference.html">Yönergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn" xml:lang="zh-cn"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>mod_rewrite 高级技术 - Apache HTTP 服务器 版本 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">模块</a> | <a href="../mod/quickreference.html">指令</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">常见问题</a> | <a href="../glossary.html">术语</a> | <a href="../sitemap.html">网站导航</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP 服务器版本 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP 服务器</a> > <a href="http://httpd.apache.org/docs/">文档</a> > <a href="../">版本 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>mod_rewrite 高级技术</h1>
-<div class="toplang">
-<p><span>可用语言: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">此翻译可能过期。要了解最近的更改,请阅读英文版。</div>
-
-
-<p>本文档是 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">参考文档</a>的补充。
-它提供了一些使用 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 的高级技术。</p>
-
-
-
-<div class="warning">请注意,这些示例中的许多不会在你的特定服务器配置中直接生效,
-因此理解它们非常重要,而不仅仅是将示例复制粘贴到你的配置中。</div>
-
-</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#sharding">基于 URL 的跨多后端分片</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#on-the-fly-content">即时内容再生成</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#load-balancing">负载均衡</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#structuredhomedirs">结构化用户目录</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#redirectanchors">重定向锚点</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#time-dependent">基于时间的重写</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#setenvvars">根据 URL 部分设置环境变量</a></li>
-</ul><h3>参见</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">模块文档</a></li><li><a href="intro.html">mod_rewrite 简介</a></li><li><a href="remapping.html">重定向和重映射</a></li><li><a href="access.html">访问控制</a></li><li><a href="vhosts.html">虚拟主机</a></li><li><a href="proxy.html">代理</a></li><li><a href="rewritemap.html">使用 RewriteMap</a></li><li><a href="avoid.html">何时不使用 mod_rewrite</a></li><li><a href="#comments_section">评论</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sharding" id="sharding">基于 URL 的跨多后端分片</a> <a title="Permanent link" href="#sharding" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>一种分配服务器负载或存储空间的常见技术称为"分片"。
- 使用此方法时,前端服务器将使用 URL 将用户或对象一致地"分片"到
- 不同的后端服务器。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>在外部映射文件中维护从用户到目标服务器的映射。
- 它们看起来像:</p>
-
-<div class="example"><p><code>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... and so on
-</code></p></div>
-
- <p>我们将其放入 <code>map.users-to-hosts</code> 文件。
- 目标是映射:</p>
-
-<div class="example"><p><code>
-/u/user1/anypath
-</code></p></div>
-
- <p>到</p>
-
-<div class="example"><p><code>
-http://physical_host_of_user1/u/user/anypath
-</code></p></div>
-
- <p>这样每个 URL 路径不需要在每个后端物理主机上都有效。
- 以下规则集借助映射文件为我们完成此操作,
- 假设 server0 是在用户在映射中没有条目时使用的默认服务器:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"</pre>
-
- </dd>
- </dl>
-
- <p>请参阅 <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>
- 文档和 <a href="./rewritemap.html">RewriteMap 指南</a>
- 以了解此指令语法的更多讨论。</p>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="on-the-fly-content" id="on-the-fly-content">即时内容再生成</a> <a title="Permanent link" href="#on-the-fly-content" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>我们希望动态生成内容,但一旦生成就将其静态存储。
- 此规则将检查静态文件是否存在,如果不存在,则生成它。
- 静态文件可以定期删除(例如通过 cron),
- 并在需要时按需重新生成。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- 这通过以下规则集完成:
-
-<pre class="prettyprint lang-config"># This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]</pre>
-
-
- <p><code>-U</code> 操作符确定测试字符串(在本例中为
- <code>REQUEST_URI</code>)是否是有效的 URL。它通过子请求来完成。
- 如果此子请求失败——即请求的资源不存在——此规则将调用 CGI 程序
- <code>/regenerate_page.cgi</code>,该程序生成请求的资源并将其保存到
- 文档目录中,这样下次请求时就可以提供静态副本了。</p>
-
- <p>通过这种方式,不经常更新的文档可以以静态形式提供。
- 如果需要刷新文档,可以从文档目录中删除它们,
- 下次请求时将重新生成。</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="load-balancing" id="load-balancing">负载均衡</a> <a title="Permanent link" href="#load-balancing" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>我们希望使用 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
- 在多台服务器之间随机分配负载。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>我们将使用 <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> 和服务器列表来实现。</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]</pre>
-
-
-<p><code>serverlist.txt</code> 将包含服务器列表:</p>
-
-<div class="example"><p><code>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</code></p></div>
-
-<p>如果你希望某台特定服务器承担更多负载,可以在列表中多次添加它。</p>
-
- </dd>
-
- <dt>讨论</dt>
- <dd>
-<p>Apache 自带一个负载均衡模块 -
-<code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> - 它比你使用
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 拼凑出来的任何方案都更加灵活和功能丰富。</p>
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="structuredhomedirs" id="structuredhomedirs">结构化用户目录</a> <a title="Permanent link" href="#structuredhomedirs" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>一些拥有数千用户的站点使用结构化的主目录布局,
- <em>即</em>每个主目录位于一个子目录中,
- 该子目录以用户名的第一个字符开头。因此,
- <code>/~larry/anypath</code> 是
- <code>/home/<strong>l</strong>/larry/public_html/anypath</code>,
- 而 <code>/~waldo/anypath</code> 是
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code>。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>我们使用以下规则集将波浪号 URL 展开为上述布局。</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"</pre>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="redirectanchors" id="redirectanchors">重定向锚点</a> <a title="Permanent link" href="#redirectanchors" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>默认情况下,重定向到 HTML 锚点不起作用,因为
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 会转义 <code>#</code> 字符,
- 将其变为 <code>%23</code>。这反过来会破坏重定向。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>在 <code>RewriteRule</code> 上使用 <code>[NE]</code> 标志。
- NE 代表不转义(No Escape)。
- </p>
- </dd>
-
- <dt>讨论:</dt>
- <dd>此技术当然也适用于 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
- 默认会进行 URL 编码的其他特殊字符。</dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="time-dependent" id="time-dependent">基于时间的重写</a> <a title="Permanent link" href="#time-dependent" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>我们希望使用 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
- 根据一天中的时间提供不同的内容。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>有许多名为 <code>TIME_xxx</code>
- 的变量可用于重写条件。结合特殊的词法比较模式
- <code><STRING</code>、<code>>STRING</code> 和
- <code>=STRING</code>,我们可以进行基于时间的重定向:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"</pre>
-
-
- <p>这将在 <code>07:01-18:59</code> 时间段内,以 URL
- <code>foo.html</code> 提供 <code>foo.day.html</code> 的内容,
- 在其余时间提供 <code>foo.night.html</code> 的内容。</p>
-
- <div class="warning"><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>、中间代理和浏览器
- 可能各自缓存响应,导致在配置的时间窗口之外显示某个页面。
- 可以使用 <code class="module"><a href="../mod/mod_expires.html">mod_expires</a></code> 来控制此效果。
- 当然,动态提供内容并根据时间自定义它是更好的方式。</div>
-
- </dd>
- </dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="setenvvars" id="setenvvars">根据 URL 部分设置环境变量</a> <a title="Permanent link" href="#setenvvars" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>有时,我们希望在执行重写时保持某种状态。例如,
- 你想记录你已完成该重写,以便稍后检查请求是否通过该重写。
- 一种方法是设置环境变量。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>使用 [E] 标志设置环境变量。</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]</pre>
-
-
- <p>稍后在你的规则集中,你可以使用 RewriteCond 检查此环境变量:</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{ENV:rewritten}" =1</pre>
-
-
- <p>请注意,环境变量在外部重定向后不会保留。你可以考虑使用 [CO]
- 标志来设置 cookie。对于目录级和 htaccess 重写,
- 当最终替换作为内部重定向处理时,上一轮重写的环境变量会以
- "REDIRECT_" 为前缀。</p>
-
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>可用语言: </span><a href="../de/rewrite/advanced.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/advanced.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/advanced.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/advanced.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/advanced.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/advanced.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/advanced.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/advanced.html" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />基于 <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> 许可证.</p>
-<p class="menu"><a href="../mod/">模块</a> | <a href="../mod/quickreference.html">指令</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">常见问题</a> | <a href="../glossary.html">术语</a> | <a href="../sitemap.html">网站导航</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- $LastChangedRevision$ -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="advanced.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Advanced Techniques with mod_rewrite</title>
-
-<summary>
-
-<note type="warning">This document has been deprecated. Its content has
-been reorganized into the following topical documents, where it can be
-found alongside related recipes and examples. This page will be removed
-in a future version of this documentation.</note>
-
-<ul>
-<li><strong>URL-based sharding</strong> - See
- <a href="rewritemap.html#sharding">Using RewriteMap</a></li>
-<li><strong>On-the-fly content regeneration</strong> - See
- <a href="remapping.html#on-the-fly-content">Redirection and remapping</a></li>
-<li><strong>Load balancing</strong> - See
- <a href="avoid.html#load-balancing">When not to use mod_rewrite</a></li>
-<li><strong>Structured userdirs</strong> - See
- <a href="remapping.html#structuredhomedirs">Redirection and remapping</a></li>
-<li><strong>Redirecting anchors</strong> - See
- <a href="remapping.html#redirectanchors">Redirection and remapping</a></li>
-<li><strong>Time-dependent rewriting</strong> - See
- <a href="remapping.html#time-dependent">Redirection and remapping</a></li>
-<li><strong>Set environment variables based on URL</strong> - See
- <a href="flags.html#flag_e">RewriteRule Flags</a></li>
-</ul>
-
-</summary>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933067:1933613 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="advanced.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Fortgeschrittene Techniken mit mod_rewrite</title>
-
-<summary>
-
-<p>Dieses Dokument ergänzt die <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">Referenzdokumentation</a>. Es bietet
-einige fortgeschrittene Techniken zur Verwendung von <module>mod_rewrite</module>.</p>
-
-<!--
-Ich bezweifle, ob irgendetwas, das in diesem Dokument verbleibt, als
-"fortgeschritten" gilt. Es ist wahrscheinlich an der Zeit, eine
-Bestandsaufnahme der Beispiele zu machen, die wir in den verschiedenen
-Dokumenten haben, und eine Neuorganisation des Materials in diesem
-Verzeichnis in Betracht zu ziehen. Wieder einmal.
--->
-
-<note type="warning">Beachten Sie, dass viele dieser Beispiele nicht unverändert in Ihrer
-speziellen Serverkonfiguration funktionieren werden. Es ist daher wichtig, dass Sie
-sie verstehen, anstatt die Beispiele einfach auszuschneiden und in Ihre
-Konfiguration einzufügen.</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Moduldokumentation</a></seealso>
-<seealso><a href="intro.html">Einführung in mod_rewrite</a></seealso>
-<seealso><a href="remapping.html">Umleitung und Neuzuordnung</a></seealso>
-<seealso><a href="access.html">Zugriffskontrolle</a></seealso>
-<seealso><a href="vhosts.html">Virtuelle Hosts</a></seealso>
-<seealso><a href="proxy.html">Proxying</a></seealso>
-<seealso><a href="rewritemap.html">Verwendung von RewriteMap</a></seealso>
-<!--<seealso><a href="advanced.html">Fortgeschrittene Techniken</a></seealso>-->
-<seealso><a href="avoid.html">Wann man mod_rewrite nicht verwenden sollte</a></seealso>
-
-<section id="sharding">
-
- <title>URL-basiertes Sharding über mehrere Backends</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Eine gängige Technik zur Verteilung der Serverlast oder des
- Speicherplatzes wird als "Sharding" bezeichnet.
- Bei Verwendung dieser Methode verwendet ein Frontend-Server die
- URL, um Benutzer oder Objekte konsistent auf separate
- Backend-Server zu "verteilen".</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Eine Zuordnung von Benutzern zu Zielservern wird in externen
- Map-Dateien gepflegt. Diese sehen wie folgt aus:</p>
-
-<example>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... und so weiter
-</example>
-
- <p>Wir legen dies in eine <code>map.users-to-hosts</code>-Datei. Das
- Ziel ist es, folgende Zuordnung vorzunehmen:</p>
-
-<example>
-/u/user1/anypath
-</example>
-
- <p>zu</p>
-
-<example>
-http://physical_host_of_user1/u/user/anypath
-</example>
-
- <p>Somit muss nicht jeder URL-Pfad auf jedem physischen Backend-Host
- gültig sein. Der folgende Regelsatz erledigt dies für uns mit Hilfe der
- Map-Dateien, wobei server0 ein Standardserver ist, der verwendet wird,
- wenn ein Benutzer keinen Eintrag in der Map hat:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"
-</highlight>
- </dd>
- </dl>
-
- <p>Siehe die <directive module="mod_rewrite">RewriteMap</directive>-Dokumentation
- und das <a href="./rewritemap.html">RewriteMap-HowTo</a>
- für weitere Informationen zur Syntax dieser Direktive.</p>
-
-</section>
-
-<section id="on-the-fly-content">
-
- <title>Dynamische Inhaltsregenerierung</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Wir möchten Inhalte dynamisch generieren, sie aber statisch
- speichern, sobald sie einmal generiert wurden. Diese Regel prüft,
- ob die statische Datei vorhanden ist, und generiert sie, falls
- nicht. Die statischen Dateien können bei Bedarf regelmäßig
- entfernt werden (z.B. per Cron) und werden bei Bedarf neu
- generiert.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- Dies wird durch den folgenden Regelsatz erreicht:
-
-<highlight language="config">
-# This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]
-</highlight>
-
- <p>Der <code>-U</code>-Operator prüft, ob der Teststring
- (in diesem Fall <code>REQUEST_URI</code>) eine gültige URL ist. Er
- macht dies über eine Unteranfrage. Falls diese Unteranfrage fehlschlägt -
- das heißt, die angeforderte Ressource existiert nicht - ruft diese
- Regel das CGI-Programm <code>/regenerate_page.cgi</code> auf, das
- die angeforderte Ressource generiert und im Dokumentenverzeichnis
- speichert, sodass beim nächsten Aufruf eine statische Kopie
- ausgeliefert werden kann.</p>
-
- <p>Auf diese Weise können Dokumente, die selten aktualisiert werden, in
- statischer Form ausgeliefert werden. Wenn Dokumente aktualisiert werden
- müssen, können sie aus dem Dokumentenverzeichnis gelöscht werden, und sie
- werden dann beim nächsten Aufruf erneut generiert.</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="load-balancing">
-
- <title>Lastverteilung</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Wir möchten die Last zufällig auf mehrere Server verteilen,
- indem wir <module>mod_rewrite</module> verwenden.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Wir verwenden <directive
- module="mod_rewrite">RewriteMap</directive> und eine Serverliste,
- um dies zu erreichen.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]
-</highlight>
-
-<p><code>serverlist.txt</code> enthält eine Liste der Server:</p>
-
-<example>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</example>
-
-<p>Wenn Sie möchten, dass ein bestimmter Server mehr Last als die
-anderen erhält, fügen Sie ihn mehrmals zur Liste hinzu.</p>
-
- </dd>
-
- <dt>Diskussion</dt>
- <dd>
-<p>Apache wird mit einem Lastverteilungsmodul ausgeliefert -
-<module>mod_proxy_balancer</module> - das wesentlich flexibler und
-funktionsreicher ist als alles, was Sie mit <module>mod_rewrite</module>
-zusammenstellen können.</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="structuredhomedirs">
-
- <title>Strukturierte Benutzerverzeichnisse</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Einige Websites mit Tausenden von Benutzern verwenden ein
- strukturiertes Heimatverzeichnis-Layout, <em>d.h.</em> jedes
- Heimatverzeichnis befindet sich in einem Unterverzeichnis, das
- (beispielsweise) mit dem ersten Zeichen des Benutzernamens beginnt.
- So ist <code>/~larry/anypath</code> gleich
- <code>/home/<strong>l</strong>/larry/public_html/anypath</code>,
- während <code>/~waldo/anypath</code> gleich
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code> ist.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Wir verwenden den folgenden Regelsatz, um die Tilde-URLs
- in das obige Layout umzusetzen.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"
-</highlight>
- </dd>
- </dl>
-
-</section>
-
-<section id="redirectanchors">
-
- <title>Umleitung von Ankern</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Standardmäßig funktioniert die Umleitung zu einem HTML-Anker nicht,
- da <module>mod_rewrite</module> das <code>#</code>-Zeichen maskiert und
- es in <code>%23</code> umwandelt. Dies wiederum unterbricht die
- Umleitung.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Verwenden Sie das <code>[NE]</code>-Flag in der
- <code>RewriteRule</code>. NE steht für No Escape (Nicht maskieren).
- </p>
- </dd>
-
- <dt>Diskussion:</dt>
- <dd>Diese Technik funktioniert natürlich auch mit anderen
- Sonderzeichen, die <module>mod_rewrite</module> standardmäßig URL-kodiert.</dd>
- </dl>
-
-</section>
-
-<section id="time-dependent">
-
- <title>Zeitabhängiges Umschreiben</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Wir möchten <module>mod_rewrite</module> verwenden, um je nach Tageszeit
- unterschiedliche Inhalte auszuliefern.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Es gibt viele Variablen namens <code>TIME_xxx</code>
- für Rewrite-Bedingungen. In Verbindung mit den speziellen
- lexikographischen Vergleichsmustern <code><STRING</code>,
- <code>>STRING</code> und <code>=STRING</code> können wir
- zeitabhängige Umleitungen durchführen:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"
-</highlight>
-
- <p>Dies liefert den Inhalt von <code>foo.day.html</code>
- unter der URL <code>foo.html</code> von
- <code>07:01-18:59</code> und zur restlichen Zeit den
- Inhalt von <code>foo.night.html</code>.</p>
-
- <note type="warning"><module>mod_cache</module>, Zwischenproxys
- und Browser können jeweils Antworten zwischenspeichern und dazu
- führen, dass eine der beiden Seiten außerhalb des konfigurierten
- Zeitfensters angezeigt wird.
- <module>mod_expires</module> kann verwendet werden, um diesen
- Effekt zu kontrollieren. Es ist natürlich viel besser, die
- Inhalte einfach dynamisch auszuliefern und basierend auf der
- Tageszeit anzupassen.</note>
-
- </dd>
- </dl>
-
-</section>
-
-<section id="setenvvars">
-
- <title>Umgebungsvariablen basierend auf URL-Teilen setzen</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>Manchmal möchten wir eine Art Status beibehalten, wenn wir
- ein Umschreiben durchführen. Beispielsweise möchten Sie sich
- merken, dass dieses Umschreiben stattgefunden hat, damit Sie
- später prüfen können, ob eine Anfrage über dieses Umschreiben
- kam. Eine Möglichkeit dafür ist das Setzen einer
- Umgebungsvariable.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Verwenden Sie das [E]-Flag, um eine Umgebungsvariable zu setzen.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]
-</highlight>
-
- <p>Später in Ihrem Regelsatz können Sie diese Umgebungsvariable
- mit einer RewriteCond prüfen:</p>
-
-<highlight language="config">
-RewriteCond "%{ENV:rewritten}" =1
-</highlight>
-
- <p>Beachten Sie, dass Umgebungsvariablen eine externe Umleitung nicht
- überleben. Sie könnten stattdessen das [CO]-Flag verwenden, um ein
- Cookie zu setzen. Für Verzeichniskontext- und htaccess-Umschreibungen,
- bei denen die endgültige Ersetzung als interne Umleitung verarbeitet
- wird, werden Umgebungsvariablen aus der vorherigen Runde des
- Umschreibens mit dem Präfix "REDIRECT_" versehen.</p>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933067:1933613 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="advanced.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Técnicas avanzadas con mod_rewrite</title>
-
-<summary>
-
-<p>Este documento complementa la <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">documentación de referencia</a>. Proporciona
-algunas técnicas avanzadas usando <module>mod_rewrite</module>.</p>
-
-<!--
-Cuestiono si algo de lo que queda en este documento califica como
-"avanzado". Probablemente es hora de hacer un inventario de los ejemplos que
-tenemos en los diversos documentos, y considerar una reorganización del material en este
-directorio. De nuevo.
--->
-
-<note type="warning">Tenga en cuenta que muchos de estos ejemplos no funcionarán sin cambios en su
-configuración particular del servidor, por lo que es importante que los
-entienda, en lugar de simplemente copiar y pegar los ejemplos en su
-configuración.</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Documentación del módulo</a></seealso>
-<seealso><a href="intro.html">Introducción a mod_rewrite</a></seealso>
-<seealso><a href="remapping.html">Redirección y remapeo</a></seealso>
-<seealso><a href="access.html">Control de acceso</a></seealso>
-<seealso><a href="vhosts.html">Hosts virtuales</a></seealso>
-<seealso><a href="proxy.html">Proxy</a></seealso>
-<seealso><a href="rewritemap.html">Uso de RewriteMap</a></seealso>
-<!--<seealso><a href="advanced.html">Técnicas avanzadas</a></seealso>-->
-<seealso><a href="avoid.html">Cuándo no usar mod_rewrite</a></seealso>
-
-<section id="sharding">
-
- <title>Fragmentación basada en URL entre múltiples backends</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Una técnica común para distribuir la carga del
- servidor o el espacio de almacenamiento se llama "fragmentación" (sharding).
- Al usar este método, un servidor front-end usará la
- URL para "fragmentar" consistentemente usuarios u objetos a servidores
- backend separados.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Se mantiene un mapeo, de usuarios a servidores destino, en
- archivos de mapa externos. Tienen este aspecto:</p>
-
-<example>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... y así sucesivamente
-</example>
-
- <p>Colocamos esto en un archivo <code>map.users-to-hosts</code>. El
- objetivo es mapear;</p>
-
-<example>
-/u/user1/anypath
-</example>
-
- <p>a</p>
-
-<example>
-http://physical_host_of_user1/u/user/anypath
-</example>
-
- <p>por lo que no es necesario que cada ruta URL sea válida en cada host físico
- backend. El siguiente conjunto de reglas hace esto por nosotros con la ayuda de los
- archivos de mapa, asumiendo que server0 es un servidor predeterminado que se usará si
- un usuario no tiene entrada en el mapa:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"
-</highlight>
- </dd>
- </dl>
-
- <p>Consulte la documentación de la directiva <directive module="mod_rewrite">RewriteMap</directive>
- y el <a href="./rewritemap.html">Cómo usar RewriteMap</a>
- para más discusión de la sintaxis de esta directiva.</p>
-
-</section>
-
-<section id="on-the-fly-content">
-
- <title>Regeneración de Contenido sobre la marcha</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Deseamos generar contenido dinámicamente, pero almacenarlo
- estáticamente una vez que se ha generado. Esta regla verificará la
- existencia del archivo estático, y si no está allí, lo generará.
- Los archivos estáticos pueden eliminarse periódicamente, si se desea (digamos,
- mediante cron) y se regenerarán bajo demanda.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- Esto se hace mediante el siguiente conjunto de reglas:
-
-<highlight language="config">
-# This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]
-</highlight>
-
- <p>El operador <code>-U</code> determina si la cadena de prueba
- (en este caso, <code>REQUEST_URI</code>) es una URL válida. Lo hace
- mediante una sub-solicitud. En el caso de que esta sub-solicitud falle -
- es decir, el recurso solicitado no existe - esta regla invoca
- el programa CGI <code>/regenerate_page.cgi</code>, que genera
- el recurso solicitado y lo guarda en el directorio de documentos, de modo
- que la próxima vez que se solicite, se pueda servir una copia estática.</p>
-
- <p>De esta manera, documentos que se actualizan con poca frecuencia pueden servirse en
- forma estática. Si los documentos necesitan actualizarse, pueden eliminarse
- del directorio de documentos, y se regenerarán la
- próxima vez que se soliciten.</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="load-balancing">
-
- <title>Balanceo de Carga</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Deseamos distribuir aleatoriamente la carga entre varios servidores
- usando <module>mod_rewrite</module>.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Usaremos <directive
- module="mod_rewrite">RewriteMap</directive> y una lista de servidores
- para lograr esto.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]
-</highlight>
-
-<p><code>serverlist.txt</code> contendrá una lista de los servidores:</p>
-
-<example>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</example>
-
-<p>Si desea que un servidor particular reciba más carga que los
-otros, agreguelo más veces a la lista.</p>
-
- </dd>
-
- <dt>Discusión</dt>
- <dd>
-<p>Apache viene con un módulo de balanceo de carga -
-<module>mod_proxy_balancer</module> - que es mucho más flexible y
-con más funcionalidades que cualquier cosa que pueda construir usando <module>mod_rewrite</module>.</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="structuredhomedirs">
-
- <title>Directorios de Usuario Estructurados</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Algunos sitios con miles de usuarios usan una
- disposición de directorio personal estructurada, <em>es decir,</em> cada directorio personal está en un
- subdirectorio que comienza (por ejemplo) con el primer
- carácter del nombre de usuario. Así, <code>/~larry/anypath</code>
- es <code>/home/<strong>l</strong>/larry/public_html/anypath</code>
- mientras que <code>/~waldo/anypath</code> es
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code>.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Usamos el siguiente conjunto de reglas para expandir las URLs de tilde
- a la disposición anterior.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"
-</highlight>
- </dd>
- </dl>
-
-</section>
-
-<section id="redirectanchors">
-
- <title>Redireccionando Anclas</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Por defecto, redirigir a un ancla HTML no funciona,
- porque <module>mod_rewrite</module> escapa el carácter <code>#</code>,
- convirtiéndolo en <code>%23</code>. Esto, a su vez, rompe la
- redirección.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Use la bandera <code>[NE]</code> en la
- <code>RewriteRule</code>. NE significa No Escapar.
- </p>
- </dd>
-
- <dt>Discusión:</dt>
- <dd>Esta técnica por supuesto también funcionará con otros
- caracteres especiales que <module>mod_rewrite</module>, por defecto, codifica en URL.</dd>
- </dl>
-
-</section>
-
-<section id="time-dependent">
-
- <title>Reescritura Dependiente del Tiempo</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>Deseamos usar <module>mod_rewrite</module> para servir contenido diferente basado en
- la hora del día.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Hay muchas variables llamadas <code>TIME_xxx</code>
- para condiciones de reescritura. En conjunto con los patrones
- especiales de comparación lexicográfica <code><STRING</code>,
- <code>>STRING</code> y <code>=STRING</code> podemos
- hacer redirecciones dependientes del tiempo:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"
-</highlight>
-
- <p>Esto proporciona el contenido de <code>foo.day.html</code>
- bajo la URL <code>foo.html</code> de
- <code>07:01-18:59</code> y en el tiempo restante el
- contenido de <code>foo.night.html</code>.</p>
-
- <note type="warning"><module>mod_cache</module>, proxies intermedios
- y navegadores pueden cada uno almacenar en caché las respuestas y causar que cualquiera de las páginas se
- muestre fuera de la ventana de tiempo configurada.
- Se puede usar <module>mod_expires</module> para controlar este
- efecto. Por supuesto, es mucho mejor simplemente servir el
- contenido dinámicamente y personalizarlo basándose en la hora del día.</note>
-
- </dd>
- </dl>
-
-</section>
-
-<section id="setenvvars">
-
- <title>Establecer Variables de Entorno Basadas en Partes de la URL</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>A veces, queremos mantener algún tipo de estado cuando
- realizamos una reescritura. Por ejemplo, desea tomar nota de que
- ha realizado esa reescritura, para poder verificar más tarde si una
- solicitud llegó a través de esa reescritura. Una forma de hacer esto es estableciendo una
- variable de entorno.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Use la bandera [E] para establecer una variable de entorno.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]
-</highlight>
-
- <p>Más adelante en su conjunto de reglas puede verificar esta variable
- de entorno usando una RewriteCond:</p>
-
-<highlight language="config">
-RewriteCond "%{ENV:rewritten}" =1
-</highlight>
-
- <p>Tenga en cuenta que las variables de entorno no sobreviven a una
- redirección externa. Podría considerar usar la bandera [CO] para establecer una
- cookie. Para reescrituras en contexto per-directorio y htaccess, donde la sustitución
- final se procesa como una redirección interna, las variables
- de entorno de la ronda anterior de reescritura se prefijan con
- "REDIRECT_". </p>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- French translation : Lucien GENTIS -->
-<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1933067:1933613 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="advanced.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Techniques avancées avec mod_rewrite</title>
-
-<summary>
-
-<p>Ce document complète la <a
- href="../mod/mod_rewrite.html">documentation de référence</a> du
- module <module>mod_rewrite</module>. Il présente un certain nombre
- de techniques avancées quant à
- l'utilisation de <module>mod_rewrite</module>.</p>
-
-<!--
-I question whether anything remailing in this document qualifies as
-"advanced". It's probably time to take inventory of the examples that we
-have in the various docs, and consider a reorg of the stuff in this
-directory. Again.
--->
-
-<note type="warning">Notez que la plupart des exemples ne fonctionneront
-pas en l'état dans la configuration particulière de votre serveur ; il
-est donc important de bien comprendre leur fonctionnement, plutôt que de
-simplement les copier/coller dans votre configuration.</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Documentation du module</a></seealso>
-<seealso><a href="intro.html">Introduction à mod_rewrite</a></seealso>
-<seealso><a href="remapping.html">Redirection et remise en
-correspondance</a></seealso>
-<seealso><a href="access.html">Contrôler l'accès</a></seealso>
-<seealso><a href="vhosts.html">serveurs virtuels</a></seealso>
-<seealso><a href="proxy.html">serveurs mandataires</a></seealso>
-<seealso><a href="rewritemap.html">Utilisation de RewriteMap</a></seealso>
-<!--<seealso><a href="advanced.html">Techniques avancées</a></seealso>-->
-<seealso><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></seealso>
-
-<section id="sharding">
-
- <title>Distribution de la charge entre plusieurs serveurs
- d'arrière-plan en fonction de l'adresse IP</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>La fragmentation ou "sharding" est une technique courante de
- distribution de la charge du serveur ou de l'espace de stockage.
- Quand on utilise cette méthode, un serveur frontal utilise l'URL
- pour répartir de manière appropriée les utilisateurs et objets
- entre différents serveurs d'arrière-plan.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>On maintient une table de correspondance entre utilisateurs et
- serveurs cibles dans des fichiers externes. Ces derniers se
- présentent comme suit :</p>
-
-<example>
-utilisateur1 serveur_physique_utilisateur1<br />
-utilisateur2 serveur_physique_utilisateur2<br />
-# etc ...
-</example>
-
- <p>Tout ceci est enregistré dans un fichier
- <code>correspondances-utilisateurs-serveurs</code>. Le but est de
- faire correspondre</p>
-
-<example>
-/u/utilisateur1/chemin
-</example>
-
- <p>avec</p>
-
-<example>
-http://serveur_physique_utilisateur1/u/utilisateur/chemin
-</example>
-
- <p>il n'est ainsi pas nécessaire que tous les chemins URL soient
- valides sur tous les serveurs physiques d'arrière-plan. Le jeu de
- règles suivant fait tout ceci pour nous, en s'appuyant sur les
- fichiers de correspondances, en supposant que serveur0 est un
- serveur par défaut qui sera utilisé lorsqu'un utilisateur ne
- possèdera pas d'entrée dans la table de correspondances :</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"
-</highlight>
- </dd>
- </dl>
-
- <p>Voir la documentation de <directive
- module="mod_rewrite">RewriteMap</directive> et le <a
- href="./rewritemap.html">RewriteMap HowTo</a> pour une description plus
- approfondie de la syntaxe de cette directive.</p>
-
-</section>
-
-<section id="on-the-fly-content">
-
- <title>Régéneration de contenu à la volée</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Nous voulons générer du contenu de manière dynamique, mais le
- conserver de manière statique lorsqu'il a été généré. La règle
- suivante vérifie l'existence du fichier statique, et le génère
- s'il est absent. Les fichiers statiques peuvent être supprimés
- périodiquement si on le désire (par exemple via cron), et seront
- régénérés à la demande.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- A cet effet, on utilise le jeu de règles suivant :
-
-<highlight language="config">
-# Cet exemple n'est valable que dans un contexte de répertoire
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]
-</highlight>
-
- <p>L'opérateur <code>-U</code> permet de déterminer si la chaîne
- de test (dans ce cas <code>REQUEST_URI</code>) est une URL valide.
- Pour ce faire, il utilise une sous-requête. Si cette sous-requête
- échoue, ou en d'autres termes, si la ressource demandée n'existe pas,
- cette règle invoque le programme CGI
- <code>/regenerate_page.cgi</code> qui génère la ressource
- demandée et la sauvegarde dans le répertoire des documents, de
- façon à ce qu'une copie statique puisse être servie lors d'une
- demande ultérieure.</p>
-
- <p>De cette façon, les documents qui ne sont pas mis à jour
- régulièrement peuvent être servis sous une forme statique. Si ces
- documents doivent être réactualisés, on peut les supprimer du
- répertoire des documents, et ils seront ainsi régénérés à la
- prochaine demande.</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="load-balancing">
-
- <title>Répartition de charge</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Nous voulons répartir la charge de manière aléatoire entre
- plusieurs serveurs en utilisant <module>mod_rewrite</module>.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Pour y parvenir, nous allons utiliser la directive <directive
- module="mod_rewrite">RewriteMap</directive> et une liste de
- serveurs.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:serveurs}/$1" [P,L]
-</highlight>
-
-<p><code>liste-serveurs.txt</code> contiendra la liste des serveurs :</p>
-
-<example>
-## liste-serveurs.txt<br />
-<br />
-serveurs un.example.com|deux.example.com|trois.example.com<br />
-</example>
-
-<p>Si vous voulez qu'un serveur se voit confier d'avantage de charge que
-les autres, faites le figurer plusieurs fois dans la liste.</p>
-
- </dd>
-
- <dt>Discussion</dt>
- <dd>
-<p>Apache possède un module de répartition de charge -
-<module>mod_proxy_balancer</module> - beaucoup plus souple et présentant
-plus de fonctionnalités dans ce domaine que <module>mod_rewrite</module>.</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="structuredhomedirs">
-
- <title>Répertoires Home structurés</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Certains sites avec des milliers d'utilisateurs organisent
- les répertoires utilisateurs de manière structurée, c'est à
- dire que chaque répertoire utilisateur se trouve dans un
- sous-répertoire dont le nom commence (par exemple) par le
- premier caractère du nom de l'utilisateur. Ainsi,
- <code>/~larry/chemin</code> correspond à
- <code>/home/<strong>l</strong>/larry/public_html/chemin</code>, alors
- que <code>/~waldo/chemin</code> correspond à
- <code>/home/<strong>w</strong>/waldo/public_html/chemin</code>.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>On utilise le jeu de règles suivant pour développer les
- URLs avec tilde selon l'organisation structurée précédente.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"
-</highlight>
- </dd>
- </dl>
-
-</section>
-
-<section id="redirectanchors">
-
- <title>Redirection des ancrages</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Par défaut, la redirection vers un ancrage HTML ne fonctionne
- pas, car <module>mod_rewrite</module> échappe le caractère <code>#</code> en le
- transformant en <code>%23</code>, ce qui rend la redirection
- inopérante.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>On utilise le drapeau <code>[NE]</code> dans la règle
- <code>RewriteRule</code>. NE signifie "No Escape".
- </p>
- </dd>
-
- <dt>Discussion :</dt>
- <dd>Cette technique fonctionne bien entendu pour tout autre
- caractère spécial que <module>mod_rewrite</module>, par défaut, code pour insertion
- dans une URL.</dd>
- </dl>
-
-</section>
-
-<section id="time-dependent">
-
- <title>Réécriture dépendant de l'heure</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Nous voulons servir des contenus différents selon l'heure du
- jour en utilisant <module>mod_rewrite</module>.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Il existe de nombreuses variables nommées
- <code>TIME_xxx</code> utilisables dans les conditions de
- réécriture. Utilisées en conjonction avec les modèles de
- comparaison lexicographique spéciaux <code><STRING</code>,
- <code>>STRING</code> et <code>=STRING</code>, elles
- permettent d'effectuer des redirections dépendant de
- l'heure :</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"
-</highlight>
-
- <p>Avec cet exemple, l'URL <code>foo.html</code> renvoie
- le contenu de <code>foo.jour.html</code> durant le
- créneau horaire <code>07:01-18:59</code>, et le contenu de
- <code>foo.nuit.html</code> le reste du temps.</p>
-
- <note type="warning"><module>mod_cache</module>, les mandataires
- intermédiaires et les navigateurs peuvent chacun mettre en cache
- les réponses et ainsi afficher une des deux pages en dehors de
- la fenêtre de temps configurée. On peut utiliser
- <module>mod_expires</module> pour contourner ce problème. Il est
- cependant bien plus commode de servir un contenu dynamique, et
- de le personnaliser en fonction de l'heure du jour.</note> </dd>
- </dl>
-
-</section>
-
-<section id="setenvvars">
-
- <title>Définir des variables d'environnement en fonction de
- certaines parties de l'URL</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>Parfois, nous voulons conserver une certaine forme de statut
- lorsqu'une réécriture a eu lieu. Par exemple, vous souhaitez
- consigner le fait que cette réécriture a eu lieu, et vous servir
- plus tard de cette information pour déterminer si une requête était
- concernée par cette réécriture. Pour y parvenir, on peut utiliser
- une variable d'environnement.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Utiliser le drapeau [E] pour définir une variable
- d'environnement.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/cheval/(.*)" "/poney/$1" [E=<strong>rewritten:1</strong>]
-</highlight>
-
- <p>Plus loin dans votre jeu de règles, vous pouvez vérifier le
- contenu de cette variable d'environnement via une directive
- RewriteCond :</p>
-
-<highlight language="config">
-RewriteCond "%{ENV:rewritten}" =1
-</highlight>
-
- <p>Notez que les variables d'environnement ne survivent pas à une
- redirection externe. Vous devez alors utiliser le drapeau [CO] pour définir
- un cookie. Pour les redirections de niveau répertoire et htaccess où la
- substitution finale est traitée en tant que redirection interne, les
- variables d'environnement du tour de réécriture précédent sont préfixées par
- "REDIRECT_".</p>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933067:1933613 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="advanced.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>mod_rewrite の高度なテクニック</title>
-
-<summary>
-
-<p>このドキュメントは <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">リファレンスドキュメント</a>を補足するものです。
-<module>mod_rewrite</module> を使用したいくつかの高度なテクニックを提供します。</p>
-
-<!--
-I question whether anything remailing in this document qualifies as
-"advanced". It's probably time to take inventory of the examples that we
-have in the various docs, and consider a reorg of the stuff in this
-directory. Again.
--->
-
-<note type="warning">これらの例の多くは、特定のサーバ設定ではそのまま
-動作しないことに注意してください。そのため、単にコピー&ペーストするのではなく、
-内容を理解することが重要です。</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">モジュールドキュメント</a></seealso>
-<seealso><a href="intro.html">mod_rewrite 入門</a></seealso>
-<seealso><a href="remapping.html">リダイレクトとリマッピング</a></seealso>
-<seealso><a href="access.html">アクセス制御</a></seealso>
-<seealso><a href="vhosts.html">バーチャルホスト</a></seealso>
-<seealso><a href="proxy.html">プロキシ</a></seealso>
-<seealso><a href="rewritemap.html">RewriteMap の使用</a></seealso>
-<!--<seealso><a href="advanced.html">高度なテクニック</a></seealso>-->
-<seealso><a href="avoid.html">mod_rewrite を使わない場合</a></seealso>
-
-<section id="sharding">
-
- <title>URL ベースの複数バックエンドへのシャーディング</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>サーバ負荷やストレージスペースの負担を分散するための
- 一般的なテクニックは「シャーディング」と呼ばれます。
- この方法を使用すると、フロントエンドサーバは URL を使用して
- ユーザやオブジェクトを別々のバックエンドサーバに一貫して
- 「シャード」します。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>ユーザからターゲットサーバへのマッピングが外部マップファイルに
- 保持されています。次のような形式です:</p>
-
-<example>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... 以下同様
-</example>
-
- <p>これを <code>map.users-to-hosts</code> ファイルに入れます。目的は
- 以下をマッピングすることです:</p>
-
-<example>
-/u/user1/anypath
-</example>
-
- <p>を以下にマッピング:</p>
-
-<example>
-http://physical_host_of_user1/u/user/anypath
-</example>
-
- <p>このようにすると、すべての URL パスがすべてのバックエンド物理
- ホストで有効である必要はありません。以下のルールセットは、
- マップファイルの助けを借りてこれを実現します。server0 は、
- ユーザがマップにエントリを持たない場合に使用されるデフォルト
- サーバとして想定しています:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"
-</highlight>
- </dd>
- </dl>
-
- <p>このディレクティブの構文の詳細については、
- <directive module="mod_rewrite">RewriteMap</directive>
- ドキュメントと <a href="./rewritemap.html">RewriteMap ハウツー</a>
- を参照してください。</p>
-
-</section>
-
-<section id="on-the-fly-content">
-
- <title>オンザフライのコンテンツ再生成</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>コンテンツを動的に生成したいが、一度生成したら静的に
- 保存したいとします。このルールは静的ファイルの存在を確認し、
- 存在しない場合は生成します。静的ファイルは必要に応じて
- (例えば cron で) 定期的に削除でき、要求に応じて再生成
- されます。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- これは以下のルールセットで実現されます:
-
-<highlight language="config">
-# This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]
-</highlight>
-
- <p><code>-U</code> 演算子は、テスト文字列 (この場合は
- <code>REQUEST_URI</code>) が有効な URL かどうかを判定します。
- これはサブリクエストを通じて行われます。このサブリクエストが
- 失敗した場合、つまりリクエストされたリソースが存在しない場合、
- このルールは CGI プログラム <code>/regenerate_page.cgi</code>
- を呼び出し、リクエストされたリソースを生成してドキュメント
- ディレクトリに保存します。これにより、次回リクエストされたときに
- 静的コピーを提供できます。</p>
-
- <p>このようにして、更新頻度の低いドキュメントを静的形式で
- 提供できます。ドキュメントを更新する必要がある場合は、
- ドキュメントディレクトリから削除すれば、次回リクエストされたときに
- 再生成されます。</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="load-balancing">
-
- <title>ロードバランシング</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p><module>mod_rewrite</module> を使用して、複数のサーバに
- ランダムに負荷を分散したいとします。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>これを実現するために <directive
- module="mod_rewrite">RewriteMap</directive> とサーバの
- リストを使用します。</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]
-</highlight>
-
-<p><code>serverlist.txt</code> にはサーバのリストが含まれます:</p>
-
-<example>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</example>
-
-<p>特定のサーバにより多くの負荷を割り当てたい場合は、
-リストにそのサーバを複数回追加してください。</p>
-
- </dd>
-
- <dt>議論</dt>
- <dd>
-<p>Apache にはロードバランシングモジュール -
-<module>mod_proxy_balancer</module> - が付属しており、
-<module>mod_rewrite</module> で構築できるものよりもはるかに柔軟で
-機能豊富です。</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="structuredhomedirs">
-
- <title>構造化ユーザディレクトリ</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>数千人のユーザを持つサイトの中には、構造化されたホームディレクトリ
- レイアウトを使用するものがあります。<em>つまり</em>、各ホームディレクトリは
- ユーザ名の最初の文字で始まるサブディレクトリにあります。例えば、
- <code>/~larry/anypath</code> は
- <code>/home/<strong>l</strong>/larry/public_html/anypath</code>
- であり、<code>/~waldo/anypath</code> は
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code>
- です。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>上記のレイアウトにチルダ URL を展開するために、以下のルールセットを
- 使用します。</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"
-</highlight>
- </dd>
- </dl>
-
-</section>
-
-<section id="redirectanchors">
-
- <title>アンカーのリダイレクト</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>デフォルトでは、HTML アンカーへのリダイレクトは機能しません。
- <module>mod_rewrite</module> が <code>#</code> 文字をエスケープして
- <code>%23</code> に変換するためです。これによりリダイレクトが
- 壊れます。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p><code>RewriteRule</code> で <code>[NE]</code> フラグを
- 使用します。NE は No Escape (エスケープしない) の略です。
- </p>
- </dd>
-
- <dt>議論:</dt>
- <dd>このテクニックは、<module>mod_rewrite</module> がデフォルトで
- URL エンコードする他の特殊文字にも適用できます。</dd>
- </dl>
-
-</section>
-
-<section id="time-dependent">
-
- <title>時間に依存する書き換え</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p><module>mod_rewrite</module> を使用して、時間帯に基づいて
- 異なるコンテンツを提供したいとします。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>書き換え条件に使用できる <code>TIME_xxx</code> という名前の
- 変数が多数あります。特殊な辞書順比較パターン
- <code><STRING</code>、<code>>STRING</code>、
- <code>=STRING</code> と組み合わせることで、時間に依存する
- リダイレクトを行えます:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"
-</highlight>
-
- <p>これにより、URL <code>foo.html</code> で
- <code>07:01-18:59</code> の間は <code>foo.day.html</code> の
- コンテンツを、残りの時間帯は <code>foo.night.html</code> の
- コンテンツを提供します。</p>
-
- <note type="warning"><module>mod_cache</module>、中間プロキシ、
- およびブラウザはそれぞれレスポンスをキャッシュし、設定された
- 時間枠外にいずれかのページが表示される可能性があります。
- <module>mod_expires</module> を使用してこの影響を制御できます。
- もちろん、コンテンツを動的に提供し、時間帯に基づいて
- カスタマイズする方がはるかに良いでしょう。</note>
-
- </dd>
- </dl>
-
-</section>
-
-<section id="setenvvars">
-
- <title>URL の部分に基づく環境変数の設定</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>書き換えを実行する際に何らかの状態を維持したい場合が
- あります。例えば、書き換えを行ったことをメモし、後でリクエストが
- その書き換えを経由したかどうかを確認したいとします。これを行う
- 1 つの方法は、環境変数を設定することです。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>[E] フラグを使用して環境変数を設定します。</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]
-</highlight>
-
- <p>後のルールセットで RewriteCond を使用してこの環境変数を
- 確認できます:</p>
-
-<highlight language="config">
-RewriteCond "%{ENV:rewritten}" =1
-</highlight>
-
- <p>環境変数は外部リダイレクトでは保持されないことに注意
- してください。[CO] フラグを使用して cookie を設定することを
- 検討するとよいでしょう。ディレクトリ単位および htaccess の
- 書き換えでは、最終的な置換が内部リダイレクトとして処理されるため、
- 前回の書き換えラウンドの環境変数には "REDIRECT_" がプレフィックスとして
- 付きます。</p>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version='1.0' encoding='EUC-KR' ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933067:1933613 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="advanced.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>mod_rewrite 고급 기술</title>
-
-<summary>
-
-<p>이 문서는 <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">참조 문서</a>를 보충합니다.
-<module>mod_rewrite</module>를 사용한 몇 가지 고급 기술을
-제공합니다.</p>
-
-<note type="warning">이 예제들 중 많은 것이 특정 서버 설정에서
-그대로 작동하지 않을 수 있으므로, 단순히 예제를 복사하여
-설정에 붙여넣기보다는 이해하는 것이 중요합니다.</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">모듈 문서</a></seealso>
-<seealso><a href="intro.html">mod_rewrite 소개</a></seealso>
-<seealso><a href="remapping.html">리다이렉션과 재매핑</a></seealso>
-<seealso><a href="access.html">접근 제어</a></seealso>
-<seealso><a href="vhosts.html">가상 호스트</a></seealso>
-<seealso><a href="proxy.html">프록시</a></seealso>
-<seealso><a href="rewritemap.html">RewriteMap 사용하기</a></seealso>
-<!--<seealso><a href="advanced.html">고급 기술</a></seealso>-->
-<seealso><a href="avoid.html">mod_rewrite를 사용하지 말아야 할 경우</a></seealso>
-
-<section id="sharding">
-
- <title>여러 백엔드에 대한 URL 기반 샤딩</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p>서버 부하나 저장 공간을 분산하는 일반적인 기술을
- "샤딩"이라고 합니다. 이 방법을 사용할 때 프론트엔드
- 서버는 URL을 사용하여 사용자 또는 객체를 별도의
- 백엔드 서버에 일관되게 "샤딩"합니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- <p>사용자에서 대상 서버로의 매핑이 외부 맵 파일에
- 유지됩니다. 다음과 같은 형태입니다:</p>
-
-<example>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... 등등
-</example>
-
- <p>이것을 <code>map.users-to-hosts</code> 파일에 넣습니다.
- 목적은 다음을 매핑하는 것입니다;</p>
-
-<example>
-/u/user1/anypath
-</example>
-
- <p>위의 것을 다음으로:</p>
-
-<example>
-http://physical_host_of_user1/u/user/anypath
-</example>
-
- <p>따라서 모든 URL 경로가 모든 백엔드 물리적 호스트에서
- 유효할 필요가 없습니다. 다음 규칙 세트는 맵 파일의
- 도움으로 이를 수행하며, 사용자가 맵에 항목이 없는
- 경우 server0이 기본 서버로 사용됩니다:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"
-</highlight>
- </dd>
- </dl>
-
- <p>이 지시어의 구문에 대한 자세한 내용은
- <directive module="mod_rewrite">RewriteMap</directive>
- 문서와 <a href="./rewritemap.html">RewriteMap 사용법</a>을
- 참조하십시오.</p>
-
-</section>
-
-<section id="on-the-fly-content">
-
- <title>실시간 콘텐츠 재생성</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p>콘텐츠를 동적으로 생성하되, 한 번 생성되면
- 정적으로 저장하고자 합니다. 이 규칙은 정적 파일의
- 존재를 확인하고, 없으면 생성합니다. 정적 파일은
- 원하는 경우 (예를 들어 cron을 통해) 주기적으로
- 제거할 수 있으며, 필요에 따라 재생성됩니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- 이는 다음 규칙 세트로 수행됩니다:
-
-<highlight language="config">
-# This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]
-</highlight>
-
- <p><code>-U</code> 연산자는 테스트 문자열(이 경우
- <code>REQUEST_URI</code>)이 유효한 URL인지
- 판단합니다. 이는 서브요청을 통해 수행됩니다.
- 이 서브요청이 실패하면 - 즉, 요청된 자원이 존재하지
- 않으면 - 이 규칙은 CGI 프로그램
- <code>/regenerate_page.cgi</code>를 호출하여
- 요청된 자원을 생성하고 문서 디렉토리에 저장하므로,
- 다음에 요청될 때 정적 복사본을 제공할 수 있습니다.</p>
-
- <p>이 방식으로 자주 업데이트되지 않는 문서를 정적
- 형태로 제공할 수 있습니다. 문서를 새로고침해야 하는
- 경우 문서 디렉토리에서 삭제할 수 있으며, 다음에
- 요청될 때 재생성됩니다.</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="load-balancing">
-
- <title>부하 분산</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p><module>mod_rewrite</module>를 사용하여 여러 서버에
- 무작위로 부하를 분산하고자 합니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- <p><directive module="mod_rewrite">RewriteMap</directive>과
- 서버 목록을 사용하여 이를 수행합니다.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]
-</highlight>
-
-<p><code>serverlist.txt</code>에는 서버 목록이 포함됩니다:</p>
-
-<example>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</example>
-
-<p>특정 서버가 다른 서버보다 더 많은 부하를 받도록 하려면
-목록에 해당 서버를 더 많이 추가하십시오.</p>
-
- </dd>
-
- <dt>토론</dt>
- <dd>
-<p>Apache에는 부하 분산 모듈인
-<module>mod_proxy_balancer</module>가 포함되어 있으며,
-이것은 <module>mod_rewrite</module>를 사용하여 조합할 수 있는
-어떤 것보다 훨씬 더 유연하고 기능이 풍부합니다.</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="structuredhomedirs">
-
- <title>구조화된 사용자 디렉토리</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p>수천 명의 사용자가 있는 일부 사이트는 구조화된
- 홈 디렉토리 레이아웃을 사용합니다. <em>즉,</em> 각
- 홈 디렉토리는 사용자 이름의 첫 번째 문자로 시작하는
- 하위 디렉토리에 있습니다. 예를 들어
- <code>/~larry/anypath</code>는
- <code>/home/<strong>l</strong>/larry/public_html/anypath</code>이고
- <code>/~waldo/anypath</code>는
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code>입니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- <p>위의 레이아웃으로 물결표 URL을 확장하기 위해
- 다음 규칙 세트를 사용합니다.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"
-</highlight>
- </dd>
- </dl>
-
-</section>
-
-<section id="redirectanchors">
-
- <title>앵커 리다이렉트</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p>기본적으로 HTML 앵커로의 리다이렉트는 작동하지
- 않습니다. <module>mod_rewrite</module>가 <code>#</code>
- 문자를 이스케이프하여 <code>%23</code>으로 변환하기
- 때문입니다. 이로 인해 리다이렉션이 중단됩니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- <p><code>RewriteRule</code>에 <code>[NE]</code>
- 플래그를 사용합니다. NE는 No Escape를 의미합니다.</p>
- </dd>
-
- <dt>토론:</dt>
- <dd>이 기술은 <module>mod_rewrite</module>가 기본적으로
- URL 인코딩하는 다른 특수 문자에도 물론 적용됩니다.</dd>
- </dl>
-
-</section>
-
-<section id="time-dependent">
-
- <title>시간 기반 재작성</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p><module>mod_rewrite</module>를 사용하여 시간대에 따라
- 다른 콘텐츠를 제공하고자 합니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- <p>재작성 조건에 사용할 수 있는 <code>TIME_xxx</code>라는
- 많은 변수가 있습니다. 특수 사전식 비교 패턴
- <code><STRING</code>, <code>>STRING</code>,
- <code>=STRING</code>과 함께 시간 기반 리다이렉트를
- 수행할 수 있습니다:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"
-</highlight>
-
- <p>이것은 <code>07:01-18:59</code> 사이에는 URL
- <code>foo.html</code> 하에 <code>foo.day.html</code>의
- 콘텐츠를 제공하고, 나머지 시간에는
- <code>foo.night.html</code>의 콘텐츠를 제공합니다.</p>
-
- <note type="warning"><module>mod_cache</module>, 중간 프록시
- 및 브라우저는 각각 응답을 캐시할 수 있으며, 구성된
- 시간 창 밖에서 어느 쪽 페이지든 표시될 수 있습니다.
- <module>mod_expires</module>를 사용하여 이 효과를
- 제어할 수 있습니다. 물론 콘텐츠를 동적으로 제공하고
- 시간대에 따라 사용자 정의하는 것이 훨씬 좋습니다.</note>
-
- </dd>
- </dl>
-
-</section>
-
-<section id="setenvvars">
-
- <title>URL 부분에 따른 환경 변수 설정</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p>때때로 재작성을 수행할 때 어떤 종류의 상태를
- 유지하고 싶을 수 있습니다. 예를 들어, 해당 재작성을
- 수행했다는 것을 기록하여 나중에 요청이 해당 재작성을
- 통해 왔는지 확인하고 싶을 수 있습니다. 이를 수행하는
- 한 가지 방법은 환경 변수를 설정하는 것입니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- <p>[E] 플래그를 사용하여 환경 변수를 설정합니다.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]
-</highlight>
-
- <p>나중에 규칙 세트에서 RewriteCond를 사용하여
- 이 환경 변수를 확인할 수 있습니다:</p>
-
-<highlight language="config">
-RewriteCond "%{ENV:rewritten}" =1
-</highlight>
-
- <p>환경 변수는 외부 리다이렉트에서 유지되지 않는다는
- 점에 유의하십시오. 쿠키를 설정하려면 [CO] 플래그를
- 사용하는 것을 고려할 수 있습니다. 디렉토리별 및
- htaccess 재작성에서 최종 치환이 내부 리다이렉트로
- 처리되는 경우, 이전 라운드의 재작성에서 온 환경 변수는
- "REDIRECT_" 접두사가 붙습니다.</p>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!-- GENERATED FROM XML: DO NOT EDIT -->
-
-<metafile reference="advanced.xml">
- <basename>advanced</basename>
- <path>/rewrite/</path>
- <relpath>..</relpath>
-
- <variants>
- <variant outdated="yes">de</variant>
- <variant>en</variant>
- <variant outdated="yes">es</variant>
- <variant outdated="yes">fr</variant>
- <variant outdated="yes">ja</variant>
- <variant outdated="yes">ko</variant>
- <variant outdated="yes">tr</variant>
- <variant outdated="yes">zh-cn</variant>
- </variants>
-</metafile>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933067:1933613 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="advanced.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>mod_rewrite ile İleri Teknikler</title>
-
-<summary>
-
-<p>Bu belge, <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">başvuru belgelerini</a> tamamlar.
-<module>mod_rewrite</module> kullanarak birkaç ileri teknik sunar.</p>
-
-<!--
-Burada kalan herhangi bir şeyin "ileri" sayılıp sayılmadığını
-sorguluyorum. Muhtemelen çeşitli belgelerdeki örneklerin envanterini
-çıkarmanın ve bu dizindeki malzemeyi yeniden düzenlemenin zamanı
-gelmiştir. Yine.
--->
-
-<note type="warning">Bu örneklerin birçoğunun sizin sunucu yapılandırmanızda
-değişiklik yapılmadan çalışmayacağını unutmayın; bu nedenle örnekleri
-yapılandırmanıza kopyalayıp yapıştırmak yerine anlamanız
-önemlidir.</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Modül belgeleri</a></seealso>
-<seealso><a href="intro.html">mod_rewrite'a giriş</a></seealso>
-<seealso><a href="remapping.html">Yeniden yönlendirme ve yeniden eşleme</a></seealso>
-<seealso><a href="access.html">Erişim denetimi</a></seealso>
-<seealso><a href="vhosts.html">Sanal konaklar</a></seealso>
-<seealso><a href="proxy.html">Vekil kullanımı</a></seealso>
-<seealso><a href="rewritemap.html">RewriteMap Kullanımı</a></seealso>
-<!--<seealso><a href="advanced.html">İleri teknikler</a></seealso>-->
-<seealso><a href="avoid.html">mod_rewrite kullanılmaması gereken durumlar</a></seealso>
-
-<section id="sharding">
-
- <title>Birden Fazla Arka Uç Arasında URL Tabanlı Parçalama</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Sunucu yükünü veya depolama alanını dağıtmak için yaygın bir
- teknik "parçalama" (sharding) olarak adlandırılır. Bu yöntem
- kullanıldığında, bir ön uç sunucu kullanıcıları veya nesneleri
- tutarlı bir şekilde ayrı arka uç sunuculara "parçalamak" için
- URL'yi kullanır.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Kullanıcılardan hedef sunuculara bir eşleme, harici eşlem
- dosyalarında tutulur. Şöyle görünürler:</p>
-
-<example>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... ve böyle devam eder
-</example>
-
- <p>Bunu bir <code>map.users-to-hosts</code> dosyasına koyarız. Amaç
- şunu eşlemektir;</p>
-
-<example>
-/u/user1/anypath
-</example>
-
- <p>buna</p>
-
-<example>
-http://physical_host_of_user1/u/user/anypath
-</example>
-
- <p>böylece her URL yolunun her arka uç fiziksel konakta geçerli
- olması gerekmez. Aşağıdaki kural kümesi, eşlem dosyalarının
- yardımıyla bunu bizim için yapar; bir kullanıcının eşlemde
- girdisi yoksa server0'ın öntanımlı sunucu olarak
- kullanılacağını varsayar:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"
-</highlight>
- </dd>
- </dl>
-
- <p>Bu yönergenin sözdizimi hakkında daha fazla tartışma için
- <directive module="mod_rewrite">RewriteMap</directive> belgelerine ve
- <a href="./rewritemap.html">RewriteMap Nasıl Yapılır</a> belgesine
- bakın.</p>
-
-</section>
-
-<section id="on-the-fly-content">
-
- <title>Anında İçerik Yeniden Oluşturma</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>İçeriği devingen olarak oluşturmak, ancak oluşturulduktan
- sonra statik olarak saklamak istiyoruz. Bu kural, statik dosyanın
- varlığını kontrol eder ve yoksa oluşturur. Statik dosyalar
- istenirse periyodik olarak (örneğin cron ile) kaldırılabilir ve
- istek üzerine yeniden oluşturulur.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- Bu, aşağıdaki kural kümesiyle yapılır:
-
-<highlight language="config">
-# This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]
-</highlight>
-
- <p><code>-U</code> işleci, sınama dizgesinin (bu durumda
- <code>REQUEST_URI</code>) geçerli bir URL olup olmadığını belirler.
- Bunu bir alt istek aracılığıyla yapar. Bu alt istek başarısız
- olursa - yani istenen kaynak mevcut değilse - bu kural, istenen
- kaynağı oluşturan ve belge dizinine kaydeden
- <code>/regenerate_page.cgi</code> CGI programını çalıştırır; böylece
- bir sonraki istekte statik bir kopya sunulabilir.</p>
-
- <p>Bu şekilde, seyrek güncellenen belgeler statik biçimde
- sunulabilir. Belgelerin yenilenmesi gerekiyorsa belge dizininden
- silinebilir ve bir sonraki istekte yeniden oluşturulur.</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="load-balancing">
-
- <title>Yük Dengeleme</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p><module>mod_rewrite</module> kullanarak yükü birkaç sunucu
- arasında rastgele dağıtmak istiyoruz.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Bunu gerçekleştirmek için <directive
- module="mod_rewrite">RewriteMap</directive> ve bir sunucu listesi
- kullanacağız.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]
-</highlight>
-
-<p><code>serverlist.txt</code> sunucuların bir listesini içerecektir:</p>
-
-<example>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</example>
-
-<p>Belirli bir sunucunun diğerlerinden daha fazla yük almasını
-istiyorsanız, onu listeye daha fazla kez ekleyin.</p>
-
- </dd>
-
- <dt>Tartışma</dt>
- <dd>
-<p>Apache, <module>mod_rewrite</module> ile bir araya getireceğiniz
-herhangi bir şeyden çok daha esnek ve özellik açısından zengin bir yük
-dengeleme modülü olan <module>mod_proxy_balancer</module> ile
-birlikte gelir.</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="structuredhomedirs">
-
- <title>Yapılandırılmış Kullanıcı Dizinleri</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Binlerce kullanıcısı olan bazı siteler yapılandırılmış bir
- ev dizini düzeni kullanır; <em>yani</em> her ev dizini, kullanıcı
- adının (örneğin) ilk karakteriyle başlayan bir alt dizindedir.
- Böylece, <code>/~larry/anypath</code> şu olur:
- <code>/home/<strong>l</strong>/larry/public_html/anypath</code>;
- <code>/~waldo/anypath</code> ise şu olur:
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code>.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Tilde URL'leri yukarıdaki düzene göre genişletmek için
- aşağıdaki kural kümesini kullanırız.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"
-</highlight>
- </dd>
- </dl>
-
-</section>
-
-<section id="redirectanchors">
-
- <title>Çapaların Yeniden Yönlendirilmesi</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Öntanımlı olarak, bir HTML çapasına yönlendirme çalışmaz;
- çünkü <module>mod_rewrite</module> <code>#</code> karakterini
- kodlayarak <code>%23</code>'e dönüştürür. Bu da yönlendirmeyi
- bozar.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p><code>RewriteRule</code> üzerinde <code>[NE]</code> bayrağını
- kullanın. NE, Kodlama Yapma (No Escape) anlamına gelir.
- </p>
- </dd>
-
- <dt>Tartışma:</dt>
- <dd>Bu teknik, <module>mod_rewrite</module> modülünün öntanımlı
- olarak URL-kodladığı diğer özel karakterlerle de çalışacaktır.</dd>
- </dl>
-
-</section>
-
-<section id="time-dependent">
-
- <title>Zamana Bağlı Yeniden Yazma</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Günün saatine göre farklı içerik sunmak için
- <module>mod_rewrite</module> kullanmak istiyoruz.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Yeniden yazma koşulları için <code>TIME_xxx</code> adlı birçok
- değişken vardır. Özel sözlüksel karşılaştırma kalıpları olan
- <code><DİZGE</code>, <code>>DİZGE</code> ve
- <code>=DİZGE</code> ile birlikte zamana bağlı yönlendirmeler
- yapabiliriz:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"
-</highlight>
-
- <p>Bu, <code>foo.html</code> URL'si altında
- <code>07:01-18:59</code> saatleri arasında
- <code>foo.day.html</code> içeriğini, geri kalan zamanda ise
- <code>foo.night.html</code> içeriğini sunar.</p>
-
- <note type="warning"><module>mod_cache</module>, ara vekiller
- ve tarayıcıların her biri yanıtları önbelleğe alabilir ve
- yapılandırılan zaman penceresinin dışında herhangi bir sayfanın
- gösterilmesine neden olabilir. Bu etkiyi kontrol etmek için
- <module>mod_expires</module> kullanılabilir. Elbette, içeriği
- devingen olarak sunmak ve günün saatine göre özelleştirmek çok
- daha iyidir.</note>
-
- </dd>
- </dl>
-
-</section>
-
-<section id="setenvvars">
-
- <title>URL Parçalarına Göre Ortam Değişkenleri Atama</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>Bazen bir yeniden yazma gerçekleştirdiğimizde bir tür durum
- bilgisi tutmak isteriz. Örneğin, bu yeniden yazmayı yaptığınıza
- dair bir not almak isteyebilirsiniz; böylece daha sonra bir
- isteğin bu yeniden yazma yoluyla gelip gelmediğini kontrol
- edebilirsiniz. Bunu yapmanın bir yolu bir ortam değişkeni
- ayarlamaktır.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Bir ortam değişkeni ayarlamak için [E] bayrağını kullanın.</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]
-</highlight>
-
- <p>Daha sonra kural kümenizde bu ortam değişkenini bir RewriteCond
- kullanarak kontrol edebilirsiniz:</p>
-
-<highlight language="config">
-RewriteCond "%{ENV:rewritten}" =1
-</highlight>
-
- <p>Ortam değişkenlerinin harici bir yönlendirmeden sonra kalıcı
- olmadığını unutmayın. [CO] bayrağını kullanarak bir çerez
- ayarlamayı düşünebilirsiniz. Dizin başına ve htaccess yeniden
- yazmaları için, son değiştirme dahili bir yönlendirme olarak
- işlendiğinde, önceki yeniden yazma turundan gelen ortam
- değişkenlerinin başına "REDIRECT_" eklenir.</p>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933067:1933613 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="advanced.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>mod_rewrite 高级技术</title>
-
-<summary>
-
-<p>本文档是 <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">参考文档</a>的补充。
-它提供了一些使用 <module>mod_rewrite</module> 的高级技术。</p>
-
-<!--
-I question whether anything remailing in this document qualifies as
-"advanced". It's probably time to take inventory of the examples that we
-have in the various docs, and consider a reorg of the stuff in this
-directory. Again.
--->
-
-<note type="warning">请注意,这些示例中的许多不会在你的特定服务器配置中直接生效,
-因此理解它们非常重要,而不仅仅是将示例复制粘贴到你的配置中。</note>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">模块文档</a></seealso>
-<seealso><a href="intro.html">mod_rewrite 简介</a></seealso>
-<seealso><a href="remapping.html">重定向和重映射</a></seealso>
-<seealso><a href="access.html">访问控制</a></seealso>
-<seealso><a href="vhosts.html">虚拟主机</a></seealso>
-<seealso><a href="proxy.html">代理</a></seealso>
-<seealso><a href="rewritemap.html">使用 RewriteMap</a></seealso>
-<!--<seealso><a href="advanced.html">高级技术</a></seealso>-->
-<seealso><a href="avoid.html">何时不使用 mod_rewrite</a></seealso>
-
-<section id="sharding">
-
- <title>基于 URL 的跨多后端分片</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>一种分配服务器负载或存储空间的常见技术称为"分片"。
- 使用此方法时,前端服务器将使用 URL 将用户或对象一致地"分片"到
- 不同的后端服务器。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>在外部映射文件中维护从用户到目标服务器的映射。
- 它们看起来像:</p>
-
-<example>
-user1 physical_host_of_user1<br />
-user2 physical_host_of_user2<br />
-# ... and so on
-</example>
-
- <p>我们将其放入 <code>map.users-to-hosts</code> 文件。
- 目标是映射:</p>
-
-<example>
-/u/user1/anypath
-</example>
-
- <p>到</p>
-
-<example>
-http://physical_host_of_user1/u/user/anypath
-</example>
-
- <p>这样每个 URL 路径不需要在每个后端物理主机上都有效。
- 以下规则集借助映射文件为我们完成此操作,
- 假设 server0 是在用户在映射中没有条目时使用的默认服务器:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap users-to-hosts "txt:/path/to/map.users-to-hosts"
-RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"
-</highlight>
- </dd>
- </dl>
-
- <p>请参阅 <directive module="mod_rewrite">RewriteMap</directive>
- 文档和 <a href="./rewritemap.html">RewriteMap 指南</a>
- 以了解此指令语法的更多讨论。</p>
-
-</section>
-
-<section id="on-the-fly-content">
-
- <title>即时内容再生成</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>我们希望动态生成内容,但一旦生成就将其静态存储。
- 此规则将检查静态文件是否存在,如果不存在,则生成它。
- 静态文件可以定期删除(例如通过 cron),
- 并在需要时按需重新生成。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- 这通过以下规则集完成:
-
-<highlight language="config">
-# This example is valid in per-directory context only
-RewriteCond "%{REQUEST_URI}" !-U
-RewriteRule "^(.+)\.html$" "/regenerate_page.cgi" [PT,L]
-</highlight>
-
- <p><code>-U</code> 操作符确定测试字符串(在本例中为
- <code>REQUEST_URI</code>)是否是有效的 URL。它通过子请求来完成。
- 如果此子请求失败——即请求的资源不存在——此规则将调用 CGI 程序
- <code>/regenerate_page.cgi</code>,该程序生成请求的资源并将其保存到
- 文档目录中,这样下次请求时就可以提供静态副本了。</p>
-
- <p>通过这种方式,不经常更新的文档可以以静态形式提供。
- 如果需要刷新文档,可以从文档目录中删除它们,
- 下次请求时将重新生成。</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="load-balancing">
-
- <title>负载均衡</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>我们希望使用 <module>mod_rewrite</module>
- 在多台服务器之间随机分配负载。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>我们将使用 <directive
- module="mod_rewrite">RewriteMap</directive> 和服务器列表来实现。</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteMap lb "rnd:/path/to/serverlist.txt"
-RewriteRule "^/(.*)" "http://${lb:servers}/$1" [P,L]
-</highlight>
-
-<p><code>serverlist.txt</code> 将包含服务器列表:</p>
-
-<example>
-## serverlist.txt<br />
-<br />
-servers one.example.com|two.example.com|three.example.com<br />
-</example>
-
-<p>如果你希望某台特定服务器承担更多负载,可以在列表中多次添加它。</p>
-
- </dd>
-
- <dt>讨论</dt>
- <dd>
-<p>Apache 自带一个负载均衡模块 -
-<module>mod_proxy_balancer</module> - 它比你使用
-<module>mod_rewrite</module> 拼凑出来的任何方案都更加灵活和功能丰富。</p>
- </dd>
- </dl>
-
-</section>
-
-<section id="structuredhomedirs">
-
- <title>结构化用户目录</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>一些拥有数千用户的站点使用结构化的主目录布局,
- <em>即</em>每个主目录位于一个子目录中,
- 该子目录以用户名的第一个字符开头。因此,
- <code>/~larry/anypath</code> 是
- <code>/home/<strong>l</strong>/larry/public_html/anypath</code>,
- 而 <code>/~waldo/anypath</code> 是
- <code>/home/<strong>w</strong>/waldo/public_html/anypath</code>。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>我们使用以下规则集将波浪号 URL 展开为上述布局。</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"
-</highlight>
- </dd>
- </dl>
-
-</section>
-
-<section id="redirectanchors">
-
- <title>重定向锚点</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>默认情况下,重定向到 HTML 锚点不起作用,因为
- <module>mod_rewrite</module> 会转义 <code>#</code> 字符,
- 将其变为 <code>%23</code>。这反过来会破坏重定向。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>在 <code>RewriteRule</code> 上使用 <code>[NE]</code> 标志。
- NE 代表不转义(No Escape)。
- </p>
- </dd>
-
- <dt>讨论:</dt>
- <dd>此技术当然也适用于 <module>mod_rewrite</module>
- 默认会进行 URL 编码的其他特殊字符。</dd>
- </dl>
-
-</section>
-
-<section id="time-dependent">
-
- <title>基于时间的重写</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>我们希望使用 <module>mod_rewrite</module>
- 根据一天中的时间提供不同的内容。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>有许多名为 <code>TIME_xxx</code>
- 的变量可用于重写条件。结合特殊的词法比较模式
- <code><STRING</code>、<code>>STRING</code> 和
- <code>=STRING</code>,我们可以进行基于时间的重定向:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" >0700
-RewriteCond "%{TIME_HOUR}%{TIME_MIN}" <1900
-RewriteRule "^foo\.html$" "foo.day.html" [L]
-RewriteRule "^foo\.html$" "foo.night.html"
-</highlight>
-
- <p>这将在 <code>07:01-18:59</code> 时间段内,以 URL
- <code>foo.html</code> 提供 <code>foo.day.html</code> 的内容,
- 在其余时间提供 <code>foo.night.html</code> 的内容。</p>
-
- <note type="warning"><module>mod_cache</module>、中间代理和浏览器
- 可能各自缓存响应,导致在配置的时间窗口之外显示某个页面。
- 可以使用 <module>mod_expires</module> 来控制此效果。
- 当然,动态提供内容并根据时间自定义它是更好的方式。</note>
-
- </dd>
- </dl>
-
-</section>
-
-<section id="setenvvars">
-
- <title>根据 URL 部分设置环境变量</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>有时,我们希望在执行重写时保持某种状态。例如,
- 你想记录你已完成该重写,以便稍后检查请求是否通过该重写。
- 一种方法是设置环境变量。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>使用 [E] 标志设置环境变量。</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteRule "^/horse/(.*)" "/pony/$1" [E=<strong>rewritten:1</strong>]
-</highlight>
-
- <p>稍后在你的规则集中,你可以使用 RewriteCond 检查此环境变量:</p>
-
-<highlight language="config">
-RewriteCond "%{ENV:rewritten}" =1
-</highlight>
-
- <p>请注意,环境变量在外部重定向后不会保留。你可以考虑使用 [CO]
- 标志来设置 cookie。对于目录级和 htaccess 重写,
- 当最终替换作为内部重定向处理时,上一轮重写的环境变量会以
- "REDIRECT_" 为前缀。</p>
-
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-# GENERATED FROM XML -- DO NOT EDIT
-
-URI: proxy.html.de
-Content-Language: de
-Content-type: text/html; charset=ISO-8859-1
-
-URI: proxy.html.en.utf8
-Content-Language: en
-Content-type: text/html; charset=UTF-8
-
-URI: proxy.html.es.utf8
-Content-Language: es
-Content-type: text/html; charset=UTF-8
-
-URI: proxy.html.fr.utf8
-Content-Language: fr
-Content-type: text/html; charset=UTF-8
-
-URI: proxy.html.ja.utf8
-Content-Language: ja
-Content-type: text/html; charset=UTF-8
-
-URI: proxy.html.ko.euc-kr
-Content-Language: ko
-Content-type: text/html; charset=EUC-KR
-
-URI: proxy.html.tr.utf8
-Content-Language: tr
-Content-type: text/html; charset=UTF-8
-
-URI: proxy.html.zh-cn.utf8
-Content-Language: zh-cn
-Content-type: text/html; charset=UTF-8
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"><head>
-<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Verwendung von mod_rewrite für Proxying - Apache HTTP Server Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Module</a> | <a href="../mod/quickreference.html">Direktiven</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Server Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP-Server</a> > <a href="http://httpd.apache.org/docs/">Dokumentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Verwendung von mod_rewrite für Proxying</h1>
-<div class="toplang">
-<p><span>Verfügbare Sprachen: </span><a href="../de/rewrite/proxy.html" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Diese Übersetzung ist möglicherweise
- nicht mehr aktuell. Bitte prüfen Sie die englische Version auf
- die neuesten Änderungen.</div>
-
-
-<p>Dieses Dokument ergänzt die <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">Referenzdokumentation</a>. Es beschreibt,
-wie man das [P]-Flag der RewriteRule verwendet, um Inhalte an einen anderen
-Server weiterzuleiten. Es werden verschiedene Rezepte bereitgestellt, die
-gängige Szenarien beschreiben.</p>
-
-</div>
-<div id="quickview"><h3>Siehe auch</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Moduldokumentation</a></li><li><a href="intro.html">Einführung in mod_rewrite</a></li><li><a href="remapping.html">Umleitung und Neuzuordnung</a></li><li><a href="access.html">Zugriffskontrolle</a></li><li><a href="vhosts.html">Virtuelle Hosts</a></li><li><a href="rewritemap.html">Verwendung von RewriteMap</a></li><li><a href="advanced.html">Fortgeschrittene Techniken</a></li><li><a href="avoid.html">Wann man mod_rewrite nicht verwenden sollte</a></li><li><a href="#comments_section">Kommentare</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dynamic-proxy" id="dynamic-proxy">Proxying von Inhalten mit mod_rewrite</a> <a title="Permanent link" href="#dynamic-proxy" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> bietet das [P]-Flag, mit dem URLs über
- <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> an einen anderen Server weitergeleitet werden
- können. Hier werden zwei Beispiele gegeben. In einem Beispiel wird eine
- URL direkt an einen anderen Server weitergeleitet und so ausgeliefert,
- als wäre sie eine lokale URL. Im anderen Beispiel leiten wir fehlende
- Inhalte an einen Backend-Server weiter.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Um eine URL einfach einem anderen Server zuzuordnen, verwenden
- wir das [P]-Flag wie folgt:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"</pre>
-
-
- <p>Im zweiten Beispiel leiten wir die Anfrage nur weiter, wenn wir
- die Ressource nicht lokal finden können. Dies kann sehr nützlich sein,
- wenn Sie von einem Server zu einem anderen migrieren und sich nicht
- sicher sind, ob alle Inhalte bereits migriert wurden.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"</pre>
-
- </dd>
-
- <dt>Diskussion:</dt>
-
- <dd><p>In jedem Fall fügen wir eine <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code>-Direktive hinzu, um
- sicherzustellen, dass alle vom Backend ausgegebenen Umleitungen
- korrekt an den Client weitergeleitet werden.</p>
-
- <p>Erwägen Sie, wann immer möglich, <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> oder <code class="directive"><a href="../mod/mod_proxy.html#proxypassmatch">ProxyPassMatch</a></code> anstelle von
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> zu verwenden.</p>
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Verfügbare Sprachen: </span><a href="../de/rewrite/proxy.html" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Module</a> | <a href="../mod/quickreference.html">Direktiven</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Using mod_rewrite for Proxying - Apache HTTP Server Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page" class="no-sidebar"><div id="page-header">
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Server Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Using mod_rewrite for Proxying</h1>
-<div class="toplang">
-<p><span>Available Languages: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-
-
-<div class="warning">This document has been deprecated. Its content has
-been merged into the
-<a href="avoid.html#proxy">When not to use mod_rewrite</a> document,
-since simple proxying is better accomplished using
-<code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code>. This page will be
-removed in a future version of this documentation.</div>
-
-</div>
-</div>
-<div class="bottomlang">
-<p><span>Available Languages: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Uso de mod_rewrite para Proxy - Servidor HTTP Apache Versión 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Reportar un error</a></p>
-<p class="apache">Versión 2.5 del Servidor HTTP Apache</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="../">Versión 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Uso de mod_rewrite para Proxy</h1>
-<div class="toplang">
-<p><span>Idiomas disponibles: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Esta traducción podría estar
- obsoleta. Consulte la versión en inglés de la
- documentación para comprobar si se han producido cambios
- recientemente.</div>
-
-
-<p>Este documento complementa la <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">documentación de referencia</a>. Describe
-cómo usar la bandera [P] de RewriteRule para hacer proxy de contenido a otro servidor.
-Se proporcionan varias recetas que describen escenarios comunes.</p>
-
-</div>
-<div id="quickview"><h3>Consulte también</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentación del módulo</a></li><li><a href="intro.html">Introducción a mod_rewrite</a></li><li><a href="remapping.html">Redirección y remapeo</a></li><li><a href="access.html">Control de acceso</a></li><li><a href="vhosts.html">Hosts virtuales</a></li><li><a href="rewritemap.html">Uso de RewriteMap</a></li><li><a href="advanced.html">Técnicas avanzadas</a></li><li><a href="avoid.html">Cuándo no usar mod_rewrite</a></li><li><a href="#comments_section">Comentarios</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dynamic-proxy" id="dynamic-proxy">Hacer proxy de contenido con mod_rewrite</a> <a title="Enlace permanente" href="#dynamic-proxy" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> proporciona la bandera [P], que permite pasar URLs,
- a través de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, a otro servidor. Aquí se dan dos ejemplos. En
- un ejemplo, una URL se pasa directamente a otro servidor, y se sirve
- como si fuera una URL local. En el otro ejemplo, hacemos proxy del
- contenido faltante a un servidor backend.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Para simplemente mapear una URL a otro servidor, usamos la bandera [P], de la
- siguiente manera:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"</pre>
-
-
- <p>En el segundo ejemplo, hacemos proxy de la solicitud solo si no podemos encontrar
- el recurso localmente. Esto puede ser muy útil cuando está migrando
- de un servidor a otro, y no está seguro de si todo el contenido
- ha sido migrado todavía.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"</pre>
-
- </dd>
-
- <dt>Discusión:</dt>
-
- <dd><p>En cada caso, añadimos una directiva <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> para asegurar
- que cualquier redirección emitida por el backend se pase correctamente al
- cliente.</p>
-
- <p>Considere usar <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> o <code class="directive"><a href="../mod/mod_proxy.html#proxypassmatch">ProxyPassMatch</a></code> siempre que sea posible en
- preferencia a <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Idiomas disponibles: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Reportar un error</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Utilisation de mod_rewrite comme mandataire - Serveur HTTP Apache Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
-<p class="apache">Serveur HTTP Apache Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Utilisation de mod_rewrite comme mandataire</h1>
-<div class="toplang">
-<p><span>Langues Disponibles: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
-
-
-<p>Ce document est un complément de la <a href="../mod/mod_rewrite.html">documentation de référence</a> du module
-<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Il décrit comment utiliser le drapeau [P]
-de la directive RewriteRule pour mandater un contenu vers un autre
-serveur. Plusieurs recettes décrivant des scénarios courants sont
-fournies.</p>
-
-</div>
-<div id="quickview"><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du module</a></li><li><a href="intro.html">Introduction à mod_rewrite</a></li><li><a href="remapping.html">Redirection et remise en
-correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li><li><a href="#comments_section">Commentaires</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dynamic-proxy" id="dynamic-proxy">Mandater du contenu avec mod_rewrite</a> <a title="Lien permanent" href="#dynamic-proxy" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> implémente le drapeau [P] qui permet de passer des URLs,
- via <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, à un autre serveur. Deux exemples sont fournis ici.
- Dans le premier, une URL est passée directement à un autre serveur,
- et servie comme si c'était une URL locale. Dans le deuxième, nous
- mandatons un contenu manquant vers un serveur d'arrière-plan.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Pour passer une URL à un autre serveur, on utilise le drapeau
- [P] comme suit :</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteBase "/produits/"
-RewriteRule "^widget/(.*)$" "http://produits.example.com/widget/$1" [P]
-ProxyPassReverse "/produits/objet/" "http://produits.example.com/objet/"</pre>
-
-
- <p>Dans le deuxième exemple, nous ne mandatons la requête que si nous
- ne trouvons pas la ressource localement. Ceci peut s'avérer très
- utile lorsque vous effectuez une migration d'un serveur vers un
- autre, et que vous n'êtes pas certain que tout le contenu a déjà été
- migré.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://ancien.exemple.com/$1" [P]
-ProxyPassReverse "/" "http://ancien.exemple.com/"</pre>
-
- </dd>
-
- <dt>Discussion :</dt>
-
- <dd><p>Dans les deux cas, on ajoute une directive <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> afin de s'assurer
- que toute redirection en provenance du serveur d'arrière-plan est
- renvoyée correctement au client.</p>
-
- <p>Chaque fois que cela est possible, préférez l'utilisation de la
- directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> ou
- <code class="directive"><a href="../mod/mod_proxy.html#proxypassmatch">ProxyPassMatch</a></code> à
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Langues Disponibles: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>mod_rewrite によるプロキシ - Apache HTTP サーバ バージョン 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/quickreference.html">ディレクティブ</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP サーバ バージョン 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーバ</a> > <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> > <a href="../">バージョン 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>mod_rewrite によるプロキシ</h1>
-<div class="toplang">
-<p><span>翻訳済み言語: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">この日本語訳はすでに古くなっている
- 可能性があります。
- 最近更新された内容を見るには英語版をご覧下さい。
- </div>
-
-
-<p>このドキュメントは <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">リファレンスドキュメント</a>を補足するものです。
-RewriteRule の [P] フラグを使用して他のサーバにコンテンツをプロキシする方法を
-説明します。一般的なシナリオを説明するレシピがいくつか提供されています。</p>
-
-</div>
-<div id="quickview"><h3>参照</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">モジュールドキュメント</a></li><li><a href="intro.html">mod_rewrite 入門</a></li><li><a href="remapping.html">リダイレクトとリマッピング</a></li><li><a href="access.html">アクセス制御</a></li><li><a href="vhosts.html">バーチャルホスト</a></li><li><a href="rewritemap.html">RewriteMap の使用</a></li><li><a href="advanced.html">高度なテクニック</a></li><li><a href="avoid.html">mod_rewrite を使わない場合</a></li><li><a href="#comments_section">コメント</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dynamic-proxy" id="dynamic-proxy">mod_rewrite によるコンテンツのプロキシ</a> <a title="Permanent link" href="#dynamic-proxy" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> は [P] フラグを提供しており、URL を
- <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> 経由で他のサーバに渡すことができます。ここでは
- 2 つの例を示します。1 つ目の例では、URL を直接別のサーバに渡し、
- ローカル URL であるかのように提供します。もう 1 つの例では、
- 見つからないコンテンツをバックエンドサーバにプロキシします。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>単純に URL を別のサーバにマッピングするには、次のように
- [P] フラグを使用します:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"</pre>
-
-
- <p>2 つ目の例では、リソースがローカルに見つからない場合にのみ
- リクエストをプロキシします。これは、あるサーバから別のサーバに
- 移行中で、すべてのコンテンツが移行済みかどうかわからない場合に
- 非常に便利です。</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"</pre>
-
- </dd>
-
- <dt>議論:</dt>
-
- <dd><p>どちらの場合も、バックエンドから発行されるリダイレクトが
- 正しくクライアントに渡されるように <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> ディレクティブを
- 追加しています。</p>
-
- <p>可能な限り <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> よりも <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> や <code class="directive"><a href="../mod/mod_proxy.html#proxypassmatch">ProxyPassMatch</a></code> の使用を検討してください。</p>
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>翻訳済み言語: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
-<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/quickreference.html">ディレクティブ</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="EUC-KR"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head>
-<meta content="text/html; charset=EUC-KR" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>��ë¡���ë¥� ���� mod_rewrite �¬ì�� - Apache HTTP Server Version 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">¸ðµâ</a> | <a href="../mod/quickreference.html">Áö½Ã¾îµé</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">¿ë¾î</a> | <a href="../sitemap.html">»çÀÌÆ®¸Ê</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Server Version 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>��ë¡���ë¥� ���� mod_rewrite �¬ì��</h1>
-<div class="toplang">
-<p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">ÀÌ ¹®¼´Â ÃÖ½ÅÆÇ ¹ø¿ªÀÌ ¾Æ´Õ´Ï´Ù.
- ÃÖ±Ù¿¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼¸¦ Âü°íÇϼ¼¿ä.</div>
-
-
-<p>�� 문��� <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">참조 문ì��</a>ë¥� ë³´ì¶©�©ë����.
-RewriteRule�� [P] ����ê·¸ë�� �¬ì�©í���� �¤ë¥¸ ��ë²�ë¡� ì½���ì¸�ë¥�
-��ë¡������� ë°©ë��� �¤ë��©ë����. �¼ë����� ����리ì�¤ë�� �¤ë�����
-�¬ë�� �����¼ê� ��ê³µë�©ë����.</p>
-
-</div>
-<div id="quickview"><h3>Âü°í</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">모ë�� 문ì��</a></li><li><a href="intro.html">mod_rewrite ��ê°�</a></li><li><a href="remapping.html">리ë�¤ì�´ë����ê³� �¬ë§¤��</a></li><li><a href="access.html">��ê·� ����</a></li><li><a href="vhosts.html">ê°��� �¸ì�¤í��</a></li><li><a href="rewritemap.html">RewriteMap �¬ì�©í��ê¸�</a></li><li><a href="advanced.html">ê³�ê¸� 기ì��</a></li><li><a href="avoid.html">mod_rewriteë¥� �¬ì�©í��ì§� ë§����� �� ê²½ì��</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dynamic-proxy" id="dynamic-proxy">mod_rewriteë¥� �¬ì�©í�� ì½���ì¸� ��ë¡���</a> <a title="Permanent link" href="#dynamic-proxy" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>�¤ë�:</dt>
-
- <dd>
- <p>
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>�� [P] ����그� ��공���
- <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>ë¥� �µí�� URL�� �¤ë¥¸ ��ë²�ë¡�
- ���¬í�� �� ��ê²� �©ë����. �¬ê¸°�� �� ê°�ì§� ����ê°� ���µë����.
- �� ���������� URL�� �¤ë¥¸ ��ë²�ë¡� ì§��� ���¬ë���� ë¡�ì»�
- URL�� ê²�ì²��� ��ê³µë�©ë����. �¤ë¥¸ ���������� ���½ë��
- ì½���ì¸�ë¥� ë°±ì���� ��ë²�ë¡� ��ë¡����©ë����.</p>
- </dd>
-
- <dt>�´ê²°ì±�:</dt>
-
- <dd>
- <p>URL�� �¤ë¥¸ ��ë²��� �¨ì���� 매í�����¤ë©´ �¤ì��ê³� ê°���
- [P] ����ê·¸ë�� �¬ì�©í�©ë����:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"</pre>
-
-
- <p>�� �� ���������� �컬��� ������ 찾� �� ����
- ê²½ì�°ì��ë§� ��ì²��� ��ë¡����©ë����. �´ê��� �� ��ë²����� �¤ë¥¸
- ��ë²�ë¡� ë§��´ê·¸���´ì����ê³� ���¼ë©° 모ë�� ì½���ì¸�ê°� ��ì§�
- ë§��´ê·¸���´ì��������ì§� ������ �� ���� �� 매ì�� ���©í�©ë����.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"</pre>
-
- </dd>
-
- <dt>���:</dt>
-
- <dd><p>ê°� ê²½ì�°ì�� ë°±ì�������� ë°����� 리ë�¤ì�´ë���¸ê� �´ë�¼ì�´ì�¸í�¸ì��
- �¬ë�르ê� ���¬ë����ë¡� <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> ì§����´ë��
- ì¶�ê°��©ë����.</p>
-
- <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> ���� ê°��¥í��ë©�
- <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> ����
- <code class="directive"><a href="../mod/mod_proxy.html#proxypassmatch">ProxyPassMatch</a></code>�
- �¬ì�©í���� ê²��� ê³��¤í��������.</p>
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="../mod/">¸ðµâ</a> | <a href="../mod/quickreference.html">Áö½Ã¾îµé</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">¿ë¾î</a> | <a href="../sitemap.html">»çÀÌÆ®¸Ê</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>Vekil Kullanımı için mod_rewrite - Apache HTTP Sunucusu Sürüm 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/quickreference.html">Yönergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP Sunucusu Sürüm 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">Sürüm 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Vekil Kullanımı için mod_rewrite</h1>
-<div class="toplang">
-<p><span>Mevcut Diller: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
-
-
-<p>Bu belge, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">başvuru belgelerini</a> tamamlar.
-İçeriği başka bir sunucuya vekil olarak iletmek için RewriteRule'un [P]
-bayrağının nasıl kullanılacağını açıklar. Yaygın senaryoları anlatan
-birkaç tarif sunulmuştur.</p>
-
-</div>
-<div id="quickview"><h3>Ayrıca bakınız:</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Modül belgeleri</a></li><li><a href="intro.html">mod_rewrite'a giriş</a></li><li><a href="remapping.html">Yeniden yönlendirme ve yeniden eşleme</a></li><li><a href="access.html">Erişim denetimi</a></li><li><a href="vhosts.html">Sanal konaklar</a></li><li><a href="rewritemap.html">RewriteMap Kullanımı</a></li><li><a href="advanced.html">İleri teknikler</a></li><li><a href="avoid.html">mod_rewrite kullanılmaması gereken durumlar</a></li><li><a href="#comments_section">Yorum</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dynamic-proxy" id="dynamic-proxy">mod_rewrite ile İçerik Vekilleme</a> <a title="Permanent link" href="#dynamic-proxy" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, URL'lerin <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>
- aracılığıyla başka bir sunucuya iletilmesini sağlayan [P] bayrağını
- sunar. Burada iki örnek verilmiştir. Birinde, bir URL doğrudan başka
- bir sunucuya iletilir ve yerel bir URL gibi sunulur. Diğerinde,
- eksik içeriği bir arka uç sunucusuna vekil olarak iletiriz.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Bir URL'yi başka bir sunucuya basitçe eşlemek için [P]
- bayrağını şu şekilde kullanırız:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"</pre>
-
-
- <p>İkinci örnekte, isteği yalnızca kaynağı yerel olarak
- bulamadığımızda vekil olarak iletiriz. Bu, bir sunucudan diğerine
- geçiş yaparken ve tüm içeriğin taşınıp taşınmadığından emin
- olmadığınızda çok yararlı olabilir.</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"</pre>
-
- </dd>
-
- <dt>Tartışma:</dt>
-
- <dd><p>Her iki durumda da, arka uç tarafından verilen
- yönlendirmelerin istemciye doğru şekilde iletilmesini sağlamak
- için bir <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code>
- yönergesi ekliyoruz.</p>
-
- <p>Mümkün olduğunda <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> yerine <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> veya <code class="directive"><a href="../mod/mod_proxy.html#proxypassmatch">ProxyPassMatch</a></code> kullanmayı
- değerlendirin.</p>
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>Mevcut Diller: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> adı altında lisanslıdır.</p>
-<p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/quickreference.html">Yönergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn" xml:lang="zh-cn"><head>
-<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
-<!--
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- This file is generated from xml source: DO NOT EDIT
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- -->
-<title>使用 mod_rewrite 进行代理 - Apache HTTP 服务器 版本 2.5</title>
-<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
-<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
-<script src="../style/scripts/prettify.min.js" type="text/javascript">
-</script>
-
-<link href="../images/favicon.png" rel="shortcut icon" /></head>
-<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="../mod/">模块</a> | <a href="../mod/quickreference.html">指令</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">常见问题</a> | <a href="../glossary.html">术语</a> | <a href="../sitemap.html">网站导航</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
-<p class="apache">Apache HTTP 服务器版本 2.5</p>
-<img alt="" src="../images/feather.png" /></div>
-<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
-<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP 服务器</a> > <a href="http://httpd.apache.org/docs/">文档</a> > <a href="../">版本 2.5</a> > <a href="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>使用 mod_rewrite 进行代理</h1>
-<div class="toplang">
-<p><span>可用语言: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" title="Simplified Chinese"> zh-cn </a></p>
-</div>
-<div class="outofdate">此翻译可能过期。要了解最近的更改,请阅读英文版。</div>
-
-
-<p>本文档是 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-<a href="../mod/mod_rewrite.html">参考文档</a>的补充。它描述了如何使用
-RewriteRule 的 [P] 标志将内容代理到另一台服务器。
-提供了若干描述常见场景的配置方案。</p>
-
-</div>
-<div id="quickview"><h3>参见</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">模块文档</a></li><li><a href="intro.html">mod_rewrite 简介</a></li><li><a href="remapping.html">重定向和重映射</a></li><li><a href="access.html">访问控制</a></li><li><a href="vhosts.html">虚拟主机</a></li><li><a href="rewritemap.html">使用 RewriteMap</a></li><li><a href="advanced.html">高级技术</a></li><li><a href="avoid.html">何时不使用 mod_rewrite</a></li><li><a href="#comments_section">评论</a></li></ul></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dynamic-proxy" id="dynamic-proxy">使用 mod_rewrite 代理内容</a> <a title="Permanent link" href="#dynamic-proxy" class="permalink">¶</a></h2>
-
-
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> 提供了 [P] 标志,允许 URL 通过
- <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> 传递到另一台服务器。这里给出两个示例。
- 在一个示例中,URL 被直接传递到另一台服务器,并像本地 URL 一样提供服务。
- 在另一个示例中,我们将缺失的内容代理到后端服务器。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>要简单地将 URL 映射到另一台服务器,我们使用 [P] 标志,如下所示:</p>
-
-<pre class="prettyprint lang-config">RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"</pre>
-
-
- <p>在第二个示例中,我们仅在本地找不到资源时才代理请求。
- 当你从一台服务器迁移到另一台服务器,而不确定所有内容是否已迁移完毕时,
- 这非常有用。</p>
-
-<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"</pre>
-
- </dd>
-
- <dt>讨论:</dt>
-
- <dd><p>在每种情况下,我们都添加了一个 <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> 指令,
- 以确保后端发出的任何重定向都能正确地传递给客户端。</p>
-
- <p>请尽可能考虑使用 <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> 或 <code class="directive"><a href="../mod/mod_proxy.html#proxypassmatch">ProxyPassMatch</a></code> 来代替
- <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>。</p>
- </dd>
- </dl>
-
-</div></div>
-<div class="bottomlang">
-<p><span>可用语言: </span><a href="../de/rewrite/proxy.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
-<a href="../en/rewrite/proxy.html" hreflang="en" rel="alternate" title="English"> en </a> |
-<a href="../es/rewrite/proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> |
-<a href="../fr/rewrite/proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
-<a href="../ja/rewrite/proxy.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
-<a href="../ko/rewrite/proxy.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
-<a href="../tr/rewrite/proxy.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
-<a href="../zh-cn/rewrite/proxy.html" title="Simplified Chinese"> zh-cn </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2026 The Apache Software Foundation.<br />基于 <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> 许可证.</p>
-<p class="menu"><a href="../mod/">模块</a> | <a href="../mod/quickreference.html">指令</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">常见问题</a> | <a href="../glossary.html">术语</a> | <a href="../sitemap.html">网站导航</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
-if (typeof(prettyPrint) !== 'undefined') {
- prettyPrint();
-}
-//--><!]]></script>
-</body></html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- $LastChangedRevision$ -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="proxy.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Using mod_rewrite for Proxying</title>
-
-<summary>
-
-<note type="warning">This document has been deprecated. Its content has
-been merged into the
-<a href="avoid.html#proxy">When not to use mod_rewrite</a> document,
-since simple proxying is better accomplished using
-<directive module="mod_proxy">ProxyPass</directive>. This page will be
-removed in a future version of this documentation.</note>
-
-</summary>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933067:1933622 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="proxy.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Verwendung von mod_rewrite für Proxying</title>
-
-<summary>
-
-<p>Dieses Dokument ergänzt die <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">Referenzdokumentation</a>. Es beschreibt,
-wie man das [P]-Flag der RewriteRule verwendet, um Inhalte an einen anderen
-Server weiterzuleiten. Es werden verschiedene Rezepte bereitgestellt, die
-gängige Szenarien beschreiben.</p>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Moduldokumentation</a></seealso>
-<seealso><a href="intro.html">Einführung in mod_rewrite</a></seealso>
-<seealso><a href="remapping.html">Umleitung und Neuzuordnung</a></seealso>
-<seealso><a href="access.html">Zugriffskontrolle</a></seealso>
-<seealso><a href="vhosts.html">Virtuelle Hosts</a></seealso>
-<!--<seealso><a href="proxy.html">Proxying</a></seealso>-->
-<seealso><a href="rewritemap.html">Verwendung von RewriteMap</a></seealso>
-<seealso><a href="advanced.html">Fortgeschrittene Techniken</a></seealso>
-<seealso><a href="avoid.html">Wann man mod_rewrite nicht verwenden sollte</a></seealso>
-
-<section id="dynamic-proxy">
-
- <title>Proxying von Inhalten mit mod_rewrite</title>
-
- <dl>
- <dt>Beschreibung:</dt>
-
- <dd>
- <p>
- <module>mod_rewrite</module> bietet das [P]-Flag, mit dem URLs über
- <module>mod_proxy</module> an einen anderen Server weitergeleitet werden
- können. Hier werden zwei Beispiele gegeben. In einem Beispiel wird eine
- URL direkt an einen anderen Server weitergeleitet und so ausgeliefert,
- als wäre sie eine lokale URL. Im anderen Beispiel leiten wir fehlende
- Inhalte an einen Backend-Server weiter.</p>
- </dd>
-
- <dt>Lösung:</dt>
-
- <dd>
- <p>Um eine URL einfach einem anderen Server zuzuordnen, verwenden
- wir das [P]-Flag wie folgt:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
-</highlight>
-
- <p>Im zweiten Beispiel leiten wir die Anfrage nur weiter, wenn wir
- die Ressource nicht lokal finden können. Dies kann sehr nützlich sein,
- wenn Sie von einem Server zu einem anderen migrieren und sich nicht
- sicher sind, ob alle Inhalte bereits migriert wurden.</p>
-
-<highlight language="config">
-RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"
-</highlight>
- </dd>
-
- <dt>Diskussion:</dt>
-
- <dd><p>In jedem Fall fügen wir eine <directive
- module="mod_proxy">ProxyPassReverse</directive>-Direktive hinzu, um
- sicherzustellen, dass alle vom Backend ausgegebenen Umleitungen
- korrekt an den Client weitergeleitet werden.</p>
-
- <p>Erwägen Sie, wann immer möglich, <directive
- module="mod_proxy">ProxyPass</directive> oder <directive
- module="mod_proxy">ProxyPassMatch</directive> anstelle von
- <module>mod_rewrite</module> zu verwenden.</p>
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933067:1933622 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="proxy.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Uso de mod_rewrite para Proxy</title>
-
-<summary>
-
-<p>Este documento complementa la <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">documentación de referencia</a>. Describe
-cómo usar la bandera [P] de RewriteRule para hacer proxy de contenido a otro servidor.
-Se proporcionan varias recetas que describen escenarios comunes.</p>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Documentación del módulo</a></seealso>
-<seealso><a href="intro.html">Introducción a mod_rewrite</a></seealso>
-<seealso><a href="remapping.html">Redirección y remapeo</a></seealso>
-<seealso><a href="access.html">Control de acceso</a></seealso>
-<seealso><a href="vhosts.html">Hosts virtuales</a></seealso>
-<!--<seealso><a href="proxy.html">Proxy</a></seealso>-->
-<seealso><a href="rewritemap.html">Uso de RewriteMap</a></seealso>
-<seealso><a href="advanced.html">Técnicas avanzadas</a></seealso>
-<seealso><a href="avoid.html">Cuándo no usar mod_rewrite</a></seealso>
-
-<section id="dynamic-proxy">
-
- <title>Hacer proxy de contenido con mod_rewrite</title>
-
- <dl>
- <dt>Descripción:</dt>
-
- <dd>
- <p>
- <module>mod_rewrite</module> proporciona la bandera [P], que permite pasar URLs,
- a través de <module>mod_proxy</module>, a otro servidor. Aquí se dan dos ejemplos. En
- un ejemplo, una URL se pasa directamente a otro servidor, y se sirve
- como si fuera una URL local. En el otro ejemplo, hacemos proxy del
- contenido faltante a un servidor backend.</p>
- </dd>
-
- <dt>Solución:</dt>
-
- <dd>
- <p>Para simplemente mapear una URL a otro servidor, usamos la bandera [P], de la
- siguiente manera:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
-</highlight>
-
- <p>En el segundo ejemplo, hacemos proxy de la solicitud solo si no podemos encontrar
- el recurso localmente. Esto puede ser muy útil cuando está migrando
- de un servidor a otro, y no está seguro de si todo el contenido
- ha sido migrado todavía.</p>
-
-<highlight language="config">
-RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"
-</highlight>
- </dd>
-
- <dt>Discusión:</dt>
-
- <dd><p>En cada caso, añadimos una directiva <directive
- module="mod_proxy">ProxyPassReverse</directive> para asegurar
- que cualquier redirección emitida por el backend se pase correctamente al
- cliente.</p>
-
- <p>Considere usar <directive
- module="mod_proxy">ProxyPass</directive> o <directive
- module="mod_proxy">ProxyPassMatch</directive> siempre que sea posible en
- preferencia a <module>mod_rewrite</module>.</p>
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933067:1933622 (outdated) -->
-<!-- French translation : Lucien GENTIS -->
-<!-- Reviewed by : Vincent Deffontaines -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="proxy.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Utilisation de mod_rewrite comme mandataire</title>
-
-<summary>
-
-<p>Ce document est un complément de la <a
-href="../mod/mod_rewrite.html">documentation de référence</a> du module
-<module>mod_rewrite</module>. Il décrit comment utiliser le drapeau [P]
-de la directive RewriteRule pour mandater un contenu vers un autre
-serveur. Plusieurs recettes décrivant des scénarios courants sont
-fournies.</p>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Documentation du module</a></seealso>
-<seealso><a href="intro.html">Introduction à mod_rewrite</a></seealso>
-<seealso><a href="remapping.html">Redirection et remise en
-correspondance</a></seealso>
-<seealso><a href="access.html">Contrôle d'accès</a></seealso>
-<seealso><a href="vhosts.html">Serveurs virtuels</a></seealso>
-<!--<seealso><a href="proxy.html">Serveurs mandataires</a></seealso>-->
-<seealso><a href="rewritemap.html">Utilisation de RewriteMap</a></seealso>
-<seealso><a href="advanced.html">Techniques avancées</a></seealso>
-<seealso><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></seealso>
-
-<section id="dynamic-proxy">
-
- <title>Mandater du contenu avec mod_rewrite</title>
-
- <dl>
- <dt>Description :</dt>
-
- <dd>
- <p>
- <module>mod_rewrite</module> implémente le drapeau [P] qui permet de passer des URLs,
- via <module>mod_proxy</module>, à un autre serveur. Deux exemples sont fournis ici.
- Dans le premier, une URL est passée directement à un autre serveur,
- et servie comme si c'était une URL locale. Dans le deuxième, nous
- mandatons un contenu manquant vers un serveur d'arrière-plan.</p>
- </dd>
-
- <dt>Solution :</dt>
-
- <dd>
- <p>Pour passer une URL à un autre serveur, on utilise le drapeau
- [P] comme suit :</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteBase "/produits/"
-RewriteRule "^widget/(.*)$" "http://produits.example.com/widget/$1" [P]
-ProxyPassReverse "/produits/objet/" "http://produits.example.com/objet/"
-</highlight>
-
- <p>Dans le deuxième exemple, nous ne mandatons la requête que si nous
- ne trouvons pas la ressource localement. Ceci peut s'avérer très
- utile lorsque vous effectuez une migration d'un serveur vers un
- autre, et que vous n'êtes pas certain que tout le contenu a déjà été
- migré.</p>
-
-<highlight language="config">
-RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://ancien.exemple.com/$1" [P]
-ProxyPassReverse "/" "http://ancien.exemple.com/"
-</highlight>
- </dd>
-
- <dt>Discussion :</dt>
-
- <dd><p>Dans les deux cas, on ajoute une directive <directive
- module="mod_proxy">ProxyPassReverse</directive> afin de s'assurer
- que toute redirection en provenance du serveur d'arrière-plan est
- renvoyée correctement au client.</p>
-
- <p>Chaque fois que cela est possible, préférez l'utilisation de la
- directive <directive module="mod_proxy">ProxyPass</directive> ou
- <directive module="mod_proxy">ProxyPassMatch</directive> à
- <module>mod_rewrite</module>.</p>
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933067:1933622 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="proxy.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>mod_rewrite によるプロキシ</title>
-
-<summary>
-
-<p>このドキュメントは <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">リファレンスドキュメント</a>を補足するものです。
-RewriteRule の [P] フラグを使用して他のサーバにコンテンツをプロキシする方法を
-説明します。一般的なシナリオを説明するレシピがいくつか提供されています。</p>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">モジュールドキュメント</a></seealso>
-<seealso><a href="intro.html">mod_rewrite 入門</a></seealso>
-<seealso><a href="remapping.html">リダイレクトとリマッピング</a></seealso>
-<seealso><a href="access.html">アクセス制御</a></seealso>
-<seealso><a href="vhosts.html">バーチャルホスト</a></seealso>
-<!--<seealso><a href="proxy.html">プロキシ</a></seealso>-->
-<seealso><a href="rewritemap.html">RewriteMap の使用</a></seealso>
-<seealso><a href="advanced.html">高度なテクニック</a></seealso>
-<seealso><a href="avoid.html">mod_rewrite を使わない場合</a></seealso>
-
-<section id="dynamic-proxy">
-
- <title>mod_rewrite によるコンテンツのプロキシ</title>
-
- <dl>
- <dt>説明:</dt>
-
- <dd>
- <p>
- <module>mod_rewrite</module> は [P] フラグを提供しており、URL を
- <module>mod_proxy</module> 経由で他のサーバに渡すことができます。ここでは
- 2 つの例を示します。1 つ目の例では、URL を直接別のサーバに渡し、
- ローカル URL であるかのように提供します。もう 1 つの例では、
- 見つからないコンテンツをバックエンドサーバにプロキシします。</p>
- </dd>
-
- <dt>解決方法:</dt>
-
- <dd>
- <p>単純に URL を別のサーバにマッピングするには、次のように
- [P] フラグを使用します:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
-</highlight>
-
- <p>2 つ目の例では、リソースがローカルに見つからない場合にのみ
- リクエストをプロキシします。これは、あるサーバから別のサーバに
- 移行中で、すべてのコンテンツが移行済みかどうかわからない場合に
- 非常に便利です。</p>
-
-<highlight language="config">
-RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"
-</highlight>
- </dd>
-
- <dt>議論:</dt>
-
- <dd><p>どちらの場合も、バックエンドから発行されるリダイレクトが
- 正しくクライアントに渡されるように <directive
- module="mod_proxy">ProxyPassReverse</directive> ディレクティブを
- 追加しています。</p>
-
- <p>可能な限り <module>mod_rewrite</module> よりも <directive
- module="mod_proxy">ProxyPass</directive> や <directive
- module="mod_proxy">ProxyPassMatch</directive> の使用を検討してください。</p>
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version='1.0' encoding='EUC-KR' ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933067:1933622 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="proxy.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>프록시를 위한 mod_rewrite 사용</title>
-
-<summary>
-
-<p>이 문서는 <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">참조 문서</a>를 보충합니다.
-RewriteRule의 [P] 플래그를 사용하여 다른 서버로 콘텐츠를
-프록시하는 방법을 설명합니다. 일반적인 시나리오를 설명하는
-여러 레시피가 제공됩니다.</p>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">모듈 문서</a></seealso>
-<seealso><a href="intro.html">mod_rewrite 소개</a></seealso>
-<seealso><a href="remapping.html">리다이렉션과 재매핑</a></seealso>
-<seealso><a href="access.html">접근 제어</a></seealso>
-<seealso><a href="vhosts.html">가상 호스트</a></seealso>
-<!--<seealso><a href="proxy.html">프록시</a></seealso>-->
-<seealso><a href="rewritemap.html">RewriteMap 사용하기</a></seealso>
-<seealso><a href="advanced.html">고급 기술</a></seealso>
-<seealso><a href="avoid.html">mod_rewrite를 사용하지 말아야 할 경우</a></seealso>
-
-<section id="dynamic-proxy">
-
- <title>mod_rewrite를 사용한 콘텐츠 프록시</title>
-
- <dl>
- <dt>설명:</dt>
-
- <dd>
- <p>
- <module>mod_rewrite</module>는 [P] 플래그를 제공하여
- <module>mod_proxy</module>를 통해 URL을 다른 서버로
- 전달할 수 있게 합니다. 여기에 두 가지 예제가 있습니다.
- 한 예제에서는 URL이 다른 서버로 직접 전달되어 로컬
- URL인 것처럼 제공됩니다. 다른 예제에서는 누락된
- 콘텐츠를 백엔드 서버로 프록시합니다.</p>
- </dd>
-
- <dt>해결책:</dt>
-
- <dd>
- <p>URL을 다른 서버에 단순히 매핑하려면 다음과 같이
- [P] 플래그를 사용합니다:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
-</highlight>
-
- <p>두 번째 예제에서는 로컬에서 자원을 찾을 수 없는
- 경우에만 요청을 프록시합니다. 이것은 한 서버에서 다른
- 서버로 마이그레이션하고 있으며 모든 콘텐츠가 아직
- 마이그레이션되었는지 확신할 수 없을 때 매우 유용합니다.</p>
-
-<highlight language="config">
-RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"
-</highlight>
- </dd>
-
- <dt>토론:</dt>
-
- <dd><p>각 경우에 백엔드에서 발행한 리다이렉트가 클라이언트에
- 올바르게 전달되도록 <directive
- module="mod_proxy">ProxyPassReverse</directive> 지시어를
- 추가합니다.</p>
-
- <p><module>mod_rewrite</module> 대신 가능하면
- <directive module="mod_proxy">ProxyPass</directive> 또는
- <directive module="mod_proxy">ProxyPassMatch</directive>를
- 사용하는 것을 고려하십시오.</p>
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!-- GENERATED FROM XML: DO NOT EDIT -->
-
-<metafile reference="proxy.xml">
- <basename>proxy</basename>
- <path>/rewrite/</path>
- <relpath>..</relpath>
-
- <variants>
- <variant outdated="yes">de</variant>
- <variant>en</variant>
- <variant outdated="yes">es</variant>
- <variant outdated="yes">fr</variant>
- <variant outdated="yes">ja</variant>
- <variant outdated="yes">ko</variant>
- <variant outdated="yes">tr</variant>
- <variant outdated="yes">zh-cn</variant>
- </variants>
-</metafile>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933067:1933622 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="proxy.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>Vekil Kullanımı için mod_rewrite</title>
-
-<summary>
-
-<p>Bu belge, <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">başvuru belgelerini</a> tamamlar.
-İçeriği başka bir sunucuya vekil olarak iletmek için RewriteRule'un [P]
-bayrağının nasıl kullanılacağını açıklar. Yaygın senaryoları anlatan
-birkaç tarif sunulmuştur.</p>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">Modül belgeleri</a></seealso>
-<seealso><a href="intro.html">mod_rewrite'a giriş</a></seealso>
-<seealso><a href="remapping.html">Yeniden yönlendirme ve yeniden eşleme</a></seealso>
-<seealso><a href="access.html">Erişim denetimi</a></seealso>
-<seealso><a href="vhosts.html">Sanal konaklar</a></seealso>
-<!--<seealso><a href="proxy.html">Vekil kullanımı</a></seealso>-->
-<seealso><a href="rewritemap.html">RewriteMap Kullanımı</a></seealso>
-<seealso><a href="advanced.html">İleri teknikler</a></seealso>
-<seealso><a href="avoid.html">mod_rewrite kullanılmaması gereken durumlar</a></seealso>
-
-<section id="dynamic-proxy">
-
- <title>mod_rewrite ile İçerik Vekilleme</title>
-
- <dl>
- <dt>Açıklama:</dt>
-
- <dd>
- <p>
- <module>mod_rewrite</module>, URL'lerin <module>mod_proxy</module>
- aracılığıyla başka bir sunucuya iletilmesini sağlayan [P] bayrağını
- sunar. Burada iki örnek verilmiştir. Birinde, bir URL doğrudan başka
- bir sunucuya iletilir ve yerel bir URL gibi sunulur. Diğerinde,
- eksik içeriği bir arka uç sunucusuna vekil olarak iletiriz.</p>
- </dd>
-
- <dt>Çözüm:</dt>
-
- <dd>
- <p>Bir URL'yi başka bir sunucuya basitçe eşlemek için [P]
- bayrağını şu şekilde kullanırız:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
-</highlight>
-
- <p>İkinci örnekte, isteği yalnızca kaynağı yerel olarak
- bulamadığımızda vekil olarak iletiriz. Bu, bir sunucudan diğerine
- geçiş yaparken ve tüm içeriğin taşınıp taşınmadığından emin
- olmadığınızda çok yararlı olabilir.</p>
-
-<highlight language="config">
-RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"
-</highlight>
- </dd>
-
- <dt>Tartışma:</dt>
-
- <dd><p>Her iki durumda da, arka uç tarafından verilen
- yönlendirmelerin istemciye doğru şekilde iletilmesini sağlamak
- için bir <directive module="mod_proxy">ProxyPassReverse</directive>
- yönergesi ekliyoruz.</p>
-
- <p>Mümkün olduğunda <module>mod_rewrite</module> yerine <directive
- module="mod_proxy">ProxyPass</directive> veya <directive
- module="mod_proxy">ProxyPassMatch</directive> kullanmayı
- değerlendirin.</p>
- </dd>
- </dl>
-
-</section>
-
-</manualpage>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
-<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933067:1933622 (outdated) -->
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<manualpage metafile="proxy.xml.meta">
- <parentdocument href="./">Rewrite</parentdocument>
-
-<title>使用 mod_rewrite 进行代理</title>
-
-<summary>
-
-<p>本文档是 <module>mod_rewrite</module>
-<a href="../mod/mod_rewrite.html">参考文档</a>的补充。它描述了如何使用
-RewriteRule 的 [P] 标志将内容代理到另一台服务器。
-提供了若干描述常见场景的配置方案。</p>
-
-</summary>
-<seealso><a href="../mod/mod_rewrite.html">模块文档</a></seealso>
-<seealso><a href="intro.html">mod_rewrite 简介</a></seealso>
-<seealso><a href="remapping.html">重定向和重映射</a></seealso>
-<seealso><a href="access.html">访问控制</a></seealso>
-<seealso><a href="vhosts.html">虚拟主机</a></seealso>
-<!--<seealso><a href="proxy.html">代理</a></seealso>-->
-<seealso><a href="rewritemap.html">使用 RewriteMap</a></seealso>
-<seealso><a href="advanced.html">高级技术</a></seealso>
-<seealso><a href="avoid.html">何时不使用 mod_rewrite</a></seealso>
-
-<section id="dynamic-proxy">
-
- <title>使用 mod_rewrite 代理内容</title>
-
- <dl>
- <dt>描述:</dt>
-
- <dd>
- <p>
- <module>mod_rewrite</module> 提供了 [P] 标志,允许 URL 通过
- <module>mod_proxy</module> 传递到另一台服务器。这里给出两个示例。
- 在一个示例中,URL 被直接传递到另一台服务器,并像本地 URL 一样提供服务。
- 在另一个示例中,我们将缺失的内容代理到后端服务器。</p>
- </dd>
-
- <dt>解决方案:</dt>
-
- <dd>
- <p>要简单地将 URL 映射到另一台服务器,我们使用 [P] 标志,如下所示:</p>
-
-<highlight language="config">
-RewriteEngine on
-RewriteBase "/products/"
-RewriteRule "^widget/(.*)$" "http://product.example.com/widget/$1" [P]
-ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
-</highlight>
-
- <p>在第二个示例中,我们仅在本地找不到资源时才代理请求。
- 当你从一台服务器迁移到另一台服务器,而不确定所有内容是否已迁移完毕时,
- 这非常有用。</p>
-
-<highlight language="config">
-RewriteCond "%{REQUEST_FILENAME}" !-f
-RewriteCond "%{REQUEST_FILENAME}" !-d
-RewriteRule "^/(.*)" "http://old.example.com/$1" [P]
-ProxyPassReverse "/" "http://old.example.com/"
-</highlight>
- </dd>
-
- <dt>讨论:</dt>
-
- <dd><p>在每种情况下,我们都添加了一个 <directive
- module="mod_proxy">ProxyPassReverse</directive> 指令,
- 以确保后端发出的任何重定向都能正确地传递给客户端。</p>
-
- <p>请尽可能考虑使用 <directive
- module="mod_proxy">ProxyPass</directive> 或 <directive
- module="mod_proxy">ProxyPassMatch</directive> 来代替
- <module>mod_rewrite</module>。</p>
- </dd>
- </dl>
-
-</section>
-
-</manualpage>