From: Rich Bowen Dieses Dokument ergänzt die 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. Diese Technik beruht auf dem Wert der
+ Es gibt mehrere Möglichkeiten, mit dieser Situation
+ umzugehen. 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 Im zweiten Beispiel zeigen wir statt einer fehlgeschlagenen Anfrage
+ ein alternatives Bild an. Im dritten Beispiel leiten wir die Anfrage auf ein Bild auf einer
+ anderen Website um. 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. Wenn Sie lediglich den Zugriff auf die Ressource verweigern möchten,
+ anstatt die Anfrage woanders umzuleiten, kann dies ohne die
+ Verwendung von
+ In diesem Rezept besprechen wir, wie man hartnäckige Anfragen von
+ einem bestimmten Robot oder User-Agent blockiert. Der Standard für den Ausschluss von Robots definiert eine Datei,
+ Beachten Sie, dass es Methoden gibt, dies ohne die Verwendung
+ von Wir verwenden einen Regelsatz, der das zu schützende Verzeichnis
+ und den Client- In diesem Beispiel blockieren wir einen Robot namens
+
+ Anstatt
+ Wie oben erwähnt, ist diese Technik trivial zu umgehen, indem man
+ einfach den Wir möchten eine Liste von Hosts pflegen, ähnlich wie
+
+ 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 Anfragen basierend auf dem Referer umleiten, von dem die Anfrage
+ kam, mit unterschiedlichen Zielen pro Referer. Der folgende Regelsatz verwendet eine Map-Datei, um jeden Referer
+ mit einem Umleitungsziel zu verknüpfen. 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: Este documento complementa la 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. Esta técnica se basa en el valor de la
+ variable Hay varias formas en las que puede manejar esta
+ situación. 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 En este segundo ejemplo, en lugar de denegar la solicitud, mostramos
+ una imagen alternativa en su lugar. En el tercer ejemplo, redirigimos la solicitud a una imagen en algún
+ otro sitio. 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. 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
+ En esta receta, discutimos cómo bloquear solicitudes persistentes de
+ un robot o agente de usuario en particular. El estándar para exclusión de robots define un archivo,
+ Tenga en cuenta que hay métodos para lograr esto que no
+ usan Usamos un conjunto de reglas que especifica el directorio a ser
+ protegido, y el En este ejemplo, estamos bloqueando un robot llamado
+
+ En lugar de usar
+ Como se indicó anteriormente, esta técnica es trivial de evadir, simplemente
+ modificando la cabecera de solicitud Deseamos mantener una lista de hosts, similar a
+
+ 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 Redirigir solicitudes basadas en el Referer del cual provino la solicitud,
+ con diferentes destinos por Referer. El siguiente conjunto de reglas usa un archivo de mapa para asociar cada Referer
+ con un destino de redirección. 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: ãã®ããã¥ã¡ã³ã㯠以ä¸ã®ãã¯ããã¯ã¯ãä»ã®ãµã¤ããããªãã®ç»åããã®ãã¼ã¸ã«
+ ã¤ã³ã©ã¤ã³ã§å«ããè¡çºãç¦æ¢ãã¾ãããã®è¡çºã¯
+ "ç´ãªã³ã¯" ã¨å¼ã°ãããã¨ãå¤ããããªãã®å¸¯åå¹
ã
+ ä»ã®ãµã¤ãã®ã³ã³ãã³ãæä¾ã®ããã«ä½¿ç¨ãããçµæã¨ãªãã¾ãã ãã®ãã¯ããã¯ã¯ ãã®ç¶æ³ã«å¯¾å¦ããæ¹æ³ã¯ããã¤ãããã¾ãã æåã®ä¾ã§ã¯ããªã¯ã¨ã¹ããå½ãµã¤ãã®ãã¼ã¸ããéå§ããããã®ã§ãªã
+ å ´åãåç´ã«ãªã¯ã¨ã¹ããæå¦ãã¾ãããã®ä¾ã§ã¯ãå½ãµã¤ãã
+ 2 çªç®ã®ä¾ã§ã¯ããªã¯ã¨ã¹ãã失æããã代ããã«ã
+ 代æ¿ç»åã表示ãã¾ãã 3 çªç®ã®ä¾ã§ã¯ããªã¯ã¨ã¹ããä»ã®ãµã¤ãã®ç»åã«ãªãã¤ã¬ã¯ã
+ ãã¾ãã ãããã®ãã¯ããã¯ã®ãã¡ãå¾ã® 2 ã¤ãç»åã®ç´ãªã³ã¯ãããããã
+ ã®ã«æã广çã§ããæå¾
ãã¦ããç»åã表示ãããªããªãããã§ãã ãªã¯ã¨ã¹ããä»ã®å ´æã«ãªãã¤ã¬ã¯ãããã®ã§ã¯ãªããåã«ãªã½ã¼ã¹ã¸ã®
+ ã¢ã¯ã»ã¹ãæå¦ãããã ãã®å ´åã
+ ãã®ã¬ã·ãã§ã¯ãç¹å®ã®ãããããã¦ã¼ã¶ã¨ã¼ã¸ã§ã³ãããã®
+ ãã¤ãããªã¯ã¨ã¹ãããããã¯ããæ¹æ³ã«ã¤ãã¦èª¬æãã¾ãã ããããæé¤ã®æ¨æºã§ã¯ãã¦ã§ããµã¤ãã®ã©ã®é¨åã§ããããã
+ é¤å¤ãããããæå®ãã ä¿è·ãããã£ã¬ã¯ããªã¨ãæªæã®ããã¾ãã¯ãã¤ããããããã
+ èå¥ããã¯ã©ã¤ã¢ã³ã ãã®ä¾ã§ã¯ã
+
+ ä¸è¨ã§è¿°ã¹ãããã«ããã®ãã¯ããã¯ã¯
+ 2 çªç®ã® RewriteCond ã¯ãHostNameLookups ããªã³ã«ãªã£ã¦ãã¦ã
+ ã¯ã©ã¤ã¢ã³ã IP ã¢ãã¬ã¹ã解決ããããã¨ãåæã¨ãã¦ãã¾ãã
+ ããã§ãªãå ´åã¯ã2 çªç®ã® RewriteCond ãåé¤ããæåã®
+ RewriteCond ãã ãªã¯ã¨ã¹ãã®éä¿¡å
ã®ãªãã¡ã©ã«åºã¥ãã¦ãªã¯ã¨ã¹ãããªãã¤ã¬ã¯ããã
+ ãªãã¡ã©ãã¨ã«ç°ãªãã¿ã¼ã²ãããè¨å®ãã¾ãã 以ä¸ã®ã«ã¼ã«ã»ããã¯ãããããã¡ã¤ã«ã使ç¨ãã¦åãªãã¡ã©ã
+ ãªãã¤ã¬ã¯ãå
ã«é¢é£ä»ãã¾ãã ããããã¡ã¤ã«ã«ã¯åãªãã¡ã©ã®ãªãã¤ã¬ã¯ãå
ãè¨è¿°ããã¦ãã¾ãã
+ åã«ãªãã¡ã©å
ã«ãªãã¤ã¬ã¯ããããå ´åã¯ããããã«
+ "-" ãé
ç½®ãã¾ã: ì´ ë¬¸ìë ë¤ì 기ì ì ë¤ë¥¸ ì¬ì´í¸ê° ì¬ë¬ë¶ì ì´ë¯¸ì§ë¥¼
+ ìì ì íì´ì§ì ì¸ë¼ì¸ì¼ë¡ í¬í¨íë ê²ì ê¸ì§í©ëë¤.
+ ì´ íìë íí "í«ë§í¹"ì´ë¼ê³ íë©°,
+ ì¬ë¬ë¶ì ëìíì´ ë¤ë¥¸ ì¬ì´í¸ì ì½í
ì¸ ë¥¼ ì ê³µíë ë°
+ ì¬ì©ëë 결과를 ì´ëí©ëë¤. ì´ ê¸°ì ì ì´ ìí©ì ì²ë¦¬íë ëª ê°ì§ ë°©ë²ì´ ììµëë¤. 첫 ë²ì§¸ ìì ììë ì°ë¦¬ ì¬ì´í¸ì íì´ì§ìì ììëì§ ìì
+ ìì²ì ë¨ìí ê±°ë¶í©ëë¤. ì´ ìì ììë ì°ë¦¬ ì¬ì´í¸ê°
+ ë ë²ì§¸ ìì ììë ìì²ì ì¤í¨ìí¤ë ëì
+ ëì²´ ì´ë¯¸ì§ë¥¼ íìí©ëë¤. ì¸ ë²ì§¸ ìì ììë ìì²ì ë¤ë¥¸ ì¬ì´í¸ì ì´ë¯¸ì§ë¡
+ 리ë¤ì´ë í¸í©ëë¤. ì´ ê¸°ì ë¤ ì¤ ë§ì§ë§ ë ê°ì§ê° ì´ë¯¸ì§ í«ë§í¹ì
+ ì¤ë¨ìí¤ë ë° ê°ì¥ í¨ê³¼ì ì
ëë¤. ì¬ì©ìë¤ì´ 기ëí
+ ì´ë¯¸ì§ë¥¼ ë³¼ ì ì기 ë문ì
ëë¤. ìì²ì ë¤ë¥¸ ê³³ì¼ë¡ 리ë¤ì´ë í¸íë ê²ì´ ìëë¼
+ ë¨ìí ììì ëí ì ê·¼ì ê±°ë¶íë ¤ë ê²½ì°,
+ ì´ ë ìí¼ììë í¹ì ë¡ë´ ëë ì¬ì©ì ìì´ì í¸ì
+ ì§ìì ì¸ ìì²ì ì°¨ë¨íë ë°©ë²ì ë
¼ìí©ëë¤. ë¡ë´ ë°°ì íì¤ì ë³´í¸í ëë í 리ì ì
ìì ì´ê±°ë ì§ìì ì¸ ë¡ë´ì
+ ìë³íë í´ë¼ì´ì¸í¸ ì´ ìì ììë
+
+ ììì ì¸ê¸í ë°ì ê°ì´, ì´ ê¸°ì ì
+ ë ë²ì§¸ RewriteCondë HostNameLookupsê° ì¼ì ¸ ìì´
+ í´ë¼ì´ì¸í¸ IP 주ìê° í´ìëë¤ê³ ê°ì í©ëë¤. ê·¸ë ì§
+ ìì ê²½ì°, ë ë²ì§¸ RewriteCond를 ìì íê³ ì²« ë²ì§¸
+ RewriteCondìì ìì²ì´ ì¨ ë¦¬í¼ë¬ì ë°ë¼ ìì²ì 리ë¤ì´ë í¸íë©°,
+ 리í¼ë¬ë³ë¡ ë¤ë¥¸ ëìì ì§ì í©ëë¤. ë¤ì ê·ì¹ ì¸í¸ë ë§µ íì¼ì ì¬ì©íì¬ ê° ë¦¬í¼ë¬ë¥¼
+ 리ë¤ì´ë ì
ëìê³¼ ì°ê²°í©ëë¤. ë§µ íì¼ì ê° ë¦¬í¼ë¬ì ëí 리ë¤ì´ë ì
ëìì
+ ëì´íê±°ë, ë¨ìí ìë ìì¹ë¡ 리ë¤ì´ë í¸íë ¤ë
+ ê²½ì° ë§µì "-"ì ë£ìµëë¤: Bu belge, 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. Bu teknik, isteÄe baÄlı olan Bu durumu ele almanın birkaç yolu vardır. Bu ilk örnekte, istek sitemizden bir sayfadan baÅlatılmadıysa
+ isteÄi reddederiz. Bu örnek için sitemizin
+ Bu ikinci örnekte, isteÄi reddetmek yerine alternatif bir resim
+ gösteriyoruz. Ãçüncü örnekte, isteÄi baÅka bir sitedeki bir resme
+ yönlendiriyoruz. 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. Tek yapmak istediÄiniz kaynaÄa eriÅimi reddetmekse, isteÄi
+ baÅka bir yere yönlendirmek yerine bu,
+
+ Bu tarifle, belirli bir robot veya kullanıcı aracısından gelen
+ sürekli isteklerin nasıl engelleneceÄini tartıÅıyoruz. Robot dıÅlama standardı, web sitenizin robotları dıÅlamak
+ istediÄiniz bölümlerini belirten Bunu gerçekleÅtirmenin Korunacak dizini ve zararlı ya da ısrarcı robotu tanımlayan
+ istemci Bu örnekte,
+ Bunun için
+ Yukarıda belirtildiÄi gibi, bu teknik
+ İ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
+ İstekleri, isteÄin geldiÄi Referer'a göre, her Referer için
+ farklı hedeflerle yeniden yönlendirir. AÅaÄıdaki kural kümesi, her Referer'ı bir yönlendirme hedefiyle
+ iliÅkilendirmek için bir eÅlem dosyası kullanır. 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: æ¬ææ¡£æ¯ ä»¥ä¸ææ¯ç¦æ¢å
¶ä»ç«ç¹å°ä½ çå¾çå
èå°ä»ä»¬ç页é¢ä¸ã
+ è¿ç§åæ³é常被称为"çé¾"ï¼ä¼å¯¼è´ä½ çå¸¦å®½è¢«ç¨æ¥ä¸ºä»äººçç«ç¹æä¾å
å®¹ã æ¤ææ¯ä¾èµäº æå ç§æ¹æ³å¯ä»¥å¤çè¿ç§æ
åµã å¨ç¬¬ä¸ä¸ªç¤ºä¾ä¸ï¼å¦æè¯·æ±ä¸æ¯ä»æä»¬ç«ç¹ä¸ç页é¢åèµ·çï¼
+ æä»¬åªæ¯ç®åå°æç»è¯·æ±ã卿¬ç¤ºä¾ä¸ï¼
+ æä»¬å设æä»¬çç«ç¹æ¯ å¨ç¬¬äºä¸ªç¤ºä¾ä¸ï¼æä»¬ä¸æ¯è®©è¯·æ±å¤±è´¥ï¼èæ¯æ¾ç¤ºä¸ä¸ªæ¿ä»£å¾çã å¨ç¬¬ä¸ä¸ªç¤ºä¾ä¸ï¼æä»¬å°è¯·æ±éå®åå°å¦ä¸ä¸ªç«ç¹ä¸çå¾çã å¨è¿äºææ¯ä¸ï¼å两ç§å¾å¾æè½ææå°é»æ¢çé¾è¡ä¸ºï¼
+ å 为ä»ä»¬æ ¹æ¬çä¸å°é¢æçå¾çã å¦æä½ åªæ³æç»å¯¹èµæºç访é®ï¼è䏿¯å°è¯·æ±éå®åå°å
¶ä»å°æ¹ï¼
+ å¯ä»¥ä¸ä½¿ç¨ 卿¬é
ç½®æ¹æ¡ä¸ï¼æä»¬è®¨è®ºå¦ä½é»æ¢æ¥èªç¹å®æºå¨äººæç¨æ·ä»£ççæç»è¯·æ±ã æºå¨äººæé¤æ åå®ä¹äºä¸ä¸ªæä»¶ 请注æï¼æäºæ¹æ³å¯ä»¥å¨ä¸ä½¿ç¨ æä»¬ä½¿ç¨ä¸ç»è§åæ¥æå®è¦ä¿æ¤çç®å½ï¼
+ ä»¥åæ è¯æ¶æææç»æºå¨äººç客æ·ç«¯ 卿¬ç¤ºä¾ä¸ï¼æä»¬ä»ä½ç½®
+ ä½ å¯ä»¥ä½¿ç¨æ¿ä»£æ¹æ³æ¥å®ç°ç¸åçç®çï¼èä¸å¿
使ç¨
+
+ å¦ä¸æè¿°ï¼è¿ç§ææ¯å¾å®¹æè¢«ç»è¿ï¼åªéä¿®æ¹
+ æä»¬å¸æç»´æ¤ä¸ä¸ªä¸»æºå表ï¼ç±»ä¼¼äº
+ 第äºä¸ª RewriteCond åè®¾ä½ å·²å¯ç¨ HostNameLookupsï¼
+ 以便客æ·ç«¯ IP å°åä¼è¢«è§£æã妿æªå¯ç¨ï¼
+ ä½ åºè¯¥å é¤ç¬¬äºä¸ª RewriteCondï¼å¹¶ä»ç¬¬ä¸ä¸ª RewriteCond ä¸å é¤
+ æ ¹æ®è¯·æ±æ¥æºç Referer éå®å请æ±ï¼
+ 对æ¯ä¸ª Referer 使ç¨ä¸åçç®æ ã 以ä¸è§åéä½¿ç¨æ å°æä»¶å°æ¯ä¸ª Referer ä¸éå®åç®æ å
³èã æ å°æä»¶ååºäºæ¯ä¸ª referer çéå®åç®æ ï¼
+ æè
妿æä»¬åªæ³éå®ååä»ä»¬çæ¥æºå°ï¼å卿 å°ä¸æ¾ç½® "-"ï¼ Dieses Dokument ergänzt die 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. Der 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. Wir möchten die Last zufällig auf mehrere Server verteilen,
+ indem wir Wir verwenden Wenn Sie möchten, dass ein bestimmter Server mehr Last als die
+anderen erhält, fügen Sie ihn mehrmals zur Liste hinzu. Apache wird mit einem Lastverteilungsmodul ausgeliefert -
+ Einige Websites mit Tausenden von Benutzern verwenden ein
+ strukturiertes Heimatverzeichnis-Layout, d.h. jedes
+ Heimatverzeichnis befindet sich in einem Unterverzeichnis, das
+ (beispielsweise) mit dem ersten Zeichen des Benutzernamens beginnt.
+ So ist Wir verwenden den folgenden Regelsatz, um die Tilde-URLs
+ in das obige Layout umzusetzen. StandardmäÃig funktioniert die Umleitung zu einem HTML-Anker nicht,
+ da Verwenden Sie das Wir möchten Es gibt viele Variablen namens Dies liefert den Inhalt von 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. Verwenden Sie das [E]-Flag, um eine Umgebungsvariable zu setzen. Später in Ihrem Regelsatz können Sie diese Umgebungsvariable
+ mit einer RewriteCond prüfen: 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. Este documento complementa la 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. El operador 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. Deseamos distribuir aleatoriamente la carga entre varios servidores
+ usando Usaremos Si desea que un servidor particular reciba más carga que los
+otros, agreguelo más veces a la lista. Apache viene con un módulo de balanceo de carga -
+ Algunos sitios con miles de usuarios usan una
+ disposición de directorio personal estructurada, es decir, cada directorio personal está en un
+ subdirectorio que comienza (por ejemplo) con el primer
+ carácter del nombre de usuario. AsÃ, Usamos el siguiente conjunto de reglas para expandir las URLs de tilde
+ a la disposición anterior. Por defecto, redirigir a un ancla HTML no funciona,
+ porque Use la bandera Deseamos usar Hay muchas variables llamadas Esto proporciona el contenido de 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. Use la bandera [E] para establecer una variable de entorno. Más adelante en su conjunto de reglas puede verificar esta variable
+ de entorno usando una RewriteCond: 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_". ãã®ããã¥ã¡ã³ã㯠ã³ã³ãã³ããåçã«çæãããããä¸åº¦çæãããéçã«
+ ä¿åãããã¨ãã¾ãããã®ã«ã¼ã«ã¯éçãã¡ã¤ã«ã®åå¨ã確èªãã
+ åå¨ããªãå ´åã¯çæãã¾ããéçãã¡ã¤ã«ã¯å¿
è¦ã«å¿ãã¦
+ (ä¾ãã° cron ã§) 宿çã«åé¤ã§ããè¦æ±ã«å¿ãã¦åçæ
+ ããã¾ãã ãã®ããã«ãã¦ãæ´æ°é »åº¦ã®ä½ãããã¥ã¡ã³ããéçå½¢å¼ã§
+ æä¾ã§ãã¾ããããã¥ã¡ã³ããæ´æ°ããå¿
è¦ãããå ´åã¯ã
+ ããã¥ã¡ã³ããã£ã¬ã¯ããªããåé¤ããã°ã次åãªã¯ã¨ã¹ããããã¨ãã«
+ åçæããã¾ãã ãããå®ç¾ããããã« ç¹å®ã®ãµã¼ãã«ããå¤ãã®è² è·ãå²ãå½ã¦ããå ´åã¯ã
+ãªã¹ãã«ãã®ãµã¼ããè¤æ°å追å ãã¦ãã ããã Apache ã«ã¯ãã¼ããã©ã³ã·ã³ã°ã¢ã¸ã¥ã¼ã« -
+ æ°å人ã®ã¦ã¼ã¶ãæã¤ãµã¤ãã®ä¸ã«ã¯ãæ§é åããããã¼ã ãã£ã¬ã¯ããª
+ ã¬ã¤ã¢ã¦ãã使ç¨ãããã®ãããã¾ããã¤ã¾ããåãã¼ã ãã£ã¬ã¯ããªã¯
+ ã¦ã¼ã¶åã®æåã®æåã§å§ã¾ããµããã£ã¬ã¯ããªã«ããã¾ããä¾ãã°ã
+ ä¸è¨ã®ã¬ã¤ã¢ã¦ãã«ãã«ã URL ãå±éããããã«ã以ä¸ã®ã«ã¼ã«ã»ããã
+ 使ç¨ãã¾ãã ããã©ã«ãã§ã¯ãHTML ã¢ã³ã«ã¼ã¸ã®ãªãã¤ã¬ã¯ãã¯æ©è½ãã¾ããã
+ æ¸ãæãæ¡ä»¶ã«ä½¿ç¨ã§ãã ããã«ãããURL æ¸ãæããå®è¡ããéã«ä½ããã®ç¶æ
ãç¶æãããå ´åã
+ ããã¾ããä¾ãã°ãæ¸ãæããè¡ã£ããã¨ãã¡ã¢ããå¾ã§ãªã¯ã¨ã¹ãã
+ ãã®æ¸ãæããçµç±ãããã©ããã確èªãããã¨ãã¾ãããããè¡ã
+ 1 ã¤ã®æ¹æ³ã¯ãç°å¢å¤æ°ãè¨å®ãããã¨ã§ãã [E] ãã©ã°ã使ç¨ãã¦ç°å¢å¤æ°ãè¨å®ãã¾ãã å¾ã®ã«ã¼ã«ã»ããã§ RewriteCond ã使ç¨ãã¦ãã®ç°å¢å¤æ°ã
+ 確èªã§ãã¾ã: ç°å¢å¤æ°ã¯å¤é¨ãªãã¤ã¬ã¯ãã§ã¯ä¿æãããªããã¨ã«æ³¨æ
+ ãã¦ãã ããã[CO] ãã©ã°ã使ç¨ã㦠cookie ãè¨å®ãããã¨ã
+ æ¤è¨ããã¨ããã§ãããããã£ã¬ã¯ããªåä½ããã³ htaccess ã®
+ æ¸ãæãã§ã¯ãæçµçãªç½®æãå
é¨ãªãã¤ã¬ã¯ãã¨ãã¦å¦çãããããã
+ ååã®æ¸ãæãã©ã¦ã³ãã®ç°å¢å¤æ°ã«ã¯ "REDIRECT_" ããã¬ãã£ãã¯ã¹ã¨ãã¦
+ ä»ãã¾ãã ì´ ë¬¸ìë ì½í
ì¸ ë¥¼ ëì ì¼ë¡ ìì±íë, í ë² ìì±ëë©´
+ ì ì ì¼ë¡ ì ì¥íê³ ì í©ëë¤. ì´ ê·ì¹ì ì ì íì¼ì
+ ì¡´ì¬ë¥¼ íì¸íê³ , ìì¼ë©´ ìì±í©ëë¤. ì ì íì¼ì
+ ìíë ê²½ì° (ì를 ë¤ì´ cronì íµí´) 주기ì ì¼ë¡
+ ì ê±°í ì ìì¼ë©°, íìì ë°ë¼ ì¬ìì±ë©ëë¤. ì´ ë°©ìì¼ë¡ ì주 ì
ë°ì´í¸ëì§ ìë 문ì를 ì ì
+ ííë¡ ì ê³µí ì ììµëë¤. 문ì를 ìë¡ê³ 침í´ì¼ íë
+ ê²½ì° ë¬¸ì ëë í 리ìì ìì í ì ìì¼ë©°, ë¤ìì
+ ìì²ë ë ì¬ìì±ë©ëë¤. í¹ì ìë²ê° ë¤ë¥¸ ìë²ë³´ë¤ ë ë§ì ë¶í를 ë°ëë¡ íë ¤ë©´
+목ë¡ì í´ë¹ ìë²ë¥¼ ë ë§ì´ ì¶ê°íììì¤. Apacheìë ë¶í ë¶ì° 모ëì¸
+ ìì² ëª
ì ì¬ì©ìê° ìë ì¼ë¶ ì¬ì´í¸ë 구조íë
+ í ëë í 리 ë ì´ììì ì¬ì©í©ëë¤. ì¦, ê°
+ í ëë í 리ë ì¬ì©ì ì´ë¦ì 첫 ë²ì§¸ 문ìë¡ ììíë
+ íì ëë í 리ì ììµëë¤. ì를 ë¤ì´
+ ìì ë ì´ììì¼ë¡ 물결í URLì íì¥í기 ìí´
+ ë¤ì ê·ì¹ ì¸í¸ë¥¼ ì¬ì©í©ëë¤. 기본ì ì¼ë¡ HTML ìµì»¤ë¡ì 리ë¤ì´ë í¸ë ìëíì§
+ ììµëë¤. ì¬ìì± ì¡°ê±´ì ì¬ì©í ì ìë ì´ê²ì ëëë¡ ì¬ìì±ì ìíí ë ì´ë¤ ì¢
ë¥ì ìí를
+ ì ì§íê³ ì¶ì ì ììµëë¤. ì를 ë¤ì´, í´ë¹ ì¬ìì±ì
+ ìííë¤ë ê²ì 기ë¡íì¬ ëì¤ì ìì²ì´ í´ë¹ ì¬ìì±ì
+ íµí´ ìëì§ íì¸íê³ ì¶ì ì ììµëë¤. ì´ë¥¼ ìííë
+ í ê°ì§ ë°©ë²ì íê²½ ë³ì를 ì¤ì íë ê²ì
ëë¤. [E] íë그를 ì¬ì©íì¬ íê²½ ë³ì를 ì¤ì í©ëë¤. ëì¤ì ê·ì¹ ì¸í¸ìì RewriteCond를 ì¬ì©íì¬
+ ì´ íê²½ ë³ì를 íì¸í ì ììµëë¤: íê²½ ë³ìë ì¸ë¶ 리ë¤ì´ë í¸ìì ì ì§ëì§ ìëë¤ë
+ ì ì ì ìíììì¤. ì¿ í¤ë¥¼ ì¤ì íë ¤ë©´ [CO] íë그를
+ ì¬ì©íë ê²ì ê³ ë ¤í ì ììµëë¤. ëë í ë¦¬ë³ ë°
+ htaccess ì¬ìì±ìì ìµì¢
ì¹íì´ ë´ë¶ 리ë¤ì´ë í¸ë¡
+ ì²ë¦¬ëë ê²½ì°, ì´ì ë¼ì´ëì ì¬ìì±ìì ì¨ íê²½ ë³ìë
+ "REDIRECT_" ì ëì¬ê° ë¶ìµëë¤. Bu belge, İç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. Bu Åekilde, seyrek güncellenen belgeler statik biçimde
+ sunulabilir. Belgelerin yenilenmesi gerekiyorsa belge dizininden
+ silinebilir ve bir sonraki istekte yeniden oluÅturulur. Bunu gerçekleÅtirmek için Belirli bir sunucunun diÄerlerinden daha fazla yük almasını
+istiyorsanız, onu listeye daha fazla kez ekleyin. Apache, Binlerce kullanıcısı olan bazı siteler yapılandırılmıŠbir
+ ev dizini düzeni kullanır; yani her ev dizini, kullanıcı
+ adının (örneÄin) ilk karakteriyle baÅlayan bir alt dizindedir.
+ Böylece, Tilde URL'leri yukarıdaki düzene göre geniÅletmek için
+ aÅaÄıdaki kural kümesini kullanırız. Ãntanımlı olarak, bir HTML çapasına yönlendirme çalıÅmaz;
+ çünkü Günün saatine göre farklı içerik sunmak için
+ Yeniden yazma koÅulları için Bu, 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. Bir ortam deÄiÅkeni ayarlamak için [E] bayraÄını kullanın. Daha sonra kural kümenizde bu ortam deÄiÅkenini bir RewriteCond
+ kullanarak kontrol edebilirsiniz: 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. æ¬ææ¡£æ¯ æä»¬å¸æå¨æçæå
容ï¼ä½ä¸æ¦çæå°±å°å
¶éæåå¨ã
+ æ¤è§åå°æ£æ¥éææä»¶æ¯å¦åå¨ï¼å¦æä¸åå¨ï¼åçæå®ã
+ éææä»¶å¯ä»¥å®æå é¤ï¼ä¾å¦éè¿ cronï¼ï¼
+ å¹¶å¨éè¦æ¶æééæ°çæã éè¿è¿ç§æ¹å¼ï¼ä¸ç»å¸¸æ´æ°çææ¡£å¯ä»¥ä»¥éæå½¢å¼æä¾ã
+ 妿éè¦å·æ°ææ¡£ï¼å¯ä»¥ä»ææ¡£ç®å½ä¸å é¤å®ä»¬ï¼
+ 䏿¬¡è¯·æ±æ¶å°éæ°çæã æä»¬å¸æä½¿ç¨ æä»¬å°ä½¿ç¨ å¦æä½ å¸ææå°ç¹å®æå¡å¨æ¿æ
æ´å¤è´è½½ï¼å¯ä»¥å¨å表ä¸å¤æ¬¡æ·»å å®ã Apache èªå¸¦ä¸ä¸ªè´è½½å衡模å -
+ ä¸äºæ¥ææ°åç¨æ·çç«ç¹ä½¿ç¨ç»æåç主ç®å½å¸å±ï¼
+ 峿¯ä¸ªä¸»ç®å½ä½äºä¸ä¸ªåç®å½ä¸ï¼
+ 该åç®å½ä»¥ç¨æ·åç第ä¸ä¸ªå符å¼å¤´ãå æ¤ï¼
+ æä»¬ä½¿ç¨ä»¥ä¸è§åéå°æ³¢æµªå· URL å±å¼ä¸ºä¸è¿°å¸å±ã é»è®¤æ
åµä¸ï¼éå®åå° HTML éç¹ä¸èµ·ä½ç¨ï¼å 为
+ å¨ æä»¬å¸æä½¿ç¨ æè®¸å¤å为 è¿å°å¨ ææ¶ï¼æä»¬å¸æå¨æ§è¡éåæ¶ä¿ææç§ç¶æãä¾å¦ï¼
+ ä½ æ³è®°å½ä½ å·²å®æè¯¥éåï¼ä»¥ä¾¿ç¨åæ£æ¥è¯·æ±æ¯å¦éè¿è¯¥éåã
+ ä¸ç§æ¹æ³æ¯è®¾ç½®ç¯å¢åéã ä½¿ç¨ [E] æ å¿è®¾ç½®ç¯å¢åéã ç¨åå¨ä½ çè§åéä¸ï¼ä½ å¯ä»¥ä½¿ç¨ RewriteCond æ£æ¥æ¤ç¯å¢åéï¼ è¯·æ³¨æï¼ç¯å¢åéå¨å¤é¨éå®ååä¸ä¼ä¿çãä½ å¯ä»¥èèä½¿ç¨ [CO]
+ æ å¿æ¥è®¾ç½® cookieã对äºç®å½çº§å htaccess éåï¼
+ å½æç»æ¿æ¢ä½ä¸ºå
é¨éå®åå¤çæ¶ï¼ä¸ä¸è½®éåçç¯å¢åéä¼ä»¥
+ "REDIRECT_" 为åç¼ã Dieses Dokument ergänzt die 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. Die häufigste Situation, in der Eine häufige Verwendung von Diese Situationen werden besser mit der Um URLs unter Um einen Hostnamen zu einem anderen umzuleiten, beispielsweise
+ Um Die Verwendung von Im Fall der http-zu-https-Umleitung wäre die Verwendung
+von Die
+Die Verwendung von Symbolische Links wären eine weitere Möglichkeit, dasselbe zu erreichen,
+wenn Sie Obwohl es möglich ist, virtuelle Hosts
+mit mod_rewrite zu verwalten, ist dies selten der richtige Weg. Das
+Erstellen einzelner Module wie Die Verwendung von Siehe das Dokument Virtuelle Hosts mit mod_rewrite
+für weitere Details, wie Sie dies erreichen können, wenn es Ihnen immer
+noch als der richtige Ansatz erscheint. In vielen Fällen jedoch, wenn kein tatsächlicher Musterabgleich
+erforderlich ist, wie im obigen Beispiel, ist die Beachten Sie, dass Sie unabhängig davon, ob Sie Sie müssen möglicherweise stattdessen Betrachten Sie beispielsweise das häufige Szenario, in dem
+ Diese Technik kann verwendet werden, um Aktionen basierend auf jedem
+beliebigen Anfrage-Header, Antwort-Header oder Umgebungsvariable
+durchzuführen und Siehe insbesondere die Dokumentation zur
+Ausdrucksauswertung für einen Ãberblick darüber, welche Arten von
+Ausdrücken Sie in Este documento complementa la 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. La situación más común en la que Un uso común de Estas situaciones se manejan mejor con la directiva Para redirigir URLs bajo Para redirigir un nombre de host a otro, por ejemplo
+ Para redirigir URLs El uso de En el caso de la redirección de http-a-https, el uso de
+ La directiva
+El uso de Los enlaces simbólicos serÃan otra forma de lograr lo mismo, si
+tiene Aunque es posible manejar hosts virtuales
+con mod_rewrite, rara vez es la forma correcta. Crear bloques
+ Módulos como Usar Vea el documento de hosts virtuales con mod_rewrite
+para más detalles sobre cómo podrÃa lograr esto si aún
+parece ser el enfoque correcto. Sin embargo, en muchos casos, cuando no hay necesidad real de coincidencia
+de patrones, como en el ejemplo mostrado arriba, la directiva Tenga en cuenta que ya sea que use Puede necesitar usar Considere, por ejemplo, el escenario común donde
+ Esta técnica puede usarse para tomar acciones basadas en cualquier cabecera de
+solicitud, cabecera de respuesta o variable de entorno, reemplazando
+ Vea especialmente la documentación de evaluación
+de expresiones para una visión general de qué tipos de expresiones puede
+usar en secciones
+
+
+ HTTP_REFERER-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.www.example.com ist.
+
+
+ /robots.txt, die die Bereiche Ihrer Website festlegt,
+ von denen Sie Robots ausschlieÃen möchten. Einige Robots halten sich
+ jedoch nicht an diese Dateien.
+ USER_AGENT-String des Clients basiert, sehr leicht
+ umgangen werden kann, da dieser String geändert werden kann.USER_AGENT angibt, der den bösartigen
+ oder hartnäckigen Robot identifiziert.NameOfBadRobot vom Standort
+ /secret/files. Sie können auch einen IP-Adressbereich
+ angeben, wenn Sie den User-Agent nur von einer bestimmten Quelle
+ blockieren möchten.USER_AGENT-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.
+
+
+
+hosts.deny, und diesen Hosts den Zugriff auf
+ unseren Server verweigern.
+## hosts.deny
+##
+## ACHTUNG! Dies ist eine Map, keine Liste, auch wenn wir sie als solche behandeln.
+## mod_rewrite parst sie nach Schlüssel/Wert-Paaren, daher muss mindestens
+## ein Dummy-Wert "-" für jeden Eintrag vorhanden sein.
+##
+
+193.102.180.41 -
+bsdti1.sdm.de -
+192.76.162.40 -
+[OR]-Flag
+ von der ersten RewriteCond entfernen.
+
+
+
+
+
+
+ HTTP_REFERER, 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.www.example.com.
+
+
+ /robots.txt que especifica aquellas partes de su
+ sitio web donde desea excluir robots. Sin embargo, algunos robots
+ no respetan estos archivos.
+ USER_AGENT del cliente puede ser evitada
+ muy fácilmente, ya que esa cadena puede cambiarse.USER_AGENT del cliente que
+ identifica al robot malicioso o persistente.NameOfBadRobot de una ubicación
+ /secret/files. También puede especificar un rango de
+ direcciones IP, si está intentando bloquear ese agente de usuario solo desde
+ la fuente particular.USER_AGENT. Si
+ está experimentando un ataque sostenido, deberÃa considerar bloquearlo
+ a un nivel superior, como en su firewall.
+
+
+
+hosts.deny, y hacer que esos hosts sean bloqueados
+ del acceso a nuestro servidor.
+## hosts.deny
+##
+## ¡ATENCIÃN! Esto es un mapa, no una lista, incluso cuando lo tratamos como tal.
+## mod_rewrite lo analiza buscando pares clave/valor, asà que al menos un
+## valor ficticio "-" debe estar presente para cada entrada.
+##
+
+193.102.180.41 -
+bsdti1.sdm.de -
+192.76.162.40 -
+[OR] de la primera RewriteCond.
+
+
+
+
+
+
+ HTTP_REFERER 夿°ã®å¤ã«
+ ä¾åãã¦ãã¾ããããã®å¤ã¯ãªãã·ã§ã³ã§ãããã®ãããä¸é¨ã®
+ ã¦ã¼ã¶ã¯ãã®å¶éãåé¿ã§ãã¾ãããã ããã»ã¨ãã©ã®ã¦ã¼ã¶ã¯
+ ãªã¯ã¨ã¹ã失æãçµé¨ããæéã®çµéã¨ã¨ãã«ãã®ç»åã
+ ä»ã®ãµã¤ãããåé¤ãããçµæã¨ãªãã¯ãã§ããwww.example.com ã§ããã¨ä»®å®ãã¦ãã¾ãã
+
+
+ /robots.txt ã¨ãããã¡ã¤ã«ã
+ å®ç¾©ããã¦ãã¾ããããããä¸é¨ã®ããããã¯ãããã®ãã¡ã¤ã«ã
+ å°éãã¾ãããUSER_AGENT æååã«ä¾åãã
+ ãã¯ããã¯ã¯ããã®æååã夿´ã§ãããããé常ã«ç°¡åã«åé¿ã§ãã
+ ãã¨ã«ã注æãã¦ãã ãããUSER_AGENT ãæå®ãã
+ ã«ã¼ã«ã»ããã使ç¨ãã¾ããNameOfBadRobot ã¨ããããããã
+ /secret/files ã¨ããå ´æãããããã¯ãã¦ãã¾ãã
+ ç¹å®ã®ã½ã¼ã¹ããã®ã¿ãã®ã¦ã¼ã¶ã¨ã¼ã¸ã§ã³ãããããã¯ãããå ´åã¯ã
+ IP ã¢ãã¬ã¹ç¯å²ãæå®ã§ãã¾ããUSER_AGENT
+ ãªã¯ã¨ã¹ããããã夿´ããã ãã§ç°¡åã«åé¿ã§ãã¾ããæç¶çãª
+ æ»æãåãã¦ããå ´åã¯ããã¡ã¤ã¢ã¦ã©ã¼ã«ãªã©ã®ããä¸ä½ã®ã¬ãã«ã§
+ ãããã¯ãããã¨ãæ¤è¨ãã¦ãã ããã
+
+
+
+hosts.deny ã®ãããªãã¹ãã®ãªã¹ãã管çãã
+ ãããã®ãã¹ãããµã¼ãã«ã¢ã¯ã»ã¹ããã®ããããã¯ãããã¨
+ èãã¦ãã¾ãã
+## hosts.deny
+##
+## 注æ! ããã¯ãªã¹ãã§ã¯ãªããããã§ãããªã¹ãã¨ãã¦æ±ãå ´åã§ãã
+## mod_rewrite ã¯ãã¼/å¤ã®ãã¢ã¨ãã¦è§£æãããããåã¨ã³ããªã«
+## å°ãªãã¨ãããã¼ã®å¤ "-" ãå¿
è¦ã§ãã
+##
+
+193.102.180.41 -
+bsdti1.sdm.de -
+192.76.162.40 -
+[OR] ãã©ã°ãåé¤ãã¦ãã ããã
+
+
+
+
+
+
+ HTTP_REFERER ë³ìì ê°ì
+ ìì¡´íë©°, ì´ë ì íì ì
ëë¤. ë°ë¼ì ì¼ë¶ ì¬ì©ìê°
+ ì´ ì íì ì°íí ì ììµëë¤. ê·¸ë¬ë ëë¶ë¶ì
+ ì¬ì©ìë ì¤í¨í ìì²ì ê²½ííê² ëë©°, ìê°ì´ ì§ëë©´
+ í´ë¹ ì´ë¯¸ì§ê° ë¤ë¥¸ ì¬ì´í¸ìì ì ê±°ëë 결과를
+ ê°ì ¸ì¬ ê²ì
ëë¤.www.example.comì´ë¼ê³ ê°ì í©ëë¤.
+
+
+ /robots.txtë¼ë
+ íì¼ì ì ìíë©°, ì´ íì¼ì ë¡ë´ì ë°°ì íê³ ì íë
+ ì¹ì¬ì´í¸ì ë¶ë¶ì ì§ì í©ëë¤. ê·¸ë¬ë ì¼ë¶ ë¡ë´ì
+ ì´ íì¼ì ì¤ìíì§ ììµëë¤.USER_AGENT 문ìì´ì
+ ìì¡´íë 기ì ì í´ë¹ 문ìì´ì ì½ê² ë³ê²½í ì ìì¼ë¯ë¡
+ ë§¤ì° ì½ê² ì°íí ì ìë¤ë ì ì ì ìíììì¤.USER_AGENT를
+ ì§ì íë ê·ì¹ ì¸í¸ë¥¼ ì¬ì©í©ëë¤.NameOfBadRobotì´ë¼ë
+ ë¡ë´ì /secret/files ìì¹ìì
+ ì°¨ë¨í©ëë¤. í¹ì ìì¤ììë§ í´ë¹ ì¬ì©ì ìì´ì í¸ë¥¼
+ ì°¨ë¨íë ¤ë ê²½ì° IP 주ì ë²ì를 ì§ì í ìë ììµëë¤.USER_AGENT
+ ìì² í¤ë를 ìì íë ê²ë§ì¼ë¡ë ì½ê² ì°íí ì ììµëë¤.
+ ì§ìì ì¸ ê³µê²©ì ë°ê³ ìë¤ë©´, ë°©í벽과 ê°ì ìì ìì¤ìì
+ ì°¨ë¨íë ê²ì ê³ ë ¤í´ì¼ í©ëë¤.
+
+
+
+hosts.denyì ê°ì í¸ì¤í¸ 목ë¡ì ê´ë¦¬íì¬
+ í´ë¹ í¸ì¤í¸ê° ìë²ì ì ê·¼íì§ ëª»íëë¡ ì°¨ë¨íê³ ì í©ëë¤.
+## hosts.deny
+##
+## 주ì! ì´ê²ì 목ë¡ì´ ìëë¼ ë§µì
ëë¤.
+## mod_rewriteê° í¤/ê° ìì íì±íë¯ë¡ ê° í목ì
+## ìµìí ë미 ê° "-"ì´ ìì´ì¼ í©ëë¤.
+##
+
+193.102.180.41 -
+bsdti1.sdm.de -
+192.76.162.40 -
+[OR] íë그를 ì ê±°í´ì¼
+ í©ëë¤.
+
+
+
+
+
+
+ HTTP_REFERER
+ 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.www.example.com olduÄunu varsayıyoruz.
+
+
+ /robots.txt
+ adında bir dosya tanımlar. Ancak bazı robotlar bu dosyalara
+ uymaz.USER_AGENT dizgesine dayanan herhangi bir tekniÄin
+ kolayca atlanabileceÄini de unutmayın; çünkü bu dizge
+ deÄiÅtirilebilir.USER_AGENT dizgesini belirten bir kural
+ kümesi kullanıyoruz.NameOfBadRobot adlı bir robotu
+ /secret/files konumundan engelliyoruz. Kullanıcı
+ aracısını yalnızca belirli bir kaynaktan engellemek istiyorsanız
+ bir IP adresi aralıÄı da belirtebilirsiniz.USER_AGENT
+ 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.
+
+
+
+hosts.deny gibi bir konak listesi tutmak ve bu
+ konakların sunucumuza eriÅimini engellemek istiyoruz.
+## hosts.deny
+##
+## DİKKAT! Bu bir liste deÄil, bir eÅlem dosyasıdır.
+## mod_rewrite bunu anahtar/deÄer çiftleri olarak çözümler,
+## bu yüzden her girdi için en azından bir yapay "-" deÄeri
+## mevcut olmalıdır.
+##
+
+193.102.180.41 -
+bsdti1.sdm.de -
+192.76.162.40 -
+[OR] bayraÄını çıkarmalısınız.
+
+
+
+
+
+
+ HTTP_REFERER åéçå¼ï¼
+ 该å鿝å¯éçãå æ¤ï¼æäºäººå¯è½ä¼ç»è¿æ¤éå¶ã
+ 使¯ï¼å¤§å¤æ°ç¨æ·å°ä¼éå°è¯·æ±å¤±è´¥çæ
åµï¼
+ éçæ¶é´æ¨ç§»ï¼è¿åºè¯¥ä¼å¯¼è´å¾çä»å
¶ä»ç«ç¹ä¸è¢«ç§»é¤ãwww.example.comã
+
+
+ /robots.txtï¼
+ ç¨äºæå®ä½ ç½ç«ä¸å¸ææé¤æºå¨äººè®¿é®çé¨åã使¯ï¼æäºæºå¨äººä¸éµå®è¿äºæä»¶ãUSER_AGENT
+ åç¬¦ä¸²çææ¯é½å¯ä»¥å¾å®¹æå°è¢«ç»è¿ï¼å 为该å符串å¯ä»¥è¢«æ´æ¹ãUSER_AGENTã/secret/files
+ 黿¢ä¸ä¸ªå为 NameOfBadRobot çæºå¨äººã
+ å¦æä½ åªæ³ä»ç¹å®æ¥æºé»æ¢è¯¥ç¨æ·ä»£çï¼
+ ä¹å¯ä»¥æå® IP å°åèå´ãUSER_AGENT 请æ±å¤´å³å¯ãå¦æä½ éåæç»æ»å»ï¼
+ åºèè卿´é«å±çº§ï¼å¦é²ç«å¢ï¼è¿è¡é»æ¢ã
+
+
+
+hosts.denyï¼
+ 并黿¢è¿äºä¸»æºè®¿é®æä»¬çæå¡å¨ã
+## hosts.deny
+##
+## 注æï¼è¿æ¯ä¸ä¸ªæ å°æä»¶ï¼ä¸æ¯å表ï¼å³ä½¿æä»¬å°å
¶ä½ä¸ºå表使ç¨ã
+## mod_rewrite å°å
¶è§£æä¸ºé®/å¼å¯¹ï¼å æ¤æ¯ä¸ªæ¡ç®
+## è³å°å¿
é¡»åå¨ä¸ä¸ªèæå¼ "-"ã
+##
+
+193.102.180.41 -
+bsdti1.sdm.de -
+192.76.162.40 -
+[OR] æ å¿ã
+
+
+
+
+
+
+-U-Operator prüft, ob der Teststring
+ (in diesem Fall REQUEST_URI) 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 /regenerate_page.cgi auf, das
+ die angeforderte Ressource generiert und im Dokumentenverzeichnis
+ speichert, sodass beim nächsten Aufruf eine statische Kopie
+ ausgeliefert werden kann.
+
+
+serverlist.txt enthält eine Liste der Server:
+
+servers one.example.com|two.example.com|three.example.com
+
+
+
+/~larry/anypath gleich
+ /home/l/larry/public_html/anypath,
+ während /~waldo/anypath gleich
+ /home/w/waldo/public_html/anypath ist.
+
+
+#-Zeichen maskiert und
+ es in %23 umwandelt. Dies wiederum unterbricht die
+ Umleitung.[NE]-Flag in der
+ RewriteRule. NE steht für No Escape (Nicht maskieren).
+
+
+
+TIME_xxx
+ für Rewrite-Bedingungen. In Verbindung mit den speziellen
+ lexikographischen Vergleichsmustern <STRING,
+ >STRING und =STRING können wir
+ zeitabhängige Umleitungen durchführen:foo.day.html
+ unter der URL foo.html von
+ 07:01-18:59 und zur restlichen Zeit den
+ Inhalt von foo.night.html.
+
+
+
+
+
+-U determina si la cadena de prueba
+ (en este caso, REQUEST_URI) 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 /regenerate_page.cgi, 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.
+
+
+serverlist.txt contendrá una lista de los servidores:
+
+servers one.example.com|two.example.com|three.example.com
+
+
+
+/~larry/anypath
+ es /home/l/larry/public_html/anypath
+ mientras que /~waldo/anypath es
+ /home/w/waldo/public_html/anypath.
+
+
+#,
+ convirtiéndolo en %23. Esto, a su vez, rompe la
+ redirección.[NE] en la
+ RewriteRule. NE significa No Escapar.
+
+
+
+TIME_xxx
+ para condiciones de reescritura. En conjunto con los patrones
+ especiales de comparación lexicográfica <STRING,
+ >STRING y =STRING podemos
+ hacer redirecciones dependientes del tiempo:foo.day.html
+ bajo la URL foo.html de
+ 07:01-18:59 y en el tiempo restante el
+ contenido de foo.night.html.
+
+
+
+
+
+-U æ¼ç®åã¯ããã¹ãæåå (ãã®å ´åã¯
+ REQUEST_URI) ãæå¹ãª URL ãã©ãããå¤å®ãã¾ãã
+ ããã¯ãµããªã¯ã¨ã¹ããéãã¦è¡ããã¾ãããã®ãµããªã¯ã¨ã¹ãã
+ 失æããå ´åãã¤ã¾ããªã¯ã¨ã¹ãããããªã½ã¼ã¹ãåå¨ããªãå ´åã
+ ãã®ã«ã¼ã«ã¯ CGI ããã°ã©ã /regenerate_page.cgi
+ ãå¼ã³åºãããªã¯ã¨ã¹ãããããªã½ã¼ã¹ãçæãã¦ããã¥ã¡ã³ã
+ ãã£ã¬ã¯ããªã«ä¿åãã¾ããããã«ãããæ¬¡åãªã¯ã¨ã¹ããããã¨ãã«
+ éçã³ãã¼ãæä¾ã§ãã¾ãã
+
+
+serverlist.txt ã«ã¯ãµã¼ãã®ãªã¹ããå«ã¾ãã¾ã:
+
+servers one.example.com|two.example.com|three.example.com
+
+
+
+/~larry/anypath ã¯
+ /home/l/larry/public_html/anypath
+ ã§ããã/~waldo/anypath ã¯
+ /home/w/waldo/public_html/anypath
+ ã§ãã
+
+
+# æåãã¨ã¹ã±ã¼ããã¦
+ %23 ã«å¤æããããã§ããããã«ãããªãã¤ã¬ã¯ãã
+ å£ãã¾ããRewriteRule ã§ [NE] ãã©ã°ã
+ 使ç¨ãã¾ããNE 㯠No Escape (ã¨ã¹ã±ã¼ãããªã) ã®ç¥ã§ãã
+
+
+
+TIME_xxx ã¨ããååã®
+ 夿°ã夿°ããã¾ããç¹æ®ãªè¾æ¸é æ¯è¼ãã¿ã¼ã³
+ <STRINGã>STRINGã
+ =STRING ã¨çµã¿åããããã¨ã§ãæéã«ä¾åãã
+ ãªãã¤ã¬ã¯ããè¡ãã¾ã:foo.html ã§
+ 07:01-18:59 ã®é㯠foo.day.html ã®
+ ã³ã³ãã³ãããæ®ãã®æé帯㯠foo.night.html ã®
+ ã³ã³ãã³ããæä¾ãã¾ãã
+
+
+
+
+
+-U ì°ì°ìë í
ì¤í¸ 문ìì´(ì´ ê²½ì°
+ REQUEST_URI)ì´ ì í¨í URLì¸ì§
+ íë¨í©ëë¤. ì´ë ìë¸ìì²ì íµí´ ìíë©ëë¤.
+ ì´ ìë¸ìì²ì´ ì¤í¨íë©´ - ì¦, ìì²ë ììì´ ì¡´ì¬íì§
+ ìì¼ë©´ - ì´ ê·ì¹ì CGI íë¡ê·¸ë¨
+ /regenerate_page.cgi를 í¸ì¶íì¬
+ ìì²ë ììì ìì±íê³ ë¬¸ì ëë í 리ì ì ì¥íë¯ë¡,
+ ë¤ìì ìì²ë ë ì ì ë³µì¬ë³¸ì ì ê³µí ì ììµëë¤.
+
+
+serverlist.txtìë ìë² ëª©ë¡ì´ í¬í¨ë©ëë¤:
+
+servers one.example.com|two.example.com|three.example.com
+
+
+
+/~larry/anypathë
+ /home/l/larry/public_html/anypathì´ê³
+ /~waldo/anypathë
+ /home/w/waldo/public_html/anypathì
ëë¤.
+
+
+#
+ 문ì를 ì´ì¤ì¼ì´ííì¬ %23ì¼ë¡ ë³íí기
+ ë문ì
ëë¤. ì´ë¡ ì¸í´ 리ë¤ì´ë ì
ì´ ì¤ë¨ë©ëë¤.RewriteRuleì [NE]
+ íë그를 ì¬ì©í©ëë¤. NEë No Escape를 ì미í©ëë¤.
+
+
+TIME_xxxë¼ë
+ ë§ì ë³ìê° ììµëë¤. í¹ì ì¬ì ì ë¹êµ í¨í´
+ <STRING, >STRING,
+ =STRINGê³¼ í¨ê» ìê° ê¸°ë° ë¦¬ë¤ì´ë í¸ë¥¼
+ ìíí ì ììµëë¤:07:01-18:59 ì¬ì´ìë URL
+ foo.html íì foo.day.htmlì
+ ì½í
ì¸ ë¥¼ ì ê³µíê³ , ëë¨¸ì§ ìê°ìë
+ foo.night.htmlì ì½í
ì¸ ë¥¼ ì ê³µí©ëë¤.
+
+
+
+
+
+-U iÅleci, sınama dizgesinin (bu durumda
+ REQUEST_URI) 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
+ /regenerate_page.cgi CGI programını çalıÅtırır; böylece
+ bir sonraki istekte statik bir kopya sunulabilir.
+
+
+serverlist.txt sunucuların bir listesini içerecektir:
+
+servers one.example.com|two.example.com|three.example.com
+
+
+
+/~larry/anypath Åu olur:
+ /home/l/larry/public_html/anypath;
+ /~waldo/anypath ise Åu olur:
+ /home/w/waldo/public_html/anypath.
+
+
+# karakterini
+ kodlayarak %23'e dönüÅtürür. Bu da yönlendirmeyi
+ bozar.RewriteRule üzerinde [NE] bayraÄını
+ kullanın. NE, Kodlama Yapma (No Escape) anlamına gelir.
+
+
+
+TIME_xxx adlı birçok
+ deÄiÅken vardır. Ãzel sözlüksel karÅılaÅtırma kalıpları olan
+ <DİZGE, >DİZGE ve
+ =DİZGE ile birlikte zamana baÄlı yönlendirmeler
+ yapabiliriz:foo.html URL'si altında
+ 07:01-18:59 saatleri arasında
+ foo.day.html içeriÄini, geri kalan zamanda ise
+ foo.night.html içeriÄini sunar.
+
+
+
+
+
+-U æä½ç¬¦ç¡®å®æµè¯å符串ï¼å¨æ¬ä¾ä¸ä¸º
+ REQUEST_URIï¼æ¯å¦æ¯ææç URLãå®éè¿åè¯·æ±æ¥å®æã
+ 妿æ¤å请æ±å¤±è´¥ââå³è¯·æ±çèµæºä¸åå¨ââæ¤è§åå°è°ç¨ CGI ç¨åº
+ /regenerate_page.cgiï¼è¯¥ç¨åºçæè¯·æ±çèµæºå¹¶å°å
¶ä¿åå°
+ ææ¡£ç®å½ä¸ï¼è¿æ ·ä¸æ¬¡è¯·æ±æ¶å°±å¯ä»¥æä¾éæå¯æ¬äºã
+
+
+serverlist.txt å°å
嫿å¡å¨å表ï¼
+
+servers one.example.com|two.example.com|three.example.com
+
+
+
+/~larry/anypath æ¯
+ /home/l/larry/public_html/anypathï¼
+ è /~waldo/anypath æ¯
+ /home/w/waldo/public_html/anypathã
+
+
+# å符ï¼
+ å°å
¶å为 %23ãè¿åè¿æ¥ä¼ç ´åéå®åãRewriteRule ä¸ä½¿ç¨ [NE] æ å¿ã
+ NE 代表ä¸è½¬ä¹ï¼No Escapeï¼ã
+
+
+
+TIME_xxx
+ çåéå¯ç¨äºé忡件ãç»åç¹æ®çè¯æ³æ¯è¾æ¨¡å¼
+ <STRINGã>STRING å
+ =STRINGï¼æä»¬å¯ä»¥è¿è¡åºäºæ¶é´çéå®åï¼07:01-18:59 æ¶é´æ®µå
ï¼ä»¥ URL
+ foo.html æä¾ foo.day.html çå
容ï¼
+ å¨å
¶ä½æ¶é´æä¾ foo.night.html çå
容ã
+
+
+RedirectMatch
+ermöglicht es Ihnen, einen regulären Ausdruck in Ihre Umleitungskriterien
+einzubinden, was viele der Vorteile der Verwendung von
+RewriteRule bietet.RewriteRule ist die Umleitung
+einer ganzen Klasse von URLs. Beispielsweise müssen alle URLs im Verzeichnis
+/one nach http://one.example.com/ umgeleitet werden,
+oder alle http-Anfragen müssen nach https
+umgeleitet werden.Redirect-Direktive
+behandelt. Denken Sie daran, dass Redirect Pfadinformationen
+beibehält. Das heiÃt, eine Umleitung für die URL /one
+wird auch alle darunter liegenden URLs umleiten, wie
+/one/two.html und /one/three/four.html./one nach
+http://one.example.com umzuleiten, tun Sie Folgendes:example.com zu www.example.com, siehe das
+Rezept für kanonische Hostnamen.http-URLs nach https umzuleiten, tun Sie
+Folgendes:RewriteRule für diese Aufgabe kann
+angemessen sein, wenn andere RewriteRule-Direktiven im
+selben Geltungsbereich vorhanden sind. Dies liegt daran, dass bei
+Redirect- und RewriteRule-Direktiven im selben
+Geltungsbereich die RewriteRule-Direktiven immer zuerst
+ausgeführt werden, unabhängig von der Reihenfolge in der
+Konfigurationsdatei.RewriteRule angemessen, wenn Sie keinen Zugriff auf die
+Hauptserverkonfigurationsdatei haben und diese Aufgabe stattdessen in einer
+.htaccess-Datei erledigen müssen..htaccess-Datei.
+Options FollowSymLinks auf Ihrem Server aktiviert
+haben..htaccess-Dateien beschränkt sind.RewriteRule verwenden,
+wenn andere RewriteRules im selben Geltungsbereich aktiv sind,
+da eine RewriteRule in der Regel vor einem
+ProxyPass wirksam wird und somit das gewünschte Ergebnis
+vorwegnehmen kann.www.example.com anstelle von
+example.com. Dies kann mit der RedirectMatch
+le permite incluir una expresión regular en sus criterios de redirección,
+proporcionando muchos de los beneficios de usar RewriteRule.RewriteRule es redirigir toda una
+clase de URLs. Por ejemplo, todas las URLs en el directorio /one
+deben ser redirigidas a http://one.example.com/, o quizás
+todas las solicitudes http deben ser redirigidas a
+https.Redirect.
+Recuerde que Redirect preserva la información de
+ruta. Es decir, una redirección para una URL /one también
+redirigirá todas las URLs bajo ella, como /one/two.html
+y /one/three/four.html./one a
+http://one.example.com, haga lo siguiente:example.com a www.example.com, vea la
+receta de Nombres de Host Canónicos.http a https, haga lo
+siguiente:RewriteRule para realizar esta tarea puede ser
+apropiado si hay otras directivas RewriteRule en
+el mismo ámbito. Esto se debe a que, cuando hay directivas Redirect
+y RewriteRule en el mismo ámbito, las
+directivas RewriteRule se ejecutarán primero, independientemente del
+orden de aparición en el archivo de configuración.RewriteRule serÃa apropiado si no tiene acceso
+al archivo de configuración principal del servidor, y está obligado a realizar esta
+tarea en un archivo .htaccess en su lugar..htaccess.
+Options FollowSymLinks habilitado en su
+servidor..htaccess.RewriteRule en su lugar cuando hay
+otras RewriteRules en efecto en el mismo ámbito, ya que una
+RewriteRule generalmente tendrá efecto antes que un
+ProxyPass, y por lo tanto puede anticiparse a lo que está intentando
+lograr.www.example.com en lugar de
+example.com. Esto puede hacerse usando la directiva http://un.example.com/, utilisez cette définition :
Pour rediriger un nom d'hôte vers un autre nom d'hôte, par exemple @@ -112,13 +112,13 @@ utilisez cette définition :
ãã®ããã¥ã¡ã³ãã¯
ãããã®ä¾ã®å¤ãã¯ãç¹å®ã®ãµã¼ãè¨å®ã§ã¯ãã®ã¾ã¾åä½ããªããã¨ã« +注æãã¦ãã ããããã®ãããåã«ã³ãã¼ï¼ãã¼ã¹ãããã®ã§ã¯ãªãã +å 容ãçè§£ãããã¨ãéè¦ã§ãã
+ +RedirectMatch ã§ã¯
+ãªãã¤ã¬ã¯ãåºæºã«æ£è¦è¡¨ç¾ãå«ãããã¨ãã§ããRewriteRule ã
+使ç¨ããå©ç¹ã®å¤ãã享åã§ãã¾ãã
RewriteRule ã®ä¸è¬çãªä½¿ç¨æ³ã¯ãURL ã®ã¯ã©ã¹å
¨ä½ã
+ãªãã¤ã¬ã¯ããããã¨ã§ããä¾ãã°ã/one ãã£ã¬ã¯ããªã®ãã¹ã¦ã®
+URL ã http://one.example.com/ ã«ãªãã¤ã¬ã¯ãããå¿
è¦ãããå ´åãã
+ãã¹ã¦ã® http ãªã¯ã¨ã¹ãã https ã«
+ãªãã¤ã¬ã¯ãããå¿
è¦ãããå ´åãªã©ã§ãã
ãããã®ç¶æ³ã¯ Redirect ãã£ã¬ã¯ãã£ãã§å¦çããæ¹ã
+é©åã§ããRedirect ã¯ãã¹æ
å ±ãä¿æãããã¨ãå¿ããªãã§ãã ããã
+ã¤ã¾ããURL /one ã®ãªãã¤ã¬ã¯ãã¯ã/one/two.html
+ã /one/three/four.html ãªã©ããã®é
ä¸ã®ãã¹ã¦ã® URL ã
+ãªãã¤ã¬ã¯ããã¾ãã
/one é
ä¸ã® URL ã
+http://one.example.com ã«ãªãã¤ã¬ã¯ãããã«ã¯ã
+以ä¸ã®ããã«ãã¾ã:
ãããã¹ãåããå¥ã®ãã¹ãåã«ãªãã¤ã¬ã¯ãããã«ã¯ãä¾ãã°
+example.com ã www.example.com ã«ãªãã¤ã¬ã¯ãããã«ã¯ã
+æ£è¦ãã¹ãå
+ã®ã¬ã·ããåç
§ãã¦ãã ããã
http URL ã https ã«ãªãã¤ã¬ã¯ãããã«ã¯ã
+以ä¸ã®ããã«ãã¾ã:
åãã¹ã³ã¼ãã«ä»ã® RewriteRule ãã£ã¬ã¯ãã£ããããå ´åã¯ã
+ãã®ã¿ã¹ã¯ã« RewriteRule ã使ç¨ããã®ãé©åãªå ´åãããã¾ãã
+ããã¯ãåãã¹ã³ã¼ãã« Redirect 㨠RewriteRule
+ãã£ã¬ã¯ãã£ããããå ´åãè¨å®ãã¡ã¤ã«ã§ã®åºç¾é åºã«é¢ä¿ãªãã
+RewriteRule ãã£ã¬ã¯ãã£ããå
ã«å®è¡ãããããã§ãã
http ãã https ã¸ã®ãªãã¤ã¬ã¯ãã®å ´åãã¡ã¤ã³ãµã¼ãè¨å®ãã¡ã¤ã«ã«
+ã¢ã¯ã»ã¹ã§ããã.htaccess ãã¡ã¤ã«ã§ãã®ã¿ã¹ã¯ãå®è¡ããå¿
è¦ããã
+å ´åã¯ãRewriteRule ã®ä½¿ç¨ãé©åã§ãã
+ãµã¼ãè¨å®ãã¡ã¤ã«ã«ã¢ã¯ã»ã¹ã§ããªãå ´åã«ããã®ãããã³ã°ãè¡ãããã«
+.htaccess ãã¡ã¤ã«ã§ã¯ä½¿ç¨ã§ãã¾ããã
+
ãµã¼ãã§ Options FollowSymLinks ãæå¹ã«ãªã£ã¦ããå ´åã¯ã
+ã·ã³ããªãã¯ãªã³ã¯ãåããã¨ãå®ç¾ããæ¹æ³ã®ä¸ã¤ã§ãã
mod_rewrite ã§ãã¼ãã£ã«ãã¹ãã
+å¦çãããã¨ã¯å¯è½ã§ãããé©åãªæ¹æ³ã§ãããã¨ã¯ãã£ãã«ããã¾ããã
+åå¥ã®
ãã¹ãã£ã³ã°ãµã¼ãã¹ããµã¼ãè¨å®ãã¡ã¤ã«ã¸ã®ã¢ã¯ã»ã¹ãæä¾ããã
+.htaccess ãã¡ã¤ã«ã使ç¨ããè¨å®ã«å¶éããã¦ããå ´åã¯ã
+ãã¼ãã£ã«ãã¹ã使ã«
ããã§ãé©åãªã¢ããã¼ãã¨æãããå ´åã«ããããã©ã®ããã«å®ç¾ +ãããã®è©³ç´°ã«ã¤ãã¦ã¯ãmod_rewrite ã«ãã +ãã¼ãã£ã«ãã¹ãããã¥ã¡ã³ããåç §ãã¦ãã ããã
+ +ãã ããä¸ã®ä¾ã®ããã«å®éã®ãã¿ã¼ã³ãããã³ã°ãä¸è¦ãªå ´åã¯ã
+
åãã¹ã³ã¼ãã§ä»ã® RewriteRule ãæå¹ãªå ´åã¯ã
+RewriteRule ã¯é常 ProxyPass ãããå
ã«é©ç¨ãããããã
+å®ç¾ãããã¨ãã¦ãããã¨ã横åãããå¯è½æ§ãããã代ããã«
+RewriteRule ã使ç¨ããå¿
è¦ãããå ´åãããã¾ãã
ä¾ãã°ãæ£è¦ãã¹ãåãå¼·å¶ããããã« example.com ã®ä»£ããã«
+www.example.com ã使ç¨ãããã·ããªãªãèãã¦ã¿ã¾ãããã
+ããã¯ã次ã«ç¤ºãããã«
ãã®ãã¯ããã¯ã¯ãä»»æã®ãªã¯ã¨ã¹ãããããã¬ã¹ãã³ã¹ããããã¾ãã¯
+ç°å¢å¤æ°ã«åºã¥ãã¦ã¢ã¯ã·ã§ã³ãå®è¡ããããã«ä½¿ç¨ã§ããå¤ãã®ä¸è¬çãª
+ã·ããªãªã§
ç¹ã«
ì´ ë¬¸ìë
ì´ ìì ë¤ ì¤ ë§ì ê²ì´ í¹ì ìë² ì¤ì ìì ê·¸ëë¡ +ìëíì§ ìì ì ìì¼ë¯ë¡, ë¨ìí ìì 를 ë³µì¬íì¬ ì¤ì ì +ë¶ì¬ë£ê¸°ë³´ë¤ë ì´í´íë ê²ì´ ì¤ìí©ëë¤.
+ +RedirectMatch를 ì¬ì©íë©´
+리ë¤ì´ë ì
기ì¤ì ì ê· ííìì í¬í¨í ì ìì´
+RewriteRule ì¬ì©ì ë§ì ì´ì ì ì ê³µí©ëë¤.
RewriteRuleì ì¼ë°ì ì¸ ì©ëë ì ì²´ URL í´ëì¤ë¥¼
+리ë¤ì´ë í¸íë ê²ì
ëë¤. ì를 ë¤ì´, /one ëë í 리ì
+모ë URLì http://one.example.com/ì¼ë¡
+리ë¤ì´ë í¸íê±°ë, 모ë http ìì²ì
+httpsë¡ ë¦¬ë¤ì´ë í¸í´ì¼ í ì ììµëë¤.
ì´ë¬í ìí©ì Redirect ì§ìì´ë¡ ë ì ì²ë¦¬ë©ëë¤.
+Redirectë ê²½ë¡ ì 보를 ë³´ì¡´íë¤ë ê²ì
+기ìµíììì¤. ì¦, URL /oneì ëí 리ë¤ì´ë í¸ë
+/one/two.html ë°
+/one/three/four.htmlê³¼ ê°ì ê·¸ ìëì 모ë
+URLë 리ë¤ì´ë í¸í©ëë¤.
/one ìëì URLì
+http://one.example.comì¼ë¡ 리ë¤ì´ë í¸íë ¤ë©´
+ë¤ìê³¼ ê°ì´ íììì¤:
íëì í¸ì¤í¸ëª
ì ë¤ë¥¸ ê²ì¼ë¡ 리ë¤ì´ë í¸íë ¤ë©´, ì를 ë¤ì´
+example.comì www.example.comì¼ë¡,
+ì ê· í¸ì¤í¸ëª
+ë ìí¼ë¥¼ 참조íììì¤.
http URLì httpsë¡
+리ë¤ì´ë í¸íë ¤ë©´ ë¤ìê³¼ ê°ì´ íììì¤:
ê°ì ë²ìì ë¤ë¥¸ RewriteRule ì§ìì´ê° ìë
+ê²½ì° ì´ ìì
ì ìíí기 ìí´ RewriteRuleì
+ì¬ì©íë ê²ì´ ì ì í ì ììµëë¤. ì´ë ê°ì ë²ìì
+Redirectì RewriteRule ì§ìì´ê°
+ìì ë ì¤ì íì¼ì ììì ê´ê³ìì´ RewriteRule
+ì§ìì´ê° 먼ì ì¤íë기 ë문ì
ëë¤.
httpìì httpsë¡ì 리ë¤ì´ë ì
ì ê²½ì°, 주 ìë²
+ì¤ì íì¼ì ì ê·¼í ì ìê³ .htaccess íì¼ìì
+ì´ ìì
ì ìíí´ì¼ íë ê²½ì° RewriteRule ì¬ì©ì´
+ì ì í©ëë¤.
+ìë² ì¤ì íì¼ì ì ê·¼í ì ìë ê²½ì° ì´ ë§¤íì ìíí기 ìí´
+.htaccess íì¼ììë ì¬ì©í ì ììµëë¤.
+
ìë²ìì Options FollowSymLinksê° íì±íëì´
+ìë¤ë©´ ì¬ë³¼ë¦ ë§í¬ë ê°ì ê²ì ë¬ì±íë ë ë¤ë¥¸ ë°©ë²ì´
+ë ì ììµëë¤.
mod_rewriteë¡ ê°ì í¸ì¤í¸ë¥¼
+ì²ë¦¬í ì ìì§ë§, ì¬ë°ë¥¸ ë°©ë²ì ê±°ì ìëëë¤. ê°ë³
+
ìë² ì¤ì íì¼ì ëí ì ê·¼ ê¶íì ì ê³µíì§ ìë í¸ì¤í
+ìë¹ì¤ë¥¼ ì¬ì©íê³ ìì´ .htaccess íì¼ì ì¬ì©í
+ì¤ì ì¼ë¡ ì íëë ê²½ì° ê°ìí¸ì¤í¸ ìì±ì
+
ì´ê²ì´ ì¬ì í ì¬ë°ë¥¸ ì ê·¼ ë°©ë²ì¼ë¡ ë³´ì¸ë¤ë©´ ì´ë¥¼ ì´ë»ê² +ìíí ì ìëì§ì ëí ìì¸í ë´ì©ì +mod_rewriteë¡ ê°ì í¸ì¤í¸ 문ì를 +참조íììì¤.
+ +ê·¸ë¬ë ìì ìì ì²ë¼ ì¤ì í¨í´ 매ì¹ì´ íìíì§ ìì
+ë§ì ê²½ì°
ê°ì ë²ìì ë¤ë¥¸ RewriteRuleì´ ì ì©ëê³ ìì´
+RewriteRuleì´ ProxyPassë³´ë¤ ë¨¼ì
+ì ì©ëì´ ìííë ¤ë ìì
ì ì ì í ì ìë ê²½ì°
+RewriteRuleì ëì ì¬ì©í´ì¼ í ì ììµëë¤.
ì를 ë¤ì´, example.com ëì www.example.comê³¼
+ê°ì ì ê· í¸ì¤í¸ëª
ì ê°ì íë ë° ì¬ì©ëë ì¼ë°ì ì¸ ìë리ì¤ë¥¼
+ê³ ë ¤íììì¤. ì´ê²ì ì¬ê¸°ì íìë ëë¡
ì´ ê¸°ì ì ìì² í¤ë, ìëµ í¤ë ëë íê²½ ë³ìì 기ë°í
+ëìì ìííë ë° ì¬ì©í ì ìì¼ë©°, ë§ì ì¼ë°ì ì¸
+ìë리ì¤ìì
Bu belge,
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.
+ +RedirectMatch, yönlendirme kriterlerinize düzenli ifade
+eklemenize olanak tanır ve RewriteRule kullanmanın
+avantajlarının birçoÄunu saÄlar.
RewriteRule için yaygın bir kullanım, URL'lerin tüm bir
+sınıfını yönlendirmektir. ÃrneÄin, /one dizinindeki tüm
+URL'ler http://one.example.com/ adresine yönlendirilmeli
+veya belki tüm http istekleri https'ye
+yönlendirilmelidir.
Bu durumlar Redirect yönergesiyle daha iyi ele alınır.
+Redirect yönergesinin yol bilgisini koruduÄunu
+unutmayın. Yani, /one URL'si için bir yönlendirme,
+/one/two.html ve /one/three/four.html
+gibi altındaki tüm URL'leri de yönlendirecektir.
/one altındaki URL'leri
+http://one.example.com adresine yönlendirmek için
+Åunları yapın:
Bir konak adını baÅka birine yönlendirmek için, örneÄin
+example.com'u www.example.com'a yönlendirmek
+için Kurallı Konak Adları
+tarifine bakın.
http URL'lerini https'ye yönlendirmek
+için Åunları yapın:
RewriteRule kullanarak bu görevi gerçekleÅtirmek, aynı
+kapsamda baÅka RewriteRule yönergeleri varsa uygun
+olabilir. Ãünkü aynı kapsamda Redirect ve
+RewriteRule yönergeleri olduÄunda,
+RewriteRule yönergeleri yapılandırma dosyasındaki sıraya
+bakılmaksızın önce çalıÅacaktır.
http-to-https yönlendirmesi durumunda, ana sunucu
+yapılandırma dosyasına eriÅiminiz yoksa ve bu görevi bunun yerine bir
+.htaccess dosyasında gerçekleÅtirmek zorundaysanız,
+RewriteRule kullanımı uygun olacaktır.
+Bu eÅlemeyi gerçekleÅtirmek için .htaccess dosyasında kullanılamaz.
+
Sunucunuzda Options FollowSymLinks etkinse, sembolik
+baÄlantılar aynı Åeyi gerçekleÅtirmenin baÅka bir yolu olabilir.
mod_rewrite ile sanal konakları yönetmek
+mümkün olsa da, nadiren doÄru yoldur. Ayrı ayrı
Sanal konak oluÅturma için .htaccess
+dosyaları kullanarak yapmak zorundaysanız uygun olabilir.
Yine de doÄru yaklaÅım gibi görünüyorsa, bunu nasıl +gerçekleÅtirebileceÄiniz hakkında daha fazla ayrıntı için mod_rewrite ile sanal konaklar belgesine +bakın.
+ +Ancak birçok durumda, yukarıdaki örnekte gösterildiÄi gibi gerçek
+bir kalıp eÅleÅtirmesine gerek olmadıÄında,
İster
Aynı kapsamda diÄer RewriteRule'lar etkinse,
+RewriteRule kullanmanız gerekebilir; çünkü
+RewriteRule genellikle ProxyPass'tan önce
+etki eder ve yapmaya çalıÅtıÄınız Åeyi geçersiz kılabilir.
ÃrneÄin, www.example.com gibi kurallı bir konak adının
+zorlanmasının yaygın senaryosunu ele alalım. Bu, burada gösterildiÄi
+gibi
Bu teknik, herhangi bir istek baÅlıÄına, yanıt baÅlıÄına veya ortam
+deÄiÅkenine dayalı eylemler yapmak için kullanılabilir ve birçok yaygın
+senaryoda
Ãzellikle
æ¬ææ¡£æ¯
请注æï¼è¿äºç¤ºä¾ä¸ç许å¤ä¸ä¼å¨ä½ çç¹å®æå¡å¨é ç½®ä¸ç´æ¥çæï¼ +å æ¤çè§£å®ä»¬é常éè¦ï¼èä¸ä» ä» æ¯å°ç¤ºä¾å¤å¶ç²è´´å°ä½ çé ç½®ä¸ã
+ +æå¸¸è§çéå使ç¨
RedirectMatch å
è®¸ä½ å¨éå®åæ¡ä»¶ä¸å
嫿£å表达å¼ï¼
+æä¾äºä½¿ç¨ RewriteRule ç许å¤å¥½å¤ã
RewriteRule çä¸ä¸ªå¸¸è§ç¨éæ¯éå®åæ´ç±» URLã
+ä¾å¦ï¼/one ç®å½ä¸çææ URL å¿
é¡»éå®åå°
+http://one.example.com/ï¼æè
ææ http
+请æ±å¿
é¡»éå®åå° httpsã
è¿äºæ
嵿´éåä½¿ç¨ Redirect æä»¤å¤çã
+请记ä½ï¼Redirect ä¼ä¿çè·¯å¾ä¿¡æ¯ãä¹å°±æ¯è¯´ï¼
+对 URL /one çéå®åä¹ä¼éå®åå
¶ä¸çææ URLï¼
+ä¾å¦ /one/two.html å /one/three/four.htmlã
è¦å° /one ä¸ç URL éå®åå°
+http://one.example.comï¼è¯·æ§è¡ä»¥ä¸æä½ï¼
è¦å°ä¸ä¸ªä¸»æºåéå®åå°å¦ä¸ä¸ªï¼ä¾å¦å°
+example.com éå®åå° www.example.comï¼
+请åé
è§è主æºåæ¹æ¡ã
è¦å° http URL éå®åå° httpsï¼
+请æ§è¡ä»¥ä¸æä½ï¼
å½åä¸ä½ç¨åä¸åå¨å
¶ä» RewriteRule æä»¤æ¶ï¼
+ä½¿ç¨ RewriteRule æ¥å®ææ¤ä»»å¡å¯è½æ¯åéçã
+è¿æ¯å 为ï¼å½ Redirect å RewriteRule
+æä»¤å¨åä¸ä½ç¨å䏿¶ï¼æ 论å®ä»¬å¨é
ç½®æä»¶ä¸çåºç°é¡ºåºå¦ä½ï¼
+RewriteRule æä»¤é½ä¼å
æ§è¡ã
å¯¹äº http å° https çéå®åï¼
+å½ä½ æ æè®¿é®ä¸»æå¡å¨é
ç½®æä»¶ï¼
+èè¢«è¿«å¨ .htaccess æä»¶ä¸æ§è¡æ¤ä»»å¡æ¶ï¼
+ä½¿ç¨ RewriteRule æ¯åéçã
+å½ä½ æ æè®¿é®æå¡å¨é
ç½®æä»¶æ¶ï¼ä½¿ç¨ .htaccess æä»¶ä¸ä½¿ç¨ã
+
å¦æä½ çæå¡å¨å¯ç¨äº Options FollowSymLinksï¼
+符å·é¾æ¥å°æ¯å®ç°åæ ·ç®æ çå¦ä¸ç§æ¹å¼ã
è½ç¶å¯ä»¥ä½¿ç¨ mod_rewrite å¤çèæä¸»æºï¼
+ä½è¿å¾å°æ¯æ£ç¡®çæ¹å¼ãå建åç¬ç
+
å½ä½ 使ç¨çæç®¡æå¡ä¸æä¾æå¡å¨é
ç½®æä»¶çè®¿é®æéï¼
+ä½ åªè½ä½¿ç¨ .htaccess æä»¶è¿è¡é
ç½®æ¶ï¼
+使ç¨
请åé ä½¿ç¨ mod_rewrite çèæä¸»æºææ¡£ï¼ +äºè§£å¦ä½å®ç°æ¤ç®çï¼å¦æè¿ä»ç¶çèµ·æ¥æ¯æ£ç¡®çæ¹æ³ï¼ã
+ +使¯ï¼å¨è®¸å¤æ
åµä¸ï¼å½ä¸éè¦å®é
çæ¨¡å¼å¹é
æ¶ï¼å¦ä¸é¢çç¤ºä¾æç¤ºï¼ï¼
+
请注æï¼æ è®ºä½ ä½¿ç¨
+
å½åä¸ä½ç¨å䏿å
¶ä» RewriteRule çææ¶ï¼
+ä½ å¯è½éè¦ä½¿ç¨ RewriteRule 代æ¿ï¼
+å 为 RewriteRule é常ä¼å¨ ProxyPass
+ä¹åçæï¼å¯è½ä¼æ¢å
å¤çä½ è¦å®æçæä½ã
ä¾å¦ï¼èèä½¿ç¨ www.example.com è䏿¯
+example.comï¼ç常è§åºæ¯ãå¯ä»¥ä½¿ç¨
+
æ¤ææ¯å¯ç¨äºæ ¹æ®ä»»ä½è¯·æ±å¤´ãååºå¤´æç¯å¢åéæ§è¡æä½ï¼
+å¨è®¸å¤å¸¸è§åºæ¯ä¸æ¿ä»£
ç¹å«è¯·åé
è¡¨è¾¾å¼æ±å¼ææ¡£ï¼
+äºè§£å¨
Dieses Dokument behandelt die Flags, die für die Direktive
+
Das Verhalten einer
Jedes Flag hat (mit wenigen Ausnahmen) eine Kurzform, wie
+CO, sowie eine Langform, wie cookie.
+Obwohl es am häufigsten ist, die Kurzform zu verwenden, wird empfohlen,
+sich mit der Langform vertraut zu machen, damit Sie sich merken können,
+was jedes Flag bewirken soll. Einige Flags akzeptieren ein oder mehrere
+Argumente. Flags unterscheiden nicht zwischen GroÃ- und Kleinschreibung.
Flags, die mit der Anfrage verknüpfte Metadaten ändern (T=, H=, E=), +haben im Verzeichniskontext und htaccess-Kontext keine Wirkung, wenn eine +Ersetzung (auÃer '-') während derselben Runde der Umschreibungsverarbeitung +durchgeführt wird.
+ +Hier werden alle verfügbaren Flags vorgestellt, zusammen mit einem +Beispiel, wie Sie diese verwenden könnten.
+Das [B]-Flag weist
Für eine ähnliche Maskierung von Server-Variablen siehe die + "escape"-Zuordnungsfunktion
+ +Bei einem Suchbegriff von 'x & y/z' kodiert ein Browser diesen als
+'x%20%26%20y%2Fz', sodass die Anfrage 'search/x%20%26%20y%2Fz' lautet. Ohne das B-Flag
+wird diese Rewrite-Regel auf 'search.php?term=x & y/z' abgebildet, was
+keine gültige URL ist und daher als
+search.php?term=x%20&y%2Fz= kodiert würde, was nicht beabsichtigt war.
Mit gesetztem B-Flag bei derselben Regel werden die Parameter erneut
+kodiert, bevor sie an die Ausgabe-URL übergeben werden, was zu einer korrekten
+Zuordnung zu /search.php?term=x%20%26%20y%2Fz führt.
Beachten Sie, dass Sie möglicherweise auch On setzen müssen,
+damit dieses spezielle Beispiel funktioniert, da httpd keine kodierten
+Schrägstriche in URLs zulässt und bei deren Auftreten einen 404-Fehler
+zurückgibt.
Diese Maskierung ist besonders notwendig in einer Proxy-Situation, +wenn das Backend bei einer nicht-maskierten URL Probleme haben könnte.
+ +Eine Alternative zu diesem Flag ist die Verwendung einer
Ab Version 2.4.26 können Sie die Maskierung auf bestimmte Zeichen
+in Rückreferenzen beschränken, indem Sie diese auflisten: [B=#?;].
+Hinweis: Das Leerzeichen kann in der Liste der zu maskierenden Zeichen
+verwendet werden, aber Sie müssen das gesamte dritte Argument der
+
Um die auf diese Weise maskierten Zeichen einzuschränken, siehe #flag_bne + und #flag_bctls
+Das [BNP]-Flag weist
Dieses Flag ist ab Version 2.4.26 verfügbar.
+Das [BCTLS]-Flag ähnelt dem [B]-Flag, maskiert aber nur +Steuerzeichen und das Leerzeichen. Dies ist dieselbe Menge von +Zeichen, die abgelehnt werden, wenn sie unkodiert in den Query-String +kopiert werden.
+ +Dieses Flag ist ab Version 2.5.1 verfügbar.
+ +Die Liste der Zeichen in [BNE=...] wird als Ausnahmen von den +Zeichen der [B]- oder [BCTLS]-Flags behandelt. Die aufgelisteten Zeichen +werden nicht maskiert.
+ +Dieses Flag ist ab Version 2.5.1 verfügbar.
+Das [C]- oder [chain]-Flag zeigt an, dass die
Das [CO]- oder [cookie]-Flag ermöglicht es Ihnen, ein Cookie zu setzen,
+wenn eine bestimmte
Die vollständige Syntax für das Flag einschlieÃlich aller Attribute +lautet wie folgt:
+ +Wenn ein literales ':'-Zeichen in einem der Cookie-Felder benötigt wird, +steht eine alternative Syntax zur Verfügung. Um die alternative Syntax zu +verwenden, sollte der Cookie-"Name" mit einem ';'-Zeichen eingeleitet werden, +und die Feldtrenner sollten als ';' angegeben werden.
+ +Sie müssen einen Namen, einen Wert und eine Domain angeben, damit das +Cookie gesetzt wird.
+ +www.example.com, oder eine Domain,
+wie .example.com. Sie muss aus mindestens zwei durch einen
+Punkt getrennten Teilen bestehen. Das heiÃt, sie kann nicht einfach nur
+.com oder .net sein. Cookies dieser Art werden
+durch das Cookie-Sicherheitsmodell verboten.Sie können optional auch die folgenden Werte setzen:
+ +/customers/ oder /files/download/./ gesetzt - also die gesamte
+Website.secure, true oder 1
+gesetzt, wird das Cookie nur über sichere (https-)Verbindungen
+übertragen.HttpOnly, true oder
+1 gesetzt, wird das Cookie mit dem HttpOnly-Flag
+versehen, was bedeutet, dass das Cookie für JavaScript-Code in Browsern,
+die diese Funktion unterstützen, nicht zugänglich ist.false oder 0 gesetzt,
+wird das SameSite-Attribut auf den angegebenen Wert gesetzt.
+Typische Werte sind None, Lax und
+Strict. Verfügbar ab Version 2.5.1.Betrachten Sie dieses Beispiel:
+ +In diesem Beispiel schreibt die Regel die Anfrage nicht um.
+Das "-"-Umschreibungsziel weist .example.com-Domain gültig. Es läuft in 1440
+Minuten (24 Stunden) ab und wird für alle URIs zurückgegeben.
Das DPI-Flag bewirkt, dass der PATH_INFO-Teil des umgeschriebenen URI +verworfen wird.
+Dieses Flag ist ab Version 2.2.12 verfügbar.
+Im Verzeichniskontext wird der URI, gegen den jede
+
Der aktuelle URI kann der ursprünglich vom Client angeforderte URI sein,
+das Ergebnis einer vorherigen Runde der
Im Gegensatz dazu spiegelt der PATH_INFO, der vor jeder Regel an den
+URI angehängt wird, nur den Wert von PATH_INFO vor dieser Runde der
+
Verwenden Sie dieses Flag bei jeder Ersetzung, bei der der PATH_INFO,
+der aus der vorherigen Zuordnung dieser Anfrage zum Dateisystem resultierte,
+nicht von Interesse ist. Dieses Flag vergisst dauerhaft den PATH_INFO,
+der vor dieser Runde der
Mit dem [E]- oder [env]-Flag können Sie den Wert einer Umgebungsvariable +setzen. Beachten Sie, dass einige Umgebungsvariablen nach der Ausführung +der Regel gesetzt werden können, wodurch das von Ihnen Gesetzte überschrieben +wird. Siehe das Dokument zu Umgebungsvariablen +für weitere Details zur Funktionsweise von Umgebungsvariablen.
+ +Die vollständige Syntax für dieses Flag lautet:
+ +VAL kann Rückreferenzen ($N oder
+%N) enthalten, die expandiert werden.
In der Kurzform
+ +können Sie die Umgebungsvariable namens VAR auf einen
+leeren Wert setzen.
Die Form
+ +ermöglicht es, eine zuvor gesetzte Umgebungsvariable namens
+VAR zu löschen.
Umgebungsvariablen können dann in verschiedenen Kontexten verwendet +werden, einschlieÃlich CGI-Programmen, anderen RewriteRule-Direktiven +oder CustomLog-Direktiven.
+ +Das folgende Beispiel setzt eine Umgebungsvariable namens 'image' auf +den Wert '1', wenn der angeforderte URI eine Bilddatei ist. Dann wird +diese Umgebungsvariable verwendet, um diese Anfragen aus dem +Zugriffsprotokoll auszuschlieÃen.
+ +Beachten Sie, dass derselbe Effekt mit
Die Verwendung des [END]-Flags beendet nicht nur die aktuelle Runde der +Umschreibungsverarbeitung (wie [L]), sondern verhindert auch jede +nachfolgende Umschreibungsverarbeitung im Verzeichniskontext (htaccess).
+ +Dies gilt nicht für neue Anfragen, die aus externen Umleitungen +resultieren.
+Die Verwendung des [F]-Flags bewirkt, dass der Server einen
+403-Forbidden-Statuscode an den Client zurückgibt. Obwohl dasselbe
+Verhalten mit der
Die folgende Regel verbietet das Herunterladen von .exe-Dateien
+von Ihrem Server.
Dieses Beispiel verwendet die "-"-Syntax für das Umschreibungsziel, +was bedeutet, dass der angeforderte URI nicht geändert wird. Es gibt +keinen Grund, zu einem anderen URI umzuschreiben, wenn Sie die Anfrage +verweigern möchten.
+ +Bei der Verwendung von [F] wird ein [L] impliziert - das heiÃt, die +Antwort wird sofort zurückgegeben und keine weiteren Regeln werden +ausgewertet.
+ +Das [G]-Flag zwingt den Server, einen 410-Gone-Status mit der +Antwort zurückzugeben. Dies zeigt an, dass eine Ressource früher +verfügbar war, aber nicht mehr verfügbar ist.
+ +Wie beim [F]-Flag verwenden Sie typischerweise die "-"-Syntax für das +Umschreibungsziel, wenn Sie das [G]-Flag verwenden:
+ +Bei der Verwendung von [G] wird ein [L] impliziert - das heiÃt, die +Antwort wird sofort zurückgegeben und keine weiteren Regeln werden +ausgewertet.
+ +Erzwingt, dass die resultierende Anfrage mit dem angegebenen +Handler behandelt wird. Beispielsweise könnte man dies verwenden, um +alle Dateien ohne Dateiendung vom PHP-Handler parsen zu lassen:
+ +
+Der obige reguläre Ausdruck - !\. - stimmt mit jeder Anfrage
+überein, die kein literales .-Zeichen enthält.
+
Dies kann auch verwendet werden, um den Handler basierend auf
+bestimmten Bedingungen zu erzwingen. Beispielsweise ermöglicht der
+folgende Ausschnitt, der im Server-Kontext verwendet wird, dass
+.php-Dateien von mod_php angezeigt
+werden, wenn sie mit der .phps-Erweiterung angefordert werden:
Der obige reguläre Ausdruck - ^(/source/.+\.php)s$ - stimmt
+mit jeder Anfrage überein, die mit /source/ beginnt, gefolgt von
+einem oder mehreren Zeichen, gefolgt von .phps. Die Rückreferenz
+$1 verweist auf die erfasste Ãbereinstimmung innerhalb der Klammern des
+regulären Ausdrucks.
Das [L]-Flag bewirkt, dass last-Befehl in Perl oder dem break-Befehl
+in C. Verwenden Sie dieses Flag, um anzuzeigen, dass die aktuelle Regel
+sofort angewendet werden soll, ohne weitere Regeln zu berücksichtigen.
Wenn Sie .htaccess-Dateien oder in
+.htaccess-Datei oder der
+
Es ist daher wichtig, wenn Sie
Ein alternatives Flag, [END], kann verwendet werden, um nicht nur die +aktuelle Runde der Umschreibungsverarbeitung zu beenden, sondern auch +jede nachfolgende Umschreibungsverarbeitung im Verzeichniskontext (htaccess) +zu verhindern. Dies gilt nicht für neue Anfragen, die aus externen +Umleitungen resultieren.
+ +Das hier gegebene Beispiel schreibt jede Anfrage auf
+index.php um und gibt die ursprüngliche Anfrage als
+Query-String-Argument an index.php weiter. Die index.php bestimmt ist.
+Das [N]-Flag bewirkt, dass der Regelsatz von oben neu gestartet wird, +wobei das bisherige Ergebnis des Regelsatzes als Ausgangspunkt verwendet wird. +Verwenden Sie es mit äuÃerster Vorsicht, da es zu Schleifen führen kann. +
++Das [Next]-Flag könnte beispielsweise verwendet werden, wenn Sie einen +bestimmten String oder Buchstaben wiederholt in einer Anfrage ersetzen +möchten. Das hier gezeigte Beispiel ersetzt A überall in einer Anfrage +durch B und fährt damit fort, bis keine weiteren A mehr zu ersetzen sind. +
+Sie können sich dies als while-Schleife vorstellen: Solange
+dieses Muster noch übereinstimmt (d.h. solange der URI noch ein
+A enthält), führe diese Ersetzung durch (d.h. ersetze das
+A durch ein B).
Ab Version 2.5.0 gibt dieses Modul nach 10.000 Iterationen einen Fehler +zurück, um vor unbeabsichtigten Schleifen zu schützen. Eine alternative +maximale Anzahl von Iterationen kann durch Hinzufügen zum N-Flag angegeben +werden.
+Die Verwendung des [NC]-Flags bewirkt, dass die
Im folgenden Beispiel wird jede Anfrage nach einer Bilddatei an Ihren
+dedizierten Bildserver weitergeleitet. Der Abgleich erfolgt ohne
+Berücksichtigung der GroÃ-/Kleinschreibung, sodass beispielsweise sowohl
+.jpg- als auch .JPG-Dateien akzeptiert werden.
StandardmäÃig werden bei einer
A-Z, a-z,
+ 0-9$-_.+!*'(),:;@&=/~Beispielsweise würde # in %23 umgewandelt
+und ? in %3F. Das %-Zeichen
+wird ebenfalls maskiert (zu %25), was bedeutet, dass jede
+bereits vorhandene Prozentkodierung in der Ersetzung doppelt kodiert wird.
Die Verwendung des [NE]-Flags verhindert diese Maskierung und ermöglicht,
+dass Zeichen wie # und ? unverändert an die
+Umleitungs-URL weitergegeben werden.
+Das obige Beispiel leitet /anchor/xyz auf
+/bigpage.html#xyz um. Ohne [NE] würde das #-Zeichen in
+sein Hexcode-Ãquivalent %23 umgewandelt, was dann zu einem
+404-Nicht-Gefunden-Fehler führen würde.
+
Die Verwendung des [NS]-Flags verhindert, dass die Regel auf
+Unteranfragen angewendet wird. Beispielsweise ist eine Seite, die mittels
+SSI (Server Side Include) eingebunden wird, eine Unteranfrage, und Sie
+möchten möglicherweise Umschreibungen bei diesen Unteranfragen vermeiden.
+Auch wenn index.html-Dateien), handelt es sich um eine interne
+Unteranfrage, und Sie möchten häufig Umschreibungen bei solchen
+Unteranfragen vermeiden. Bei Unteranfragen ist es nicht immer nützlich
+und kann sogar Fehler verursachen, wenn der vollständige Regelsatz
+angewendet wird. Verwenden Sie dieses Flag, um problematische Regeln
+auszuschlieÃen.
Um zu entscheiden, ob Sie diese Regel verwenden sollten oder nicht: Wenn +Sie URLs mit CGI-Skripten voranstellen, um deren Verarbeitung durch das +CGI-Skript zu erzwingen, werden Sie wahrscheinlich bei Unteranfragen auf +Probleme (oder erheblichen Overhead) stoÃen. In diesen Fällen verwenden +Sie dieses Flag.
+ ++Bilder, JavaScript-Dateien oder CSS-Dateien, die als Teil einer HTML-Seite +geladen werden, sind keine Unteranfragen - der Browser fordert sie als +separate HTTP-Anfragen an. +
+Die Verwendung des [P]-Flags bewirkt, dass die Anfrage von
+
Die Verwendung des [P]-Flags impliziert [L] - das heiÃt, die Anfrage +wird sofort durch den Proxy geleitet und nachfolgende Regeln werden nicht +berücksichtigt.
+ +
+Sie müssen sicherstellen, dass der Ersetzungsstring ein gültiger URI ist
+(typischerweise beginnend mit http://hostname),
+der von
Seien Sie vorsichtig beim Aufbau der Ziel-URL der Regel und bedenken Sie +die Sicherheitsauswirkungen, wenn Sie dem Client Einfluss auf die Menge +der URLs gewähren, für die Ihr Server als Proxy fungiert. Stellen Sie +sicher, dass Schema und Hostname-Teil der URL entweder fest sind oder dem +Client keinen unangemessenen Einfluss gewähren.
+Die Verwendung dieses Flags löst die Nutzung von
Um persistente Verbindungen zu nutzen, müssen Sie einen
+
Wenn Sie es mit
Hinweis:
+Das Ziel (oder der Ersetzungsstring) in einer RewriteRule wird
+standardmäÃig als Dateipfad behandelt. Die Verwendung des [PT]-Flags
+bewirkt, dass es stattdessen als URI behandelt wird. Das heiÃt, die
+Verwendung des [PT]-Flags bewirkt, dass das Ergebnis der
+Wenn Sie beispielsweise einen
+Das Weglassen des [PT]-Flags in diesem Fall führt dazu, dass der Alias +ignoriert wird und ein 'Datei nicht gefunden'-Fehler zurückgegeben wird. +
+ +Das PT-Flag impliziert das L-Flag:
+Die Umschreibung wird gestoppt, um die Anfrage an die
+nächste Verarbeitungsphase weiterzuleiten.
Beachten Sie, dass das PT-Flag in Verzeichniskontexten
+wie .htaccess-Dateien impliziert ist. Die einzige
+Möglichkeit, dies zu umgehen, ist die Umschreibung zu -.
+Wenn der Ersetzungs-URI einen Query-String enthält, ist das Standardverhalten
+von
Betrachten Sie die folgende Regel:
+ +Mit dem [QSA]-Flag wird eine Anfrage für /pages/123?one=two
+auf /page.php?page=123&one=two abgebildet. Ohne das
+[QSA]-Flag wird dieselbe Anfrage auf /page.php?page=123
+abgebildet - das heiÃt, der vorhandene Query-String wird verworfen.
+
+Wenn der angeforderte URI einen Query-String enthält und der Ziel-URI
+nicht, ist das Standardverhalten von
Dieses Flag ist ab Version 2.4.0 verfügbar.
+ ++Die gemeinsame Verwendung von [QSD] und [QSA] führt dazu, dass [QSD] +Vorrang hat. +
+ +
+Wenn der Ziel-URI einen Query-String hat, wird das Standardverhalten
+beobachtet - das heiÃt, der ursprüngliche Query-String wird verworfen und
+durch den Query-String im RewriteRule-Ziel-URI ersetzt.
+
+StandardmäÃig trennt das erste (linkeste) Fragezeichen in der Ersetzung
+den Pfad vom Query-String. Die Verwendung des [QSL]-Flags weist
+
+Dies ist nützlich bei der Zuordnung zu Dateien, die literale Fragezeichen +in ihrem Dateinamen haben. Wenn kein Query-String in der Ersetzung +verwendet wird, kann ein Fragezeichen in Kombination mit diesem Flag +angehängt werden. +
+ +Dieses Flag ist ab Version 2.4.19 verfügbar.
+ +
+Die Verwendung des [R]-Flags bewirkt, dass eine HTTP-Umleitung an den
+Browser gesendet wird. Wenn eine vollqualifizierte URL angegeben wird
+(das heiÃt, einschlieÃlich http://servername/), wird eine
+Umleitung an diesen Ort durchgeführt. Andernfalls werden das aktuelle
+Protokoll, der Servername und die Portnummer verwendet, um die URL zu
+generieren, die mit der Umleitung gesendet wird.
+
+Jeder gültige HTTP-Antwort-Statuscode kann angegeben werden,
+mit der Syntax [R=305], wobei standardmäÃig ein 302-Statuscode verwendet
+wird, wenn keiner angegeben ist. Der angegebene Statuscode muss nicht
+unbedingt ein Umleitungs-(3xx-)Statuscode sein. Wenn jedoch ein Statuscode
+auÃerhalb des Umleitungsbereichs (300-399) liegt, wird der
+Ersetzungsstring vollständig verworfen und die Umschreibung gestoppt,
+als ob L verwendet worden wäre.
Zusätzlich zu Antwort-Statuscodes können Sie auch den Umleitungsstatus
+mit ihren symbolischen Namen angeben: temp (Standard),
+permanent oder seeother.
+Sie werden fast immer [R] in Verbindung mit [L] verwenden wollen (also
+[R,L]), da das [R]-Flag allein http://thishost[:thisport] dem
+URI voranstellt, dies aber dann an die nächste Regel im Regelsatz
+weitergibt, was häufig zu 'Ungültiger URI in Anfrage'-Warnungen führen kann.
+
Hinweis: httpd unterstützt nur Statuscodes, die in der HTTP-Spezifikation +enthalten sind. Die Verwendung eines nicht erkannten Statuscodes führt zu +einem 500-Fehler und einer Fehlermeldung im Fehlerprotokoll.
+ +Das [S]-Flag wird verwendet, um Regeln zu überspringen, die Sie nicht
+ausführen möchten. Die Syntax des Skip-Flags ist [S=N], wobei
+N die Anzahl der zu überspringenden Regeln angibt (vorausgesetzt,
+die goto-Anweisung in Ihrem
+Umschreibungsregelsatz betrachtet werden. Im folgenden Beispiel möchten
+wir die
Diese Technik ist nützlich, weil eine RewriteCond auf mehrere
+RewriteRules anwenden möchten, besteht eine Möglichkeit darin,
+diese Bedingungen zu negieren und eine RewriteRule mit einem
+[Skip]-Flag hinzuzufügen. Sie können damit Pseudo-if-then-else-Konstrukte
+erstellen: Die letzte Regel der then-Klausel wird zu
+skip=N, wobei N die Anzahl der Regeln in der
+else-Klausel ist:
Es ist wahrscheinlich einfacher, diese Art der Konfiguration mit den
+Direktiven
Setzt den MIME-Typ, mit dem die resultierende Antwort gesendet wird.
+Dies hat denselben Effekt wie die
Sie könnten beispielsweise die folgende Technik verwenden, um +Perl-Quellcode als Klartext bereitzustellen, wenn er auf eine bestimmte +Weise angefordert wird:
+ +Oder wenn Sie eine Kamera haben, die JPEG-Bilder ohne Dateiendungen +produziert, könnten Sie erzwingen, dass diese Bilder mit dem korrekten +MIME-Typ bereitgestellt werden, basierend auf ihren Dateinamen:
+ +Bitte beachten Sie, dass dies ein triviales Beispiel ist und besser mit
+
+Bei Verwendung im Verzeichniskontext verwenden Sie nur - (Bindestrich)
+als Ersetzung für die gesamte Runde der L-Flag kann in
+diesem Kontext nützlich sein, um die aktuelle Runde der
+
Das Setzen dieses Flags ist erforderlich, um eine Umschreibung + fortzusetzen, wenn die zu schreibende HTTP-Anfrage ein kodiertes + Fragezeichen '%3f' enthält und das umgeschriebene Ergebnis ein '?' in + der Ersetzung hat. Dies schützt vor einer bösartigen URL, die eine + Erfassung und Neuersetzung des kodierten Fragezeichens ausnutzt.
+Das Setzen dieses Flags ist erforderlich bei Server-Kontext-Ersetzungen, + die mit einer Variable oder Rückreferenz beginnen und zu einem + Dateisystempfad aufgelöst werden. Diesen Ersetzungen wird nicht das + Document Root vorangestellt. Dies schützt vor einer bösartigen URL, + die die expandierte Ersetzung auf einen unerwarteten + Dateisystemstandort abbilden lässt.
+ +Das Setzen dieses Flags verhindert das Zusammenführen mehrerer + führender Schrägstriche, wie sie in Windows-UNC-Pfaden verwendet werden. + Das Flag ist nicht erforderlich, wenn die Regelersetzung mit mehreren + literalen Schrägstrichen beginnt.
+ +Este documento describe las banderas que están disponibles para la
+directiva
Una
Cada bandera (con algunas excepciones) tiene una forma corta, como
+CO, asà como una forma más larga, como cookie.
+Aunque es más común usar
+la forma corta, se recomienda que se familiarice con la
+forma larga, para que recuerde qué se supone que hace cada bandera.
+Algunas banderas toman uno o más argumentos. Las banderas no distinguen entre mayúsculas y minúsculas.
Las banderas que alteran metadatos asociados con la solicitud (T=, H=, E=) +no tienen efecto en contexto per-directorio y htaccess, cuando una sustitución +(distinta de '-') se realiza durante la misma ronda de procesamiento de reescritura. +
+ +Aquà se presentan cada una de las banderas disponibles, junto con un ejemplo +de cómo podrÃa usarlas.
+La bandera [B] indica a
Para un escape similar de variables del servidor, vea + la función de mapeo "escape"
+ + +Dado un término de búsqueda de 'x & y/z', un navegador lo codificará como
+'x%20%26%20y%2Fz', haciendo la solicitud 'search/x%20%26%20y%2Fz'. Sin la bandera B,
+esta regla de reescritura mapeará a 'search.php?term=x & y/z', que
+no es una URL válida, y por lo tanto serÃa codificada como
+search.php?term=x%20&y%2Fz=, que no era lo que se pretendÃa.
Con la bandera B establecida en esta misma regla, los parámetros se re-codifican
+antes de pasarse a la URL de salida, resultando en un mapeo correcto a
+/search.php?term=x%20%26%20y%2Fz.
Tenga en cuenta que también puede necesitar establecer On para que este
+ejemplo particular funcione, ya que httpd no permite barras codificadas en URLs, y
+devuelve un 404 si ve una.
Este escape es particularmente necesario en una situación de proxy, +cuando el backend puede fallar si se le presenta una URL sin escapar.
+ +Una alternativa a esta bandera es usar una
En 2.4.26 y posterior, puede limitar el escape a caracteres especÃficos
+en las referencias inversas listándolos: [B=#?;]. Nota: El carácter
+de espacio puede usarse en la lista de caracteres a escapar, pero debe entrecomillar
+el tercer argumento completo de
Para limitar los caracteres escapados de esta manera, vea #flag_bne + y #flag_bctls
+La bandera [BNP] indica a
Esta bandera está disponible en la versión 2.4.26 y posterior.
+La bandera [BCTLS] es similar a la bandera [B], pero solo escapa +caracteres de control y el carácter de espacio. Este es el mismo conjunto de +caracteres rechazados cuando se copian en la cadena de consulta sin codificar. +
+ +Esta bandera está disponible en la versión 2.5.1 y posterior.
+ +La lista de caracteres en [BNE=...] se trata como exclusiones de los +caracteres de las banderas [B] o [BCTLS]. Los caracteres listados no serán +escapados. +
+ +Esta bandera está disponible en la versión 2.5.1 y posterior.
+La bandera [C] o [chain] indica que la
La bandera [CO], o [cookie], le permite establecer una cookie cuando una
+
La sintaxis completa para la bandera, incluyendo todos los atributos, es la +siguiente:
+ +Si se necesita un carácter literal ':' en cualquiera de los campos de la cookie, está disponible una +sintaxis alternativa. Para optar por la sintaxis alternativa, el +"Name" de la cookie debe ir precedido por un carácter ';', y los separadores de campo deben +especificarse como ';'.
+ +Debe declarar un nombre, un valor y un dominio para que la cookie se establezca.
+ +www.example.com, o puede ser un dominio,
+como .example.com. Debe tener al menos dos partes
+separadas por un punto. Es decir, no puede ser simplemente .com o
+.net. Las cookies de ese tipo están prohibidas por el modelo de
+seguridad de cookies.Opcionalmente también puede establecer los siguientes valores:
+ +/customers/ o /files/download/./ - es decir, todo el
+sitio web.secure, true, o 1,
+la cookie solo se permitirá ser transmitida a través de conexiones seguras (https).HttpOnly, true, o
+1, la cookie tendrá la bandera HttpOnly establecida,
+lo que significa que la cookie es inaccesible para código JavaScript en
+navegadores que soportan esta caracterÃstica.false o 0, el atributo SameSite
+se establece al valor especificado. Valores tÃpicos son None,
+Lax, y Strict. Disponible en 2.5.1 y posterior.Considere este ejemplo:
+ +En el ejemplo dado, la regla no reescribe la solicitud.
+El destino de reescritura "-" le dice a .example.com. Se establece para expirar en 1440
+minutos (24 horas) y se devuelve para todas las URIs.
La bandera DPI causa que la porción PATH_INFO de la URI reescrita sea +descartada.
+Esta bandera está disponible en la versión 2.2.12 y posterior.
+En contexto per-directorio, la URI contra la que cada
La URI actual puede ser la URI inicial solicitada por el cliente, el
+resultado de una ronda anterior de procesamiento de
En contraste, el PATH_INFO que se añade a la URI antes de cada
+regla refleja solo el valor de PATH_INFO antes de esta ronda de
+procesamiento de
Use esta bandera en cualquier sustitución donde el PATH_INFO que resultó
+del mapeo anterior de esta solicitud al sistema de archivos no es de
+interés. Esta bandera olvida permanentemente el PATH_INFO establecido
+antes de que comenzara esta ronda de procesamiento de
Con la bandera [E], o [env], puede establecer el valor de una variable +de entorno. Tenga en cuenta que algunas variables de entorno pueden establecerse después de que la regla +se ejecute, deshaciendo asà lo que ha establecido. Vea el +documento de Variables de Entorno para más detalles sobre cómo funcionan las variables +de entorno.
+ +La sintaxis completa para esta bandera es:
+ +VAL puede contener referencias inversas ($N o
+%N) que se expanden.
Usando la forma corta
+ +puede establecer la variable de entorno llamada VAR a un
+valor vacÃo.
La forma
+ +permite eliminar una variable de entorno previamente establecida
+llamada VAR.
Las variables de entorno pueden usarse en una variedad de +contextos, incluyendo programas CGI, otras directivas RewriteRule, o +directivas CustomLog.
+ +El siguiente ejemplo establece una variable de entorno llamada 'image' con un +valor de '1' si la URI solicitada es un archivo de imagen. Entonces, esa +variable de entorno se usa para excluir esas solicitudes del registro de +acceso.
+ +Tenga en cuenta que este mismo efecto se puede obtener usando
Usar la bandera [END] termina no solo la ronda actual de procesamiento de +reescritura (como [L]) sino también previene que cualquier procesamiento de +reescritura posterior ocurra en contexto per-directorio (htaccess).
+ +Esto no se aplica a nuevas solicitudes resultantes de +redirecciones externas.
+Usar la bandera [F] causa que el servidor devuelva un código de estado 403 Forbidden
+al cliente. Aunque el mismo comportamiento puede lograrse usando
+la directiva
La siguiente regla prohibirá que archivos .exe sean
+descargados de su servidor.
Este ejemplo usa la sintaxis "-" para el destino de reescritura, que significa +que la URI solicitada no se modifica. No hay razón para reescribir a +otra URI, si va a prohibir la solicitud.
+ +Cuando se usa [F], se implica un [L] - es decir, la respuesta se devuelve +inmediatamente, y no se evalúan más reglas.
+ +La bandera [G] fuerza al servidor a devolver un estado 410 Gone con la +respuesta. Esto indica que un recurso solÃa estar disponible, pero ya no +lo está.
+ +Como con la bandera [F], normalmente usará la sintaxis "-" para el +destino de reescritura cuando use la bandera [G]:
+ +Cuando se usa [G], se implica un [L] - es decir, la respuesta se devuelve +inmediatamente, y no se evalúan más reglas.
+ +Fuerza que la solicitud resultante sea manejada con el manejador +especificado. Por ejemplo, uno podrÃa usar esto para forzar que todos los archivos sin +extensión de archivo sean procesados por el manejador de php:
+ +
+La expresión regular anterior - !\. - coincidirá con cualquier solicitud
+que no contenga el carácter literal ..
+
Esto también puede usarse para forzar el manejador basado en algunas condiciones.
+Por ejemplo, el siguiente fragmento usado en contexto per-servidor permite que
+archivos .php sean mostrados por mod_php
+si se solicitan con la extensión .phps:
La expresión regular anterior - ^(/source/.+\.php)s$ - coincidirá
+con cualquier solicitud que comience con /source/ seguido de 1 o
+más caracteres seguidos de .phps literalmente. La referencia inversa
+$1 se refiere a la coincidencia capturada dentro de los paréntesis de la expresión
+regular.
La bandera [L] causa que last en Perl, o al comando break en
+C. Use esta bandera para indicar que la regla actual debe aplicarse
+inmediatamente sin considerar más reglas.
Si está usando .htaccess o en
+secciones .htaccess o
+la sección
Es por lo tanto importante, si está usando directivas
Una bandera alternativa, [END], puede usarse para terminar no solo la +ronda actual de procesamiento de reescritura sino prevenir cualquier +procesamiento de reescritura posterior en contexto per-directorio +(htaccess). Esto no se aplica a nuevas solicitudes resultantes de +redirecciones externas.
+ +El ejemplo dado aquà reescribirá cualquier solicitud a
+index.php, dando la solicitud original como un argumento de cadena
+de consulta a index.php, sin embargo, la index.php, la
+La bandera [N] causa que el conjunto de reglas comience de nuevo desde el principio, usando +el resultado del conjunto de reglas hasta el momento como punto de partida. Use +con extrema precaución, ya que puede resultar en un bucle. +
++La bandera [Next] podrÃa usarse, por ejemplo, si deseara reemplazar una +cierta cadena o letra repetidamente en una solicitud. El ejemplo mostrado aquà +reemplazará A con B en todas partes de una solicitud, y continuará haciéndolo +hasta que no haya más As por reemplazar. +
+Puede pensar en esto como un bucle while: Mientras este
+patrón siga coincidiendo (es decir, mientras la URI aún contenga una
+A), realice esta sustitución (es decir, reemplace la
+A con una B).
En 2.5.0 y posterior, este módulo devuelve un error después de 10,000 iteraciones para +proteger contra bucles no intencionados. Se puede especificar un número máximo alternativo de +iteraciones añadiéndolo a la bandera N.
+El uso de la bandera [NC] causa que la
En el ejemplo siguiente, cualquier solicitud de un archivo de imagen será proxied
+a su servidor de imágenes dedicado. La coincidencia es insensible a mayúsculas/minúsculas, de modo que
+archivos .jpg y .JPG son ambos aceptables, por
+ejemplo.
Por defecto, cuando una
A-Z, a-z,
+ 0-9$-_.+!*'(),:;@&=/~Por ejemplo, # se convertirÃa a %23,
+y ? a %3F. El carácter %
+también se escapa (a %25), lo que significa que cualquier
+codificación porcentual ya presente en la sustitución será
+doblemente codificada.
Usar la bandera [NE] previene este escape, permitiendo que caracteres
+como # y ? pasen a la
+URL de redirección sin modificar.
+El ejemplo anterior redirigirá /anchor/xyz a
+/bigpage.html#xyz. Omitir la [NE] resultará en que el #
+sea convertido a su equivalente hexadecimal, %23, lo que
+entonces resultará en una condición de error 404 No Encontrado.
+
El uso de la bandera [NS] previene que la regla se use en
+sub-solicitudes. Por ejemplo, una página incluida usando un SSI (Server
+Side Include) es una sub-solicitud, y usted puede querer evitar que las reescrituras
+ocurran en esas sub-solicitudes. También, cuando index.html), esto es una
+sub-solicitud interna, y a menudo querrá evitar reescrituras en tales sub-solicitudes.
+En sub-solicitudes, no siempre es útil, e incluso puede causar errores, si
+el conjunto completo de reglas se aplica. Use esta bandera para excluir
+reglas problemáticas.
Para decidir si usar o no esta regla: si prefija URLs con +scripts CGI, para forzar que sean procesadas por el script CGI, es +probable que tenga problemas (o una sobrecarga significativa) +en sub-solicitudes. En estos casos, use esta bandera.
+ ++Imágenes, archivos javascript, o archivos css, cargados como parte de una página HTML, +no son sub-solicitudes - el navegador los solicita como solicitudes HTTP +separadas. +
+El uso de la bandera [P] causa que la solicitud sea manejada por
+
El uso de la bandera [P] implica [L] - es decir, la solicitud se envÃa inmediatamente +a través del proxy, y cualquier regla siguiente no será +considerada.
+ +
+Debe asegurarse de que la cadena de sustitución sea una URI válida
+(tÃpicamente comenzando con http://hostname) que pueda ser
+manejada por
Tenga cuidado al construir la URL destino de la regla, considerando +el impacto de seguridad de permitir que el cliente influya en el conjunto de +URLs a las que su servidor actuará como proxy. Asegúrese de que la parte del esquema +y nombre de host de la URL sea fija, o no permita al +cliente una influencia indebida.
+Usar esta bandera provoca el uso de
Para usar conexiones persistentes necesita configurar un
+bloque
Si lo configura con
Nota:
+El destino (o cadena de sustitución) en una RewriteRule se asume que es una
+ruta de archivo, por defecto. El uso de la bandera [PT] causa que sea tratada
+como una URI en su lugar. Es decir, el
+uso de la bandera [PT] causa que el resultado de la
+Si, por ejemplo, tiene un
+
+La omisión de la bandera [PT] en este caso causará que el Alias sea +ignorado, resultando en un error 'Archivo no encontrado'. +
+ +La bandera PT implica la bandera L:
+la reescritura se detendrá para pasar la solicitud a
+la siguiente fase de procesamiento.
Tenga en cuenta que la bandera PT está implÃcita en contextos per-directorio
+como secciones
+.htaccess. La única forma de evitar eso
+es reescribir a -.
+Cuando la URI de reemplazo contiene una cadena de consulta, el comportamiento predeterminado
+de
Considere la siguiente regla:
+ +Con la bandera [QSA], una solicitud para /pages/123?one=two será
+mapeada a /page.php?page=123&one=two. Sin la bandera [QSA],
+esa misma solicitud será mapeada a
+/page.php?page=123 - es decir, la cadena de consulta existente
+será descartada.
+
+Cuando la URI solicitada contiene una cadena de consulta, y la URI destino no
+la contiene, el comportamiento predeterminado de
Esta bandera está disponible en la versión 2.4.0 y posterior.
+ ++Usar [QSD] y [QSA] juntos resultará en que [QSD] tenga precedencia. +
+ +
+Si la URI destino tiene una cadena de consulta, se observará el comportamiento predeterminado
+- es decir, la cadena de consulta original será descartada y
+reemplazada con la cadena de consulta en la URI destino de la RewriteRule.
+
+Por defecto, el primer signo de interrogación (el más a la izquierda) en la sustitución
+delimita la ruta de la cadena de consulta. Usar la bandera [QSL] indica a
+
+Esto es útil cuando se mapea a archivos que tienen signos de interrogación literales en +sus nombres de archivo. Si no se usa cadena de consulta en la sustitución, +se puede añadir un signo de interrogación en combinación con esta bandera.
+ +Esta bandera está disponible en la versión 2.4.19 y posterior.
+ +
+El uso de la bandera [R] causa que se emita una redirección HTTP al navegador.
+Si se especifica una URL completamente cualificada (es decir, incluyendo
+http://servername/) entonces se emitirá una redirección a esa
+ubicación. De lo contrario, se usará el protocolo actual, nombre del servidor, y número de puerto
+para generar la URL enviada con la redirección.
+
+Se puede especificar cualquier código de estado de respuesta HTTP válido,
+usando la sintaxis [R=305], con un código de estado 302 siendo usado por
+defecto si no se especifica ninguno. El código de estado especificado no necesita
+necesariamente ser un código de estado de redirección (3xx). Sin embargo,
+si un código de estado está fuera del rango de redirección (300-399) entonces la
+cadena de sustitución se descarta por completo, y la reescritura se detiene como si
+se usara L.
Además de los códigos de estado de respuesta, también puede especificar estados de
+redirección usando sus nombres simbólicos: temp (predeterminado),
+permanent, o seeother.
+Casi siempre querrá usar [R] junto con [L] (es decir,
+usar [R,L]) porque por sà sola, la bandera [R] antepone
+http://thishost[:thisport] a la URI, pero luego pasa esto
+a la siguiente regla en el conjunto de reglas, lo que a menudo puede resultar en advertencias de 'URI
+inválida en solicitud'.
+
Nota: httpd solo soporta códigos de estado que están incluidos en la especificación +HTTP. Usar un código de estado no reconocido resultará en un error 500 y +un mensaje en el log de errores.
+ +La bandera [S] se usa para omitir reglas que no desea ejecutar. La
+sintaxis de la bandera skip es [S=N], donde N indica
+el número de reglas a omitir (siempre que la goto en su conjunto de reglas de reescritura. En el siguiente
+ejemplo, solo queremos ejecutar la
Esta técnica es útil porque una RewriteCond se aplique
+a varias RewriteRules, una técnica posible es negar
+esas condiciones y añadir una RewriteRule con una bandera [Skip]. Puede
+usar esto para hacer construcciones pseudo if-then-else: La última regla de
+la cláusula then se convierte en skip=N, donde N es el
+número de reglas en la cláusula else:
Probablemente sea más fácil lograr este tipo de configuración usando
+las directivas
Establece el tipo MIME con el que se enviará la respuesta
+resultante. Esto tiene el mismo efecto que la directiva
Por ejemplo, podrÃa usar la siguiente técnica para servir código fuente Perl +como texto plano, si se solicita de una manera particular:
+ +O, quizás, si tiene una cámara que produce imágenes jpeg sin +extensiones de archivo, podrÃa forzar que esas imágenes sean servidas con el +tipo MIME correcto por virtud de sus nombres de archivo:
+ +Por favor tenga en cuenta que este es un ejemplo trivial, y podrÃa hacerse mejor
+usando
+Si se usa en contexto per-directorio, use solo - (guión)
+como la sustitución para toda la ronda de procesamiento de L puede ser útil en este contexto para terminar la
+ronda actual de procesamiento de
Establecer esta bandera es necesario para permitir que una reescritura continúe si la + solicitud HTTP que se está reescribiendo tiene un signo de interrogación codificado, '%3f', y el + resultado reescrito tiene un '?' en la sustitución. Esto protege contra una URL + maliciosa que aproveche una captura y re-sustitución del signo de interrogación + codificado.
+Establecer esta bandera es necesario en sustituciones de ámbito de servidor + que comienzan con una variable o referencia inversa y se resuelven a una ruta del sistema de archivos. + Estas sustituciones no se prefijan con la raÃz del documento. + Esto protege contra una URL maliciosa que cause que la sustitución expandida se + mapee a una ubicación inesperada del sistema de archivos.
+ +Establecer esta bandera previene la fusión de múltiples barras iniciales, + como se usa en las rutas UNC de Windows. La bandera no es necesaria cuando la + sustitución de las reglas comienza con múltiples barras literales.
+ +ãã®ããã¥ã¡ã³ãã§ã¯ã
åãã©ã° (ããã¤ãã®ä¾å¤ãé¤ã) ã«ã¯ CO ã®ãããªçãå½¢å¼ã¨ã
+cookie ã®ãããªé·ãå½¢å¼ãããã¾ããçãå½¢å¼ã使ç¨ããã®ã
+æãä¸è¬çã§ãããåãã©ã°ã®æ©è½ãè¦ããããã«é·ãå½¢å¼ã«æ
£ãããã¨ã
+ãå§ããã¾ããä¸é¨ã®ãã©ã°ã¯ 1 ã¤ä»¥ä¸ã®å¼æ°ãåãã¾ãããã©ã°ã¯
+大æåå°æåãåºå¥ãã¾ããã
ã¡ã¿ãã¼ã¿ã夿´ãããã©ã° (T=ãH=ãE=) ã¯ããã£ã¬ã¯ããªåä½ããã³ +htaccess ã³ã³ããã¹ãã§ãåãæ¸ãæãå¦çã©ã¦ã³ãä¸ã« ('-' 以å¤ã®) +ç½®æãè¡ãããå ´åã广ãããã¾ããã
+ +ããã§ã¯ãåãã©ã°ã¨ä½¿ç¨ä¾ãç´¹ä»ãã¾ãã
+[B] ãã©ã°ã¯ã夿ãé©ç¨ããåã«éè±æ°åæåãã¨ã¹ã±ã¼ããããã
+
ãµã¼ã夿°ã®åæ§ã®ã¨ã¹ã±ã¼ãã«ã¤ãã¦ã¯ã"escape" + ãããã³ã°é¢æ°ãåç §ãã¦ãã ãã
+ +æ¤ç´¢èªã 'x & y/z' ã®å ´åããã©ã¦ã¶ã¯ããã
+'x%20%26%20y%2Fz' ã¨ãã¦ã¨ã³ã³ã¼ããããªã¯ã¨ã¹ã㯠'search/x%20%26%20y%2Fz'
+ã«ãªãã¾ããB ãã©ã°ããªãå ´åããã®æ¸ãæãã«ã¼ã«ã¯ 'search.php?term=x & y/z'
+ã«ãããã³ã°ããã¾ãããããã¯æå¹ãª URL ã§ã¯ãªãããã
+search.php?term=x%20&y%2Fz= ã¨ãã¦ã¨ã³ã³ã¼ãããã
+æå³ããçµæã«ãªãã¾ããã
åãã«ã¼ã«ã« B ãã©ã°ãè¨å®ããã¨ããã©ã¡ã¼ã¿ã¯åºå URL ã«æ¸¡ãããåã«
+åã¨ã³ã³ã¼ããããæ£ãããããã³ã°
+/search.php?term=x%20%26%20y%2Fz ã«ãªãã¾ãã
ãã®ç¹å®ã®ä¾ãåä½ãããã«ã¯ãOn ã«
+è¨å®ããå¿
è¦ãããå ´åããããã¨ã«æ³¨æãã¦ãã ãããhttpd 㯠URL å
ã®
+ã¨ã³ã³ã¼ããããã¹ã©ãã·ã¥ã許å¯ãããè¦ã¤ããå ´å㯠404 ãè¿ãã¾ãã
ãã®ã¨ã¹ã±ã¼ãã¯ç¹ã«ãããã·ã®ç¶æ³ã§å¿ è¦ã§ããããã¯ã¨ã³ãã +ã¢ã³ã¨ã¹ã±ã¼ãããã URL ãåãåãã¨å£ããå¯è½æ§ãããããã§ãã
+ +ãã®ãã©ã°ã®ä»£æ¿ã¨ãã¦ã
2.4.26 以éã§ã¯ãã¨ã¹ã±ã¼ãããæåãç¹å®ã®æåã«éå®ã§ãã¾ã:
+[B=#?;]ãæ³¨: ã¹ãã¼ã¹æåã¯ã¨ã¹ã±ã¼ãããæåãªã¹ãã«
+å«ãããã¨ãã§ãã¾ããã
ãã®æ¹æ³ã§ã¨ã¹ã±ã¼ããããæåãå¶éããã«ã¯ã#flag_bne + ããã³ #flag_bctls ãåç §ãã¦ãã ãã
+[BNP] ãã©ã°ã¯ãããã¯ãªãã¡ã¬ã³ã¹å
ã®ã¹ãã¼ã¹æåã '+' ã§ã¯ãªã
+%20 ã«ã¨ã¹ã±ã¼ããããã
ãã®ãã©ã°ã¯ãã¼ã¸ã§ã³ 2.4.26 以éã§ä½¿ç¨å¯è½ã§ãã
+[BCTLS] ãã©ã°ã¯ [B] ãã©ã°ã«ä¼¼ã¦ãã¾ãããå¶å¾¡æåã¨ã¹ãã¼ã¹æåã®ã¿ã +ã¨ã¹ã±ã¼ããã¾ããããã¯ãã¨ã³ã³ã¼ããããã«ã¯ã¨ãªæååã«ã³ãã¼ããã +å ´åã«æå¦ãããæåã»ããã¨åãã§ãã
+ +ãã®ãã©ã°ã¯ãã¼ã¸ã§ã³ 2.5.1 以éã§ä½¿ç¨å¯è½ã§ãã
+ +[BNE=...] å ã®æåãªã¹ãã¯ã[B] ã¾ã㯠[BCTLS] ãã©ã°ã®æåã«å¯¾ãã +é¤å¤ã¨ãã¦æ±ããã¾ãããªã¹ããããæåã¯ã¨ã¹ã±ã¼ãããã¾ããã
+ +ãã®ãã©ã°ã¯ãã¼ã¸ã§ã³ 2.5.1 以éã§ä½¿ç¨å¯è½ã§ãã
+[C] ã¾ã㯠[chain] ãã©ã°ã¯ã
[CO] ã¾ã㯠[cookie] ãã©ã°ã¯ãç¹å®ã®
+
ãã©ã°ã®å®å ¨ãªæ§æ (ãã¹ã¦ã®å±æ§ãå«ã) ã¯ä»¥ä¸ã®éãã§ã:
+ +cookie ãã£ã¼ã«ãã®ããããã«ãªãã©ã«ã® ':' æåãå¿ è¦ãªå ´åã +ä»£æ¿æ§æãå©ç¨å¯è½ã§ããä»£æ¿æ§æã«ãªããã¤ã³ããã«ã¯ãcookie ã® +"Name" ã®åã« ';' æåãä»ãããã£ã¼ã«ãã»ãã¬ã¼ã¿ã ';' ã¨ã㦠+æå®ãã¦ãã ããã
+ +cookie ãè¨å®ãããããã«ã¯ãååãå¤ãããã³ãã¡ã¤ã³ã宣è¨ãã +å¿ è¦ãããã¾ãã
+ +www.example.com ã®ãããª
+ãã¹ãåãã.example.com ã®ãããªãã¡ã¤ã³ã§ãã
+ãããã§åºåãããå°ãªãã¨ã 2 ã¤ã®ãã¼ããå¿
è¦ã§ããã¤ã¾ãã
+åã« .com ã .net ã«ã¯ã§ãã¾ããã
+ãã®ãã㪠cookie 㯠cookie ã»ãã¥ãªãã£ã¢ãã«ã§ç¦æ¢ããã¦ãã¾ãããªãã·ã§ã³ã§ä»¥ä¸ã®å¤ãè¨å®ã§ãã¾ã:
+ +/customers/ ã /files/download/ ãªã©ã§ãã/ (ã¦ã§ããµã¤ãå
¨ä½) ã«è¨å®ããã¾ããsecureãtrueãã¾ã㯠1 ã«
+è¨å®ããã¨ãcookie ã¯ã»ãã¥ã¢ãª (https) æ¥ç¶çµç±ã§ã®ã¿éä¿¡ã許å¯ããã¾ããHttpOnlyãtrueãã¾ã㯠1 ã«
+è¨å®ããã¨ãcookie ã« HttpOnly ãã©ã°ãè¨å®ããã
+ãã®æ©è½ããµãã¼ããããã©ã¦ã¶ã§ã¯ JavaScript ã³ã¼ããã cookie ã«
+ã¢ã¯ã»ã¹ã§ããªããªãã¾ããfalse ã¾ã㯠0 以å¤ã®å¤ã«è¨å®ããã¨ã
+SameSite 屿§ãæå®ãããå¤ã«è¨å®ããã¾ããå
¸åçãªå¤ã¯
+NoneãLaxãStrict ã§ãã
+2.5.1 以éã§ä½¿ç¨å¯è½ã§ãã以ä¸ã®ä¾ãèãã¦ã¿ã¾ããã:
+ +ãã®ä¾ã§ã¯ãã«ã¼ã«ã¯ãªã¯ã¨ã¹ããæ¸ãæãã¾ããã
+æ¸ãæãã¿ã¼ã²ããã® "-" 㯠.example.com
+ãã¡ã¤ã³å
ã®ãã¹ã¦ã®ãã¹ãã«å¯¾ãã¦æå¹ã§ããæå¹æé㯠1440 å
+(24 æé) ã§ããã¹ã¦ã® URI ã«å¯¾ãã¦è¿ããã¾ãã
DPI ãã©ã°ã¯ãæ¸ãæãã URI ã® PATH_INFO é¨åãç ´æ£ãã¾ãã
+ãã®ãã©ã°ã¯ãã¼ã¸ã§ã³ 2.2.12 以éã§ä½¿ç¨å¯è½ã§ãã
+ãã£ã¬ã¯ããªåä½ã®ã³ã³ããã¹ãã§ã¯ãå
+
ç¾å¨ã® URI ã¯ãã¯ã©ã¤ã¢ã³ããè¦æ±ããåæ URIã
+
䏿¹ãåã«ã¼ã«ã®åã« URI ã«è¿½å ããã PATH_INFO ã¯ããã®
+
åã®ãããã³ã°ã®çµæã¨ãã¦ã®ãã®ãªã¯ã¨ã¹ãã® PATH_INFO ãä¸è¦ãª
+ç½®æã«ã¯ãã®ãã©ã°ã使ç¨ãã¦ãã ããããã®ãã©ã°ã¯ããã®
+
[E] ã¾ã㯠[env] ãã©ã°ã使ç¨ããã¨ãç°å¢å¤æ°ã®å¤ãè¨å®ã§ãã¾ãã +ä¸é¨ã®ç°å¢å¤æ°ã¯ã«ã¼ã«ã®å®è¡å¾ã«è¨å®ãããå¯è½æ§ããããè¨å®ããå¤ã +䏿¸ãããããã¨ããããã¨ã«æ³¨æãã¦ãã ãããç°å¢å¤æ°ã®åä½ã®è©³ç´°ã¯ +ç°å¢å¤æ°ããã¥ã¡ã³ããåç §ãã¦ãã ããã
+ +ãã®ãã©ã°ã®å®å ¨ãªæ§æã¯ä»¥ä¸ã®éãã§ã:
+ +VAL ã«ã¯å±éãããããã¯ãªãã¡ã¬ã³ã¹ ($N ã
+%N) ãå«ãããã¨ãã§ãã¾ãã
çãå½¢å¼
+ +ã使ç¨ããã¨ãVAR ã¨ããååã®ç°å¢å¤æ°ã空ã®å¤ã«
+è¨å®ã§ãã¾ãã
以ä¸ã®å½¢å¼
+ +ã§ã以åã«è¨å®ããã VAR ã¨ããååã®ç°å¢å¤æ°ã
+åé¤ã§ãã¾ãã
ç°å¢å¤æ°ã¯ CGI ããã°ã©ã ãä»ã® RewriteRule ãã£ã¬ã¯ãã£ãã +CustomLog ãã£ã¬ã¯ãã£ããªã©ããã¾ãã¾ãªã³ã³ããã¹ãã§ä½¿ç¨ã§ãã¾ãã
+ +以ä¸ã®ä¾ã¯ããªã¯ã¨ã¹ãããã URI ãç»åãã¡ã¤ã«ã®å ´åã'image' ã¨ãã +ç°å¢å¤æ°ãå¤ '1' ã«è¨å®ãã¾ãããã®å¾ããã®ç°å¢å¤æ°ã使ç¨ãã¦ã +ãããã®ãªã¯ã¨ã¹ããã¢ã¯ã»ã¹ãã°ããé¤å¤ãã¾ãã
+ +ãã®å¹æã¯
[END] ãã©ã°ã使ç¨ããã¨ã([L] ã®ããã«) ç¾å¨ã®æ¸ãæãå¦çã©ã¦ã³ãã +çµäºããã ãã§ãªãããã£ã¬ã¯ããªåä½ (htaccess) ã³ã³ããã¹ãã§ã® +以éã®æ¸ãæãå¦çã鲿¢ãã¾ãã
+ +ããã¯å¤é¨ãªãã¤ã¬ã¯ãã«ããæ°ãããªã¯ã¨ã¹ãã«ã¯é©ç¨ããã¾ããã
+[F] ãã©ã°ã使ç¨ããã¨ããµã¼ãã¯ã¯ã©ã¤ã¢ã³ãã« 403 Forbidden
+ã¹ãã¼ã¿ã¹ã³ã¼ããè¿ãã¾ããåãåä½ã¯
+
以ä¸ã®ã«ã¼ã«ã¯ããµã¼ããã .exe ãã¡ã¤ã«ã®ãã¦ã³ãã¼ãã
+ç¦æ¢ãã¾ãã
ãã®ä¾ã¯æ¸ãæãã¿ã¼ã²ããã« "-" æ§æã使ç¨ãã¦ããããªã¯ã¨ã¹ã URI 㯠+夿´ããã¾ããããªã¯ã¨ã¹ããç¦æ¢ããã®ã§ããã°ãå¥ã® URI ã«æ¸ãæãã +çç±ã¯ããã¾ããã
+ +[F] ã使ç¨ãã㨠[L] ãæé»çã«å«ã¾ãã¾ã - ã¤ã¾ããã¬ã¹ãã³ã¹ã +ç´ã¡ã«è¿ãããå¾ç¶ã®ã«ã¼ã«ã¯è©ä¾¡ããã¾ããã
+ +[G] ãã©ã°ã¯ããµã¼ãã«ã¬ã¹ãã³ã¹ã¨ã㦠410 Gone ã¹ãã¼ã¿ã¹ã +è¿ãããå¼·å¶ãã¾ããããã¯ããªã½ã¼ã¹ããã¤ã¦å©ç¨å¯è½ã§ãã£ããã +ãã¯ãå©ç¨ã§ããªããã¨ã示ãã¾ãã
+ +[F] ãã©ã°ã¨åæ§ã«ã[G] ãã©ã°ã使ç¨ããå ´åã¯é常æ¸ãæãã¿ã¼ã²ããã« +"-" æ§æã使ç¨ãã¾ã:
+ +[G] ã使ç¨ãã㨠[L] ãæé»çã«å«ã¾ãã¾ã - ã¤ã¾ããã¬ã¹ãã³ã¹ã +ç´ã¡ã«è¿ãããå¾ç¶ã®ã«ã¼ã«ã¯è©ä¾¡ããã¾ããã
+ +çµæã®ãªã¯ã¨ã¹ããæå®ããããã³ãã©ã§å¦çããããå¼·å¶ãã¾ãã +ä¾ãã°ããã¡ã¤ã«æ¡å¼µåã®ãªããã¹ã¦ã®ãã¡ã¤ã«ã php ãã³ãã©ã§ +è§£æãããããã«ä½¿ç¨ã§ãã¾ã:
+ +
+ä¸è¨ã®æ£è¦è¡¨ç¾ - !\. - ã¯ããªãã©ã«ã® .
+æåãå«ã¾ãªããã¹ã¦ã®ãªã¯ã¨ã¹ãã«ããããã¾ãã
+
ããã¯æ¡ä»¶ã«åºã¥ãã¦ãã³ãã©ãå¼·å¶ããããã«ã使ç¨ã§ãã¾ãã
+ä¾ãã°ã以ä¸ã®ã¹ããããããµã¼ãåä½ã®ã³ã³ããã¹ãã§ä½¿ç¨ããã¨ã
+.php ãã¡ã¤ã«ã .phps æ¡å¼µåã§ãªã¯ã¨ã¹ã
+ãããå ´åã« mod_php ã«ãã£ã¦è¡¨ç¤ºããã¾ã:
ä¸è¨ã®æ£è¦è¡¨ç¾ - ^(/source/.+\.php)s$ - ã¯
+/source/ ã§å§ã¾ãã1 æå以ä¸ã®ä»»æã®æåãç¶ãã
+ãªãã©ã«ã® .phps ã§çµãããªã¯ã¨ã¹ãã«ããããã¾ãã
+ããã¯ãªãã¡ã¬ã³ã¹ $1 ã¯æ£è¦è¡¨ç¾ã®æ¬å¼§å
ã®ãã£ããã£ããããããã
+åç
§ãã¾ãã
[L] ãã©ã°ã¯ last
+ã³ãã³ãã C ã® break ã³ãã³ãã«ç¸å½ãã¾ãã
+ãã®ãã©ã°ã¯ãå¾ç¶ã®ã«ã¼ã«ãèæ
®ããã«ç¾å¨ã®ã«ã¼ã«ãç´ã¡ã«é©ç¨
+ãã¹ããã¨ã示ãããã«ä½¿ç¨ãã¾ãã
.htaccess ãã¡ã¤ã«ã¾ãã¯
+.htaccess ãã¡ã¤ã«ã¾ãã¯
+
ãããã£ã¦ããããã®ã³ã³ããã¹ãã§
代æ¿ãã©ã° [END] ã¯ãç¾å¨ã®æ¸ãæãå¦çã©ã¦ã³ããçµäºããã ãã§ãªãã +ãã£ã¬ã¯ããªåä½ (htaccess) ã³ã³ããã¹ãã§ã®ä»¥éã®æ¸ãæãå¦çã +鲿¢ããããã«ä½¿ç¨ã§ãã¾ããããã¯å¤é¨ãªãã¤ã¬ã¯ãã«ããæ°ãã +ãªã¯ã¨ã¹ãã«ã¯é©ç¨ããã¾ããã
+ +ããã«ç¤ºãä¾ã¯ããã¹ã¦ã®ãªã¯ã¨ã¹ãã index.php ã«
+æ¸ãæããå
ã®ãªã¯ã¨ã¹ãã index.php ã¸ã®ã¯ã¨ãªæåå
+弿°ã¨ãã¦æ¸¡ãã¾ãããindex.php ã«å¯¾ãããã®ã§ããå ´åã¯
+
+[N] ãã©ã°ã¯ãããã¾ã§ã®ã«ã¼ã«ã»ããã®çµæãåºçºç¹ã¨ãã¦ãã«ã¼ã«ã»ããã +æåããããç´ãã¾ããã«ã¼ããå¼ãèµ·ããå¯è½æ§ãããããã +極ãã¦æ éã«ä½¿ç¨ãã¦ãã ããã +
++[Next] ãã©ã°ã¯ãä¾ãã°ãªã¯ã¨ã¹ãå ã®ç¹å®ã®æååãæåãç¹°ãè¿ã +ç½®æãããå ´åã«ä½¿ç¨ã§ãã¾ããããã«ç¤ºãä¾ã¯ããªã¯ã¨ã¹ãå ã®ãã¹ã¦ã® +A ã B ã«ç½®æããç½®æãã¹ã A ããªããªãã¾ã§ç¶ãã¾ãã +
+ãã㯠while ã«ã¼ãã¨èãããã¨ãã§ãã¾ã: ãã®ãã¿ã¼ã³ã
+ã¾ã ãããããé (ã¤ã¾ããURI ã«ã¾ã A ãå«ã¾ãã¦ããé)ã
+ãã®ç½®æãå®è¡ãã¾ã (ã¤ã¾ããA ã B ã«
+ç½®æãã¾ã)ã
2.5.0 以éã§ã¯ãæå³ããªãã«ã¼ããé²ãããã10,000 åã®å復å¾ã« +ã¨ã©ã¼ãè¿ãã¾ããN ãã©ã°ã«è¿½å ãããã¨ã§ã代æ¿ã®æå¤§å復忰ã +æå®ã§ãã¾ãã
+[NC] ãã©ã°ã使ç¨ããã¨ã
以ä¸ã®ä¾ã§ã¯ãç»åãã¡ã¤ã«ã®ãªã¯ã¨ã¹ãã¯å°ç¨ã®ç»åãµã¼ãã«
+ãããã·ããã¾ãããããã¯å¤§æåå°æåãåºå¥ããªããããä¾ãã°
+.jpg 㨠.JPG ãã¡ã¤ã«ã®ä¸¡æ¹ãåãå
¥ãããã¾ãã
ããã©ã«ãã§ã¯ã
A-Zãa-zã
+ 0-9$-_.+!*'(),:;@&=/~ä¾ãã°ã# 㯠%23 ã«ã? ã¯
+%3F ã«å¤æããã¾ãã% æåãã¨ã¹ã±ã¼ããã
+(%25 ã«)ãããã«ããç½®æã«æ¢ã«åå¨ãããã¼ã»ã³ãã¨ã³ã³ã¼ãã£ã³ã°ã
+äºéã¨ã³ã³ã¼ãããããã¨ãæå³ãã¾ãã
[NE] ãã©ã°ã使ç¨ããã¨ããã®ã¨ã¹ã±ã¼ãã鲿¢ããã# ã
+? ãªã©ã®æåããã®ã¾ã¾ãªãã¤ã¬ã¯ã URL ã«æ¸¡ããã¾ãã
+ä¸è¨ã®ä¾ã¯ /anchor/xyz ã /bigpage.html#xyz ã«
+ãªãã¤ã¬ã¯ããã¾ãã[NE] ãçç¥ããã¨ã# ã 16 é²ã³ã¼ãç¸å½ã®
+%23 ã«å¤æããã404 Not Found ã¨ã©ã¼ãçºçãã¾ãã
+
[NS] ãã©ã°ã使ç¨ããã¨ããµããªã¯ã¨ã¹ãã§ã®ã«ã¼ã«ã®ä½¿ç¨ã
+鲿¢ããã¾ããä¾ãã°ãSSI (Server Side Include) ã使ç¨ãã¦
+ã¤ã³ã¯ã«ã¼ãããããã¼ã¸ã¯ãµããªã¯ã¨ã¹ãã§ããããããã®ãµããªã¯ã¨ã¹ãã§
+æ¸ãæããè¡ãããªãããã«ãããå ´åãããã¾ããã¾ãã
+index.html ãã¡ã¤ã«ãªã©) ã®æ
å ±ã調ã¹ããã¨ããå ´åã
+å
é¨ãµããªã¯ã¨ã¹ãã§ããããã®ãããªãµããªã¯ã¨ã¹ãã§ã®æ¸ãæãã
+é¿ãããå ´åãå¤ãããã¾ãããµããªã¯ã¨ã¹ãã§ã¯ãã«ã¼ã«ã®å®å
¨ãªã»ããã
+é©ç¨ãããã¨æç¨ã§ãªãå ´åãã¨ã©ã¼ãå¼ãèµ·ããå ´åãããã¾ãã
+åé¡ã®ããã«ã¼ã«ãé¤å¤ããããã«ãã®ãã©ã°ã使ç¨ãã¦ãã ããã
ãã®ã«ã¼ã«ã使ç¨ãããã©ãããæ±ºå®ããã«ã¯: CGI ã¹ã¯ãªããã§ +URL ããã¬ãã£ãã¯ã¹ããCGI ã¹ã¯ãªããã§å¦çãããããã«ãã¦ããå ´åã +ãµããªã¯ã¨ã¹ãã§åé¡ (ã¾ãã¯å¤§ããªãªã¼ãã¼ããã) ãçºçãã +å¯è½æ§ãããã¾ãããã®ãããªå ´åã¯ãã®ãã©ã°ã使ç¨ãã¦ãã ããã
+ ++HTML ãã¼ã¸ã®ä¸é¨ã¨ãã¦èªã¿è¾¼ã¾ããç»åãJavaScript ãã¡ã¤ã«ã +CSS ãã¡ã¤ã«ã¯ãµããªã¯ã¨ã¹ãã§ã¯ããã¾ãã - ãã©ã¦ã¶ããããã +å¥ã® HTTP ãªã¯ã¨ã¹ãã¨ãã¦ãªã¯ã¨ã¹ããã¾ãã +
+[P] ãã©ã°ã使ç¨ããã¨ããªã¯ã¨ã¹ãã¯
[P] ãã©ã°ã®ä½¿ç¨ã¯ [L] ãæé»çã«å«ã¿ã¾ã - ã¤ã¾ãããªã¯ã¨ã¹ã㯠+ç´ã¡ã«ãããã·ã«éãããå¾ç¶ã®ã«ã¼ã«ã¯èæ ®ããã¾ããã
+ +
+ç½®ææååã http://hostname ã§å§ã¾ã) ã§ãããã¨ã
+確èªããå¿
è¦ãããã¾ããããã§ãªãå ´åããããã·ã¢ã¸ã¥ã¼ã«ããã¨ã©ã¼ã
+çºçãã¾ãããã®ãã©ã°ã¯ã
ã«ã¼ã«ã®ã¿ã¼ã²ãã URL ãæ§ç¯ããéã«ã¯ããµã¼ãããããã·ã¨ã㦠+åä½ãã URL ã®ã»ããã«å¯¾ããã¯ã©ã¤ã¢ã³ãã®å½±é¿ã®ã»ãã¥ãªãã£ä¸ã® +å½±é¿ãèæ ®ãã¦ãã ãããURL ã®ã¹ãã¼ã ã¨ãã¹ãåã®é¨åãåºå®ããã¦ãããã +ã¯ã©ã¤ã¢ã³ãã«é度ã®å½±é¿ãä¸ããªããã¨ã確èªãã¦ãã ããã
+ãã®ãã©ã°ã使ç¨ããã¨ãããã©ã«ãã¯ã¼ã«ã¼ã使ç¨ãããããã
+æ°¸ç¶çãªæ¥ç¶ãå¦çãããªã
æ°¸ç¶çãªæ¥ç¶ã使ç¨ããã«ã¯ãå°ãªãã¨ãã¿ã¼ã²ãã URL ã®ã¹ãã¼ã ã¨
+ãã¹ãé¨åã«å¯¾ãã
注: ãã®ãã©ã°ã使ç¨ããã«ã¯
+RewriteRule ã®ã¿ã¼ã²ãã (ç½®ææåå) ã¯ããã©ã«ãã§ã¯ãã¡ã¤ã«ãã¹ã¨
+æ³å®ããã¾ãã[PT] ãã©ã°ã使ç¨ããã¨ã代ããã« URI ã¨ãã¦æ±ããã¾ãã
+ã¤ã¾ãã[PT] ãã©ã°ã使ç¨ããã¨ã
+ä¾ãã°ã/icons ã«å¯¾ãã
+ãã®å ´åã« [PT] ãã©ã°ãçç¥ããã¨ãAlias ãç¡è¦ããã +'File not found' ã¨ã©ã¼ãè¿ããã¾ãã +
+ +PT ãã©ã°ã¯ L ãã©ã°ãæé»çã«å«ã¿ã¾ã:
+ãªã¯ã¨ã¹ããå¦çã®æ¬¡ã®ãã§ã¼ãºã«æ¸¡ãããã«æ¸ãæãã忢ããã¾ãã
PT ãã©ã°ã¯ã
+.htaccess ãã¡ã¤ã«ãªã©ã®ãã£ã¬ã¯ããªåä½ã®ã³ã³ããã¹ãã§ã¯
+æé»çã«å«ã¾ãããã¨ã«æ³¨æãã¦ãã ããããããåé¿ããå¯ä¸ã®æ¹æ³ã¯ã
+- ã«æ¸ãæãããã¨ã§ãã
+ç½®æ URI ã«ã¯ã¨ãªæååãå«ã¾ããå ´åã
+
以ä¸ã®ã«ã¼ã«ãèãã¦ã¿ã¾ããã:
+ +[QSA] ãã©ã°ãããå ´åã/pages/123?one=two ã¸ã®ãªã¯ã¨ã¹ãã¯
+/page.php?page=123&one=two ã«ãããã³ã°ããã¾ãã
+[QSA] ãã©ã°ããªãå ´åãåããªã¯ã¨ã¹ã㯠/page.php?page=123
+ã«ãããã³ã°ããã¾ã - ã¤ã¾ããæ¢åã®ã¯ã¨ãªæååã¯ç ´æ£ããã¾ãã
+
+ãªã¯ã¨ã¹ãããã URI ã«ã¯ã¨ãªæååãå«ã¾ããã¿ã¼ã²ãã URI ã«å«ã¾ããªã
+å ´åã
ãã®ãã©ã°ã¯ãã¼ã¸ã§ã³ 2.4.0 以éã§ä½¿ç¨å¯è½ã§ãã
+ ++[QSD] 㨠[QSA] ãä¸ç·ã«ä½¿ç¨ããã¨ã[QSD] ãåªå ããã¾ãã +
+ +
+ã¿ã¼ã²ãã URI ã«ã¯ã¨ãªæååãããå ´åã¯ãããã©ã«ãã®åä½ã
+観å¯ããã¾ã - ã¤ã¾ããå
ã®ã¯ã¨ãªæååã¯ç ´æ£ããã
+RewriteRule ã¿ã¼ã²ãã URI ã®ã¯ã¨ãªæååã«
+ç½®ãæãããã¾ãã
+
+ããã©ã«ãã§ã¯ãç½®æå
ã®æåã® (左端ã®) çå符ããã¹ã¨ã¯ã¨ãªæååã
+åºåãã¾ãã[QSL] ãã©ã°ã使ç¨ããã¨ã代ããã«æå¾ã® (å³ç«¯ã®) çå符ã§
+2 ã¤ã®ã³ã³ãã¼ãã³ããåå²ãããã
+
+ããã¯ããã¡ã¤ã«åã«ãªãã©ã«ã®çå符ãå«ã¾ãããã¡ã¤ã«ã¸ã®ãããã³ã°æã« +便å©ã§ããç½®æã§ã¯ã¨ãªæååã使ç¨ãããªãå ´åããã®ãã©ã°ã¨çµã¿åãã㦠+çå符ã追å ã§ãã¾ãã
+ +ãã®ãã©ã°ã¯ãã¼ã¸ã§ã³ 2.4.19 以éã§ä½¿ç¨å¯è½ã§ãã
+ +
+[R] ãã©ã°ã使ç¨ããã¨ããã©ã¦ã¶ã« HTTP ãªãã¤ã¬ã¯ããçºè¡ããã¾ãã
+å®å
¨ä¿®é£¾ URL (ã¤ã¾ã http://servername/ ãå«ã) ãæå®ããã
+å ´åããã®å ´æã¸ã®ãªãã¤ã¬ã¯ããçºè¡ããã¾ãããã以å¤ã®å ´åã¯ã
+ç¾å¨ã®ãããã³ã«ããµã¼ãåããã¼ãçªå·ããªãã¤ã¬ã¯ãã§éä¿¡ããã
+URL ã®çæã«ä½¿ç¨ããã¾ãã
+
+[R=305] ã®ãããªæ§æã使ç¨ãã¦ãä»»æã®æå¹ãª HTTP ã¬ã¹ãã³ã¹ã¹ãã¼ã¿ã¹
+ã³ã¼ããæå®ã§ãã¾ããæå®ãããªãå ´åãããã©ã«ãã® 302 ã¹ãã¼ã¿ã¹ã³ã¼ãã
+使ç¨ããã¾ããæå®ãããã¹ãã¼ã¿ã¹ã³ã¼ãã¯å¿
ããããªãã¤ã¬ã¯ã (3xx)
+ã¹ãã¼ã¿ã¹ã³ã¼ãã§ããå¿
è¦ã¯ããã¾ããããã ãããªãã¤ã¬ã¯ãç¯å² (300-399)
+å¤ã®ã¹ãã¼ã¿ã¹ã³ã¼ãã®å ´åãç½®ææååã¯å®å
¨ã«ç ´æ£ãããL
+ã使ç¨ããããã®ããã«æ¸ãæãã忢ããã¾ãã
ã¬ã¹ãã³ã¹ã¹ãã¼ã¿ã¹ã³ã¼ãã«å ãã¦ãã·ã³ããªãã¯åã使ç¨ãã¦
+ãªãã¤ã¬ã¯ãã¹ãã¼ã¿ã¹ãæå®ãããã¨ãã§ãã¾ã: temp
+(ããã©ã«ã)ãpermanentãã¾ã㯠seeotherã
+[R] ãã©ã°ã¯ã»ã¼å¸¸ã« [L] ã¨çµã¿åããã¦ä½¿ç¨ãã¾ã (ã¤ã¾ã [R,L])ã
+[R] ãã©ã°åç¬ã§ã¯ãURI ã« http://thishost[:thisport] ã
+åç½®ãã¾ããããããã«ã¼ã«ã»ããã®æ¬¡ã®ã«ã¼ã«ã«æ¸¡ãããããã°ãã°
+'Invalid URI in request' è¦åãçºçãã¾ãã
+
注: httpd 㯠HTTP 仿§ã«å«ã¾ããã¹ãã¼ã¿ã¹ã³ã¼ãã®ã¿ããµãã¼ããã¾ãã +èªèãããªãã¹ãã¼ã¿ã¹ã³ã¼ãã使ç¨ããã¨ã500 ã¨ã©ã¼ã¨ã¨ã©ã¼ãã° +ã¡ãã»ã¼ã¸ãçºçãã¾ãã
+ +[S] ãã©ã°ã¯ãå®è¡ããããªãã«ã¼ã«ãã¹ãããããããã«ä½¿ç¨ããã¾ãã
+ã¹ããããã©ã°ã®æ§æã¯ [S=N] ã§ãN ã¯ã¹ããããã
+ã«ã¼ã«ã®æ°ã表ãã¾ã (goto æã¨èãããã¨ãã§ãã¾ãã以ä¸ã®ä¾ã§ã¯ããªã¯ã¨ã¹ãããã
+URI ãå®éã®ãã¡ã¤ã«ã«å¯¾å¿ããªãå ´åã«ã®ã¿
+
ãã®ãã¯ããã¯ãæç¨ãªã®ã¯ãRewriteRule ã« RewriteCond ã
+é©ç¨ãããå ´åã®ä¸ã¤ã®æ¹æ³ã¯ãæ¡ä»¶ãå¦å®ã㦠[Skip] ãã©ã°ä»ãã®
+RewriteRule ã追å ãããã¨ã§ããããã使ç¨ãã¦çä¼¼çãª
+if-then-else æ§é ã使ã§ãã¾ã: then ç¯ã®æå¾ã®ã«ã¼ã«ã
+skip=N ã¨ãªããN 㯠else ç¯ã®ã«ã¼ã«æ°ã§ã:
ãã®ç¨®ã®è¨å®ã¯ã代ããã«
çµæã®ã¬ã¹ãã³ã¹ãéä¿¡ããã MIME ã¿ã¤ããè¨å®ãã¾ãã
+ããã¯
ä¾ãã°ãç¹å®ã®æ¹æ³ã§ãªã¯ã¨ã¹ããããå ´åã« Perl ã½ã¼ã¹ã³ã¼ãã +ãã¬ã¼ã³ããã¹ãã¨ãã¦æä¾ããããã«ã以ä¸ã®ãã¯ããã¯ã使ç¨ã§ãã¾ã:
+ +ãããã¯ããã¡ã¤ã«æ¡å¼µåã®ãªã jpeg ç»åãçæããã«ã¡ã©ãããå ´åã +ãã¡ã¤ã«åã«ãã£ã¦æ£ãã MIME ã¿ã¤ãã§ç»åãæä¾ããããå¼·å¶ã§ãã¾ã:
+ +ããã¯ç°¡åãªä¾ã§ããã代ããã«
+
+ãã£ã¬ã¯ããªåä½ã®ã³ã³ããã¹ãã§ä½¿ç¨ããå ´åã¯ã
+- (ããã·ã¥) ã®ã¿ã使ç¨ãã¦ãã ãããããããªãã¨ã
+å
é¨çãªåå¦ç (L ãã©ã°ãæç¨ã§ãã
ãã®ãã©ã°ãè¨å®ããã¨ãæ¸ãæã対象㮠HTTP ãªã¯ã¨ã¹ãã« + ã¨ã³ã³ã¼ããããçå符 '%3f' ãå«ã¾ããæ¸ãæãçµæã®ç½®æã« + '?' ãããå ´åã§ãæ¸ãæããç¶è¡ã§ãã¾ããããã¯ãæªæã®ãã + URL ãã¨ã³ã³ã¼ããããçå符ã®ãã£ããã£ã¨åç½®æãå©ç¨ããã®ã + 鲿¢ãã¾ãã
+ãã®ãã©ã°ãè¨å®ããã¨ããµã¼ãã¹ã³ã¼ãã®ç½®æã夿°ã + ããã¯ãªãã¡ã¬ã³ã¹ã§å§ã¾ãããã¡ã¤ã«ã·ã¹ãã ãã¹ã«è§£æ±ºãããå ´åã« + å¿ è¦ã§ãããããã®ç½®æã«ã¯ããã¥ã¡ã³ãã«ã¼ãããã¬ãã£ãã¯ã¹ã¨ã㦠+ ä»å ããã¾ãããããã¯ãæªæã®ãã URL ãå±éãããç½®æã + äºæããªããã¡ã¤ã«ã·ã¹ãã ã®å ´æã«ãããã³ã°ãããã®ã鲿¢ãã¾ãã
+ +ãã®ãã©ã°ãè¨å®ããã¨ãWindows UNC ãã¹ã§ä½¿ç¨ãããè¤æ°ã® + å é ã¹ã©ãã·ã¥ã®ãã¼ã¸ã鲿¢ããã¾ããã«ã¼ã«ã®ç½®æããªãã©ã«ã® + è¤æ°ã¹ã©ãã·ã¥ã§å§ã¾ãå ´åããã®ãã©ã°ã¯ä¸è¦ã§ãã
+ +ì´ ë¬¸ìë
ê° íëê·¸ë (ëª ê°ì§ ìì¸ë¥¼ ì ì¸íê³ ) COì
+ê°ì ì§§ì ííì cookieì ê°ì 긴 íí를
+ê°ì§ëë¤. ì§§ì íí를 ì¬ì©íë ê²ì´ ê°ì¥ ì¼ë°ì ì´ì§ë§,
+ê° íëê·¸ê° ë¬´ìì íëì§ ê¸°ìµí기 ìí´ ê¸´ ííì
+ìµìí´ì§ë ê²ì´ ì¢ìµëë¤. ì¼ë¶ íëê·¸ë íë ì´ìì
+ì¸ì를 ì·¨í©ëë¤. íëê·¸ë ëì문ì를 구ë¶íì§ ììµëë¤.
ìì²ê³¼ ê´ë ¨ë ë©íë°ì´í°ë¥¼ ë³ê²½íë íëê·¸(T=, H=, E=)ë +ëë í ë¦¬ë³ ë° htaccess 컨í ì¤í¸ìì ëì¼í ì¬ìì± ì²ë¦¬ +ë¼ì´ë ì¤ì ('-' ì´ì¸ì) ì¹íì´ ìíë ë í¨ê³¼ê° ììµëë¤. +
+ +ì¬ê¸°ììë ì¬ì© ê°ë¥í ê° íëê·¸ì í¨ê» ì¬ì© ë°©ë²ì +ìì ê° ì ìë©ëë¤.
+[B] íëê·¸ë
ìë² ë³ìì ì ì¬í ì´ì¤ì¼ì´íì ëí´ìë + "escape" 매í í¨ì를 참조íììì¤
+ + +ê²ìì´ê° 'x & y/z'ì¸ ê²½ì° ë¸ë¼ì°ì ë ì´ë¥¼
+'x%20%26%20y%2Fz'ë¡ ì¸ì½ë©íì¬ 'search/x%20%26%20y%2Fz'
+ìì²ì ë§ëëë¤. B íëê·¸ ìì´ ì´ ì¬ìì± ê·ì¹ì
+'search.php?term=x & y/z'ë¡ ë§¤íëë©°, ì´ë ì í¨í
+URLì´ ìëë¯ë¡ search.php?term=x%20&y%2Fz=ë¡
+ì¸ì½ë©ëì´ ìëí ê²ê³¼ ë¤ë¦
ëë¤.
ëì¼í ê·ì¹ì B íë그를 ì¤ì íë©´ 매ê°ë³ìê° ì¶ë ¥ URLì
+ì ë¬ë기 ì ì ë¤ì ì¸ì½ë©ëì´
+/search.php?term=x%20%26%20y%2Fzë¡ ì¬ë°ë¥´ê²
+매íë©ëë¤.
ì´ í¹ì ìì ê° ìëíë ¤ë©´
+Onì¼ë¡ ì¤ì í´ì¼ í ìë ììµëë¤. httpdë
+URLìì ì¸ì½ë©ë ì¬ëì를 íì©íì§ ìê³ íë를 ë³´ë©´
+404를 ë°íí기 ë문ì
ëë¤.
ì´ ì´ì¤ì¼ì´íë í¹í íë¡ì ìí©ìì íìí©ëë¤. +ë°±ìëê° ì´ì¤ì¼ì´íëì§ ìì URLì ì ìë°ì¼ë©´ ì¤ë¨ë ì +ì기 ë문ì ëë¤.
+ +ì´ íëê·¸ì ëìì
2.4.26 ì´ìììë ì참조ìì ì´ì¤ì¼ì´íí í¹ì 문ì를
+ëì´íì¬ ì íí ì ììµëë¤: [B=#?;].
+ì°¸ê³ : ì´ì¤ì¼ì´íí 문ì 목ë¡ì 공백 문ì를 ì¬ì©í ì
+ìì§ë§
ì´ ë°©ìì¼ë¡ ì´ì¤ì¼ì´íëë 문ì를 ì ííë ¤ë©´ +#flag_bneì +#flag_bctls를 참조íììì¤
+[BNP] íëê·¸ë
ì´ íëê·¸ë ë²ì 2.4.26 ì´ììì ì¬ì©í ì ììµëë¤.
+[BCTLS] íëê·¸ë [B] íëê·¸ì ì ì¬íì§ë§ ì ì´ ë¬¸ìì +공백 문ìë§ ì´ì¤ì¼ì´íí©ëë¤. ì´ê²ì ì¸ì½ë©ëì§ ìì ì± +쿼리 문ìì´ë¡ ë³µì¬ë ë ê±°ë¶ëë ëì¼í 문ì ì¸í¸ì ëë¤. +
+ +ì´ íëê·¸ë ë²ì 2.5.1 ì´ììì ì¬ì©í ì ììµëë¤.
+ +[BNE=...]ì 문ì 목ë¡ì [B] ëë [BCTLS] íëê·¸ì +문ìì ëí ì ì¸ë¡ ì²ë¦¬ë©ëë¤. ëì´ë 문ìë ì´ì¤ì¼ì´íëì§ +ììµëë¤. +
+ +ì´ íëê·¸ë ë²ì 2.5.1 ì´ììì ì¬ì©í ì ììµëë¤.
+[C] ëë [chain] íëê·¸ë
[CO] ëë [cookie] íë그를 ì¬ì©íë©´ í¹ì
+
íëê·¸ì ì ì²´ 구문ì 모ë ìì±ì í¬í¨íì¬ +ë¤ìê³¼ ê°ìµëë¤:
+ +ì¿ í¤ íëì 리í°ë´ ':' 문ìê° íìí ê²½ì° ëì²´ 구문ì +ì¬ì©í ì ììµëë¤. ëì²´ 구문ì ì ííë ¤ë©´ ì¿ í¤ "Name" ìì +';' 문ì를 ë¶ì´ê³ íë 구ë¶ì를 ';'ë¡ ì§ì í´ì¼ í©ëë¤.
+ +ì¿ í¤ë¥¼ ì¤ì íë ¤ë©´ ì´ë¦, ê° ë° ëë©ì¸ì ì ì¸í´ì¼ +í©ëë¤.
+ +www.example.comê³¼
+ê°ì í¸ì¤í¸ëª
ì´ê±°ë .example.comê³¼ ê°ì
+ëë©ì¸ì¼ ì ììµëë¤. ì ì¼ë¡ 구ë¶ë ìµì ë ë¶ë¶ì´ì´ì¼
+í©ëë¤. ì¦, ë¨ìí .comì´ë
+.netì¼ ì ììµëë¤. ì´ë¬í ì¢
ë¥ì ì¿ í¤ë
+ì¿ í¤ ë³´ì 모ë¸ì ìí´ ê¸ì§ë©ëë¤.ì íì ì¼ë¡ ë¤ì ê°ë ì¤ì í ì ììµëë¤:
+ +/customers/ ëë
+/files/download/./ë¡ ì¤ì ë©ëë¤ - ì¦,
+ì ì²´ ì¹ì¬ì´í¸ì
ëë¤.secure, true ëë
+1ë¡ ì¤ì íë©´ ì¿ í¤ë ë³´ì(https) ì°ê²°ì
+íµí´ìë§ ì ë¬ë©ëë¤.HttpOnly, true ëë
+1ë¡ ì¤ì íë©´ ì¿ í¤ì
+HttpOnly íëê·¸ê° ì¤ì ëë©°, ì´ë ì´ ê¸°ë¥ì
+ì§ìíë ë¸ë¼ì°ì ìì ì¿ í¤ê° JavaScript ì½ëë¡ ì ê·¼í ì
+ììì ì미í©ëë¤.false ëë 0 ì´ì¸ì ê°ì¼ë¡
+ì¤ì íë©´ SameSite ìì±ì´ ì§ì ë ê°ì¼ë¡
+ì¤ì ë©ëë¤. ì¼ë°ì ì¸ ê°ì None,
+Lax ë° Strictì
ëë¤.
+2.5.1 ì´ììì ì¬ì©í ì ììµëë¤.ë¤ì ìì 를 ê³ ë ¤íììì¤:
+ +주ì´ì§ ìì ìì ê·ì¹ì ìì²ì ì¬ìì±íì§ ììµëë¤.
+"-" ì¬ìì± ëìì .example.com ëë©ì¸ì 모ë í¸ì¤í¸ì ì í¨í©ëë¤.
+1440ë¶(24ìê°) íì ë§ë£ëëë¡ ì¤ì ëë©° 모ë URIì ëí´
+ë°íë©ëë¤.
DPI íëê·¸ë ì¬ìì±ë URIì PATH_INFO ë¶ë¶ì +ë²ë¦½ëë¤.
+ì´ íëê·¸ë ë²ì 2.2.12 ì´ììì ì¬ì©í ì ììµëë¤.
+ëë í ë¦¬ë³ ì»¨í
ì¤í¸ìì ê°
+
íì¬ URIë í´ë¼ì´ì¸í¸ê° ìì²í ì´ê¸° URIì´ê±°ë,
+ì´ì
ë°ë©´, ê° ê·ì¹ ì ì URIì ì¶ê°ëë PATH_INFOë
+ì´
ì´ì ìì²ì íì¼ ìì¤í
매íìì ìì±ë PATH_INFOê°
+ê´ì¬ ìë ì¹íì ì´ íë그를 ì¬ì©íììì¤. ì´ íëê·¸ë
+ì´
[E] ëë [env] íë그를 ì¬ì©íë©´ íê²½ ë³ìì ê°ì +ì¤ì í ì ììµëë¤. ì¼ë¶ íê²½ ë³ìë ê·ì¹ì´ ì¤íë íì +ì¤ì ë ì ìì¼ë¯ë¡, ì¤ì í ê²ì í´ì í ì ìë¤ë ì ì +ì ìíììì¤. íê²½ ë³ìì ìë ë°©ìì ëí ìì¸í ë´ì©ì +íê²½ ë³ì 문ì를 참조íììì¤.
+ +ì´ íëê·¸ì ì ì²´ 구문ì ë¤ìê³¼ ê°ìµëë¤:
+ +VALìë íì¥ëë ì참조($N
+ëë %N)ê° í¬í¨ë ì ììµëë¤.
ì§§ì íí를 ì¬ì©íì¬
+ +VARì´ë¼ë íê²½ ë³ì를 ë¹ ê°ì¼ë¡ ì¤ì í ì
+ììµëë¤.
ë¤ì íí
+ +를 ì¬ì©íë©´ ì´ì ì ì¤ì ë VARì´ë¼ë
+íê²½ ë³ì를 í´ì í ì ììµëë¤.
íê²½ ë³ìë CGI íë¡ê·¸ë¨, ë¤ë¥¸ RewriteRule ì§ìì´ ëë +CustomLog ì§ìì´ë¥¼ í¬í¨í ë¤ìí 컨í ì¤í¸ìì ì¬ì©í ì +ììµëë¤.
+ +ë¤ì ìì ë ìì²ë URIê° ì´ë¯¸ì§ íì¼ì¸ ê²½ì° +'image'ë¼ë íê²½ ë³ì를 '1' ê°ì¼ë¡ ì¤ì í©ëë¤. ê·¸ë° ë¤ì +í´ë¹ íê²½ ë³ì를 ì¬ì©íì¬ ì ê·¼ ë¡ê·¸ìì í´ë¹ ìì²ì +ì ì¸í©ëë¤.
+ +ì´ ëì¼í í¨ê³¼ë
[END] íë그를 ì¬ì©íë©´ ([L]ê³¼ ê°ì´) íì¬ ì¬ìì± ì²ë¦¬ +ë¼ì´ë를 ì¢ ë£í ë¿ë§ ìëë¼ ëë í 리ë³(htaccess) +컨í ì¤í¸ìì íì ì¬ìì± ì²ë¦¬ê° ë°ìíë ê²ë +ë°©ì§í©ëë¤.
+ +ì´ê²ì ì¸ë¶ 리ë¤ì´ë í¸ë¡ ì¸í ì ìì²ìë ì ì©ëì§ +ììµëë¤.
+[F] íë그를 ì¬ì©íë©´ ìë²ê° í´ë¼ì´ì¸í¸ì 403 Forbidden
+ìí ì½ë를 ë°íí©ëë¤.
ë¤ì ê·ì¹ì ìë²ìì .exe íì¼ì
+ë¤ì´ë¡ë를 ê¸ì§í©ëë¤.
ì´ ìì ë ì¬ìì± ëìì "-" 구문ì ì¬ì©íë©°, ìì²ë +URIê° ìì ëì§ ììì ì미í©ëë¤. ìì²ì ê¸ì§íë ¤ë ê²½ì° +ë¤ë¥¸ URIë¡ ì¬ìì±í ì´ì ê° ììµëë¤.
+ +[F]를 ì¬ì©í ë [L]ì´ ììë©ëë¤ - ì¦, ìëµì´ ì¦ì +ë°íëê³ ì¶ê° ê·ì¹ì íê°ëì§ ììµëë¤.
+ +[G] íëê·¸ë ìë²ê° ìëµê³¼ í¨ê» 410 Gone ìí를 +ë°ííëë¡ ê°ì í©ëë¤. ì´ê²ì ììì´ ì´ì ì ì¬ì© +ê°ë¥íì§ë§ ë ì´ì ì¬ì©í ì ììì ëíë ëë¤.
+ +[F] íëê·¸ì ë§ì°¬ê°ì§ë¡ [G] íë그를 ì¬ì©í ëë +ì¼ë°ì ì¼ë¡ ì¬ìì± ëìì "-" 구문ì ì¬ì©í©ëë¤:
+ +[G]를 ì¬ì©í ë [L]ì´ ììë©ëë¤ - ì¦, ìëµì´ ì¦ì +ë°íëê³ ì¶ê° ê·ì¹ì íê°ëì§ ììµëë¤.
+ +ê²°ê³¼ ìì²ì´ ì§ì ë í¸ë¤ë¬ë¡ ì²ë¦¬ëëë¡ ê°ì í©ëë¤. +ì를 ë¤ì´, íì¼ íì¥ìê° ìë 모ë íì¼ì php í¸ë¤ë¬ë¡ +íì±íëë¡ ê°ì í ì ììµëë¤:
+ +
+ìì ì ê· ííì - !\. - ì 리í°ë´ .
+문ì를 í¬í¨íì§ ìë 모ë ìì²ê³¼ ì¼ì¹í©ëë¤.
+
ì´ê²ì ì¼ë¶ ì¡°ê±´ì ë°ë¼ í¸ë¤ë¬ë¥¼ ê°ì íë ë°ìë
+ì¬ì©í ì ììµëë¤. ì를 ë¤ì´, ìë²ë³ 컨í
ì¤í¸ìì ì¬ì©ëë
+ë¤ì ì¤ëí«ì .phps íì¥ìë¡ ìì²ë ê²½ì°
+.php íì¼ì mod_phpì ìí´
+íìëëë¡ í©ëë¤:
ìì ì ê· ííì - ^(/source/.+\.php)s$ -
+ì /source/ë¡ ììíê³ 1ê° ì´ìì 문ìê° ë¤ë°ë¥´ê³
+리í°ë´ .phpsê° ë¤ë°ë¥´ë 모ë ìì²ê³¼ ì¼ì¹í©ëë¤.
+ì참조 $1ì ì ê· ííìì ê´í¸ ìì 캡ì²ë ì¼ì¹ë¥¼
+참조í©ëë¤.
[L] íëê·¸ë last ëª
ë ¹ì´ë Cì
+break ëª
ë ¹ì í´ë¹í©ëë¤. ì´ íë그를 ì¬ì©íì¬
+íì¬ ê·ì¹ì´ ì¶ê° ê·ì¹ì ê³ ë ¤íì§ ìê³ ì¦ì ì ì©ëì´ì¼
+í¨ì ëíë
ëë¤.
.htaccess íì¼ì´ë
+.htaccess íì¼ì´ë
+
ë°ë¼ì ì´ë¬í 컨í
ì¤í¸ ì¤ íëìì
ëì íëê·¸ì¸ [END]ë íì¬ ì¬ìì± ì²ë¦¬ ë¼ì´ë를 +ì¢ ë£í ë¿ë§ ìëë¼ ëë í 리ë³(htaccess) 컨í ì¤í¸ìì +íì ì¬ìì± ì²ë¦¬ê° ë°ìíë ê²ë ë°©ì§í©ëë¤. ì´ê²ì +ì¸ë¶ 리ë¤ì´ë í¸ë¡ ì¸í ì ìì²ìë ì ì©ëì§ ììµëë¤.
+ +ì¬ê¸° 주ì´ì§ ìì ë 모ë ìì²ì index.phpë¡
+ì¬ìì±íë©°, ìë ìì²ì index.phpì 쿼리 문ìì´
+ì¸ìë¡ ì ê³µí©ëë¤. ê·¸ë¬ë
+index.phpì ëí ê²ì¸ ê²½ì°
+
+[N] íëê·¸ë ê·ì¹ ì¸í¸ë¥¼ ì§ê¸ê¹ì§ì ê·ì¹ ì¸í¸ 결과를 +ììì ì¼ë¡ ì¬ì©íì¬ ì²ìë¶í° ë¤ì ììíëë¡ í©ëë¤. +루í를 ì´ëí ì ìì¼ë¯ë¡ ê·¹ëì 주ì를 기ì¸ì¬ +ì¬ì©íììì¤. +
++[Next] íëê·¸ë ì를 ë¤ì´, ìì²ìì í¹ì 문ìì´ì´ë +문ì를 ë°ë³µì ì¼ë¡ ëì²´íë ¤ë ê²½ì°ì ì¬ì©í ì ììµëë¤. +ì¬ê¸° íìë ìì ë ìì²ì 모ë ê³³ìì A를 Bë¡ ëì²´íë©° +ë ì´ì ëì²´í Aê° ìì ëê¹ì§ ê³ìí©ëë¤. +
+ì´ê²ì while 루íë¡ ìê°í ì ììµëë¤:
+ì´ í¨í´ì´ ì¬ì í ì¼ì¹íë ëì(ì¦, URIì ì¬ì í
+Aê° í¬í¨ëì´ ìë ëì) ì´ ì¹íì
+ìíí©ëë¤(ì¦, A를 Bë¡
+ëì²´í©ëë¤).
2.5.0 ì´ììì ì´ ëª¨ëì ìëíì§ ìì 루íì¼ë¡ë¶í° +ë³´í¸í기 ìí´ 10,000ë²ì ë°ë³µ íì ì¤ë¥ë¥¼ ë°íí©ëë¤. +N íëê·¸ì ì¶ê°íì¬ ëìì ì¸ ìµë ë°ë³µ íì를 ì§ì í ì +ììµëë¤.
+[NC] íë그를 ì¬ì©íë©´
+
ìë ìì ìì ì´ë¯¸ì§ íì¼ì ëí 모ë ìì²ì ì ì©
+ì´ë¯¸ì§ ìë²ë¡ íë¡ìë©ëë¤. ì¼ì¹ë ëì문ì를 구ë¶íì§
+ìì¼ë¯ë¡, ì를 ë¤ì´ .jpgì .JPG
+íì¼ ëª¨ë íì©ë©ëë¤.
기본ì ì¼ë¡
A-Z, a-z,
+ 0-9$-_.+!*'(),:;@&=/~ì를 ë¤ì´, #ì %23ì¼ë¡,
+?ë %3Fë¡ ë³íë©ëë¤.
+% 문ìë (%25ë¡) ì´ì¤ì¼ì´íëë¯ë¡
+ì¹íì ì´ë¯¸ ì¡´ì¬íë í¼ì¼í¸ ì¸ì½ë©ì´ ì´ì¤ ì¸ì½ë©ë©ëë¤.
[NE] íë그를 ì¬ì©íë©´ ì´ ì´ì¤ì¼ì´í를 ë°©ì§íì¬
+#ê³¼ ?ì ê°ì 문ìê° ìì ëì§ ìê³
+리ë¤ì´ë í¸ URLë¡ ì ë¬ë©ëë¤.
+ìì ìì ë /anchor/xyz를
+/bigpage.html#xyzë¡ ë¦¬ë¤ì´ë í¸í©ëë¤.
+[NE]를 ìëµíë©´ #ì´ 16ì§ì ì½ëì¸ %23ì¼ë¡
+ë³íëì´ 404 Not Found ì¤ë¥ ì¡°ê±´ì´ ë°ìí©ëë¤.
+
[NS] íë그를 ì¬ì©íë©´ ìë¸ìì²ìì ê·ì¹ì´ ì¬ì©ëë ê²ì
+ë°©ì§í©ëë¤. ì를 ë¤ì´, SSI(Server Side Include)를 ì¬ì©íì¬
+í¬í¨ë íì´ì§ë ìë¸ìì²ì´ë©°, í´ë¹ ìë¸ìì²ìì ì¬ìì±ì´
+ë°ìíë ê²ì í¼íê³ ì¶ì ì ììµëë¤. ëí
+index.html íì¼)ì ëí ì 보를 ì°¾ì¼ë ¤ í ë
+ì´ê²ì ë´ë¶ ìë¸ìì²ì´ë©°, ì¢
ì¢
ì´ë¬í ìë¸ìì²ìì
+ì¬ìì±ì í¼íê³ ì¶ì ê²ì
ëë¤. ìë¸ìì²ììë ì ì²´
+ê·ì¹ ì¸í¸ê° ì ì©ëë ê²ì´ íì ì ì©íì§ ìì¼ë©° ì¤ë¥ë¥¼
+ì¼ì¼í¬ ìë ììµëë¤. ì´ íë그를 ì¬ì©íì¬ ë¬¸ì ê° ëë
+ê·ì¹ì ì ì¸íììì¤.
ì´ ê·ì¹ì ì¬ì©í ì§ ì¬ë¶ë¥¼ ê²°ì íë ¤ë©´: CGI ì¤í¬ë¦½í¸ë¡ +URLì ì ëì¬ë¥¼ ë¶ì¬ CGI ì¤í¬ë¦½í¸ì ìí´ ì²ë¦¬ëëë¡ ê°ì íë +ê²½ì°, ìë¸ìì²ìì 문ì (ëë ìë¹í ì¤ë²í¤ë)ê° ë°ìí +ê°ë¥ì±ì´ ììµëë¤. ì´ë¬í ê²½ì° ì´ íë그를 +ì¬ì©íììì¤.
+ ++HTML íì´ì§ì ì¼ë¶ë¡ ë¡ëëë ì´ë¯¸ì§, ìë°ì¤í¬ë¦½í¸ íì¼ +ëë CSS íì¼ì ìë¸ìì²ì´ ìëëë¤ - ë¸ë¼ì°ì ë ì´ë¥¼ +ë³ëì HTTP ìì²ì¼ë¡ ìì²í©ëë¤. +
+[P] íë그를 ì¬ì©íë©´ ìì²ì´
+
[P] íë그를 ì¬ì©íë©´ [L]ì´ ììë©ëë¤ - ì¦, ìì²ì´ +ì¦ì íë¡ì를 íµí´ ì ë¬ëê³ ì´íì ê·ì¹ì ê³ ë ¤ëì§ +ììµëë¤.
+ +
+ì¹í 문ìì´ì´ http://hostnameì¼ë¡
+ìì)ì¸ì§ íì¸í´ì¼ í©ëë¤. ê·¸ë ì§ ìì¼ë©´ íë¡ì 모ëìì
+ì¤ë¥ê° ë°ìí©ëë¤. ì´ íë그를 ì¬ì©íì¬ ë¡ì»¬ ìë²ì ë¤ìì¤íì´ì¤ì
+ì격 ì½í
ì¸ ë¥¼ 매ííë
+
ê·ì¹ì ëì URLì 구ì±í ë, ìë²ê° íë¡ìë¡ ìëí +URL ì¸í¸ì ëí í´ë¼ì´ì¸í¸ì ìí¥ì¼ë¡ ì¸í ë³´ì ìí¥ì +ê³ ë ¤íì¬ ì£¼ìíììì¤. URLì ì¤í¤ë§ ë° í¸ì¤í¸ëª ë¶ë¶ì´ +ê³ ì ëì´ ìê±°ë í´ë¼ì´ì¸í¸ìê² ë¶ë¹í ìí¥ì ì£¼ì§ +ìëë¡ íììì¤.
+ì´ íë그를 ì¬ì©íë©´
ì구 ì°ê²°ì ì¬ì©íë ¤ë©´ ëì URLì ì¤í¤ë§ ë° í¸ì¤í¸
+ë¶ë¶ì ëí
ì°¸ê³ : ì´ íë그를 ì¬ì©íë ¤ë©´
+
+RewriteRuleì ëì(ëë ì¹í 문ìì´)ì 기본ì ì¼ë¡ íì¼
+ê²½ë¡ë¡ ê°ì£¼ë©ëë¤. [PT] íë그를 ì¬ì©íë©´ ëì URIë¡
+ì²ë¦¬ë©ëë¤. ì¦, [PT] íë그를 ì¬ì©íë©´
+
+ì를 ë¤ì´, /iconsì ëí
+
+ì´ ê²½ì° [PT] íë그를 ìëµíë©´ Aliasê° ë¬´ìëì´ +'File not found' ì¤ë¥ê° ë°íë©ëë¤. +
+ +PT íëê·¸ë L íë그를
+ììí©ëë¤: ìì²ì ì²ë¦¬ì ë¤ì ë¨ê³ë¡ ì ë¬í기 ìí´
+ì¬ìì±ì´ ì¤ì§ë©ëë¤.
PT íëê·¸ë
+.htaccess íì¼ê³¼ ê°ì ëë í 리ë³
+컨í
ì¤í¸ìì ììë©ëë¤. ì´ë¥¼ ì°ííë ì ì¼í ë°©ë²ì
+-ë¡ ì¬ìì±íë ê²ì
ëë¤.
+ëì²´ URIì 쿼리 문ìì´ì´ í¬í¨ë ê²½ì°
+
ë¤ì ê·ì¹ì ê³ ë ¤íììì¤:
+ +[QSA] íë그를 ì¬ì©íë©´ /pages/123?one=twoì
+ëí ìì²ì´ /page.php?page=123&one=twoë¡
+매íë©ëë¤. [QSA] íëê·¸ ìì´ ëì¼í ìì²ì
+/page.php?page=123ì¼ë¡ 매íë©ëë¤ - ì¦,
+기존 쿼리 문ìì´ì´ ë²ë ¤ì§ëë¤.
+
+ìì²ë URIì 쿼리 문ìì´ì´ í¬í¨ëì´ ìê³ ëì URIìë
+ìë ê²½ì°,
ì´ íëê·¸ë ë²ì 2.4.0 ì´ììì ì¬ì©í ì ììµëë¤.
+ ++[QSD]ì [QSA]를 í¨ê» ì¬ì©íë©´ [QSD]ê° ì°ì í©ëë¤. +
+ +
+ëì URIì 쿼리 문ìì´ì´ ìë ê²½ì° ê¸°ë³¸ ëìì´
+ê´ì°°ë©ëë¤ - ì¦, ìë 쿼리 문ìì´ì´ ë²ë ¤ì§ê³
+RewriteRule ëì URIì 쿼리 문ìì´ë¡
+ëì²´ë©ëë¤.
+
+기본ì ì¼ë¡ ì¹íìì 첫 ë²ì§¸(ê°ì¥ ì¼ìª½) 물ìíê° ê²½ë¡ì
+쿼리 문ìì´ì 구ë¶í©ëë¤. [QSL] íë그를 ì¬ì©íë©´
+
+ì´ê²ì íì¼ëª ì 리í°ë´ 물ìíê° ìë íì¼ì 매íí ë +ì ì©í©ëë¤. ì¹íì 쿼리 문ìì´ì´ ì¬ì©ëì§ ìë ê²½ì° +ì´ íëê·¸ì í¨ê» 물ìí를 ì¶ê°í ì ììµëë¤.
+ +ì´ íëê·¸ë ë²ì 2.4.19 ì´ììì ì¬ì©í ì ììµëë¤.
+ +
+[R] íë그를 ì¬ì©íë©´ ë¸ë¼ì°ì ì HTTP 리ë¤ì´ë í¸ê°
+ë°íë©ëë¤. ìì í URL(ì¦,
+http://servername/ í¬í¨)ì´ ì§ì ëë©´
+í´ë¹ ìì¹ë¡ 리ë¤ì´ë í¸ê° ë°íë©ëë¤. ê·¸ë ì§ ìì¼ë©´
+íì¬ íë¡í ì½, ìë²ëª
ë° í¬í¸ ë²í¸ê° 리ë¤ì´ë í¸ì
+í¨ê» ì ì¡ëë URLì ìì±íë ë° ì¬ì©ë©ëë¤.
+
+ì í¨í 모ë HTTP ìëµ ìí ì½ë를
+[R=305] 구문ì¼ë¡ ì§ì í ì ìì¼ë©°, ì§ì íì§ ìì¼ë©´
+302 ìí ì½ëê° ê¸°ë³¸ì ì¼ë¡ ì¬ì©ë©ëë¤. ì§ì ë ìí ì½ëê°
+ë°ëì 리ë¤ì´ë í¸(3xx) ìí ì½ëì¼ íìë ììµëë¤.
+ê·¸ë¬ë ìí ì½ëê° ë¦¬ë¤ì´ë í¸ ë²ì(300-399) ë°ì ìì¼ë©´
+ì¹í 문ìì´ì´ ìì í ìì ëê³ Lì´ ì¬ì©ë
+ê²ì²ë¼ ì¬ìì±ì´ ì¤ì§ë©ëë¤.
ìëµ ìí ì½ë ì¸ìë ê¸°í¸ ì´ë¦ì ì¬ì©íì¬ ë¦¬ë¤ì´ë í¸
+ìí를 ì§ì í ìë ììµëë¤: temp(기본ê°),
+permanent ëë seeother.
+ê±°ì íì [R]ì [L]ê³¼ í¨ê» ì¬ì©íê³ ì¶ì ê²ì
ëë¤(ì¦,
+[R,L]). [R] íëê·¸ ë¨ë
ì¼ë¡ë URI ìì
+http://thishost[:thisport]를 ì¶ê°íì§ë§
+ì´ë¥¼ ê·ì¹ ì¸í¸ì ë¤ì ê·ì¹ì ì ë¬íì¬ ì¢
ì¢
+'Invalid URI in request' ê²½ê³ ë¥¼ ì´ëí©ëë¤.
+
ì°¸ê³ : httpdë HTTP ì¬ìì í¬í¨ë ìí ì½ëë§ +ì§ìí©ëë¤. ì¸ìí ì ìë ìí ì½ë를 ì¬ì©íë©´ +500 ì¤ë¥ì ì¤ë¥ ë¡ê·¸ ë©ìì§ê° ë°ìí©ëë¤.
+ +[S] íëê·¸ë ì¤ííê³ ì¶ì§ ìì ê·ì¹ì ê±´ëë°ë ë°
+ì¬ì©ë©ëë¤. ê±´ëë°ê¸° íëê·¸ì 구문ì [S=N]ì´ë©°,
+Nì ê±´ëë¸ ê·ì¹ì ì를 ëíë
ëë¤
+(goto 문ì¼ë¡ ìê°í ì ììµëë¤. ë¤ì ìì ììë
+ìì²ë URIê° ì¤ì íì¼ì í´ë¹íì§ ìë ê²½ì°ìë§
+
ì´ ê¸°ì ì RewriteCond를 ì¬ë¬
+RewriteRuleì ì ì©íë ¤ë©´ ê°ë¥í 기ì ì¤
+íëë í´ë¹ ì¡°ê±´ì ë¶ì íê³ [Skip] íë그를 ê°ì§
+RewriteRuleì ì¶ê°íë ê²ì
ëë¤.
+ì´ë¥¼ ì¬ì©íì¬ ì ì¬ if-then-else 구조를 ë§ë¤ ì ììµëë¤:
+then ì ì ë§ì§ë§ ê·ì¹ì skip=Nì´ ëë©°,
+Nì else ì ì ê·ì¹ ìì
ëë¤:
ê²°ê³¼ ìëµì´ ì ì¡ë MIME ì íì ì¤ì í©ëë¤. ì´ê²ì
+
ì를 ë¤ì´, í¹ì ë°©ìì¼ë¡ ìì²ë ê²½ì° Perl ìì¤ ì½ë를 +ì¼ë° í ì¤í¸ë¡ ì ê³µí기 ìí´ ë¤ì 기ì ì ì¬ì©í ì +ììµëë¤:
+ +ëë íì¼ íì¥ì ìì´ jpeg ì´ë¯¸ì§ë¥¼ ìì±íë ì¹´ë©ë¼ê° +ìë ê²½ì° íì¼ ì´ë¦ì 기ì¤ì¼ë¡ ì¬ë°ë¥¸ MIME ì íì¼ë¡ +í´ë¹ ì´ë¯¸ì§ê° ì ê³µëëë¡ ê°ì í ì ììµëë¤:
+ +ì´ê²ì ê°ë¨í ìì ì´ë©° ëì
+
+ëë í ë¦¬ë³ ì»¨í
ì¤í¸ìì ì¬ì©íë ê²½ì° ì ì²´
+-(ëì)ë§ ì¬ì©íììì¤.
+ê·¸ë ì§ ìì¼ë©´ ë´ë¶ ì¬ì²ë¦¬(íì
+L íëê·¸ë ì´ ì»¨í
ì¤í¸ìì
+
ìì± ì¤ì¸ HTTP ìì²ì ì¸ì½ë©ë 물ìí '%3f'ê° ìê³ + ì¬ìì± ê²°ê³¼ì ì¹íì '?'ê° ìë ê²½ì° ì¬ìì±ì´ ê³ìëëë¡ + íì©íë ¤ë©´ ì´ íë그를 ì¤ì í´ì¼ í©ëë¤. ì´ë ì¸ì½ë©ë + 물ìíì ìº¡ì² ë° ì¬ì¹íì ì´ì©íë ì ìì ì¸ URLë¡ë¶í° + ë³´í¸í©ëë¤.
+ìë² ë²ìì ì¹íì´ ë³ìë ìì°¸ì¡°ë¡ ììíê³ íì¼ ìì¤í + ê²½ë¡ë¡ í´ìëë ê²½ì° ì´ íë그를 ì¤ì í´ì¼ í©ëë¤. + ì´ë¬í ì¹íì 문ì 루í¸ë¡ ì ëì¬ê° ë¶ì§ ììµëë¤. + ì´ë íì¥ë ì¹íì´ ììì¹ ëª»í íì¼ ìì¤í ìì¹ì + 매íëë ì ìì ì¸ URLë¡ë¶í° ë³´í¸í©ëë¤.
+ +ì´ íë그를 ì¤ì íë©´ Windows UNC ê²½ë¡ìì ì¬ì©ëë + ì¬ë¬ ì í ì¬ëìì ë³í©ì ë°©ì§í©ëë¤. ê·ì¹ì ì¹íì´ + ì¬ë¬ 리í°ë´ ì¬ëìë¡ ììíë ê²½ì° ì´ íëê·¸ë + íìíì§ ììµëë¤.
+ +Bu belge,
Bir
Her bayraÄın (birkaç istisna dıÅında) CO gibi kısa bir
+biçimi ve cookie gibi uzun bir biçimi vardır. Kısa biçim
+en yaygın olarak kullanılsa da, her bayraÄın ne yapması gerektiÄini
+hatırlamanız için uzun biçime aÅina olmanız önerilir. Bazı bayraklar
+bir veya daha fazla argüman alır. Bayraklar büyük/küçük harf
+duyarsızdır.
İstekle iliÅkili üstveriyi deÄiÅtiren bayraklar (T=, H=, E=), bir +deÄiÅtirme ('-' dıÅında) aynı yeniden yazma iÅleme turunda +gerçekleÅtirildiÄinde dizin baÅına ve htaccess baÄlamında etkili +olmaz.
+ +Burada mevcut bayrakların her biri, nasıl kullanabileceÄinize dair +bir örnekle birlikte sunulmaktadır.
+[B] bayraÄı,
Sunucu deÄiÅkenlerinin benzer Åekilde kodlanması için + "escape" eÅleme iÅlevine bakın
+ + +Arama terimi 'x & y/z' olduÄunda, tarayıcı bunu
+'x%20%26%20y%2Fz' olarak kodlar ve istek 'search/x%20%26%20y%2Fz'
+olur. B bayraÄı olmadan bu yeniden yazma kuralı 'search.php?term=x
+& y/z' ile eÅleÅir ki bu geçerli bir URL deÄildir ve
+search.php?term=x%20&y%2Fz= olarak kodlanır, bu da
+amaçlanan deÄildir.
Aynı kuralda B bayraÄı ayarlandıÄında, parametreler çıktı URL'sine
+geçirilmeden önce yeniden kodlanır ve doÄru bir eÅleme olan
+/search.php?term=x%20%26%20y%2Fz elde edilir.
Bu belirli örneÄin çalıÅması için On olarak ayarlamanız gerekebileceÄini unutmayın; çünkü
+httpd URL'lerde kodlanmıŠeÄik çizgilere izin vermez ve bir tane
+görürse 404 döndürür.
Bu kodlama özellikle vekil durumunda gereklidir; arka uç, kodları +çözülmüŠbir URL ile karÅılaÅırsa bozulabilir.
+ +Bu bayraÄa bir alternatif, %{THE_REQUEST} deÄerine karÅı yakalama
+yapan bir
2.4.26 ve sonrasında, geri baÅvurulardaki kodlamayı belirli
+karakterlerle sınırlayabilirsiniz: [B=#?;]. Not: BoÅluk
+karakteri kodlanacak karakterler listesinde kullanılabilir, ancak
+
Bu Åekilde kodlanan karakterleri sınırlamak için #flag_bne ve #flag_bctls bayraklarına bakın
+[BNP] bayraÄı,
Bu bayrak 2.4.26 ve sonraki sürümlerde mevcuttur.
+[BCTLS] bayraÄı [B] bayraÄına benzer, ancak yalnızca kontrol +karakterlerini ve boÅluk karakterini kodlar. Bu, sorgu dizgesine +kodlanmadan kopyalandıklarında reddedilen karakter kümesiyle +aynıdır.
+ +Bu bayrak 2.5.1 ve sonraki sürümlerde mevcuttur.
+ +[BNE=...] içindeki karakter listesi, [B] veya [BCTLS] bayraklarının +karakterlerinden istisna olarak deÄerlendirilir. Listelenen karakterler +kodlanmayacaktır.
+ +Bu bayrak 2.5.1 ve sonraki sürümlerde mevcuttur.
+[C] veya [chain] bayraÄı,
[CO] veya [cookie] bayraÄı, belirli bir
BayraÄın tüm öznitelikler dahil tam sözdizimi Åöyledir:
+ +Ãerez alanlarından herhangi birinde birebir ':' karakterine ihtiyaç +duyulursa, alternatif bir sözdizimi mevcuttur. Alternatif sözdizimini +etkinleÅtirmek için çerez "Name" alanının önüne ';' karakteri +konulmalı ve alan ayırıcıları ';' olarak belirtilmelidir.
+ +Ãerezin ayarlanması için bir ad, bir deÄer ve bir alan adı +bildirmelisiniz.
+ +www.example.com gibi bir konak adı veya
+.example.com gibi bir alan adı olabilir. En az iki
+parçadan oluÅmalı ve bir nokta ile ayrılmalıdır. Yani yalnızca
+.com veya .net olamaz. Bu tür çerezler
+çerez güvenlik modeli tarafından yasaklanmıÅtır.İsteÄe baÄlı olarak aÅaÄıdaki deÄerleri de ayarlayabilirsiniz:
+ +/customers/ veya /files/download/ gibi./ olarak ayarlanır - yani web
+sitesinin tamamı.secure, true veya 1 olarak
+ayarlanırsa, çerez yalnızca güvenli (https) baÄlantılar üzerinden
+aktarılabilir.HttpOnly, true veya 1
+olarak ayarlanırsa, çerez HttpOnly bayraÄıyla
+ayarlanır; bu, çerezin bu özelliÄi destekleyen tarayıcılarda
+JavaScript koduna eriÅilemez olduÄu anlamına gelir.false veya 0 dıÅında bir deÄere
+ayarlanırsa, SameSite özniteliÄi belirtilen deÄere
+ayarlanır. Tipik deÄerler None, Lax ve
+Strict'tir. 2.5.1 ve sonrasında mevcuttur.Åu örneÄi ele alalım:
+ +Verilen örnekte, kural isteÄi yeniden yazmaz. "-" yeniden yazma
+hedefi, .example.com alan adındaki
+herhangi bir konak için geçerlidir. 1440 dakika (24 saat) sonra sona
+erecek Åekilde ayarlanır ve tüm URI'ler için döndürülür.
DPI bayraÄı, yeniden yazılmıŠURI'nin PATH_INFO bölümünün +atılmasına neden olur.
+Bu bayrak 2.2.12 ve sonraki sürümlerde mevcuttur.
+Dizin baÅına baÄlamda, her
Geçerli URI, istemcinin istediÄi ilk URI, önceki bir
+
Buna karÅılık, her kuraldan önce URI'ye eklenen PATH_INFO yalnızca
+bu
Bu bayraÄı, önceki dosya sistemi eÅlemesinden kaynaklanan
+PATH_INFO'nun ilgilendirmediÄi herhangi bir deÄiÅtirmede kullanın. Bu
+bayrak, bu
[E] veya [env] bayraÄıyla bir ortam deÄiÅkeninin deÄerini +ayarlayabilirsiniz. Bazı ortam deÄiÅkenlerinin kural çalıÅtıktan sonra +ayarlanabileceÄini ve böylece ayarladıÄınız deÄeri geçersiz +kılabileceÄini unutmayın. Ortam deÄiÅkenlerinin nasıl çalıÅtıÄı +hakkında daha fazla ayrıntı için Ortam +DeÄiÅkenleri belgesine bakın.
+ +Bu bayraÄın tam sözdizimi Åöyledir:
+ +VAL, geniÅletilen geri baÅvurular ($N
+veya %N) içerebilir.
Kısa biçimi kullanarak
+ +VAR adlı ortam deÄiÅkenini boÅ bir deÄere
+ayarlayabilirsiniz.
Åu biçim
+ +daha önce ayarlanmıŠVAR adlı ortam deÄiÅkeninin
+silinmesine olanak tanır.
Ortam deÄiÅkenleri daha sonra CGI programları, diÄer RewriteRule +yönergeleri veya CustomLog yönergeleri dahil olmak üzere çeÅitli +baÄlamlarda kullanılabilir.
+ +AÅaÄıdaki örnek, istenen URI bir resim dosyasıysa 'image' adlı bir +ortam deÄiÅkenini '1' deÄerine ayarlar. Daha sonra bu ortam deÄiÅkeni, +bu istekleri eriÅim günlüÄünden dıÅlamak için kullanılır.
+ +Aynı etkinin
[END] bayraÄı kullanmak, yalnızca geçerli yeniden yazma iÅleme +turunu durdurmakla kalmaz ([L] gibi), aynı zamanda dizin baÅına +(htaccess) baÄlamda sonraki yeniden yazma iÅlemlerinin de +gerçekleÅmesini engeller.
+ +Bu, harici yönlendirmelerden kaynaklanan yeni istekler için +geçerli deÄildir.
+[F] bayraÄı kullanmak, sunucunun istemciye 403 Yasak durum kodu
+döndürmesine neden olur. Aynı davranıÅ
AÅaÄıdaki kural, .exe dosyalarının sunucunuzdan
+indirilmesini yasaklar.
Bu örnek, yeniden yazma hedefi için "-" sözdizimini kullanır; bu, +istenen URI'nin deÄiÅtirilmediÄi anlamına gelir. İsteÄi yasaklayacaksanız +baÅka bir URI'ye yeniden yazmanın bir nedeni yoktur.
+ +[F] kullanıldıÄında, [L] zımnen uygulanır - yani yanıt hemen +döndürülür ve baÅka kural deÄerlendirilmez.
+ +[G] bayraÄı, sunucuyu yanıtla birlikte 410 Kalktı durum kodu +döndürmeye zorlar. Bu, bir kaynaÄın eskiden mevcut olduÄunu ancak +artık mevcut olmadıÄını belirtir.
+ +[F] bayraÄında olduÄu gibi, [G] bayraÄını kullanırken genellikle +yeniden yazma hedefi için "-" sözdizimini kullanırsınız:
+ +[G] kullanıldıÄında, [L] zımnen uygulanır - yani yanıt hemen +döndürülür ve baÅka kural deÄerlendirilmez.
+ +Elde edilen isteÄin belirtilen iÅleyici ile iÅlenmesini zorlar. +ÃrneÄin, dosya uzantısı olmayan tüm dosyaların php iÅleyicisi +tarafından çözümlenmesini zorlamak için kullanılabilir:
+ +
+Yukarıdaki düzenli ifade - !\. - birebir .
+karakterini içermeyen herhangi bir istekle eÅleÅir.
+
Bu, bazı koÅullara dayalı olarak iÅleyiciyi zorlamak için de
+kullanılabilir. ÃrneÄin, sunucu baÄlamında kullanılan aÅaÄıdaki
+kod parçası, .phps uzantısıyla istendiÄinde
+.php dosyalarının mod_php tarafından
+görüntülenmesini saÄlar:
Yukarıdaki düzenli ifade - ^(/source/.+\.php)s$ -
+/source/ ile baÅlayan, ardından 1 veya n karakter gelen
+ve birebir .phps ile biten herhangi bir istekle eÅleÅir.
+$1 geri baÅvurusu, düzenli ifadenin parantez içindeki yakalanan
+eÅleÅmeye referans verir.
[L] bayraÄı, last
+komutuna veya C'deki break komutuna karÅılık gelir. Bu
+bayraÄı, geçerli kuralın diÄer kurallar dikkate alınmadan hemen
+uygulanması gerektiÄini belirtmek için kullanın.
.htaccess dosyalarında veya .htaccess dosyası veya
Bu nedenle,
Alternatif bir bayrak olan [END], yalnızca geçerli yeniden yazma +iÅleme turunu sonlandırmak için deÄil, aynı zamanda dizin baÅına +(htaccess) baÄlamda sonraki yeniden yazma iÅlemlerinin de +gerçekleÅmesini engellemek için kullanılabilir. Bu, harici +yönlendirmelerden kaynaklanan yeni istekler için geçerli deÄildir.
+ +Burada verilen örnek, herhangi bir isteÄi index.php'ye
+yeniden yazar ve orijinal isteÄi index.php'ye sorgu
+dizgesi argümanı olarak verir; ancak index.php için ise
+[N] bayraÄı, kural kümesinin Åimdiye kadarki sonucu baÅlangıç noktası +olarak kullanarak en baÅtan yeniden baÅlamasına neden olur. Döngüye +neden olabileceÄinden son derece dikkatli kullanın. +
++[Next] bayraÄı, örneÄin bir istekteki belirli bir dizgeyi veya harfi +tekrar tekrar deÄiÅtirmek istediÄinizde kullanılabilir. Burada +gösterilen örnek, bir istekteki her yerde A'yı B ile deÄiÅtirecek ve +deÄiÅtirilecek A kalmayana kadar bunu yapmaya devam edecektir. +
+Bunu bir while döngüsü olarak düÅünebilirsiniz: Bu
+kalıp hâlâ eÅleÅtiÄi sürece (yani URI hâlâ bir A
+içerdiÄi sürece), bu deÄiÅtirmeyi yap (yani A'yı
+B ile deÄiÅtir).
2.5.0 ve sonrasında, bu modül istenmeyen döngülere karÅı koruma +saÄlamak için 10.000 yinelemeden sonra hata döndürür. N bayraÄına +eklenerek alternatif bir maksimum yineleme sayısı belirtilebilir.
+[NC] bayraÄının kullanımı,
AÅaÄıdaki örnekte, herhangi bir resim dosyası isteÄi özel resim
+sunucunuza vekil olarak iletilir. EÅleÅme büyük/küçük harf
+duyarsızdır; bu nedenle örneÄin hem .jpg hem de
+.JPG dosyaları kabul edilir.
Ãntanımlı olarak, bir
A-Z, a-z,
+ 0-9$-_.+!*'(),:;@&=/~ÃrneÄin, # karakteri %23'e ve
+? karakteri %3F'e dönüÅtürülür.
+% karakteri de kodlanır (%25'e), bu da
+deÄiÅtirmede zaten mevcut olan yüzde kodlamanın çift kodlanacaÄı
+anlamına gelir.
[NE] bayraÄı kullanmak bu kodlamayı engeller ve # ile
+? gibi karakterlerin yönlendirme URL'sine
+deÄiÅtirilmeden geçmesine olanak tanır.
+Yukarıdaki örnek /anchor/xyz adresini
+/bigpage.html#xyz adresine yönlendirecektir. [NE]
+kullanılmazsa # karakteri onaltılık kod eÅdeÄeri olan
+%23'e dönüÅtürülür ve bu da 404 Bulunamadı hata durumuna
+yol açar.
+
[NS] bayraÄının kullanımı, kuralın alt isteklerde kullanılmasını
+engeller. ÃrneÄin, SSI (Sunucu Tarafı Dahil Etme) kullanılarak dahil
+edilen bir sayfa bir alt istektir ve bu alt isteklerde yeniden
+yazmaların gerçekleÅmesini engellemek isteyebilirsiniz. Ayrıca,
+index.html dosyaları) hakkında bilgi edinmeye
+çalıÅtıÄında, bu bir dahili alt istektir ve genellikle bu tür alt
+isteklerde yeniden yazmaları engellemek istersiniz. Alt isteklerde,
+kuralların tamamının uygulanması her zaman yararlı olmaz ve hatalara
+bile neden olabilir. Sorunlu kuralları dıÅlamak için bu bayraÄı
+kullanın.
Bu kuralı kullanıp kullanmamaya karar vermek için: URL'leri CGI +betikleriyle ön ekliyorsanız ve bunların CGI betiÄi tarafından +iÅlenmesini zorluyorsanız, alt isteklerde sorunlarla (veya önemli ek +yükle) karÅılaÅmanız olasıdır. Bu durumlarda bu bayraÄı kullanın.
+ ++Bir HTML sayfasının parçası olarak yüklenen resimler, javascript +dosyaları veya css dosyaları alt istek deÄildir - tarayıcı bunları +ayrı HTTP istekleri olarak ister. +
+[P] bayraÄının kullanımı, isteÄin
[P] bayraÄının kullanımı [L] anlamına gelir - yani istek hemen +vekil üzerinden iletilir ve sonraki kurallar dikkate alınmaz.
+ +
+DeÄiÅtirme dizgesinin http://konakadı ile baÅlayan) emin olmalısınız.
+DeÄilse, vekil modülünden bir hata alırsınız. Bu bayraÄı, uzak
+içeriÄi yerel sunucunun ad alanına eÅlemek için
Kuralın hedef URL'sini oluÅtururken, istemcinin sunucunuzun vekil +olarak davranacaÄı URL kümesi üzerindeki etkisinin güvenlik +sonuçlarını dikkate alın. URL'nin Åema ve konak adı bölümünün ya sabit +olduÄundan ya da istemciye gereksiz etki izni vermediÄinden emin +olun.
+Bu bayraÄı kullanmak, kalıcı baÄlantıları yönetmeyen öntanımlı
+iÅçi bu durumda kullanıldıÄından baÄlantı havuzlama/yeniden kullanımı
+olmaksızın
Kalıcı baÄlantıları kullanmak için en azından hedef URL'nin Åema
+ve konak bölümü için örneÄin bir zaman aÅımı ayarladıÄınız
+
Not: Bu bayraÄı kullanmak için
+Bir RewriteRule'daki hedef (veya deÄiÅtirme dizgesi) öntanımlı olarak
+bir dosya yolu olarak kabul edilir. [PT] bayraÄının kullanılması,
+bunun yerine bir URI olarak iÅlenmesine neden olur. Yani, [PT]
+bayraÄının kullanılması,
+ÃrneÄin, /icons için bir
+Bu durumda [PT] bayraÄının atlanması, Alias'ın yok sayılmasına neden +olur ve 'Dosya bulunamadı' hatası döndürülür. +
+ +PT bayraÄı L bayraÄını ima eder:
+isteÄi bir sonraki iÅleme aÅamasına geçirmek için yeniden yazma
+durdurulur.
PT bayraÄının .htaccess dosyaları gibi dizin baÅına baÄlamlarda
+zımnen uygulandıÄını unutmayın. Bundan kaçınmanın tek yolu
+-'ye yeniden yazmaktır.
+DeÄiÅtirme URI'si bir sorgu dizgesi içerdiÄinde,
Åu kuralı ele alalım:
+ +[QSA] bayraÄıyla, /pages/123?one=two isteÄi
+/page.php?page=123&one=two ile eÅlenir. [QSA]
+bayraÄı olmadan, aynı istek
+/page.php?page=123 ile eÅlenir - yani mevcut sorgu
+dizgesi atılır.
+
+İstenen URI bir sorgu dizgesi içerdiÄinde ve hedef URI içermediÄinde,
+
Bu bayrak 2.4.0 ve sonraki sürümlerde mevcuttur.
+ ++[QSD] ve [QSA] birlikte kullanıldıÄında [QSD] öncelikli olur. +
+ +
+Hedef URI bir sorgu dizgesine sahipse, öntanımlı davranıÅ
+gözlemlenir - yani orijinal sorgu dizgesi atılır ve
+RewriteRule hedef URI'sindeki sorgu dizgesiyle
+deÄiÅtirilir.
+
+Ãntanımlı olarak, deÄiÅtirmedeki ilk (en soldaki) soru iÅareti yolu
+sorgu dizgesinden ayırır. [QSL] bayraÄı kullanmak,
+Bu, dosya adlarında birebir soru iÅaretleri bulunan dosyalara eÅleme +yaparken yararlıdır. DeÄiÅtirmede sorgu dizgesi kullanılmıyorsa, bu +bayrakla birlikte sonuna bir soru iÅareti eklenebilir.
+ +Bu bayrak 2.4.19 ve sonraki sürümlerde mevcuttur.
+ +
+[R] bayraÄı kullanmak, tarayıcıya bir HTTP yönlendirmesi
+verilmesine neden olur. Tam nitelikli bir URL belirtilmiÅse (yani
+http://sunucuadı/ dahil), o konuma bir yönlendirme
+verilir. Aksi takdirde, yönlendirmeyle gönderilen URL'yi oluÅturmak
+için geçerli protokol, sunucu adı ve baÄlantı noktası numarası
+kullanılır.
+
+[R=305] sözdizimi kullanılarak geçerli herhangi bir HTTP yanıt durum
+kodu belirtilebilir; hiçbiri belirtilmezse öntanımlı olarak 302 durum
+kodu kullanılır. Belirtilen durum kodunun mutlaka bir yönlendirme
+(3xx) durum kodu olması gerekmez. Ancak durum kodu yönlendirme
+aralıÄının (300-399) dıÅındaysa deÄiÅtirme dizgesi tamamen atılır ve
+L kullanılmıŠgibi yeniden yazma durdurulur.
Yanıt durum kodlarına ek olarak, yönlendirme durumunu sembolik
+adlarıyla da belirtebilirsiniz: temp (öntanımlı),
+permanent veya seeother.
+[R] bayraÄını neredeyse her zaman [L] ile birlikte kullanmak
+istersiniz (yani [R,L] kullanın); çünkü [R] bayraÄı tek baÅına
+URI'nin önüne http://bukonak[:buport] ekler ancak bunu
+kural kümesindeki bir sonraki kurala geçirir ve bu da çoÄu zaman
+'İstekte Geçersiz URI' uyarılarına neden olabilir.
+
Not: httpd yalnızca HTTP belirtiminde bulunan durum kodlarını +destekler. Tanınmayan bir durum kodu kullanmak 500 hatasına ve hata +günlüÄü mesajına neden olacaktır.
+ +[S] bayraÄı, çalıÅtırmak istemediÄiniz kuralları atlamak için
+kullanılır. Atlama bayraÄının sözdizimi [S=N]'dir; burada
+N atlanacak kural sayısını belirtir (goto deyimi olarak düÅünülebilir. AÅaÄıdaki örnekte,
+
Bu teknik yararlıdır; çünkü bir RewriteCond'un birkaç
+RewriteRule için geçerli olmasını istiyorsanız, olası
+bir teknik bu koÅulları olumsuzlamak ve [Skip] bayraÄıyla bir
+RewriteRule eklemektir. Bunu, sözde if-then-else
+yapıları oluÅturmak için kullanabilirsiniz: then yan tümcesinin son
+kuralı skip=N olur; burada N, else yan tümcesindeki
+kural sayısıdır:
Bu tür yapılandırmayı, bunun yerine
Elde edilen yanıtın gönderileceÄi MIME türünü ayarlar. Bu,
+
ÃrneÄin, Perl kaynak kodunu belirli bir Åekilde istendiÄinde düz +metin olarak sunmak için aÅaÄıdaki tekniÄi kullanabilirsiniz:
+ +Veya dosya uzantısı olmayan jpeg resimleri üreten bir kameranız +varsa, bu resimlerin dosya adlarına bakarak doÄru MIME türüyle +sunulmasını zorlayabilirsiniz:
+ +Bunun önemsiz bir örnek olduÄunu ve bunun yerine
+Dizin baÅına baÄlamda kullanılıyorsa, - (tire) kullanın; aksi takdirde dahili yeniden
+iÅleme (sonraki L bayraÄı bu baÄlamda
Yazılmakta olan HTTP isteÄinde kodlanmıŠbir soru iÅareti + '%3f' varsa ve yeniden yazılmıŠsonucun deÄiÅtirmesinde '?' varsa, + yeniden yazmanın devam etmesine izin vermek için bu bayraÄın + ayarlanması gereklidir. Bu, kodlanmıŠsoru iÅaretinin yakalanması + ve yeniden deÄiÅtirilmesinden yararlanan kötü niyetli bir URL'ye + karÅı koruma saÄlar.
+Sunucu kapsamlı deÄiÅtirmeler bir deÄiÅken veya geri baÅvuru + ile baÅlayıp bir dosya sistemi yoluna çözümlendiÄinde bu bayraÄın + ayarlanması gereklidir. Bu deÄiÅtirmeler belge kökü ile + öneklenmez. Bu, geniÅletilmiÅ deÄiÅtirmenin beklenmeyen bir dosya + sistemi konumuna eÅlenmesine neden olan kötü niyetli bir URL'ye + karÅı koruma saÄlar.
+ +Bu bayraÄın ayarlanması, Windows UNC yollarında kullanıldıÄı + gibi birden fazla baÅtaki eÄik çizginin birleÅtirilmesini engeller. + Kural deÄiÅtirmesi birden fazla birebir eÄik çizgi ile + baÅladıÄında bayrak gerekli deÄildir.
+ +æ¬ææ¡£è®¨è®ºäº
æ¯ä¸ªæ å¿ï¼é¤å°æ°ä¾å¤ï¼é½æä¸ä¸ªç¼©åå½¢å¼ï¼å¦ COï¼
+以åä¸ä¸ªè¾é¿çå½¢å¼ï¼å¦ cookieãè½ç¶æå¸¸ç¨çæ¯ç¼©åå½¢å¼ï¼
+ä½å»ºè®®ä½ çæé¿å½¢å¼ï¼ä»¥ä¾¿è®°ä½æ¯ä¸ªæ å¿çä½ç¨ã
+æäºæ å¿æ¥åä¸ä¸ªæå¤ä¸ªåæ°ãæ å¿ä¸åºå大å°åã
ä¿®æ¹ä¸è¯·æ±å ³èçå æ°æ®çæ å¿ï¼T=ãH=ãE=ï¼å¨ç®å½çº§å htaccess +ä¸ä¸æä¸ï¼å½å¨åä¸è½®éåå¤ç䏿§è¡äºæ¿æ¢ï¼é '-'ï¼æ¶ä¸ä¼çæã +
+ +ä¸é¢éä¸ä»ç»æ¯ä¸ªå¯ç¨çæ å¿ï¼å¹¶ç»åºä½¿ç¨ç¤ºä¾ã
+[B] æ å¿æç¤º
æå ³ç±»ä¼¼çæå¡å¨åé转ä¹ï¼è¯·åé + "escape" æ å°å½æ°
+ + +ç»å®æç´¢è¯ 'x & y/z'ï¼æµè§å¨ä¼å°å
¶ç¼ç 为
+'x%20%26%20y%2Fz'ï¼ååºè¯·æ± 'search/x%20%26%20y%2Fz'ãä¸ä½¿ç¨ B
+æ å¿æ¶ï¼æ¤éåè§åå°æ å°ä¸º 'search.php?term=x & y/z'ï¼
+è¿ä¸æ¯ä¸ä¸ªææç URLï¼å æ¤ä¼è¢«ç¼ç 为
+search.php?term=x%20&y%2Fz=ï¼è¿ä¸æ¯é¢æçç»æã
å¨åä¸è§åä¸è®¾ç½® B æ å¿åï¼åæ°ä¼å¨ä¼ éå°è¾åº URL ä¹åéæ°ç¼ç ï¼
+ä»èæ£ç¡®æ å°å°
+/search.php?term=x%20%26%20y%2Fzã
请注æï¼ä½ å¯è½è¿éè¦å° On
+æè½ä½¿æ¤ç¹å®ç¤ºä¾æ£å¸¸å·¥ä½ï¼å 为 httpd ä¸å
许 URL ä¸å
å«ç¼ç çææ ï¼
+妿åç°ç¼ç ææ åè¿å 404ã
å¨ä»£çåºæ¯ä¸ï¼è¿ç§è½¬ä¹å°¤å ¶å¿ è¦ï¼ +å 为åç«¯å¦ææ¶å°æªè½¬ä¹ç URL å¯è½ä¼åºéã
+ +æ¤æ å¿çæ¿ä»£æ¹æ¡æ¯ä½¿ç¨
å¨ 2.4.26 åæ´é«çæ¬ä¸ï¼ä½ å¯ä»¥éè¿ååºå符æ¥éå¶ååå¼ç¨ä¸è¦è½¬ä¹çç¹å®å符ï¼
+[B=#?;]ãæ³¨æï¼ç©ºæ ¼å符å¯ä»¥å
å«å¨è¦è½¬ä¹çå符å表ä¸ï¼
+ä½ä½ å¿
é¡»å¼ç¨
è¦éå¶ä»¥è¿ç§æ¹å¼è½¬ä¹çå符ï¼è¯·åé #flag_bne + å #flag_bctls
+[BNP] æ å¿æç¤º
æ¤æ å¿å¨ 2.4.26 åæ´é«çæ¬ä¸å¯ç¨ã
+[BCTLS] æ å¿ç±»ä¼¼äº [B] æ å¿ï¼ä½åªè½¬ä¹æ§å¶å符åç©ºæ ¼å符ã +è¿ä¸æªç¼ç å¤å¶å°æ¥è¯¢å符串æ¶è¢«æç»çå符éç¸åã +
+ +æ¤æ å¿å¨ 2.5.1 åæ´é«çæ¬ä¸å¯ç¨ã
+ +[BNE=...] ä¸çå符å表被è§ä¸º [B] æ [BCTLS] æ å¿çæé¤é¡¹ã +ååºçå符å°ä¸ä¼è¢«è½¬ä¹ã +
+ +æ¤æ å¿å¨ 2.5.1 åæ´é«çæ¬ä¸å¯ç¨ã
+[C] æ [chain] æ å¿è¡¨ç¤ºè¯¥
[CO] æ [cookie] æ å¿å
è®¸ä½ å¨ç¹å®ç
+
该æ å¿ç宿´è¯æ³ï¼å æ¬ææå±æ§ï¼å¦ä¸ï¼
+ +å¦æä»»ä½ cookie åæ®µä¸éè¦ä½¿ç¨åé¢é ':' åç¬¦ï¼ +å¯ä»¥ä½¿ç¨æ¿ä»£è¯æ³ãè¦éæ©æ¿ä»£è¯æ³ï¼cookie ç "Name" +ååºå ';' å符ï¼å段åé符ä¹åºæå®ä¸º ';'ã
+ +ä½ å¿ é¡»å£°æ cookie çåç§°ãå¼ååæè½è®¾ç½® cookieã
+ +www.example.comï¼ä¹å¯ä»¥æ¯ååï¼
+å¦ .example.comãå®å¿
é¡»è³å°å
å«ä¸¤ä¸ªç±ç¹åéçé¨åã
+ä¹å°±æ¯è¯´ï¼ä¸è½ä»
为 .com æ .netã
+cookie å®å
¨æ¨¡åç¦æ¢è¿ç±» cookieãä½ è¿å¯ä»¥éæ©è®¾ç½®ä»¥ä¸å¼ï¼
+ +/customers/ æ /files/download/ã/ââ峿´ä¸ªç½ç«ãsecureãtrue æ 1ï¼
+å cookie åªå
许éè¿å®å
¨ï¼httpsï¼è¿æ¥ä¼ è¾ãHttpOnlyãtrue æ
+1ï¼cookie å°è®¾ç½® HttpOnly æ è®°ï¼
+è¿æå³ç卿¯ææ¤åè½çæµè§å¨ä¸ï¼JavaScript ä»£ç æ æ³è®¿é®è¯¥ cookieãfalse æ 0 以å¤çä»»ä½å¼ï¼
+SameSite 屿§å°è¢«è®¾ç½®ä¸ºæå®çå¼ã
+å
¸åå¼ä¸º NoneãLax å Strictã
+å¨ 2.5.1 åæ´é«çæ¬ä¸å¯ç¨ã请ç以ä¸ç¤ºä¾ï¼
+ +卿¤ç¤ºä¾ä¸ï¼è§åä¸ä¼éå请æ±ã"-" éåç®æ åè¯
+.example.com åä¸çææä¸»æºææã
+å®è¢«è®¾ç½®ä¸ºå¨ 1440 åéï¼24 å°æ¶ï¼åè¿æï¼å¹¶å¯¹ææ URI è¿åã
DPI æ å¿ä½¿éåå URI ç PATH_INFO é¨å被丢å¼ã
+æ¤æ å¿å¨ 2.2.12 åæ´é«çæ¬ä¸å¯ç¨ã
+å¨ç®å½çº§ä¸ä¸æä¸ï¼æ¯ä¸ª
å½å URI å¯ä»¥æ¯å®¢æ·ç«¯æå请æ±ç URIã
+
ç¸æ¯ä¹ä¸ï¼å¨æ¯æ¡è§åä¹åéå å° URI ç PATH_INFO
+ä»
åæ æ¬è½®
å¨ä»»ä½æ¿æ¢ä¸ä½¿ç¨æ¤æ å¿ï¼å¦æä»æ¤è¯·æ±å
åæ å°å°æä»¶ç³»ç»æäº§çç
+PATH_INFO ä¸éè¦çè¯ãæ¤æ å¿ä¼æ°¸ä¹
å¿è®°æ¬è½®
+
ä½¿ç¨ [E] æ [env] æ å¿ï¼ä½ å¯ä»¥è®¾ç½®ç¯å¢åéçå¼ã +请注æï¼æäºç¯å¢åéå¯è½å¨è§åè¿è¡åè¢«è®¾ç½®ï¼ +ä»èåæ¶ä½ æè®¾ç½®çå¼ãæå ³ç¯å¢åé工使¹å¼çæ´å¤è¯¦ç»ä¿¡æ¯ï¼ +请åé ç¯å¢åéææ¡£ã
+ +æ¤æ å¿ç宿´è¯æ³ä¸ºï¼
+ +VAL å¯ä»¥å
å«ä¼è¢«å±å¼çååå¼ç¨ï¼$N æ
+%Nï¼ã
使ç¨ç¼©åå½¢å¼
+ +ä½ å¯ä»¥å°å为 VAR çç¯å¢åé设置为空å¼ã
使ç¨ä»¥ä¸å½¢å¼
+ +å¯ä»¥åæ¶è®¾ç½®å
å设置çå为 VAR çç¯å¢åéã
ç¯å¢åééåå¯ä»¥å¨å¤ç§ä¸ä¸æä¸ä½¿ç¨ï¼ +å æ¬ CGI ç¨åºãå ¶ä» RewriteRule æä»¤æ CustomLog æä»¤ã
+ +以ä¸ç¤ºä¾å¨è¯·æ±ç URI æ¯å¾åæä»¶æ¶å°å为 'image' çç¯å¢åé设置为 '1'ã +ç¶åï¼è¯¥ç¯å¢åéç¨äºå°è¿äºè¯·æ±ä»è®¿é®æ¥å¿ä¸æé¤ã
+ +请注æï¼ä½¿ç¨
ä½¿ç¨ [END] æ å¿ä¸ä» ä¼ç»æ¢å½åè½®çéåå¤çï¼å¦ [L]ï¼ï¼ +è¿ä¼é»æ¢å¨ç®å½çº§ï¼htaccessï¼ä¸ä¸æä¸åçä»»ä½åç»çéåå¤çã
+ +è¿ä¸éç¨äºç±å¤é¨éå®å产ççæ°è¯·æ±ã
+ä½¿ç¨ [F] æ å¿ä¼å¯¼è´æå¡å¨å客æ·ç«¯è¿å 403 Forbidden ç¶æç ã
+è½ç¶ä½¿ç¨
以ä¸è§åå°ç¦æ¢ä»ä½ çæå¡å¨ä¸è½½ .exe æä»¶ã
æ¤ç¤ºä¾ä½¿ç¨ "-" è¯æ³ä½ä¸ºéåç®æ ï¼è¿æå³ç请æ±ç URI ä¸ä¼è¢«ä¿®æ¹ã +å¦æä½ æç®ç¦æ¢è¯·æ±ï¼å°±æ²¡æçç±å°å ¶éåå°å¦ä¸ä¸ª URIã
+ +ä½¿ç¨ [F] æ¶ï¼ä¼éå« [L]ââä¹å°±æ¯è¯´ï¼ååºä¼ç«å³è¿åï¼ +ä¸ä¼åè¯ä¼°åç»è§åã
+ +[G] æ å¿å¼ºå¶æå¡å¨å¨ååºä¸è¿å 410 Gone ç¶æã +è¿è¡¨ç¤ºèµæºæ¾ç»å¯ç¨ï¼ä½ç°å¨å·²ä¸åå¯ç¨ã
+ +ä¸ [F] æ å¿ä¸æ ·ï¼ä½¿ç¨ [G] æ å¿æ¶éå¸¸ä½¿ç¨ "-" è¯æ³ä½ä¸ºéåç®æ ï¼
+ +ä½¿ç¨ [G] æ¶ï¼ä¼éå« [L]ââä¹å°±æ¯è¯´ï¼ååºä¼ç«å³è¿åï¼ +ä¸ä¼åè¯ä¼°åç»è§åã
+ +强å¶ä½¿ç¨æå®çå¤ç卿¥å¤çç»æè¯·æ±ãä¾å¦ï¼ +å¯ä»¥ä½¿ç¨æ¤æ å¿å¼ºå¶æææ²¡ææä»¶æ©å±åçæä»¶ç± php å¤çå¨è§£æï¼
+ +
+ä¸é¢çæ£å表达å¼ââ!\.ââå°å¹é
ä»»ä½ä¸å
å«åé¢é
+. å符ç请æ±ã
+
è¿ä¹å¯ä»¥ç¨äºæ ¹æ®æäºæ¡ä»¶å¼ºå¶ä½¿ç¨å¤çå¨ãä¾å¦ï¼
+以ä¸ä»£ç çæ®µå¨æå¡å¨çº§ä¸ä¸æä¸ä½¿ç¨æ¶ï¼
+å
许以 .phps æ©å±å请æ±ç .php
+æä»¶ç± mod_php æ¾ç¤ºå
¶æºä»£ç ï¼
ä¸é¢çæ£å表达å¼ââ^(/source/.+\.php)s$ââå°å¹é
ä»»ä½ä»¥
+/source/ å¼å¤´ï¼åè· 1 个æå¤ä¸ªå符ï¼
+ååè· .phps ç请æ±ãååå¼ç¨
+$1 å¼ç¨æ£åè¡¨è¾¾å¼æ¬å·å
æè·çå¹é
å
容ã
[L] æ å¿ä½¿ last
+å½ä»¤æ C ä¸ç break å½ä»¤ãä½¿ç¨æ¤æ å¿è¡¨ç¤ºå½åè§ååºç«å³åºç¨ï¼
+èä¸èèåç»è§åã
å¦æä½ å¨ .htaccess æä»¶æ
+.htaccess æä»¶æ
+
å æ¤ï¼å¦æä½ å¨è¿äºä¸ä¸æä¸ä½¿ç¨
+
æ¿ä»£æ å¿ [END] å¯ç¨äºç»æ¢å½åè½®çéåå¤çï¼ +并黿¢å¨ç®å½çº§ï¼htaccessï¼ä¸ä¸æä¸åçä»»ä½åç»çéåå¤çã +è¿ä¸éç¨äºç±å¤é¨éå®å产ççæ°è¯·æ±ã
+ +æ¤å¤ç»åºç示ä¾å°æææè¯·æ±éåå° index.phpï¼
+å°åå§è¯·æ±ä½ä¸ºæ¥è¯¢åç¬¦ä¸²åæ°ä¼ éç» index.phpï¼
+ä½ index.phpï¼
+å
+[N] æ å¿ä½¿è§åéä»å¤´å¼å§éæ°è¿è¡ï¼ä½¿ç¨å°ç®å为æ¢çè§åéç»æä½ä¸ºèµ·ç¹ã +请æå ¶è°¨æ å°ä½¿ç¨ï¼å 为å®å¯è½å¯¼è´å¾ªç¯ã +
++ä¾å¦ï¼å¦æä½ æ³å¨è¯·æ±ä¸é夿¿æ¢æä¸ªå符串æåæ¯ï¼å¯ä»¥ä½¿ç¨ [Next] æ å¿ã +ä¸é¢ç示ä¾å°è¯·æ±ä¸ææç A æ¿æ¢ä¸º Bï¼å¹¶æç»æ§è¡ç´å°æ²¡ææ´å¤ç A éè¦æ¿æ¢ã +
+ä½ å¯ä»¥å°æ¤çä½ while 循ç¯ï¼å½æ¤æ¨¡å¼ä»ç¶å¹é
æ¶
+ï¼å³ URI ä»ç¶å
å« Aï¼ï¼æ§è¡æ¤æ¿æ¢
+ï¼å³å° A æ¿æ¢ä¸º Bï¼ã
å¨ 2.5.0 åæ´é«çæ¬ä¸ï¼æ¤æ¨¡åå¨ 10,000 次è¿ä»£åè¿åéè¯¯ï¼ +以鲿¢æå¤å¾ªç¯ãå¯ä»¥éè¿å N æ å¿æ·»å åæ°æ¥æå®æ¿ä»£çæå¤§è¿ä»£æ¬¡æ°ã
+ä½¿ç¨ [NC] æ å¿ä½¿
å¨ä¸é¢ç示ä¾ä¸ï¼ä»»ä½å¾åæä»¶è¯·æ±å°è¢«ä»£çå°ä½ çä¸ç¨å¾åæå¡å¨ã
+å¹é
ä¸åºå大å°åï¼å æ¤ .jpg å .JPG
+æä»¶é½å¯ä»¥æ¥åã
é»è®¤æ
åµä¸ï¼å½
A-Zãa-zã
+ 0-9$-_.+!*'(),:;@&=/~ä¾å¦ï¼# å°è¢«è½¬æ¢ä¸º %23ï¼
+? 转æ¢ä¸º %3Fã%
+å符ä¹ä¼è¢«è½¬ä¹ï¼ä¸º %25ï¼ï¼è¿æå³çæ¿æ¢ä¸å·²æçç¾åæ¯ç¼ç
+å°è¢«åéç¼ç ã
ä½¿ç¨ [NE] æ å¿å¯é²æ¢æ¤è½¬ä¹ï¼å
许
+# å ? çå符ä¸ç»ä¿®æ¹å°ä¼ éå°éå®å URLã
+ä¸é¢ç示ä¾å° /anchor/xyz éå®åå°
+/bigpage.html#xyzãçç¥ [NE] å°å¯¼è´ #
+被转æ¢ä¸ºå
¶åå
è¿å¶çä»·ç© %23ï¼
+ä»èå¯¼è´ 404 Not Found é误ã
+
ä½¿ç¨ [NS] æ å¿å¯é²æ¢è§å被ç¨äºå请æ±ãä¾å¦ï¼
+ä½¿ç¨ SSIï¼æå¡å¨ç«¯å
å«ï¼å
å«ç页颿¯å请æ±ï¼
+ä½ å¯è½å¸æé¿å
å¨è¿äºå请æ±ä¸åçéåãæ¤å¤ï¼
+å½ index.html æä»¶ï¼çä¿¡æ¯æ¶ï¼
+è¿æ¯ä¸ä¸ªå
é¨å请æ±ï¼ä½ é叏叿é¿å
卿¤ç±»å请æ±ä¸è¿è¡éåã
+å¨å请æ±ä¸ï¼åºç¨å®æ´çè§åé并䏿»æ¯æç¨çï¼çè³å¯è½å¯¼è´é误ã
+ä½¿ç¨æ¤æ å¿æé¤æé®é¢çè§åã
è¦å³å®æ¯å¦ä½¿ç¨æ¤è§åï¼å¦æä½ ä½¿ç¨ CGI èæ¬ä¸º URL æ·»å åç¼ï¼ +强å¶å®ä»¬ç± CGI èæ¬å¤çï¼é£ä¹å¨å请æ±ä¸ä½ å¾å¯è½ä¼éå°é®é¢ +ï¼ææ¾èçæ§è½å¼éï¼ãå¨è¿äºæ åµä¸ï¼è¯·ä½¿ç¨æ¤æ å¿ã
+ ++ä½ä¸º HTML 页é¢ä¸é¨åå è½½çå¾åãJavaScript æä»¶æ CSS æä»¶ä¸æ¯å请æ±ââ +æµè§å¨å°å®ä»¬ä½ä¸ºåç¬ç HTTP 请æ±ååºã +
+ä½¿ç¨ [P] æ å¿ä½¿è¯·æ±ç±
ä½¿ç¨ [P] æ å¿éå« [L]ââä¹å°±æ¯è¯´ï¼è¯·æ±ä¼ç«å³éè¿ä»£çæ¨éï¼ +åç»è§åå°ä¸è¢«èèã
+ +
+ä½ å¿
é¡»ç¡®ä¿æ¿æ¢åç¬¦ä¸²æ¯ææç URI
+ï¼é常以 http://hostname å¼å¤´ï¼ï¼
+å¯ä»¥ç±
æé è§åçç®æ URL æ¶è¦å°å¿ï¼èèå 许客æ·ç«¯å½±åä½ çæå¡å¨å°ä½ä¸ºä»£çç +URL éçå®å ¨å½±åãç¡®ä¿ URL çæ¹æ¡å主æºåé¨åæ¯åºå®çï¼ +æè ä¸å 许客æ·ç«¯è¿åº¦å½±åã
+ä½¿ç¨æ¤æ å¿ä¼è§¦å
è¦ä½¿ç¨æä¹
è¿æ¥ï¼ä½ éè¦è³å°ä¸ºç®æ URL çæ¹æ¡å主æºé¨å设置ä¸ä¸ª
+
å¦æä½¿ç¨
注æï¼å¿
é¡»å¯ç¨
+RewriteRule ä¸çç®æ ï¼ææ¿æ¢å符串ï¼é»è®¤è¢«åå®ä¸ºæä»¶è·¯å¾ã
+ä½¿ç¨ [PT] æ å¿ä½¿å
¶è¢«è§ä¸º URIãä¹å°±æ¯è¯´ï¼
+ä½¿ç¨ [PT] æ å¿ä¼ä½¿
+ä¾å¦ï¼å¦æä½ æä¸ä¸ª
+å¨è¿ç§æ åµä¸çç¥ [PT] æ å¿ä¼å¯¼è´ Alias 被忽ç¥ï¼ +ä»èè¿å"æä»¶æªæ¾å°"é误ã +
+ +PT æ å¿éå« L æ å¿ï¼
+éåå°åæ¢ä»¥ä¾¿å°è¯·æ±ä¼ éç»ä¸ä¸ä¸ªå¤çé¶æ®µã
请注æï¼PT æ å¿å¨ç®å½çº§ä¸ä¸æä¸æ¯éå«çï¼
+ä¾å¦ .htaccess æä»¶ä¸ãè§é¿æ¤è¡ä¸ºçå¯ä¸æ¹æ³æ¯éå为
+-ã
+彿¿æ¢ URI å
嫿¥è¯¢å符串æ¶ï¼
+
请ç以ä¸è§åï¼
+ +ä½¿ç¨ [QSA] æ å¿ï¼å¯¹ /pages/123?one=two ç请æ±å°è¢«æ å°å°
+/page.php?page=123&one=twoãä¸ä½¿ç¨ [QSA]
+æ å¿æ¶ï¼åä¸è¯·æ±å°è¢«æ å°å°
+/page.php?page=123ââä¹å°±æ¯è¯´ï¼ç°æçæ¥è¯¢å符串å°è¢«ä¸¢å¼ã
+
+å½è¯·æ±ç URI å
嫿¥è¯¢å符串èç®æ URI ä¸å
嫿¶ï¼
+
æ¤æ å¿å¨ 2.4.0 åæ´é«çæ¬ä¸å¯ç¨ã
+ ++åæ¶ä½¿ç¨ [QSD] å [QSA] å°å¯¼è´ [QSD] ä¼å ã +
+ +
+å¦æç®æ URI ææ¥è¯¢å符串ï¼å°æ§è¡é»è®¤è¡ä¸ºââ
+ä¹å°±æ¯è¯´ï¼åå§æ¥è¯¢å符串å°è¢«ä¸¢å¼å¹¶æ¿æ¢ä¸º RewriteRule
+ç®æ URI ä¸çæ¥è¯¢å符串ã
+
+é»è®¤æ
åµä¸ï¼æ¿æ¢ä¸ç¬¬ä¸ä¸ªï¼æå·¦è¾¹çï¼é®å·å°è·¯å¾ä¸æ¥è¯¢å符串åå¼ã
+ä½¿ç¨ [QSL] æ å¿æç¤º
+
+彿 å°å°æä»¶åä¸å å«åé¢éé®å·çæä»¶æ¶ï¼è¿å¾æç¨ã +å¦ææ¿æ¢ä¸æªä½¿ç¨æ¥è¯¢å符串ï¼å¯ä»¥ç»åæ¤æ å¿å¨æ¿æ¢åéå ä¸ä¸ªé®å·ã
+ +æ¤æ å¿å¨ 2.4.19 åæ´é«çæ¬ä¸å¯ç¨ã
+ +
+ä½¿ç¨ [R] æ å¿ä¼å¯¼è´åæµè§å¨ååº HTTP éå®åã
+妿æå®äºå®å
¨éå®ç URLï¼å³å
å« http://servername/ï¼ï¼
+åå°éå®åå°è¯¥ä½ç½®ãå¦åï¼å°ä½¿ç¨å½ååè®®ãæå¡å¨åç§°å端å£å·
+æ¥çæä¸éå®åä¸èµ·åéç URLã
+
+å¯ä»¥ä½¿ç¨ [R=305] è¯æ³æå®ä»»ä½ææç HTTP ååºç¶æç ï¼
+å¦ææªæå®åé»è®¤ä½¿ç¨ 302 ç¶æç ãæå®çç¶æç ä¸ä¸å®å¿
é¡»æ¯éå®åï¼3xxï¼ç¶æç ã
+使¯ï¼å¦æç¶æç è¶
åºéå®åèå´ï¼300-399ï¼ï¼æ¿æ¢å符串å°è¢«å®å
¨ä¸¢å¼ï¼
+éåå°å使ç¨äº L 䏿 ·åæ¢ã
é¤äºååºç¶æç å¤ï¼ä½ è¿å¯ä»¥ä½¿ç¨å®ä»¬ç符å·åç§°æå®éå®åç¶æï¼
+tempï¼é»è®¤ï¼ãpermanent æ seeotherã
+ä½ å 乿»æ¯å¸æå° [R] ä¸ [L] ç»å使ç¨ï¼å³ä½¿ç¨ [R,L]ï¼ï¼
+å 为 [R] æ å¿æ¬èº«åªæ¯å¨ URI å颿·»å
+http://thishost[:thisport]ï¼ç¶åå°å
¶ä¼ éç»è§åéä¸çä¸ä¸æ¡è§åï¼
+è¿é常ä¼å¯¼è´"请æ±ä¸ç URI æ æ"è¦åã
+
注æï¼httpd ä» æ¯æ HTTP è§èä¸å å«çç¶æç ã +ä½¿ç¨æ æ³è¯å«çç¶æç å°å¯¼è´ 500 é误åé误æ¥å¿æ¶æ¯ã
+ +[S] æ å¿ç¨äºè·³è¿ä½ 䏿³è¿è¡çè§åã
+è·³è¿æ å¿çè¯æ³ä¸º [S=N]ï¼å
¶ä¸ N
+表示è¦è·³è¿çè§åæ°ï¼åææ¯
+goto è¯å¥ã
+å¨ä»¥ä¸ç¤ºä¾ä¸ï¼æä»¬åªæ³å¨è¯·æ±ç URI
+ä¸å¯¹åºå®é
æä»¶æ¶æè¿è¡
æ¤ææ¯å¾æç¨ï¼å 为 RewriteCond åºç¨äºå¤ä¸ª
+RewriteRuleï¼ä¸ç§å¯è½çææ¯æ¯å¦å®è¿äºæ¡ä»¶å¹¶æ·»å ä¸ä¸ªå¸¦æ
+[Skip] æ å¿ç RewriteRuleãä½ å¯ä»¥ç¨æ¤æé 伪
+if-then-else ç»æï¼then åå¥çæå䏿¡è§åå为
+skip=Nï¼å
¶ä¸ N æ¯ else åå¥ä¸çè§åæ°ï¼
使ç¨
设置ååºå°ä»¥ä½ç§ MIME ç±»ååéãè¿ä¸
ä¾å¦ï¼ä½ å¯ä»¥ä½¿ç¨ä»¥ä¸ææ¯å¨ä»¥ç¹å®æ¹å¼è¯·æ±æ¶å° Perl æºä»£ç ä½ä¸ºçº¯ææ¬æä¾ï¼
+ +æè ï¼å¦æä½ æä¸å°ç¸æºçææ²¡ææä»¶æ©å±åç jpeg å¾åï¼ +ä½ å¯ä»¥æ ¹æ®æä»¶å强å¶ä½¿ç¨æ£ç¡®ç MIME ç±»åæ¥æä¾è¿äºå¾åï¼
+ +请注æï¼è¿æ¯ä¸ä¸ªç®åç示ä¾ï¼ä½¿ç¨
+
+妿å¨ç®å½çº§ä¸ä¸æä¸ä½¿ç¨ï¼å¨æ´è½® -ï¼ç ´æå·ï¼ä½ä¸ºæ¿æ¢ï¼
+å¦åä½¿ç¨æ¤æ å¿è®¾ç½®ç MIME ç±»åå°ç±äºå
é¨éæ°å¤ç
+ï¼å
æ¬åç»è½®æ¬¡ç L æ å¿å¨æ¤ä¸ä¸æä¸å¯ç¨äºç»æå½åè½®ç
+
å¦æè¢«éåç HTTP 请æ±å å«ç¼ç çé®å· '%3f'ï¼ + ä¸éåç»æçæ¿æ¢ä¸å å« '?'ï¼åéè¦è®¾ç½®æ¤æ å¿æè½å 许éåç»§ç»ã + è¿å¯ä»¥é²æ¢æ¶æ URL å©ç¨æè·åéæ°æ¿æ¢ç¼ç çé®å·ã
+彿å¡å¨èå´å çæ¿æ¢ä»¥åéæååå¼ç¨å¼å¤´å¹¶è§£æä¸ºæä»¶ç³»ç»è·¯å¾æ¶ï¼ + éè¦è®¾ç½®æ¤æ å¿ãè¿äºæ¿æ¢ä¸ä¼ä»¥ææ¡£æ ¹ç®å½ä¸ºåç¼ã + è¿å¯ä»¥é²æ¢æ¶æ URL 导è´å±å¼çæ¿æ¢æ å°å°æå¤çæä»¶ç³»ç»ä½ç½®ã
+ +è®¾ç½®æ¤æ å¿å¯é²æ¢åå¹¶å¤ä¸ªåå¯¼ææ ï¼ + å¦ Windows UNC è·¯å¾ä¸ä½¿ç¨ç飿 ·ãå½è§åæ¿æ¢ä»¥å¤ä¸ªåé¢éææ å¼å¤´æ¶ï¼ + ä¸éè¦æ¤æ å¿ã
+ +Dieses Dokument ergänzt die
Este documento complementa la
ãã®ããã¥ã¡ã³ãã¯
ì´ ë¬¸ìë
Bu belge,
æ¬ææ¡£æ¯
Es unterstützt eine unbegrenzte Anzahl von Regeln und eine + unbegrenzte Anzahl angehängter Regelbedingungen für jede Regel, + um einen wirklich flexiblen und leistungsfähigen Mechanismus zur + URL-Manipulation bereitzustellen. Die URL-Manipulationen können + von verschiedenen Tests abhängen: Servervariablen, Umgebungsvariablen, + HTTP-Header, Zeitstempel, externe Datenbankabfragen und verschiedene + andere externe Programme oder Handler können verwendet werden, um + eine granulare URL-Zuordnung zu erreichen.
+ +Umschreibungsregeln können auf vollständige URLs angewendet werden,
+ einschlieÃlich des Pfadinfo- und Query-String-Teils, und können im
+ Server-Kontext (httpd.conf), im VirtualHost-Kontext
+ (.htaccess-Dateien und
+
Da
Soporta un número ilimitado de reglas y un + número ilimitado de condiciones de regla adjuntas para cada regla, para + proporcionar un mecanismo de manipulación de URLs realmente flexible y potente. + Las manipulaciones de URL pueden depender de varias pruebas: + variables del servidor, variables de entorno, cabeceras HTTP, + marcas de tiempo, consultas a bases de datos externas, y varios otros + programas externos o manejadores, pueden usarse para lograr una coincidencia + de URL granular.
+ +Las reglas de reescritura pueden operar sobre las URLs completas, incluyendo las partes
+ de path-info y cadena de consulta, y pueden usarse en contexto per-servidor
+ (httpd.conf), contexto per-virtualhost (bloques .htaccess y bloques
Dado que
Il fournit un - mécanisme de manipulation d'URL particulièrement souple et - puissant en supportant un nombre illimité de règles et de - conditions attachées à chaque règle. Les manipulations d'URLs - peuvent dépendre de tests variés : les URLs peuvent - être finement caractérisées en fonction de variables du serveur, - de variables d'environnement, d'en-têtes HTTP, de repères - temporels, de recherches dans des bases de données - externes, ou même de requêtes vers des bases de données externes - et de différents gestionnaires ou programmes externes.
+ mécanisme de manipulation d'URL particulièrement souple et + puissant en supportant un nombre illimité de règles et de + conditions attachées à chaque règle. Les manipulations d'URLs + peuvent dépendre de tests variés : les URLs peuvent + être finement caractérisées en fonction de variables du serveur, + de variables d'environnement, d'en-têtes HTTP, de repères + temporels, de recherches dans des bases de données + externes, ou même de requêtes vers des bases de données externes + et de différents gestionnaires ou programmes externes. -Les règles de réécriture peuvent agir sur l'ensemble des URLs (la partie chemin - et la chaîne de paramètres) et peuvent être utilisées dans le contexte du serveur principal +
Les règles de réécriture peuvent agir sur l'ensemble des URLs (la partie chemin
+ et la chaîne de paramètres) et peuvent être utilisées dans le contexte du serveur principal
(httpd.conf), mais aussi dans le contexte des
serveurs virtuels (sections .htaccess et blocs
- <Directory>. Le résultat
- réécrit peut conduire vers d'autres règles à un
- traitement secondaire interne, une redirection vers une requête
- externe ou même l'envoi vers un serveur mandataire, en fonction
+ répertoires (fichiers .htaccess et blocs
+
åã«ã¼ã«ã«å¯¾ãã¦ç¡å¶éã®æ°ã®ã«ã¼ã«ã¨ç¡å¶éã®æ°ã® + ä»éããã«ã¼ã«æ¡ä»¶ããµãã¼ããã¦ãããéå¸¸ã«æè»ã§å¼·å㪠URL æä½ + ã¡ã«ããºã ãæä¾ãã¾ããURL æä½ã¯ãã¾ãã¾ãªãã¹ãã«ä¾åã§ãã¾ã: + ãµã¼ã夿°ãç°å¢å¤æ°ãHTTP ããããã¿ã¤ã ã¹ã¿ã³ããå¤é¨ãã¼ã¿ãã¼ã¹ + æ¤ç´¢ãããã³ãã¾ãã¾ãªä»ã®å¤é¨ããã°ã©ã ããã³ãã©ã使ç¨ãã¦ã + ããç´°ãã URL ãããã³ã°ãå®ç¾ã§ãã¾ãã
+ +æ¸ãæãã«ã¼ã«ã¯ãå®å
¨ãª URL (ãã¹æ
å ±ã¨ã¯ã¨ãªæååé¨åãå«ã)
+ ã«å¯¾ãã¦åä½ã§ãããµã¼ãåä½ã®ã³ã³ããã¹ã
+ (httpd.conf)ããã¼ãã£ã«ãã¹ãåä½ã®ã³ã³ããã¹ã
+ (.htaccess ãã¡ã¤ã«ã¨
+
ì´ê²ì 무ì íì ê·ì¹ê³¼ ê° ê·ì¹ì ëí 무ì íì + 첨ë¶ë ê·ì¹ ì¡°ê±´ì ì§ìíì¬ ì ë§ë¡ ì ì°íê³ ê°ë ¥í + URL ì¡°ì ë©ì»¤ëì¦ì ì ê³µí©ëë¤. URL ì¡°ìì ë¤ìí + í ì¤í¸ì ìì¡´í ì ììµëë¤: ìë² ë³ì, íê²½ ë³ì, + HTTP í¤ë, íìì¤í¬í, ì¸ë¶ ë°ì´í°ë² ì´ì¤ ì¡°í ë° + ë¤ìí 기í ì¸ë¶ íë¡ê·¸ë¨ì´ë í¸ë¤ë¬ë¥¼ ì¬ì©íì¬ + ì¸ë°í URL 매ì¹ì ë¬ì±í ì ììµëë¤.
+ +ì¬ìì± ê·ì¹ì ê²½ë¡ ì ë³´ ë° ì¿¼ë¦¬ 문ìì´ ë¶ë¶ì
+ í¬í¨í ì ì²´ URLì ëí´ ìëí ì ìì¼ë©°, ìë²ë³
+ 컨í
ì¤í¸(httpd.conf), ê°ìí¸ì¤í¸ë³
+ 컨í
ì¤í¸(.htaccess íì¼ ë°
+
Dieses Dokument ergänzt die
Das Apache-Modul
Dieses Dokument versucht, ausreichend Hintergrundwissen zu vermitteln, +damit das Folgende verstanden und nicht nur blind kopiert wird. +
+ +Denken Sie daran, dass viele gängige URL-Manipulationsaufgaben nicht
+die volle Leistungsfähigkeit und Komplexität von
Stellen Sie schlieÃlich vor dem Fortfahren sicher, dass Sie die
+Protokollebene von
In diesem Dokument versuchen wir, genügend Regex-Vokabular zu
+vermitteln, um Ihnen den Einstieg zu erleichtern, ohne Sie zu
+überfordern, in der Hoffnung, dass
Die folgenden sind die minimalen Bausteine, die Sie benötigen, um
+reguläre Ausdrücke und
| Zeichen | +Bedeutung | +Beispiel | +
|---|---|---|
. |
+ Stimmt mit jedem einzelnen Zeichen überein | +c.t stimmt mit cat, cot,
+ cut usw. überein |
+
+ |
+ Wiederholt die vorherige Ãbereinstimmung ein oder mehrmals | +a+ stimmt mit a, aa,
+ aaa usw. überein |
+
* |
+ Wiederholt die vorherige Ãbereinstimmung null oder mehrmals | +a* stimmt mit allem überein, womit auch a+
+ übereinstimmt, aber auch mit einem leeren String |
+
? |
+ Macht die Ãbereinstimmung optional | +colou?r stimmt mit color und
+ colour überein |
+
\ |
+ Maskiert das nächste Zeichen | +\. stimmt mit . (Punkt) überein und nicht
+ mit jedem einzelnen Zeichen, wie oben erklärt |
+
^ |
+ Als Anker bezeichnet, stimmt mit dem Anfang des Strings überein | +^a stimmt mit einem String überein, der mit a beginnt |
+
$ |
+ Der andere Anker, stimmt mit dem Ende des Strings überein | +a$ stimmt mit einem String überein, der mit a endet |
+
( ) |
+ Gruppiert mehrere Zeichen zu einer Einheit und erfasst eine + Ãbereinstimmung zur Verwendung als Rückreferenz | +(ab)+ stimmt mit ababab überein - das heiÃt,
+ das + gilt für die Gruppe. Für mehr zu Rückreferenzen
+ siehe unten |
+
[ ] |
+ Eine Zeichenklasse - stimmt mit einem der Zeichen überein | +c[uoa]t stimmt mit cut, cot oder
+ cat überein |
+
[^ ] |
+ Negative Zeichenklasse - stimmt mit jedem nicht angegebenen Zeichen überein | +c[^/]t stimmt mit cat oder c=t überein,
+ aber nicht mit c/t |
In ! vor
+einem regulären Ausdruck verwendet werden, um ihn zu negieren. Das heiÃt,
+ein String gilt nur dann als übereinstimmend, wenn er nicht mit dem Rest
+des Ausdrucks übereinstimmt.
Hier ist eine wichtige Sache zu beachten: Wann immer Sie
+ Klammern in Pattern oder in einem der
+ CondPattern verwenden, werden intern Rückreferenzen
+ erstellt, die mit den Strings $N und %N
+ (siehe unten) verwendet werden können. Diese stehen für die
+ Erstellung des Substitution-Parameters einer
+
Erfassungen in den
Abbildung 1 zeigt, an welche Stellen die Rückreferenzen zur + Expansion übertragen werden und illustriert den Ablauf der + RewriteRule-/RewriteCond-Zuordnung. In den nächsten Kapiteln + werden wir erkunden, wie diese Rückreferenzen verwendet werden, + also machen Sie sich keine Sorgen, wenn es Ihnen zunächst etwas + fremd erscheint. +
+ +
+ 
+ Abbildung 1: Der Rückreferenz-Ablauf durch eine Regel.
+ In diesem Beispiel würde eine Anfrage für /test/1234 in /admin.foo?page=test&id=1234&host=admin.example.com umgewandelt.
+
Eine
Das Pattern ist ein regulärer Ausdruck. +Es wird anfänglich (für die erste Umschreibungsregel oder bis eine Ersetzung +erfolgt) gegen den URL-Pfad der eingehenden Anfrage abgeglichen (der Teil +nach dem Hostnamen, aber vor einem Fragezeichen, das den Beginn eines +Query-Strings anzeigt) oder im Verzeichniskontext gegen den Pfad der +Anfrage relativ zum Verzeichnis, für das die Regel definiert ist. Sobald +eine Ersetzung erfolgt ist, werden die folgenden Regeln gegen den +ersetzten Wert abgeglichen. +
+ +
+ 
+ Abbildung 2: Syntax der RewriteRule-Direktive.
+
Die Substitution kann selbst eines von drei Dingen sein:
+ +Dies bildet eine Anfrage auf einen beliebigen Ort in Ihrem Dateisystem ab,
+ähnlich wie die
Wenn /usr/local/apache2/htdocs gesetzt ist, würde diese Direktive
+Anfragen für http://example.com/games auf den Pfad
+/usr/local/apache2/htdocs/puzzles.html abbilden.
Dies weist den Client an, eine neue Anfrage für die angegebene URL zu +stellen.
+/usr/) im Dateisystem existiert, während dies bei 2 nicht der Fall ist (d.h. es gibt kein /bar/ als Verzeichnis auf der obersten Ebene im Dateisystem).Die Substitution kann auch +Rückreferenzen auf Teile des eingehenden URL-Pfads enthalten, +die vom Pattern erfasst wurden. Betrachten Sie Folgendes:
+Die Variable $1 wird durch den Text ersetzt, der vom
+Ausdruck innerhalb der Klammern im Pattern erfasst wurde.
+Beispielsweise würde eine Anfrage für
+http://example.com/product/r14df/view auf den Pfad
+/var/web/productdb/r14df abgebildet.
Wenn mehr als ein Ausdruck in Klammern vorhanden ist, stehen sie
+in der Reihenfolge in den Variablen $1, $2,
+$3 usw. zur Verfügung.
Das Verhalten einer [NC]-Flags auf GroÃ-/Kleinschreibung
+unempfindlich gemacht werden:
+
Weitere Details zu den verfügbaren Flags, ihren Bedeutungen und +Beispiele finden Sie im Dokument Umschreibungs-Flags.
+ +Eine oder mehrere
+ 
+ Abbildung 3: Syntax der RewriteCond-Direktive
+
Um beispielsweise alle Anfragen von einem bestimmten IP-Bereich an +einen anderen Server zu senden, könnten Sie Folgendes verwenden:
+Wenn mehr als eine
Beachten Sie, dass das Ausrufezeichen eine negative Ãbereinstimmung +angibt, sodass die Regel nur angewendet wird, wenn das Cookie nicht "go" +enthält.
+ +Ãbereinstimmungen in den regulären Ausdrücken der
+%1, %2 usw. verwendet werden. Beispielsweise
+leitet Folgendes die Anfrage abhängig vom für den Zugriff auf die Website
+verwendeten Hostnamen in ein anderes Verzeichnis:
Wenn die Anfrage für http://example.com/foo/bar war,
+dann enthält %1 den Wert example.com und
+$1 den Wert foo/bar.
Die
Umschreibungen werden typischerweise in der Hauptserverkonfiguration
+(auÃerhalb eines .htaccess-Dateien
+auf Kosten zusätzlicher Komplexität durchzuführen. Diese Technik wird
+als verzeichnisbasierte Umschreibung bezeichnet.
Der Hauptunterschied zu serverweiten Umschreibungen besteht darin, dass
+der Pfadpräfix des Verzeichnisses, das die .htaccess-Datei
+enthält, vor dem Abgleich in der
Este documento complementa la
El módulo de Apache
Este documento intenta dar suficiente contexto para que lo que +sigue sea entendido, en lugar de simplemente copiado a ciegas. +
+ +Recuerde que muchas tareas comunes de manipulación de URL no requieren la
+potencia y complejidad completas de
Finalmente, antes de continuar, asegúrese de configurar
+el nivel de log de
En este documento, intentamos proporcionar suficiente vocabulario de regex
+para que pueda comenzar, sin ser abrumador, con la esperanza de que
+las
Los siguientes son los bloques de construcción mÃnimos que necesitará, para
+escribir expresiones regulares y
| Carácter | +Significado | +Ejemplo | +
|---|---|---|
. |
+ Coincide con cualquier carácter individual | +c.t coincidirá con cat, cot,
+ cut, etc |
+
+ |
+ Repite la coincidencia anterior una o más veces | +a+ coincide con a, aa,
+ aaa, etc |
+
* |
+ Repite la coincidencia anterior cero o más veces | +a* coincide con todo lo mismo que a+,
+ pero también coincidirá con una cadena vacÃa |
+
? |
+ Hace la coincidencia opcional | +colou?r coincidirá con color y
+ colour |
+
\ |
+ Escapa el siguiente carácter | +\. coincidirá con . (punto) y no con cualquier
+ carácter individual como se explicó arriba |
+
^ |
+ Llamado ancla, coincide con el inicio de la cadena | +^a coincide con una cadena que comienza con a |
+
$ |
+ La otra ancla, coincide con el final de la cadena | +a$ coincide con una cadena que termina con a |
+
( ) |
+ Agrupa varios caracteres en una sola unidad, y captura una coincidencia + para uso en una referencia inversa | +(ab)+ coincide con ababab - es decir, el
+ + se aplica al grupo. Para más sobre referencias inversas vea
+ más abajo |
+
[ ] |
+ Una clase de caracteres - coincide con uno de los caracteres | +c[uoa]t coincide con cut, cot o
+ cat |
+
[^ ] |
+ Clase de caracteres negativa - coincide con cualquier carácter no especificado | +c[^/]t coincide con cat o c=t pero
+ no con c/t |
En ! puede usarse
+antes de una expresión regular para negarla. Es decir, una cadena se
+considerará que ha coincidido solo si no coincide con el resto de
+la expresión.
Una cosa importante que debe recordarse aquÃ: Siempre que
+ use paréntesis en Pattern o en uno de los
+ CondPattern, se crean referencias inversas internas
+ que pueden usarse con las cadenas $N y
+ %N (ver más abajo). Estas están disponibles para crear
+ el parámetro Substitution de una
+
Las capturas en los patrones de
La Figura 1 muestra a qué + ubicaciones se transfieren las referencias inversas para expansión, asà + como ilustra el flujo de la coincidencia de RewriteRule, RewriteCond. + En los próximos capÃtulos, exploraremos cómo usar + estas referencias inversas, asà que no se preocupe si le parece un poco extraño + al principio. +
+ +
+ 
+ Figura 1: El flujo de referencias inversas a través de una regla.
+ En este ejemplo, una solicitud para /test/1234 serÃa transformada en /admin.foo?page=test&id=1234&host=admin.example.com.
+
Una
El Pattern es una expresión regular. +Se compara inicialmente (para la primera regla de reescritura o hasta que ocurra una sustitución) +contra la ruta URL de la solicitud entrante (la parte después del +nombre de host pero antes de cualquier signo de interrogación que indique el inicio de una cadena +de consulta) o, en contexto per-directorio, contra la ruta de la solicitud relativa +al directorio para el cual se define la regla. Una vez que ha ocurrido una sustitución, +las reglas siguientes se comparan contra el valor +sustituido. +
+ +
+ 
+ Figura 2: Sintaxis de la directiva RewriteRule.
+
La Substitution puede ser una de tres cosas:
+ +Esto mapea una solicitud a una ubicación arbitraria en su sistema de archivos, de forma
+similar a la directiva
Si /usr/local/apache2/htdocs, entonces esta directiva
+mapearÃa solicitudes para http://example.com/games a la
+ruta /usr/local/apache2/htdocs/puzzles.html.
Esto le dice al cliente que haga una nueva solicitud a la URL especificada.
+/usr/) existe en el sistema de archivos, mientras que en el caso de 2, no existe. (es decir, no hay /bar/ como directorio de nivel raÃz en el sistema de archivos.)La Substitution también puede +contener referencias inversas a partes de la ruta URL entrante +coincidida por el Pattern. Considere lo siguiente:
+La variable $1 será reemplazada por cualquier texto
+que haya coincidido con la expresión dentro de los paréntesis en
+el Pattern. Por ejemplo, una solicitud
+para http://example.com/product/r14df/view será mapeada
+a la ruta /var/web/productdb/r14df.
Si hay más de una expresión entre paréntesis, están
+disponibles en orden en las
+variables $1, $2, $3, y asÃ
+sucesivamente.
El comportamiento de una [NC]:
+
Para más detalles sobre las banderas disponibles, sus significados, y +ejemplos, consulte el documento de Banderas de Reescritura.
+ +Una o más directivas
+ 
+ Figura 3: Sintaxis de la directiva RewriteCond
+
Por ejemplo, para enviar todas las solicitudes desde un rango de IP particular a un +servidor diferente, podrÃa usar:
+Cuando se especifica más de
+una
Note que el signo de exclamación especifica una coincidencia negativa, por lo que la regla solo se aplica si la cookie no contiene "go".
+ +Las coincidencias en las expresiones regulares contenidas en
+las %1, %2, etc. Por ejemplo, esto
+dirigirá la solicitud a un directorio diferente dependiendo del
+nombre de host usado para acceder al sitio:
Si la solicitud fue para http://example.com/foo/bar,
+entonces %1 contendrá example.com
+y $1 contendrá foo/bar.
La directiva
La reescritura se configura tÃpicamente en la configuración principal del servidor
+(fuera de cualquier sección .htaccess
+a costa de algo de complejidad adicional. Esta técnica
+se llama reescrituras per-directorio.
La principal diferencia con las reescrituras per-servidor es que el prefijo de ruta
+del directorio que contiene el archivo .htaccess se
+elimina antes de la coincidencia en
+la
Dans ce document, nous avons pour but de vous fournir suffisamment de vocabulaire des expressions rationnelles pour vous mettre le pied à @@ -129,6 +131,9 @@ précédent zéro ou plusieurs fois
?colou?r correspondra à color et colour.\\. correspondra à . (point) et non pas Ã
+tout caractère unique comme expliqué ci-dessus^^a correspond à une chaîne qui commence par
@@ -408,4 +413,3 @@ requête est correctement mise en correspondance.
-
diff --git a/docs/manual/rewrite/intro.xml.ja b/docs/manual/rewrite/intro.xml.ja
new file mode 100644
index 0000000000..7d66424def
--- /dev/null
+++ b/docs/manual/rewrite/intro.xml.ja
@@ -0,0 +1,383 @@
+
+
+
+
+
+
+
+ãã®ããã¥ã¡ã³ãã¯
Apache ã¢ã¸ã¥ã¼ã«
ãã®ããã¥ã¡ã³ãã¯ã以ä¸ã®å 容ãåã«ã³ãã¼ãããã®ã§ã¯ãªãã +çè§£ãããããã®ååãªèæ¯ãæä¾ãããã¨ãç®æãã¦ãã¾ãã +
+ +å¤ãã®ä¸è¬ç㪠URL æä½ã¿ã¹ã¯ã¯
æå¾ã«ãå
ã«é²ãåã«ã
ãã®ããã¥ã¡ã³ãã§ã¯ãå§åããããã¨ãªãå§ããããããã«ã
+ååãªæ£è¦è¡¨ç¾ã®èªå½ãæä¾ãããã¨ãã¦ãã¾ãã
+
以ä¸ã¯ãæ£è¦è¡¨ç¾ã¨
| æå | +æå³ | +ä¾ | +
|---|---|---|
. |
+ ä»»æã® 1 æåã«ããã | +c.t 㯠catãcotã
+ cut çã«ããã |
+
+ |
+ ç´åã®ãããã 1 å以ä¸ç¹°ãè¿ã | +a+ 㯠aãaaã
+ aaa çã«ããã |
+
* |
+ ç´åã®ãããã 0 å以ä¸ç¹°ãè¿ã | +a* 㯠a+ ãããããããã¹ã¦ã«ããããããã
+ 空æååã«ãããããã |
+
? |
+ ãããããªãã·ã§ã³ã«ãã | +colou?r 㯠color ã¨
+ colour ã«ããã |
+
\ |
+ æ¬¡ã®æåãã¨ã¹ã±ã¼ã | +\. ã¯ä¸è¨ã§èª¬æããä»»æã® 1 æåã§ã¯ãªãã
+ . (ããã) ã«ããã |
+
^ |
+ ã¢ã³ã«ã¼ã¨å¼ã°ããæååã®å é ã«ããã | +^a 㯠a ã§å§ã¾ãæååã«ããã |
+
$ |
+ ããä¸ã¤ã®ã¢ã³ã«ã¼ã§ãæååã®æ«å°¾ã«ããã | +a$ 㯠a ã§çµããæååã«ããã |
+
( ) |
+ è¤æ°ã®æåã 1 ã¤ã®åä½ã«ã°ã«ã¼ãåããããã¯ãªãã¡ã¬ã³ã¹ã§ + 使ç¨ããããã®ãããããã£ãã㣠| +(ab)+ 㯠ababab ã«ããã - ã¤ã¾ãã
+ + ãã°ã«ã¼ãã«é©ç¨ããããããã¯ãªãã¡ã¬ã³ã¹ã®
+ 詳細ã¯ä»¥ä¸ãåç
§ |
+
[ ] |
+ æåã¯ã©ã¹ - ããããã®æåã«ããã | +c[uoa]t 㯠cutãcotã
+ cat ã«ããã |
+
[^ ] |
+ å¦å®æåã¯ã©ã¹ - æå®ããã¦ããªãä»»æã®æåã«ããã | +c[^/]t 㯠cat ã c=t ã«
+ ãããããããc/t ã«ã¯ãããããªã |
! æåã
+使ç¨ãã¦å¦å®ã§ãã¾ããã¤ã¾ããå¼ã®æ®ãã®é¨åã«ãããããªãå ´åã«ã®ã¿ã
+æååããããããã¨ã¿ãªããã¾ãã
ããã§è¦ãã¦ããã¹ãéè¦ãªãã¨ãããã¾ã: Pattern å
ã¾ãã¯
+ CondPattern å
ã§æ¬å¼§ã使ç¨ãããã³ã«ãå
é¨çã«ããã¯ãªãã¡ã¬ã³ã¹ã
+ 使ããã$N ããã³ %N ã¨ããæååã§ä½¿ç¨
+ ã§ãã¾ã (以ä¸ãåç
§)ããããã¯
+
å³ 1 ã¯ãããã¯ãªãã¡ã¬ã³ã¹ãå±éã®ããã«ã©ã®å ´æã« + 転éããããã示ãã¨ã¨ãã«ãRewriteRule 㨠RewriteCond ã® + ãããã³ã°ã®ããã¼ãå³ç¤ºãã¦ãã¾ããæ¬¡ã®ç« ã§ã¯ããããã® + ããã¯ãªãã¡ã¬ã³ã¹ã®ä½¿ç¨æ¹æ³ãæ¢ãã¾ãã®ã§ãæåã¯å°ã + 馴æã¿ããªãããã«æãã¦ãå¿é ããªãã§ãã ããã +
+ +
+ 
+ å³ 1: ã«ã¼ã«ãéãããã¯ãªãã¡ã¬ã³ã¹ã®ããã¼ã
+ ãã®ä¾ã§ã¯ã/test/1234 ã¸ã®ãªã¯ã¨ã¹ã㯠/admin.foo?page=test&id=1234&host=admin.example.com ã«å¤æããã¾ãã
+
Pattern ã¯æ£è¦è¡¨ç¾ã§ãã +æå (æåã®æ¸ãæãã«ã¼ã«ã¾ãã¯ç½®æãçºçããã¾ã§) ã¯ãåä¿¡ãªã¯ã¨ã¹ãã® +URL ãã¹ (ãã¹ãåã®å¾ãã¯ã¨ãªæååã®éå§ã示ãçå符ã®åã®é¨å) ã«å¯¾ã㦠+ãããããã¾ãããã£ã¬ã¯ããªåä½ã®ã³ã³ããã¹ãã§ã¯ãã«ã¼ã«ãå®ç¾©ããã +ãã£ã¬ã¯ããªã«å¯¾ãããªã¯ã¨ã¹ãã®ç¸å¯¾ãã¹ã«å¯¾ãã¦ãããããã¾ãã +ç½®æãçºçããã¨ãå¾ç¶ã®ã«ã¼ã«ã¯ç½®æãããå¤ã«å¯¾ãã¦ãããããã¾ãã +
+ +
+ 
+ å³ 2: RewriteRule ãã£ã¬ã¯ãã£ãã®æ§æ
+
Substitution èªä½ã¯ä»¥ä¸ã® 3 ã¤ã®ããããã§ã:
+ +ããã¯ã
/usr/local/apache2/htdocs ã«è¨å®ããã¦ããå ´åã
+ãã®ãã£ã¬ã¯ãã£ã㯠http://example.com/games ã¸ã®
+ãªã¯ã¨ã¹ãããã¹ /usr/local/apache2/htdocs/puzzles.html
+ã«ãããã³ã°ãã¾ãã
ããã¯ãæå®ããã URL ã«å¯¾ããæ°ãããªã¯ã¨ã¹ããè¡ããã +ã¯ã©ã¤ã¢ã³ãã«æç¤ºãã¾ãã
+/usr/) ããã¡ã¤ã«ã·ã¹ãã ä¸ã«åå¨ããã®ã«å¯¾ãã2 ã®å ´åã¯åå¨ããªã (ã¤ã¾ãããã¡ã¤ã«ã·ã¹ãã ã®ã«ã¼ãã¬ãã«ãã£ã¬ã¯ããªã¨ã㦠/bar/ ãåå¨ããªã) ãã¨ã§ããSubstitution ã«ã¯ãPattern ã§ããããã +åä¿¡ URL ãã¹ã®é¨åã¸ã®ããã¯ãªãã¡ã¬ã³ã¹ãå«ãããã¨ãã§ãã¾ãã +以ä¸ãèãã¦ã¿ã¦ãã ãã:
+夿° $1 ã¯ãPattern å
ã®æ¬å¼§å
ã®
+å¼ã§ãããããããã¹ãã«ç½®ãæãããã¾ããä¾ãã°ã
+http://example.com/product/r14df/view ã¸ã®ãªã¯ã¨ã¹ãã¯
+ãã¹ /var/web/productdb/r14df ã«ãããã³ã°ããã¾ãã
æ¬å¼§å
ã®å¼ãè¤æ°ããå ´åã夿° $1ã$2ã
+$3 çã®é åºã§å©ç¨ã§ãã¾ãã
[NC] ãã©ã°ã®é©ç¨ã§
+大æåå°æåãåºå¥ããªãããã«ã§ãã¾ã:
+
å©ç¨å¯è½ãªãã©ã°ããã®æå³ãããã³ä¾ã®è©³ç´°ã«ã¤ãã¦ã¯ã +æ¸ãæããã©ã°ããã¥ã¡ã³ããåç §ãã¦ãã ããã
+ +1 ã¤ä»¥ä¸ã®
+ 
+ å³ 3: RewriteCond ãã£ã¬ã¯ãã£ãã®æ§æ
+
ä¾ãã°ãç¹å®ã® IP ç¯å²ããã®ãã¹ã¦ã®ãªã¯ã¨ã¹ããå¥ã®ãµã¼ãã« +éä¿¡ããã«ã¯ã以ä¸ã使ç¨ã§ãã¾ã:
+è¤æ°ã®
æå符ã¯å¦å®ããããæå®ãã¦ãããcookie ã« "go" ãå«ã¾ãã¦ããªã +å ´åã«ã®ã¿ã«ã¼ã«ãé©ç¨ããã¾ãã
+ +%1ã%2 çã
+使ç¨ãã¦ä½¿ç¨ã§ãã¾ããä¾ãã°ã以ä¸ã¯ãµã¤ãã¸ã®ã¢ã¯ã»ã¹ã«ä½¿ç¨ããã
+ãã¹ãåã«å¿ãã¦ããªã¯ã¨ã¹ããç°ãªããã£ã¬ã¯ããªã«æ¯ãåãã¾ã:
http://example.com/foo/bar ã¸ã®ãªã¯ã¨ã¹ãã®å ´åã
+%1 㯠example.com ãå«ã¿ã
+$1 㯠foo/bar ãå«ã¿ã¾ãã
æ¸ãæãã¯é常ãã¡ã¤ã³ãµã¼ãè¨å®
+(.htaccess
+ãã¡ã¤ã«å
ã§æ¸ãæããè¡ããã¨ãå¯è½ã§ãããã®ãã¯ããã¯ã¯
+ãã£ã¬ã¯ããªåä½ã®æ¸ãæãã¨å¼ã°ãã¾ãã
ãµã¼ãåä½ã®æ¸ãæãã¨ã®ä¸»ãªéãã¯ã.htaccess
+ãã¡ã¤ã«ãå«ããã£ã¬ã¯ããªã®ãã¹ãã¬ãã£ãã¯ã¹ã
+
ì´ ë¬¸ìë
Apache 모ë
ì´ ë¬¸ìë ì´íì ë´ì©ì´ ë¨ìí 맹목ì ì¼ë¡ ë³µì¬ëë ê²ì´ +ìëë¼ ì´í´ëëë¡ ì¶©ë¶í ë°°ê²½ ì§ìì ì ê³µíê³ ì í©ëë¤. +
+ +ë§ì ì¼ë°ì ì¸ URL ì¡°ì ìì
ìë
+
ë§ì§ë§ì¼ë¡ ì§íí기 ì ì
ì´ ë¬¸ìììë
ë¤ìì ì ê· ííìê³¼
| 문ì | +ì미 | +ìì | +
|---|---|---|
. |
+ ììì ë¨ì¼ 문ìì ì¼ì¹ | +c.të cat, cot,
+ cut ë±ê³¼ ì¼ì¹ |
+
+ |
+ ì´ì ì¼ì¹ë¥¼ í ë² ì´ì ë°ë³µ | +a+ë a, aa,
+ aaa ë±ê³¼ ì¼ì¹ |
+
* |
+ ì´ì ì¼ì¹ë¥¼ 0ë² ì´ì ë°ë³µ | +a*ë a+ê° ì¼ì¹íë 모ë ê²ê³¼
+ ì¼ì¹íì§ë§ ë¹ ë¬¸ìì´ê³¼ë ì¼ì¹ |
+
? |
+ ì¼ì¹ë¥¼ ì íì ì¼ë¡ ë§ë¦ | +colou?rë colorì
+ colourì ì¼ì¹ |
+
\ |
+ ë¤ì 문ì를 ì´ì¤ì¼ì´í | +\.ë ììì ì¤ëª
í ììì ë¨ì¼ 문ìê°
+ ìë .(ì )ê³¼ ì¼ì¹ |
+
^ |
+ ìµì»¤ë¼ê³ íë©°, 문ìì´ì ììê³¼ ì¼ì¹ | +^aë aë¡ ììíë 문ìì´ê³¼ ì¼ì¹ |
+
$ |
+ ë¤ë¥¸ ìµì»¤, 문ìì´ì ëê³¼ ì¼ì¹ | +a$ë aë¡ ëëë 문ìì´ê³¼ ì¼ì¹ |
+
( ) |
+ ì¬ë¬ 문ì를 ë¨ì¼ ë¨ìë¡ ê·¸ë£¹ííê³ ì참조ìì + ì¬ì©í ì¼ì¹ë¥¼ ìº¡ì² | +(ab)+ë abababê³¼ ì¼ì¹ -
+ ì¦, +ê° ê·¸ë£¹ì ì ì©ë¨.
+ ì참조ì ëí ìì¸í ë´ì©ì ìë를
+ 참조 |
+
[ ] |
+ 문ì í´ëì¤ - 문ì ì¤ íëì ì¼ì¹ | +c[uoa]të cut, cot ëë
+ catê³¼ ì¼ì¹ |
+
[^ ] |
+ ë¶ì 문ì í´ëì¤ - ì§ì ëì§ ìì 모ë 문ìì ì¼ì¹ | +c[^/]të cat ëë c=tì
+ ì¼ì¹íì§ë§ c/tìë ì¼ì¹íì§ ìì |
! 문ìë
+ì ê· ííì ìì ì¬ì©íì¬ ë¶ì í ì ììµëë¤. ì¦, 문ìì´ì´
+ëë¨¸ì§ ííìê³¼ ì¼ì¹íì§ ìë ê²½ì°ìë§ ì¼ì¹í ê²ì¼ë¡
+ê°ì£¼ë©ëë¤.
ì¬ê¸°ì 기ìµí´ì¼ í ì¤ìí ì ì´ ììµëë¤:
+ Patternì´ë CondPattern ì¤ íëìì
+ ê´í¸ë¥¼ ì¬ì©í ëë§ë¤ ë´ë¶ì ì¼ë¡ ìì°¸ì¡°ê° ìì±ëë©°
+ 문ìì´ $Nê³¼ %N(ìë 참조)ì¼ë¡
+ ì¬ì©í ì ììµëë¤. ì´ê²ë¤ì
+
그림 1ì ìì°¸ì¡°ê° íì¥ì ìí´ ì ë¬ëë ìì¹ì + RewriteRule, RewriteCond 매ì¹ì íë¦ì ë³´ì¬ì¤ëë¤. + ë¤ì ì¥ìì ì´ë¬í ì참조를 ì¬ì©íë ë°©ë²ì í구í + ê²ì´ë¯ë¡, ì²ìì ë¤ì ììíê² ëê»´ì ¸ë ê±±ì íì§ + ë§ììì¤. +
+ +
+ 
+ 그림 1: ê·ì¹ì íµí ì참조 íë¦.
+ ì´ ìì ìì /test/1234ì ëí ìì²ì /admin.foo?page=test&id=1234&host=admin.example.comì¼ë¡ ë³íë©ëë¤.
+
Patternì ì ê· ííìì ëë¤. +ì²ììë(첫 ë²ì§¸ ì¬ìì± ê·ì¹ì´ê±°ë ì¹íì´ ë°ìí기 ì ê¹ì§) +ë¤ì´ì¤ë ìì²ì URL ê²½ë¡(í¸ì¤í¸ëª ë¤ë¶í° 쿼리 문ìì´ì +ììì ëíë´ë 물ìí ìê¹ì§ì ë¶ë¶) ëë ëë í ë¦¬ë³ +컨í ì¤í¸ììë ê·ì¹ì´ ì ìë ëë í 리ì ìëì ì¸ ìì² +ê²½ë¡ì ë¹êµë©ëë¤. ì¹íì´ ë°ìíë©´ ì´íì ê·ì¹ì ì¹íë +ê°ê³¼ ë¹êµë©ëë¤. +
+ +
+ 
+ 그림 2: RewriteRule ì§ìì´ì 구문.
+
Substitutionì ìì²´ì ì¼ë¡ ë¤ì ì¸ ê°ì§ ì¤ +íëì¼ ì ììµëë¤:
+ +ì´ê²ì
/usr/local/apache2/htdocsë¡ ì¤ì ë ê²½ì° ì´
+ì§ìì´ë http://example.com/gamesì ëí ìì²ì
+/usr/local/apache2/htdocs/puzzles.html ê²½ë¡ë¡
+매íí©ëë¤.
ì´ê²ì í´ë¼ì´ì¸í¸ìê² ì§ì ë URLì ëí ì ìì²ì íëë¡ +ì§ìí©ëë¤.
+/usr/)ì´ íì¼ ìì¤í
ì ì¡´ì¬íë ë°ë©´, 2ì ê²½ì° ì¡´ì¬íì§ ìëë¤ë ê²ì
ëë¤. (ì¦, íì¼ ìì¤í
ì /bar/ë¼ë ë£¨í¸ ìì¤ ëë í ë¦¬ê° ììµëë¤.)Substitutionì Patternì ìí´ +ì¼ì¹ë ë¤ì´ì¤ë URL ê²½ë¡ì ë¶ë¶ì ëí +ì참조를 í¬í¨í ìë ììµëë¤. ë¤ìì +ê³ ë ¤íììì¤:
+ë³ì $1ì Patternì ê´í¸ ìì
+ííìì ìí´ ì¼ì¹ë í
ì¤í¸ë¡ ëì²´ë©ëë¤. ì를 ë¤ì´,
+http://example.com/product/r14df/viewì ëí
+ìì²ì /var/web/productdb/r14df ê²½ë¡ì
+매íë©ëë¤.
ê´í¸ ìì ííìì´ ë ì´ìì¸ ê²½ì° ë³ì
+$1, $2, $3 ë±ì
+ììë¡ ì¬ì©í ì ììµëë¤.
[NC]
+íë그를 ì ì©íì¬ ëì문ì를 구ë¶íì§ ìëë¡ ë§ë¤ ì
+ììµëë¤:
+
ì¬ì© ê°ë¥í íëê·¸, ê·¸ ì미 ë° ìì ì ëí ìì¸í +ë´ì©ì ì¬ìì± íëê·¸ 문ì를 +참조íììì¤.
+ +íë ì´ìì
+ 
+ 그림 3: RewriteCond ì§ìì´ì 구문
+
ì를 ë¤ì´, í¹ì IP ë²ìì 모ë ìì²ì ë¤ë¥¸ ìë²ë¡ +ë³´ë´ë ¤ë©´ ë¤ìì ì¬ì©í ì ììµëë¤:
+ë ì´ìì
ëëíë ë¶ì ì¼ì¹ë¥¼ ì§ì íë¯ë¡, ì¿ í¤ì "go"ê° í¬í¨ëì§ +ìì ê²½ì°ìë§ ê·ì¹ì´ ì ì©ë©ëë¤.
+ +%1,
+%2 ë±ì ì¬ì©íì¬
+
http://example.com/foo/barì ëí ìì²ì´ë©´
+%1ì example.comì í¬í¨íê³
+$1ì foo/bar를 í¬í¨í©ëë¤.
ì¬ìì±ì ì¼ë°ì ì¼ë¡ 주 ìë² ì¤ì (
+.htaccess
+íì¼ììë ì¬ìì±ì ìíí ì ììµëë¤. ì´ ê¸°ì ì
+ëë í ë¦¬ë³ ì¬ìì±ì´ë¼ê³ í©ëë¤.
ìë²ë³ ì¬ìì±ê³¼ì 주ì ì°¨ì´ì ì .htaccess
+íì¼ì´ í¬í¨ë ëë í 리ì ê²½ë¡ ì ëì¬ê°
+
Bu belge,
Apache modülü
Bu belge, takip eden içeriÄin körü körüne kopyalanmak yerine +anlaÅılması için yeterli arka plan bilgisi saÄlamaya çalıÅmaktadır. +
+ +Birçok yaygın URL deÄiÅtirme görevinin
Son olarak, devam etmeden önce
Bu belgede, bunaltıcı olmadan baÅlamanıza yetecek kadar düzenli
+ifade sözvarlıÄı saÄlamaya çalıÅıyoruz; böylece
Düzenli ifadeler ve
| Karakter | +Anlam | +Ãrnek | +
|---|---|---|
. |
+ Herhangi bir tek karakterle eÅleÅir | +c.t; cat, cot,
+ cut vb. ile eÅleÅir |
+
+ |
+ Ãnceki eÅleÅmeyi bir veya daha fazla kez tekrarlar | +a+; a, aa,
+ aaa vb. ile eÅleÅir |
+
* |
+ Ãnceki eÅleÅmeyi sıfır veya daha fazla kez tekrarlar | +a*; a+ ile aynı Åeylerle eÅleÅir
+ ancak ayrıca boÅ dizgeyle de eÅleÅir |
+
? |
+ EÅleÅmeyi isteÄe baÄlı yapar | +colou?r; color ve
+ colour ile eÅleÅir |
+
\ |
+ Sonraki karakteri kodlar | +\.; yukarıda açıklandıÄı gibi herhangi bir tek
+ karakter yerine . (nokta) ile eÅleÅir |
+
^ |
+ Ãapa olarak adlandırılır, dizgenin baÅlangıcıyla eÅleÅir | +^a; a ile baÅlayan bir dizgeyle
+ eÅleÅir |
+
$ |
+ DiÄer çapa, dizgenin sonuyla eÅleÅir | +a$; a ile biten bir dizgeyle
+ eÅleÅir |
+
( ) |
+ Birkaç karakteri tek bir birime gruplar ve geri baÅvuruda + kullanılmak üzere bir eÅleÅme yakalar | +(ab)+; ababab ile eÅleÅir - yani
+ + gruba uygulanır. Geri baÅvurular hakkında daha
+ fazla bilgi için aÅaÄıya
+ bakın |
+
[ ] |
+ Bir karakter sınıfı - karakterlerden biriyle eÅleÅir | +c[uoa]t; cut, cot veya
+ cat ile eÅleÅir |
+
[^ ] |
+ Olumsuz karakter sınıfı - belirtilmeyen herhangi bir + karakterle eÅleÅir | +c[^/]t; cat veya c=t
+ ile eÅleÅir ancak c/t ile eÅleÅmez |
! karakteri
+düzenli ifadeyi olumsuzlamak için kullanılabilir. Yani, bir dizge
+yalnızca ifadenin geri kalanıyla eÅleÅmezse eÅleÅmiÅ sayılır.
Burada hatırlanması gereken önemli bir Åey vardır:
+ Kalıp'ta veya CondPattern'lerden birinde
+ parantez kullandıÄınızda, $N ve %N
+ dizgeleriyle kullanılabilecek dahili geri baÅvurular oluÅturulur
+ (aÅaÄıya bakın). Bunlar, bir
+
Åekil 1, geri baÅvuruların geniÅletilmek üzere hangi + konumlara aktarıldıÄını ve RewriteRule, RewriteCond eÅleÅtirme + akıÅını gösterir. Sonraki bölümlerde bu geri baÅvuruların nasıl + kullanılacaÄını inceleyeceÄiz; bu nedenle ilk baÅta biraz yabancı + görünürse endiÅelenmeyin. +
+ +
+ 
+ Åekil 1: Bir kural boyunca geri baÅvuru akıÅı.
+ Bu örnekte, /test/1234 için bir istek /admin.foo?page=test&id=1234&host=admin.example.com olarak dönüÅtürülecektir.
+
Bir
Kalıp bir düzenli ifadedir. +İlk baÅta (ilk yeniden yazma kuralı için veya bir deÄiÅtirme +gerçekleÅene kadar) gelen isteÄin URL yoluyla (konak adından sonra +ancak sorgu dizgesinin baÅlangıcını gösteren soru iÅaretinden önceki +kısım) veya dizin baÅına baÄlamda kuralın tanımlandıÄı dizine göre +isteÄin yoluyla eÅleÅtirilir. Bir deÄiÅtirme gerçekleÅtikten sonra +izleyen kurallar deÄiÅtirilen deÄerle eÅleÅtirilir. +
+ +
+ 
+ Åekil 2: RewriteRule yönergesinin sözdizimi.
+
DeÄiÅtirme kendisi üç Åeyden biri olabilir:
+ +Bu,
/usr/local/apache2/htdocs olarak ayarlanmıÅsa, bu
+yönerge http://example.com/games isteklerini
+/usr/local/apache2/htdocs/puzzles.html yoluna
+eÅler.
Bu, istemciye belirtilen URL için yeni bir istek yapmasını +söyler.
+/usr/) dosya sisteminde mevcut olması, 2 durumunda ise mevcut olmamasıdır (yani dosya sisteminde kök düzeyinde bir /bar/ dizini yoktur).DeÄiÅtirme, Kalıp tarafından eÅleÅen gelen +URL yolunun bölümlerine geri baÅvurular da içerebilir. Åunu +ele alalım:
+$1 deÄiÅkeni, Kalıp içindeki parantez
+içindeki ifadeyle eÅleÅen metinle deÄiÅtirilir. ÃrneÄin,
+http://example.com/product/r14df/view isteÄi
+/var/web/productdb/r14df yoluna eÅlenir.
Parantez içinde birden fazla ifade varsa, bunlar sırasıyla
+$1, $2, $3 ve sonraki
+deÄiÅkenlerde kullanılabilir.
Bir [NC] bayraÄı uygulanarak büyük/küçük harf
+duyarsız yapılabilir:
+
Kullanılabilir bayraklar, anlamları ve örnekleri hakkında daha +fazla ayrıntı için Yeniden Yazma Bayrakları +belgesine bakın.
+ +Ardından gelen
+ 
+ Åekil 3: RewriteCond yönergesinin sözdizimi
+
ÃrneÄin, belirli bir IP aralıÄından gelen tüm istekleri farklı +bir sunucuya göndermek için Åunu kullanabilirsiniz:
+Birden fazla
Ãnlem iÅaretinin olumsuz bir eÅleÅme belirttiÄine dikkat edin; +kural yalnızca çerez "go" içermiyorsa uygulanır.
+ +%1,
+%2 vb. deÄiÅkenler kullanılarak kullanılabilir. ÃrneÄin,
+Åu kural siteye eriÅmek için kullanılan konak adına baÄlı olarak
+isteÄi farklı bir dizine yönlendirecektir:
İstek http://example.com/foo/bar için ise
+%1 deÄeri example.com ve $1
+deÄeri foo/bar olacaktır.
Yeniden yazma genellikle ana sunucu yapılandırma ayarında
+(herhangi bir .htaccess
+dosyalarında bazı ek karmaÅıklık pahasına yapmak mümkündür. Bu
+tekniÄe dizin baÅına yeniden yazma denir.
Sunucu baÅına yeniden yazmadan temel fark, .htaccess
+dosyasını içeren dizinin yol önekinin,
+
æ¬ææ¡£æ¯
Apache 模å
æ¬ææ¡£è¯å¾æä¾è¶³å¤çèæ¯ç¥è¯ï¼ä½¿æ¥ä¸æ¥çå 容被çè§£ï¼ +èä¸ä» ä» æ¯ç²ç®å¤å¶ã +
+ +请记ä½ï¼è®¸å¤å¸¸è§ç URL æä½ä»»å¡ä¸éè¦
æåï¼å¨ç»§ç»ä¹åï¼è¯·å¡å¿
使ç¨
+
卿¬ææ¡£ä¸ï¼æä»¬è¯å¾æä¾è¶³å¤çæ£å表达å¼è¯æ±æ¥å¸®å©ä½ å
¥é¨ï¼
+èä¸ä¼è®©ä½ æå°ä¸ç¥ææªï¼å¸æ
+
以䏿¯ç¼åæ£å表达å¼å
+
| å符 | +å«ä¹ | +ç¤ºä¾ | +
|---|---|---|
. |
+ å¹é ä»»æå个å符 | +c.t å°å¹é
catãcotã
+ cut ç |
+
+ |
+ éå¤åä¸ä¸ªå¹é 䏿¬¡æå¤æ¬¡ | +a+ å¹é
aãaaã
+ aaa ç |
+
* |
+ éå¤åä¸ä¸ªå¹é é¶æ¬¡æå¤æ¬¡ | +a* å¹é
a+ å¹é
çææå
容ï¼
+ ä½ä¹ä¼å¹é
空å符串 |
+
? |
+ 使å¹é å为å¯é | +colou?r å°å¹é
color å
+ colour |
+
\ |
+ 转ä¹ä¸ä¸ä¸ªå符 | +\. å°å¹é
.ï¼ç¹ï¼è䏿¯å¦ä¸æè¿°ç
+ ä»»æå个å符 |
+
^ |
+ 称为éç¹ï¼å¹é å符串çå¼å¤´ | +^a å¹é
以 a å¼å¤´çå符串 |
+
$ |
+ å¦ä¸ä¸ªéç¹ï¼å¹é å符串çç»å°¾ | +a$ å¹é
以 a ç»å°¾çå符串 |
+
( ) |
+ å°å¤ä¸ªå符ç»å为ä¸ä¸ªåå ï¼å¹¶æè·å¹é 以ç¨äºååå¼ç¨ | +(ab)+ å¹é
abababââå³
+ + åºç¨äºæ´ä¸ªç»ãå
³äºååå¼ç¨çæ´å¤ä¿¡æ¯è§
+ 䏿 |
+
[ ] |
+ å符类ââå¹é å ¶ä¸ä¸ä¸ªå符 | +c[uoa]t å¹é
cutãcot æ
+ cat |
+
[^ ] |
+ å¦å®å符类ââå¹é æªæå®çä»»æå符 | +c[^/]t å¹é
cat æ c=t
+ ä½ä¸å¹é
c/t |
å¨ !
+å符å¯ä»¥å¨æ£å表达å¼åä½¿ç¨æ¥å¦å®å®ãä¹å°±æ¯è¯´ï¼
+åªæå½å符串ä¸å¹é
表达å¼çå
¶ä½é¨åæ¶ï¼æè®¤ä¸ºå¹é
æåã
è¿éæä¸ä¸ªéè¦çäºæ
è¦è®°ä½ï¼æ¯å½ä½ 卿¨¡å¼ææä¸ª
+ CondPattern ä¸ä½¿ç¨æ¬å·æ¶ï¼é½ä¼å¨å
é¨å建ååå¼ç¨ï¼
+ å¯ä»¥ä½¿ç¨å符串 $N å %Nï¼è§ä¸æï¼æ¥å¼ç¨ã
+ è¿äºå¯ç¨äºå建
+
å¾ 1 æ¾ç¤ºäºååå¼ç¨è¢«ä¼ éå°åªäºä½ç½®è¿è¡å±å¼ï¼ + 并说æäº RewriteRule å RewriteCond å¹é çæµç¨ã + 卿¥ä¸æ¥çç« èä¸ï¼æä»¬å°æ¢ç´¢å¦ä½ä½¿ç¨è¿äºååå¼ç¨ï¼ + æä»¥å¦æä½ ä¸å¼å§è§å¾æäºéçï¼ä¸å¿ æ å¿ã +
+ +
+ 
+ å¾ 1ï¼ååå¼ç¨å¨è§åä¸çæµåã
+ 卿¤ç¤ºä¾ä¸ï¼å¯¹ /test/1234 ç请æ±å°è¢«è½¬æ¢ä¸º /admin.foo?page=test&id=1234&host=admin.example.comã
+
Pattern æ¯ä¸ä¸ªæ£å表达å¼ã +宿åï¼å¯¹äºç¬¬ä¸æ¡éåè§åæç´å°åçæ¿æ¢ä¸ºæ¢ï¼ä¸ä¼ å ¥è¯·æ±ç URL è·¯å¾ +ï¼ä¸»æºåä¹åä½é®å·ä¹åçé¨åï¼é®å·è¡¨ç¤ºæ¥è¯¢å符串çå¼å§ï¼è¿è¡å¹é ï¼ +æè å¨ç®å½çº§ä¸ä¸æä¸ä¸è¯·æ±ç¸å¯¹äºå®ä¹è§åçç®å½çè·¯å¾è¿è¡å¹é ã +䏿¦åçæ¿æ¢ï¼åç»è§åå°ä¸æ¿æ¢åçå¼è¿è¡å¹é ã +
+ +
+ 
+ å¾ 2ï¼RewriteRule æä»¤çè¯æ³ã
+
Substitution æ¬èº«å¯ä»¥æ¯ä»¥ä¸ä¸ç§ä¹ä¸ï¼
+ +è¿å°è¯·æ±æ å°å°æä»¶ç³»ç»ä¸çä»»æä½ç½®ï¼
+类似äº
妿 /usr/local/apache2/htdocsï¼åæ¤æä»¤ä¼å°å¯¹
+http://example.com/games çè¯·æ±æ å°å°è·¯å¾
+/usr/local/apache2/htdocs/puzzles.htmlã
è¿åè¯å®¢æ·ç«¯å¯¹æå® URL ååºæ°ç请æ±ã
+/usr/ï¼åå¨äºæä»¶ç³»ç»ä¸ï¼
+èå¯¹äº 2ï¼å®ä¸åå¨ã
+ï¼å³æä»¶ç³»ç»ä¸æ²¡æ /bar/ ä½ä¸ºæ ¹çº§ç®å½ãï¼Substitution è¿å¯ä»¥å å«å¯¹ä¼ å ¥ URL è·¯å¾ä¸ç± +Pattern å¹é çé¨åçååå¼ç¨ã +请ç以ä¸ç¤ºä¾ï¼
+åé $1 å°è¢«æ¿æ¢ä¸º Pattern
+䏿¬å·å
çè¡¨è¾¾å¼æå¹é
ç任使æ¬ãä¾å¦ï¼å¯¹
+http://example.com/product/r14df/view ç请æ±å°è¢«æ å°å°è·¯å¾
+/var/web/productdb/r14dfã
妿æ¬å·ä¸æå¤ä¸ªè¡¨è¾¾å¼ï¼å®ä»¬å°æé¡ºåºåºç°å¨åé
+$1ã$2ã$3 çä¸ã
[NC]
+æ å¿ä½¿è§åçå¹é
è¡ä¸ºä¸åºå大å°åï¼
+
æå ³å¯ç¨æ å¿ãå ¶å«ä¹å示ä¾çæ´å¤è¯¦ç»ä¿¡æ¯ï¼ +请åé éåæ å¿ææ¡£ã
+ +ä¸ä¸ªæå¤ä¸ª
+ 
+ å¾ 3ï¼RewriteCond æä»¤çè¯æ³
+
ä¾å¦ï¼è¦å°æ¥èªç¹å® IP èå´çææè¯·æ±åéå°ä¸åçæå¡å¨ï¼ +ä½ å¯ä»¥ä½¿ç¨ï¼
+彿å®äºå¤ä¸ª
请注æï¼æå¹å·æå®å¦å®å¹é ï¼ +å æ¤åªæå½ cookie ä¸å å«"go"æ¶æåºç¨è¯¥è§åã
+ +%1ã
+%2 çãä¾å¦ï¼è¿å°æ ¹æ®ç¨äºè®¿é®ç«ç¹ç主æºå
+å°è¯·æ±å®åå°ä¸åçç®å½ï¼
å¦æè¯·æ±æ¯ http://example.com/foo/barï¼
+å %1 å°å
å« example.comï¼
+$1 å°å
å« foo/barã
éåé常å¨ä¸»æå¡å¨é
ç½®ä¸ï¼å¨ä»»ä½
+.htaccess
+æä»¶ä¸æ§è¡éåï¼ä½ä¼å¢å ä¸äºé¢å¤ç夿æ§ã
+è¿ç§ææ¯ç§°ä¸ºç®å½çº§éåã
䏿å¡å¨çº§éåç主è¦åºå«å¨äºï¼
+å
å« .htaccess æä»¶çç®å½è·¯å¾åç¼å¨
+
Dieses Dokument ergänzt die
+
Um eine URL einfach einem anderen Server zuzuordnen, verwenden + wir das [P]-Flag wie folgt:
+ +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.
+ +In jedem Fall fügen wir eine
Erwägen Sie, wann immer möglich,
Este documento complementa la
+
Para simplemente mapear una URL a otro servidor, usamos la bandera [P], de la + siguiente manera:
+ +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.
+ +En cada caso, añadimos una directiva
Considere usar
ãã®ããã¥ã¡ã³ãã¯
+
åç´ã« URL ãå¥ã®ãµã¼ãã«ãããã³ã°ããã«ã¯ã次ã®ããã« + [P] ãã©ã°ã使ç¨ãã¾ã:
+ +2 ã¤ç®ã®ä¾ã§ã¯ããªã½ã¼ã¹ããã¼ã«ã«ã«è¦ã¤ãããªãå ´åã«ã®ã¿ + ãªã¯ã¨ã¹ãããããã·ãã¾ããããã¯ããããµã¼ãããå¥ã®ãµã¼ãã« + ç§»è¡ä¸ã§ããã¹ã¦ã®ã³ã³ãã³ããç§»è¡æ¸ã¿ãã©ããããããªãå ´åã« + é常ã«ä¾¿å©ã§ãã
+ +ã©ã¡ãã®å ´åããããã¯ã¨ã³ãããçºè¡ããããªãã¤ã¬ã¯ãã
+ æ£ããã¯ã©ã¤ã¢ã³ãã«æ¸¡ãããããã«
å¯è½ãªéã
ì´ ë¬¸ìë
+
URLì ë¤ë¥¸ ìë²ì ë¨ìí 매ííë ¤ë©´ ë¤ìê³¼ ê°ì´ + [P] íë그를 ì¬ì©í©ëë¤:
+ +ë ë²ì§¸ ìì ììë ë¡ì»¬ìì ììì ì°¾ì ì ìë + ê²½ì°ìë§ ìì²ì íë¡ìí©ëë¤. ì´ê²ì í ìë²ìì ë¤ë¥¸ + ìë²ë¡ ë§ì´ê·¸ë ì´ì íê³ ìì¼ë©° 모ë ì½í ì¸ ê° ìì§ + ë§ì´ê·¸ë ì´ì ëìëì§ íì í ì ìì ë ë§¤ì° ì ì©í©ëë¤.
+ +ê° ê²½ì°ì ë°±ìëìì ë°íí 리ë¤ì´ë í¸ê° í´ë¼ì´ì¸í¸ì
+ ì¬ë°ë¥´ê² ì ë¬ëëë¡
Bu belge,
+
Bir URL'yi baÅka bir sunucuya basitçe eÅlemek için [P] + bayraÄını Åu Åekilde kullanırız:
+ +İ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.
+ +Her iki durumda da, arka uç tarafından verilen
+ yönlendirmelerin istemciye doÄru Åekilde iletilmesini saÄlamak
+ için bir
Mümkün olduÄunda
æ¬ææ¡£æ¯
+
è¦ç®åå°å° URL æ å°å°å¦ä¸å°æå¡å¨ï¼æä»¬ä½¿ç¨ [P] æ å¿ï¼å¦ä¸æç¤ºï¼
+ +å¨ç¬¬äºä¸ªç¤ºä¾ä¸ï¼æä»¬ä» 卿¬å°æ¾ä¸å°èµæºæ¶æä»£ç请æ±ã + å½ä½ ä»ä¸å°æå¡å¨è¿ç§»å°å¦ä¸å°æå¡å¨ï¼èä¸ç¡®å®ææå 容æ¯å¦å·²è¿ç§»å®æ¯æ¶ï¼ + è¿é常æç¨ã
+ +卿¯ç§æ
åµä¸ï¼æä»¬é½æ·»å äºä¸ä¸ª
请尽å¯è½èè使ç¨
Dieses Dokument ergänzt die
Angenommen, wir haben kürzlich die Seite
+ foo.html in bar.html umbenannt und
+ möchten nun die alte URL aus Gründen der Abwärtskompatibilität
+ weiterhin bereitstellen. Dabei sollen die Benutzer der alten URL
+ jedoch nicht bemerken, dass die Seite umbenannt wurde - das heiÃt,
+ die Adresse soll sich in ihrem Browser nicht ändern.
Wir schreiben die alte URL intern auf die neue um, mit der + folgenden Regel:
+ +Angenommen erneut, dass wir kürzlich die Seite
+ foo.html in bar.html umbenannt haben und
+ nun die alte URL aus Gründen der Abwärtskompatibilität weiterhin
+ bereitstellen möchten. Diesmal möchten wir aber, dass die Benutzer
+ der alten URL auf die neue hingewiesen werden, d.h. die
+ Adresszeile ihres Browsers soll sich ebenfalls ändern.
Wir erzwingen eine HTTP-Umleitung auf die neue URL, was zu einer + Ãnderung der Browser-Adresszeile und damit der Ansicht der Benutzer + führt:
+ +In diesem Beispiel können wir im Gegensatz zum
+ internen Beispiel oben einfach die
+ Redirect-Direktive verwenden.
Wenn eine Ressource auf einen anderen Server verschoben wurde, + möchten Sie möglicherweise, dass URLs für eine gewisse Zeit weiterhin + auf dem alten Server funktionieren, während die Benutzer ihre + Lesezeichen aktualisieren.
+Sie können
Wie können wir eine statische Seite
+ foo.html nahtlos in eine dynamische Variante
+ foo.cgi umwandeln, d.h. ohne dass der
+ Browser/Benutzer es bemerkt?
Wir schreiben die URL einfach auf das CGI-Skript um und
+ erzwingen, dass der Handler cgi-script ist,
+ damit es als CGI-Programm ausgeführt wird. So führt eine Anfrage
+ an /~quux/foo.html intern zum Aufruf von
+ /~quux/foo.cgi.
Wie können wir URLs abwärtskompatibel machen (virtuell weiterhin
+ existierend), nachdem document.YYYY zu
+ document.XXXX migriert wurde, z.B. nach der Konvertierung
+ einer Reihe von .html-Dateien nach .php?
Die URL wird nur dann von der alten auf die neue Endung + umgeschrieben, wenn die Zieldatei mit der neuen Endung existiert + und die Originaldatei mit der alten Endung nicht existiert. + Andernfalls bleibt die URL unverändert.
+ +Dieses Beispiel nutzt eine oft übersehene Funktion von
+ document.html) und
+ Zieldatei (document.php) unter Verwendung desselben
+ Basisdateinamens zu prüfen.
Dieser Regelsatz ist für die Verwendung im Verzeichniskontext
+ (in einem <Directory>-Block oder in einer .htaccess-Datei)
+ konzipiert, sodass die -f-Prüfungen im korrekten
+ Verzeichnispfad suchen. Möglicherweise müssen Sie eine
Der allerbeste Weg, dies zu lösen, verwendet gar nicht
Alternativ können Sie dies mit der
+
Oder, um beispielsweise einen Teil Ihrer Website auf HTTPS umzuleiten, +könnten Sie Folgendes tun:
+ +Wenn Sie aus irgendeinem Grund dennoch
Für Websites, die auf einem anderen Port als 80 laufen:
+Und für eine Website auf Port 80:
++ Wenn Sie dies generisch für alle Domainnamen tun möchten - das + heiÃt, wenn Sie example.com für alle möglichen + Werte von example.com auf + www.example.com umleiten möchten, können Sie + das folgende Rezept verwenden:
+ +Diese Regelsätze funktionieren sowohl in Ihrer
+ Hauptserverkonfigurationsdatei als auch in einer .htaccess-Datei,
+ die im
Eine bestimmte Ressource könnte an einem von mehreren Orten + existieren, und wir möchten an diesen Orten nach der Ressource + suchen, wenn sie angefordert wird. Vielleicht haben wir kürzlich + unsere Verzeichnisstruktur umorganisiert und Inhalte auf mehrere + Orte verteilt.
+Der folgende Regelsatz sucht in zwei Verzeichnissen nach der + Ressource und versucht, falls sie an keinem der beiden Orte + gefunden wird, sie einfach vom angeforderten Ort auszuliefern.
+ +Wir haben zahlreiche Spiegelserver unserer Website und möchten + Besucher auf denjenigen umleiten, der sich in dem Land befindet, in + dem sie sich aufhalten.
+Anhand des Hostnamens des anfragenden Clients bestimmen wir, aus + welchem Land er kommt. Wenn wir keine Auflösung seiner IP-Adresse + durchführen können, greifen wir auf einen Standardserver zurück.
+Wir verwenden eine
on
+ gesetzt ist, was einen erheblichen Leistungseinbruch bedeuten kann.Die
Auf manchen Webservern gibt es mehr als eine URL für eine + Ressource. Normalerweise gibt es kanonische URLs (die tatsächlich + verwendet und verteilt werden) und solche, die nur Abkürzungen, + interne Adressen usw. sind. Unabhängig davon, welche URL der + Benutzer mit der Anfrage angegeben hat, sollte er schlieÃlich die + kanonische URL in der Adresszeile seines Browsers sehen.
+Wir führen eine externe HTTP-Umleitung für alle nicht-kanonischen
+ URLs durch, um sie in der Adressanzeige des Browsers und für alle
+ nachfolgenden Anfragen zu korrigieren. Im folgenden Beispiel-Regelsatz
+ ersetzen wir /puppies und /canines
+ durch die kanonische URL /dogs.
DocumentRootNormalerweise entspricht das /". Aber oft sind diese Daten
+nicht wirklich von höchster Priorität. Beispielsweise möchten Sie
+vielleicht, dass Besucher beim ersten Betreten einer Website in ein
+bestimmtes Unterverzeichnis /about/ geleitet werden. Dies
+kann mit dem folgenden Regelsatz erreicht werden:
Wir leiten die URL / nach
+ /about/ um:
+
Beachten Sie, dass dies auch mit der
Beachten Sie auch, dass das Beispiel nur die Stamm-URL umschreibt.
+Das heiÃt, es schreibt eine Anfrage für http://example.com/
+um, aber nicht eine Anfrage für http://example.com/page.html.
+Wenn Sie tatsächlich Ihr Document Root geändert haben - das heiÃt, wenn
+alle Ihre Inhalte tatsächlich in diesem Unterverzeichnis
+liegen - ist es wesentlich besser, einfach Ihre
+
Ab Version 2.2.16 sollten Sie hierfür die
In älteren Versionen von Apache oder wenn Ihre Anforderungen +komplizierter sind, können Sie eine Variante des folgenden +Umschreibungssatzes verwenden, um dasselbe zu erreichen:
+ +Wenn Sie andererseits die angeforderte URI als Query-String-Argument +an index.php übergeben möchten, können Sie diese RewriteRule ersetzen +durch:
+ +Beachten Sie, dass diese Regelsätze sowohl in einer
+.htaccess-Datei als auch in einem <Directory>-Block
+verwendet werden können.
Viele der Lösungen in diesem Abschnitt verwenden dieselbe Bedingung, +die den übereinstimmenden Wert in der Rückreferenz %2 belässt. %1 ist der +Anfang des Query-Strings (bis zum interessierenden Schlüssel) und %3 ist +der Rest. Diese Bedingung ist etwas komplex, um Flexibilität zu gewährleisten +und doppelte '&&' in den Ersetzungen zu vermeiden.
+Este documento complementa la
Supongamos que hemos renombrado recientemente la página
+ foo.html a bar.html y ahora queremos
+ proporcionar la antigua URL por compatibilidad hacia atrás. Sin embargo,
+ queremos que los usuarios de la antigua URL ni siquiera se den cuenta de que
+ la página fue renombrada - es decir, no queremos que la dirección
+ cambie en su navegador.
Reescribimos la antigua URL a la nueva internamente mediante la + siguiente regla:
+ +Supongamos de nuevo que hemos renombrado recientemente la página
+ foo.html a bar.html y ahora queremos
+ proporcionar la antigua URL por compatibilidad hacia atrás. Pero esta
+ vez queremos que los usuarios de la antigua URL reciban una indicación de
+ la nueva, es decir, que el campo de Ubicación de su navegador también
+ cambie.
Forzamos una redirección HTTP a la nueva URL que lleva a un + cambio del navegador y por lo tanto de la vista del usuario:
+ +En este ejemplo, a diferencia del ejemplo interno anterior, podemos simplemente
+ usar la directiva Redirect.
Si un recurso se ha movido a otro servidor, puede desear que + las URLs continúen funcionando por un tiempo en el antiguo servidor mientras + la gente actualiza sus marcadores.
+Puede usar
¿Cómo podemos transformar una página estática
+ foo.html en una variante dinámica
+ foo.cgi de manera transparente, es decir, sin que
+ el navegador/usuario lo note.
Simplemente reescribimos la URL al script CGI y forzamos el
+ manejador a ser cgi-script para que se
+ ejecute como un programa CGI.
+ De esta manera, una solicitud a /~quux/foo.html
+ internamente lleva a la invocación de
+ /~quux/foo.cgi.
¿Cómo podemos hacer URLs retrocompatibles (aún
+ existentes virtualmente) después de migrar document.YYYY
+ a document.XXXX, por ejemplo, después de traducir un
+ grupo de archivos .html a .php?
La URL se reescribe de la antigua extensión a la nueva + solo si el archivo destino con la nueva extensión existe + y el archivo original con la antigua extensión no existe. + De lo contrario, la URL se deja sin cambios.
+ +Este ejemplo usa una caracterÃstica a menudo pasada por alto de document.html) y destino
+ (document.php) usando el mismo nombre de archivo base.
Este conjunto de reglas está diseñado para usarse en un contexto per-directorio (en un
+ bloque <Directory> o en un archivo .htaccess), de modo que las
+ verificaciones -f busquen en la ruta de directorio correcta.
+ Puede necesitar establecer una directiva
La mejor manera de resolver esto no involucra
Alternativamente puede lograr esto usando la
+directiva
O, por ejemplo, para redirigir una porción de su sitio a HTTPS, podrÃa +hacer lo siguiente:
+ +Si, por cualquier razón, aún desea usar
Para sitios ejecutándose en un puerto distinto al 80:
+Y para un sitio ejecutándose en el puerto 80
++ Si quisiera hacer esto genéricamente para todos los nombres de dominio - es + decir, si quiere redirigir example.com a + www.example.com para todos los valores posibles de + example.com, podrÃa usar la siguiente + receta:
+ +Estos conjuntos de reglas funcionarán tanto en su archivo de configuración principal
+ del servidor, como en un archivo .htaccess colocado en el
Un recurso particular podrÃa existir en uno de varios lugares, y + queremos buscar en esos lugares el recurso cuando se + solicita. Quizás hemos reorganizado recientemente nuestra estructura de + directorios, dividiendo el contenido en varias ubicaciones.
+El siguiente conjunto de reglas busca en dos directorios para encontrar el + recurso, y, si no lo encuentra en ninguno de los dos, intentará + simplemente servirlo desde la ubicación solicitada.
+ +Tenemos numerosos espejos de nuestro sitio web, y queremos redirigir + a la gente al que está ubicado en el paÃs donde se + encuentran.
+Mirando el nombre de host del cliente solicitante, determinamos + de qué paÃs provienen. Si no podemos hacer una búsqueda de su + dirección IP, recurrimos a un servidor predeterminado.
+Usaremos una directiva
on, lo que puede ser
+ un impacto significativo en el rendimiento.La directiva
En algunos servidores web hay más de una URL para un + recurso. Generalmente hay URLs canónicas (que son las que realmente + se usan y distribuyen) y aquellas que son solo + atajos, internas, etc. Independientemente de qué URL + proporcionó el usuario con la solicitud, finalmente deberÃa ver la + canónica en la barra de direcciones de su navegador.
+Hacemos una redirección HTTP externa para todas las
+ URLs no canónicas para corregirlas en la vista de ubicación del navegador y
+ para todas las solicitudes posteriores. En el conjunto de reglas de ejemplo
+ reemplazamos /puppies y /canines
+ por el canónico /dogs.
DocumentRoot MovidoGeneralmente el /".
+Pero a menudo estos datos no son realmente de máxima prioridad. Por ejemplo,
+puede desear que los visitantes, al entrar por primera vez a un sitio, vayan a un
+subdirectorio particular /about/. Esto puede lograrse
+usando el siguiente conjunto de reglas:
Redirigimos la URL / a
+ /about/:
+
Tenga en cuenta que esto también puede manejarse usando la directiva
Tenga en cuenta también que el ejemplo solo reescribe la URL raÃz. Es decir, reescribe
+una solicitud para http://example.com/, pero no una
+solicitud para http://example.com/page.html. Si de hecho ha
+cambiado la raÃz de documentos - es decir, si todo su
+contenido está en ese subdirectorio, es muy preferible
+simplemente cambiar su directiva
A partir de la versión 2.2.16, deberÃa usar la directiva
Sin embargo, en versiones anteriores de Apache, o si sus necesidades son más +complicadas que esto, puede usar una variación del siguiente conjunto de +reescritura para lograr lo mismo:
+ +Si, por otro lado, desea pasar la URI solicitada como un argumento de +cadena de consulta a index.php, puede reemplazar esa RewriteRule con:
+ +Tenga en cuenta que estos conjuntos de reglas pueden usarse en un archivo .htaccess,
+asà como en un bloque <Directory>.
Muchas de las soluciones en esta sección usarán la misma condición, +que deja el valor coincidente en la referencia inversa %2. %1 es el inicio +de la cadena de consulta (hasta la clave de interés), y %3 es el resto. Esta +condición es un poco compleja por flexibilidad y para evitar doble '&&' en las +sustituciones.
+ãã®ããã¥ã¡ã³ãã¯
æè¿ãã¼ã¸ foo.html ã bar.html ã«
+ ãªãã¼ã ãã徿¹äºææ§ã®ããã«æ§ URL ãæä¾ãããã¨ãã¾ãã
+ ãã ããæ§ URL ã®ã¦ã¼ã¶ã«ã¯ãã¼ã¸ããªãã¼ã ããããã¨ã
+ æ°ã¥ããããããã¾ãã - ã¤ã¾ãããã©ã¦ã¶ã®ã¢ãã¬ã¹ã
+ 夿´ãããªãããã«ãã¾ãã
以ä¸ã®ã«ã¼ã«ã§æ§ URL ãå é¨çã«æ°ãããã®ã«æ¸ãæãã¾ã:
+ +åã³ãæè¿ãã¼ã¸ foo.html ã bar.html
+ ã«ãªãã¼ã ãã徿¹äºææ§ã®ããã«æ§ URL ãæä¾ãããã¨ãã¾ãã
+ ãããä»åã¯ãæ§ URL ã®ã¦ã¼ã¶ã«æ°ãã URL ãç¥ããããã
+ ã¤ã¾ããã©ã¦ã¶ã® Location ãã£ã¼ã«ãã夿´ãããããã«ãããã¨ãã¾ãã
æ°ãã URL ã¸ã® HTTP ãªãã¤ã¬ã¯ããå¼·å¶ãããã©ã¦ã¶ã¨ + ã¦ã¼ã¶ã®è¡¨ç¤ºã夿´ãã¾ã:
+ +ãã®ä¾ã§ã¯ãä¸è¨ã®å
é¨ã®ä¾ã¨
+ 対æ¯ãã¦ãåç´ã« Redirect ãã£ã¬ã¯ãã£ãã使ç¨ã§ãã¾ãã
+
ãªã½ã¼ã¹ãå¥ã®ãµã¼ãã«ç§»åããå ´åã人ã ãããã¯ãã¼ã¯ã + æ´æ°ããéãæ§ãµã¼ãã§ã URL ããã°ããæ©è½ãç¶ããããã« + ãããã¨ãã¾ãã
+éçãã¼ã¸ foo.html ãåçããªã¢ã³ã
+ foo.cgi ã«ã·ã¼ã ã¬ã¹ã«ãã¤ã¾ããã©ã¦ã¶/ã¦ã¼ã¶ã«
+ æ°ã¥ãããã«å¤æããã«ã¯ã©ãããã°ããã§ããããã
URL ã CGI ã¹ã¯ãªããã«æ¸ãæãããã³ãã©ã
+ cgi-script ã«å¼·å¶ãã¦ãCGI ããã°ã©ã ã¨ãã¦
+ å®è¡ãããããã«ãã¾ãã
+ ããã«ããã/~quux/foo.html ã¸ã®ãªã¯ã¨ã¹ãã¯
+ å
é¨çã« /~quux/foo.cgi ã®å¼ã³åºãã«
+ ã¤ãªããã¾ãã
document.YYYY ãã document.XXXX ã¸ã®
+ ç§»è¡å¾ãä¾ãã° .html ãã¡ã¤ã«ç¾¤ã .php ã«
+ 夿ããå¾ã«ãURL ã®å¾æ¹äºææ§ (ä»®æ³çã«ã¾ã åå¨ããç¶æ
) ã
+ ã©ã®ããã«ä¿ã¤ãã¨ãã§ããã§ããããï¼
URL ã¯æ§æ¡å¼µåããæ°æ¡å¼µåã«æ¸ãæãããã¾ãããæ°æ¡å¼µåã® + ã¿ã¼ã²ãããã¡ã¤ã«ãåå¨ãããã¤æ§æ¡å¼µåã®å ã®ãã¡ã¤ã«ã + åå¨ããªãå ´åã®ã¿ã§ãããã以å¤ã®å ´åãURL ã¯ãã®ã¾ã¾ + 夿´ããã¾ããã
+ +ãã®ä¾ã§ã¯ãdocument.html) ã¨ã¿ã¼ã²ãããã¡ã¤ã«
+ (document.php) ã®åå¨ã確èªã§ãã¾ãã
ãã®ã«ã¼ã«ã»ããã¯ãã£ã¬ã¯ããªåä½ã®ã³ã³ããã¹ã
+ (<Directory> ãããã¯ã¾ã㯠.htaccess ãã¡ã¤ã«å
) ã§
+ 使ç¨ããããè¨è¨ããã¦ããããã-f ãã§ãã¯ã¯
+ æ£ãããã£ã¬ã¯ããªãã¹ãåç
§ãã¾ãã使¥ãã¦ãããã£ã¬ã¯ããªãã¼ã¹ã
+ æå®ããããã«
æåã®æ¹æ³ã¯
ãããã¯ã
ãããã¯ãä¾ãã°ãµã¤ãã®ä¸é¨ã HTTPS ã«ãªãã¤ã¬ã¯ãããã«ã¯ã +以ä¸ã®ããã«ãã¾ã:
+ +ä½ããã®çç±ã§ã¾ã
ãã¼ã 80 以å¤ã§å®è¡ããã¦ãããµã¤ãã®å ´å:
+ãã¼ã 80 ã§å®è¡ããã¦ãããµã¤ãã®å ´å:
++ ãã¹ã¦ã®ãã¡ã¤ã³åã«å¯¾ãã¦ãããæ±ç¨çã«è¡ãããå ´å - + ã¤ã¾ããexample.com ã®ãã¹ã¦ã®å¯è½ãªå¤ã«å¯¾ã㦠+ example.com ã www.example.com + ã«ãªãã¤ã¬ã¯ããããå ´å - 以ä¸ã®ã¬ã·ãã使ç¨ã§ãã¾ã:
+ +ãããã®ã«ã¼ã«ã»ããã¯ãã¡ã¤ã³ãµã¼ãè¨å®ãã¡ã¤ã«ã¾ãã¯ãµã¼ãã®
+ .htaccess ãã¡ã¤ã«ã®ãããã§ãåä½ãã¾ãã
ç¹å®ã®ãªã½ã¼ã¹ãè¤æ°ã®å ´æã«åå¨ããå¯è½æ§ãããã + ãªã¯ã¨ã¹ãæã«ãããã®å ´æã§ãªã½ã¼ã¹ãæ¤ç´¢ãããã¨ãã¾ãã + ããããæè¿ãã£ã¬ã¯ããªæ§é ãåç·¨æããã³ã³ãã³ãã + è¤æ°ã®å ´æã«åå²ããããã§ãã
+以ä¸ã®ã«ã¼ã«ã»ãã㯠2 ã¤ã®ãã£ã¬ã¯ããªã§ãªã½ã¼ã¹ãæ¤ç´¢ãã + ã©ã¡ãã«ãè¦ã¤ãããªãå ´åã¯ããªã¯ã¨ã¹ããããå ´æãããã®ã¾ã¾ + æä¾ãããã¨ãã¾ãã
+ +ã¦ã§ããµã¤ãã®å¤æ°ã®ãã©ã¼ããããã¢ã¯ã»ã¹å ã®å½ã«æãè¿ã + ãã©ã¼ã«ãªãã¤ã¬ã¯ããããã¨ãã¾ãã
+ãªã¯ã¨ã¹ãå ã®ã¯ã©ã¤ã¢ã³ãã®ãã¹ãåãåç §ãã¦ãã©ã®å½ãã + ã¢ã¯ã»ã¹ãã¦ããããå¤å®ãã¾ããIP ã¢ãã¬ã¹ã®æ¤ç´¢ãã§ããªãå ´åã¯ã + ããã©ã«ããµã¼ãã«ãã©ã¼ã«ããã¯ãã¾ãã
+使ç¨ããããµã¼ãã®ãªã¹ããæ§ç¯ããããã«
on ã«è¨å®ããã¦ãããã¨ã«ä¾åãã¦ããã
+ ããã©ã¼ãã³ã¹ã«å¤§ããªå½±é¿ãä¸ããå¯è½æ§ãããã¾ããä¸é¨ã®ã¦ã§ããµã¼ãã§ã¯ããªã½ã¼ã¹ã«å¯¾ãã¦è¤æ°ã® URL ãåå¨ãã¾ãã + éå¸¸ãæ£è¦ã® URL (å®éã«ä½¿ç¨ããã³é å¸ããã URL) ã¨ãåãªã + ã·ã§ã¼ãã«ãããå é¨ç¨ã® URL çãããã¾ããã¦ã¼ã¶ããªã¯ã¨ã¹ãã§ + ã©ã® URL ãæä¾ãããã«é¢ä¿ãªããæçµçã«ãã©ã¦ã¶ã®ã¢ãã¬ã¹ãã¼ã« + æ£è¦ã® URL ã表示ãããããã«ãããã¨ãã¾ãã
+ãã¹ã¦ã®éæ£è¦ URL ã«å¯¾ãã¦å¤é¨ HTTP ãªãã¤ã¬ã¯ããè¡ãã
+ ãã©ã¦ã¶ã®è¡¨ç¤ºãä¿®æ£ãã以éã®ãã¹ã¦ã®ãªã¯ã¨ã¹ãã«åæ ããã¾ãã
+ 以ä¸ã®ã«ã¼ã«ã»ããä¾ã§ã¯ã/puppies ã¨
+ /canines ãæ£è¦ã® /dogs ã«
+ ç½®ãæãã¾ãã
DocumentRoot ã®ç§»åé常ãã¦ã§ããµã¼ãã® /" ã«ç´æ¥å¯¾å¿ãã¾ãã
+ãããããã®ãã¼ã¿ãæåªå
ã§ã¯ãªãå ´åãå¤ãããã¾ããä¾ãã°ã
+訪åè
ããµã¤ãã«æåã«ã¢ã¯ã»ã¹ããã¨ãã«ç¹å®ã®ãµããã£ã¬ã¯ããª
+/about/ ã«ç§»åããããå ´åãããã¾ããããã¯ä»¥ä¸ã®
+ã«ã¼ã«ã»ããã§å®ç¾ã§ãã¾ã:
URL / ã /about/ ã«ãªãã¤ã¬ã¯ããã¾ã:
+
ããã¯
ãã®ä¾ã¯ã«ã¼ã URL ã®ã¿ãæ¸ãæãããã¨ã«æ³¨æãã¦ãã ãããã¤ã¾ãã
+http://example.com/ ã¸ã®ãªã¯ã¨ã¹ãã¯æ¸ãæãã¾ããã
+http://example.com/page.html ã¸ã®ãªã¯ã¨ã¹ãã¯æ¸ãæãã¾ããã
+å®éã«ããã¥ã¡ã³ãã«ã¼ãã夿´ããå ´å - ã¤ã¾ããã³ã³ãã³ãã®
+ãã¹ã¦ãå®éã«ãã®ãµããã£ã¬ã¯ããªã«ããå ´å - URL ã
+æ¸ãæããããããåã«
ãã¼ã¸ã§ã³ 2.2.16 以éã§ã¯ããã®ããã«
ãã ãã以åã®ãã¼ã¸ã§ã³ã® Apache ãããããããè¤éãªãã¼ãºããã +å ´åã¯ã以ä¸ã®æ¸ãæãã»ããã®ããªã¨ã¼ã·ã§ã³ã使ç¨ãã¦åããã¨ã +å®ç¾ã§ãã¾ã:
+ +䏿¹ããªã¯ã¨ã¹ãããã URI ãã¯ã¨ãªæåå弿°ã¨ã㦠index.php ã« +渡ãããå ´åã¯ããã® RewriteRule ã以ä¸ã«ç½®ãæãããã¨ãã§ãã¾ã:
+ +ãããã®ã«ã¼ã«ã»ãã㯠.htaccess ãã¡ã¤ã«ã§ã
+<Directory> ãããã¯ã§ã使ç¨ã§ãããã¨ã«æ³¨æãã¦ãã ããã
ãã®ã»ã¯ã·ã§ã³ã®å¤ãã®è§£æ±ºæ¹æ³ã¯åãæ¡ä»¶ã使ç¨ãããããããå¤ã +%2 ããã¯ãªãã¡ã¬ã³ã¹ã«æ®ãã¾ãã%1 ã¯ã¯ã¨ãªæååã®å é (対象ãã¼ã¾ã§)ã +%3 ã¯æ®ãã®é¨åã§ãããã®æ¡ä»¶ã¯ãæè»æ§ã®ãããã¾ãç½®æã§äºéã® +'&&' ãé¿ããããã«ããè¤éã§ãã
+ì´ ë¬¸ìë
ìµê·¼ì foo.html íì´ì§ë¥¼
+ bar.htmlë¡ ì´ë¦ì ë³ê²½íê³ ì´ì URLì
+ íì í¸íì±ì ìí´ ì ê³µíê³ ì íë¤ê³ ê°ì í©ëë¤.
+ ê·¸ë¬ë ì´ì URLì ì¬ì©ìê° íì´ì§ ì´ë¦ì´ ë³ê²½ë ê²ì
+ ì¸ìíì§ ëª»íê² íê³ ì¶ìµëë¤. ì¦, ë¸ë¼ì°ì ìì
+ 주ìê° ë³ê²½ëì§ ììì¼ í©ëë¤.
ë¤ì ê·ì¹ì íµí´ ì´ì URLì ì URLë¡ ë´ë¶ì ì¼ë¡ + ì¬ìì±í©ëë¤:
+ +ë¤ì ìµê·¼ì foo.html íì´ì§ë¥¼
+ bar.htmlë¡ ì´ë¦ì ë³ê²½íê³ ì´ì URLì
+ íì í¸íì±ì ìí´ ì ê³µíê³ ì íë¤ê³ ê°ì í©ëë¤.
+ ê·¸ë¬ë ì´ë²ìë ì´ì URLì ì¬ì©ììê² ì URLì
+ ìë ¤ì£¼ê³ ì¶ìµëë¤. ì¦, ë¸ë¼ì°ì ì ìì¹ íëë
+ ë³ê²½ëì´ì¼ í©ëë¤.
ë¸ë¼ì°ì ì ì¬ì©ìì 보기를 ë³ê²½íë ì URLë¡ì + HTTP 리ë¤ì´ë í¸ë¥¼ ê°ì í©ëë¤:
+ +ì´ ìì ììë ìì ë´ë¶
+ ìì ì ëì¡°ì ì¼ë¡ ë¨ìí Redirect ì§ìì´ë¥¼ ì¬ì©í ì
+ ììµëë¤.
ììì´ ë¤ë¥¸ ìë²ë¡ ì´ëí ê²½ì°, ì¬ëë¤ì´ ë¶ë§í¬ë¥¼ + ì ë°ì´í¸íë ëì ì´ì ìë²ìì URLì´ íëì ê³ì + ìëí기를 ìí ì ììµëë¤.
+ì ì íì´ì§ foo.htmlì ëì ë³íì¸
+ foo.cgië¡ ë¸ë¼ì°ì /ì¬ì©ìê° ì¸ìíì§
+ 못íëë¡ ë§¤ëë½ê² ë³ííë ë°©ë²ì
ëë¤.
URLì CGI ì¤í¬ë¦½í¸ë¡ ì¬ìì±íê³ í¸ë¤ë¬ë¥¼
+ cgi-scriptë¡ ê°ì íì¬ CGI íë¡ê·¸ë¨ì¼ë¡
+ ì¤íí©ëë¤. ì´ë ê² íë©´ /~quux/foo.htmlì
+ ëí ìì²ì´ ë´ë¶ì ì¼ë¡ /~quux/foo.cgiì
+ í¸ì¶ë¡ ì´ì´ì§ëë¤.
document.YYYYìì
+ document.XXXXë¡ ë§ì´ê·¸ë ì´ì
í í,
+ ì를 ë¤ì´ .html íì¼ ë¬¶ìì
+ .phpë¡ ë³íí í, URLì íì í¸íëê²
+ (ì¬ì í ê°ìì¼ë¡ ì¡´ì¬) ë§ëë ë°©ë²ì 무ìì
ëê¹?
ì íì¥ì를 ê°ì§ ëì íì¼ì´ ì¡´ì¬íê³ ì´ì + íì¥ì를 ê°ì§ ìë íì¼ì´ ì¡´ì¬íì§ ìë ê²½ì°ìë§ + ì´ì íì¥ììì ì íì¥ìë¡ URLì ì¬ìì±í©ëë¤. + ê·¸ë ì§ ìì¼ë©´ URLì ë³ê²½ëì§ ììµëë¤.
+ +ì´ ìì ë document.html)ê³¼ ëì
+ (document.php) íì¼ì ì¡´ì¬ë¥¼ í
ì¤í¸í ì
+ ììµëë¤.
ì´ ê·ì¹ ì¸í¸ë ëë í ë¦¬ë³ ì»¨í
ì¤í¸(<Directory>
+ ë¸ë¡ ëë .htaccess íì¼)ìì ì¬ì©íëë¡ ì¤ê³ëì´
+ -f ê²ì¬ê° ì¬ë°ë¥¸ ëë í 리 ê²½ë¡ë¥¼ íì¸í©ëë¤.
+ ìì
ì¤ì¸ ëë í 리 기본ì ì§ì í기 ìí´
ì´ë¥¼ í´ê²°íë ê°ì¥ ì¢ì ë°©ë²ì
ëë ì를 ë¤ì´ ì¬ì´í¸ì ì¼ë¶ë¥¼ HTTPSë¡ ë¦¬ë¤ì´ë í¸íë ¤ë©´ +ë¤ìê³¼ ê°ì´ í ì ììµëë¤:
+ +ì´ë¤ ì´ì ë¡ë ì¬ì í
í¬í¸ 80ì´ ìë ë¤ë¥¸ í¬í¸ìì ì¤íëë ì¬ì´í¸ì ê²½ì°:
+ê·¸ë¦¬ê³ í¬í¸ 80ìì ì¤íëë ì¬ì´í¸ì ê²½ì°:
++ 모ë ëë©ì¸ ì´ë¦ì ëí´ ì´ë¥¼ ì¼ë°ì ì¼ë¡ ìííê³ + ì¶ë¤ë©´ - ì¦, 모ë ê°ë¥í ê°ì + example.comì ëí´ + example.comì + www.example.comì¼ë¡ 리ë¤ì´ë í¸íë ¤ë©´ + ë¤ì ë ìí¼ë¥¼ ì¬ì©í ì ììµëë¤:
+ +ì´ ê·ì¹ ì¸í¸ë 주 ìë² ì¤ì íì¼ì´ë ìë²ì
+ .htaccess íì¼ìì 모ë ìëí©ëë¤.
í¹ì ììì´ ì¬ë¬ ìì¹ ì¤ íëì ì¡´ì¬í ì ìì¼ë©°, + ìì² ì í´ë¹ ìì¹ìì ììì ì°¾ê³ ì í©ëë¤. ìë§ë + ìµê·¼ì ëë í 리 구조를 ì¬í¸íì¬ ì½í ì¸ ë¥¼ ì¬ë¬ + ìì¹ë¡ ëëìì ê²ì ëë¤.
+ë¤ì ê·ì¹ ì¸í¸ë ë ëë í 리ìì ììì ê²ìíê³ , + ì´ë ê³³ììë ì°¾ì§ ëª»íë©´ ìì²ë ìì¹ìì ê·¸ëë¡ + ì ê³µíë ¤ê³ ìëí©ëë¤.
+ +ì¹ì¬ì´í¸ì ì¬ë¬ 미ë¬ê° ìì¼ë©°, ì¬ì©ìê° ìì¹í + êµê°ì ìë 미ë¬ë¡ ì¬ì©ì를 리ë¤ì´ë í¸íê³ ì í©ëë¤.
+ìì²íë í´ë¼ì´ì¸í¸ì í¸ì¤í¸ëª ì íì¸íì¬ ì´ë + êµê°ìì ì¤ëì§ íë¨í©ëë¤. IP 주ì ì¡°íê° ë¶ê°ë¥í + ê²½ì° ê¸°ë³¸ ìë²ë¡ í´ë°±í©ëë¤.
+onì¼ë¡ ì¤ì ëì´ ìì´ì¼ íë©°, ì´ë ìë¹í
+ ì±ë¥ ì í를 ì´ëí ì ììµëë¤.ì¼ë¶ ì¹ ìë²ìë íëì ììì ëí´ ë ì´ìì + URLì´ ììµëë¤. ë³´íµ ì¤ì ë¡ ì¬ì©ëê³ ë°°í¬ëë + ì ê· URLì´ ìê³ , ë¨ì¶í¤, ë´ë¶ì© ë±ì URLì´ ììµëë¤. + ì¬ì©ìê° ìì²ê³¼ í¨ê» ì´ë¤ URLì ì ê³µíëì§ì + ê´ê³ìì´ ìµì¢ ì ì¼ë¡ ë¸ë¼ì°ì 주ì íìì¤ì + ì ê· URLì´ íìëì´ì¼ í©ëë¤.
+모ë ë¹ì ê· URLì ëí´ ì¸ë¶ HTTP 리ë¤ì´ë í¸ë¥¼
+ ìííì¬ ë¸ë¼ì°ì ì ìì¹ ë³´ê¸°ì 모ë íì ìì²ìì
+ ì´ë¥¼ ìì í©ëë¤. ìë ìì ê·ì¹ ì¸í¸ìì
+ /puppiesì /canines를
+ ì ê· /dogsë¡ ëì²´í©ëë¤.
DocumentRootë³´íµ ì¹ ìë²ì /"ì ì§ì ê´ë ¨ë©ëë¤. ê·¸ë¬ë ì¢
ì¢
ì´ ë°ì´í°ë
+ì¤ì ë¡ ìµìì ì°ì ììê° ìëëë¤. ì를 ë¤ì´, ì¬ì´í¸ì
+ì²ì 방문íë 방문ìê° í¹ì íì ëë í 리
+/about/ì¼ë¡ ì´ëí기를 ìí ì ììµëë¤.
+ë¤ì ê·ì¹ ì¸í¸ë¥¼ ì¬ì©íì¬ ì´ë¥¼ ìíí ì ììµëë¤:
URL /를 /about/ì¼ë¡
+ 리ë¤ì´ë í¸í©ëë¤:
ì´ê²ì
ëí ì´ ìì ë ë£¨í¸ URLë§ ì¬ìì±í©ëë¤. ì¦,
+http://example.com/ì ëí ìì²ë§ ì¬ìì±íê³
+http://example.com/page.htmlì ëí ìì²ì
+ì¬ìì±íì§ ììµëë¤. ì¤ì ë¡ ë¬¸ì 루í¸ë¥¼ ë³ê²½í ê²½ì° -
+ì¦, 모ë ì½í
ì¸ ê° ì¤ì ë¡ í´ë¹
+íì ëë í 리ì ìë ê²½ì° - URLì ì¬ìì±íë ê²ë³´ë¤
+
ë²ì 2.2.16ë¶í° ì´ë¥¼ ìí´
ê·¸ë¬ë ì´ì ë²ì ì Apacheìì ëë ì구 ì¬íì´ ì´ë³´ë¤ +ë ë³µì¡í ê²½ì° ëì¼í ê²ì ë¬ì±í기 ìí´ ë¤ì ì¬ìì± +ì¸í¸ì ë³íì ì¬ì©í ì ììµëë¤:
+ +ë°ë©´ì, ìì²ë URI를 index.phpì 쿼리 문ìì´ ì¸ìë¡ +ì ë¬íë ¤ë©´ í´ë¹ RewriteRuleì ë¤ìì¼ë¡ ëì²´í ì ììµëë¤:
+ +ì´ ê·ì¹ ì¸í¸ë .htaccess íì¼ë¿ë§ ìëë¼
+<Directory> ë¸ë¡ììë ì¬ì©í ì ììµëë¤.
ì´ ì¹ì ì ë§ì í´ê²°ì± ì ì¼ì¹ë ê°ì %2 ì참조ì +ë¨ê¸°ë ëì¼í ì¡°ê±´ì ì¬ì©í©ëë¤. %1ì 쿼리 문ìì´ì +ìì(ê´ì¬ í¤ê¹ì§)ì´ê³ , %3ì ë머ì§ì ëë¤. ì´ ì¡°ê±´ì +ì ì°ì±ì ìí´ ê·¸ë¦¬ê³ ì¹íìì ì´ì¤ +'&&'ì í¼í기 ìí´ ë¤ì ë³µì¡í©ëë¤.
+Bu belge,
foo.html sayfasını yakın zamanda
+ bar.html olarak yeniden adlandırdıÄımızı ve Åimdi
+ geriye dönük uyumluluk için eski URL'yi saÄlamak istediÄimizi
+ varsayalım. Ancak eski URL kullanıcılarının sayfanın yeniden
+ adlandırıldıÄını fark etmemesini istiyoruz - yani adresin
+ tarayıcılarında deÄiÅmesini istemiyoruz.
Eski URL'yi aÅaÄıdaki kuralla dahili olarak yenisine yeniden + yazıyoruz:
+ +Yine foo.html sayfasını yakın zamanda
+ bar.html olarak yeniden adlandırdıÄımızı ve Åimdi
+ geriye dönük uyumluluk için eski URL'yi saÄlamak istediÄimizi
+ varsayalım. Ancak bu sefer eski URL kullanıcılarının yeni URL
+ hakkında bilgilendirilmesini istiyoruz, yani tarayıcılarının
+ Konum alanı da deÄiÅmeli.
Tarayıcının ve dolayısıyla kullanıcının görünümünün + deÄiÅmesini saÄlayan yeni URL'ye bir HTTP yönlendirmesi + zorluyoruz:
+ +Bu örnekte, dahili örneÄin
+ aksine, basitçe Redirect yönergesini kullanabiliriz. Ãnceki
+ örnekte
Bir kaynak baÅka bir sunucuya taÅındıysa, insanlar yer + imlerini güncellerken URL'lerin eski sunucuda bir süre daha + çalıÅmasını isteyebilirsiniz.
+Bu URL'leri yeni sunucuya yönlendirmek için
+
Statik bir sayfa olan foo.html'yi devingen bir
+ varyant olan foo.cgi'ye tarayıcı/kullanıcı fark
+ etmeden sorunsuz bir Åekilde nasıl dönüÅtürebiliriz?
URL'yi CGI betiÄine yeniden yazar ve iÅleyiciyi
+ cgi-script olarak zorlayarak bir CGI programı
+ olarak yürütülmesini saÄlarız. Böylece
+ /~quux/foo.html isteÄi dahili olarak
+ /~quux/foo.cgi'nin çaÄrılmasına yol açar.
document.YYYY'den document.XXXX'e
+ geçiÅ yaptıktan sonra, örneÄin bir dizi .html
+ dosyasını .php'ye çevirdikten sonra URL'leri nasıl
+ geriye dönük uyumlu (sanal olarak hâlâ mevcut) yapabiliriz?
URL, yeni uzantılı hedef dosya mevcutsa ve eski uzantılı + orijinal dosya mevcut deÄilse eski uzantıdan yeni uzantıya + yeniden yazılır. Aksi takdirde URL deÄiÅtirilmeden bırakılır.
+ +Bu örnek, document.html) ve
+ hedef (document.php) dosyaların varlıÄını
+ sınamamıza olanak tanır.
Bu kural kümesi dizin baÅına baÄlamda (bir <Directory>
+ bloÄunda veya bir .htaccess dosyasında) kullanılmak üzere
+ tasarlanmıÅtır; böylece -f kontrolleri doÄru dizin
+ yoluna bakar. ÃalıÅtıÄınız dizin tabanını belirtmek için bir
+
Bunu çözmenin en iyi yolu
Bunu alternatif olarak
Veya örneÄin, sitenizin bir bölümünü HTTPS'ye yönlendirmek için +Åunları yapabilirsiniz:
+ +Herhangi bir nedenle hâlâ
80 dıÅında bir baÄlantı noktasında çalıÅan siteler için:
+80 baÄlantı noktasında çalıÅan bir site için
++ Bunu tüm alan adları için genel olarak yapmak istiyorsanız - + yani tüm olası example.com deÄerleri için + example.com'u + www.example.com'a yönlendirmek istiyorsanız - + aÅaÄıdaki tarifi kullanabilirsiniz:
+ +Bu kural kümeleri, ana sunucu yapılandırma dosyanızda veya
+ sunucunun .htaccess dosyasında
+ çalıÅacaktır.
Belirli bir kaynak birkaç yerden birinde olabilir ve + istendiÄinde bu yerlerde kaynaÄı aramak istiyoruz. Belki yakın + zamanda dizin yapımızı yeniden düzenledik ve içeriÄi birkaç + konuma böldük.
+AÅaÄıdaki kural kümesi, kaynaÄı bulmak için iki dizinde + arama yapar ve hiçbirinde bulamazsa istenen konumdan sunmayı + dener.
+ +Web sitemizin çok sayıda yansısı var ve insanları bulundukları + ülkedeki yansıya yönlendirmek istiyoruz.
+İstemcinin konak adına bakarak hangi ülkeden geldiklerini + belirliyoruz. IP adreslerini çözümleyemezsek öntanımlı bir + sunucuya geri dönüyoruz.
+Kullanmak istediÄimiz sunucuların listesini oluÅturmak için
+ bir
on olarak ayarlanmasına dayanır; bu da önemli bir
+ performans etkisi olabilir.Bazı web sunucularında bir kaynak için birden fazla URL + bulunur. Genellikle kurallı URL'ler (gerçekten kullanılan ve + daÄıtılan) ve kısayollar, dahili URL'ler vb. vardır. Kullanıcı + istekle hangi URL'yi saÄlamıŠolursa olsun, sonunda tarayıcı + adres çubuÄunda kurallı olanı görmelidir.
+Tüm kurallı olmayan URL'leri tarayıcının Konum görünümünde
+ düzeltmek ve sonraki tüm istekler için harici bir HTTP
+ yönlendirmesi yapıyoruz. AÅaÄıdaki örnek kural kümesinde
+ /puppies ve /canines yollarını
+ kurallı /dogs ile deÄiÅtiriyoruz.
DocumentRootGenellikle web sunucusunun /" URL'siyle iliÅkilidir. Ancak çoÄu zaman bu veriler
+gerçekten en üst düzey önceliÄe sahip deÄildir. ÃrneÄin, siteye ilk
+giren ziyaretçilerin belirli bir /about/ alt dizinine
+yönlendirilmesini isteyebilirsiniz. Bu, aÅaÄıdaki kural kümesi
+kullanılarak gerçekleÅtirilebilir:
/ URL'sini /about/ adresine
+ yönlendiriyoruz:
Bunun
Ayrıca örneÄin yalnızca kök URL'yi yeniden yazdıÄını unutmayın.
+Yani http://example.com/ isteÄini yeniden yazar ancak
+http://example.com/page.html isteÄini yeniden yazmaz.
+Belge kökünüzü gerçekten deÄiÅtirdiyseniz - yani tüm içeriÄiniz
+aslında o alt dizindeyse -
2.2.16 sürümünden itibaren bunun için
Ancak Apache'nin önceki sürümlerinde veya ihtiyaçlarınız bundan +daha karmaÅıksa, aynı Åeyi gerçekleÅtirmek için aÅaÄıdaki yeniden +yazma kümesinin bir varyasyonunu kullanabilirsiniz:
+ +DiÄer taraftan, istenen URI'yi index.php'ye sorgu dizgesi +argümanı olarak geçirmek isterseniz, o RewriteRule'u Åununla +deÄiÅtirebilirsiniz:
+ +Bu kural kümelerinin bir .htaccess dosyasında ve
+bir <Directory> bloÄunda da kullanılabileceÄini unutmayın.
Bu bölümdeki çözümlerin birçoÄu aynı koÅulu kullanır; bu koÅul +eÅleÅen deÄeri %2 geri baÅvurusunda bırakır. %1 sorgu dizgesinin +baÅlangıcıdır (ilgili anahtara kadar) ve %3 geri kalanıdır. Bu +koÅul, esneklik ve deÄiÅtirmelerde çift '&&' oluÅmasını +önlemek için biraz karmaÅıktır.
+æ¬ææ¡£æ¯
å设æä»¬æè¿å°é¡µé¢ foo.html éå½å为
+ bar.htmlï¼ç°å¨å¸ææä¾æ§ URL 以å®ç°ååå
¼å®¹ã
+ 使¯ï¼æä»¬å¸ææ§ URL çç¨æ·çè³ä¸ä¼æ³¨æå°é¡µé¢å·²è¢«éå½åââ
+ ä¹å°±æ¯è¯´ï¼æä»¬ä¸å¸ææµè§å¨ä¸çå°ååçååã
æä»¬éè¿ä»¥ä¸è§åå¨å é¨å°æ§ URL éåä¸ºæ° URLï¼
+ +忬¡å设æä»¬æè¿å°é¡µé¢ foo.html éå½å为
+ bar.htmlï¼ç°å¨å¸ææä¾æ§ URL 以å®ç°ååå
¼å®¹ã
+ ä½è¿æ¬¡æä»¬å¸ææ§ URL çç¨æ·è½çå°æ° URL çæç¤ºï¼
+ å³ä»ä»¬çæµè§å¨å°åæ ä¹åºè¯¥æ¹åã
æä»¬å¼ºå¶è¿è¡ HTTP éå®åå°æ° URLï¼ + è¿ä¼å¯¼è´æµè§å¨ä»¥åç¨æ·è§å¾çååï¼
+ +卿¬ç¤ºä¾ä¸ï¼ä¸ä¸é¢çå
é¨ç¤ºä¾ä¸åï¼
+ æä»¬å¯ä»¥ç®åå°ä½¿ç¨ Redirect æä»¤ãå¨åé¢ç示ä¾ä¸ä½¿ç¨
+
å¦æèµæºå·²ç§»è³å¦ä¸å°æå¡å¨ï¼ä½ å¯è½å¸æ URL + 卿§æå¡å¨ä¸ç»§ç»å·¥ä½ä¸æ®µæ¶é´ï¼ä»¥ä¾¿äººä»¬æ´æ°ä¹¦ç¾ã
+ä½ å¯ä»¥ä½¿ç¨
å¦ä½ä»¥æ ç¼çæ¹å¼ï¼å³æµè§å¨/ç¨æ·ä¸ä¼æ³¨æå°ï¼å°éæé¡µé¢
+ foo.html 转æ¢ä¸ºå¨æåä½ foo.cgiã
æä»¬åªéå° URL éå为 CGI èæ¬å¹¶å¼ºå¶å¤çç¨åºä¸º
+ cgi-scriptï¼ä½¿å
¶ä½ä¸º CGI ç¨åºæ§è¡ã
+ è¿æ ·ï¼å¯¹ /~quux/foo.html ç请æ±å¨å
é¨ä¼å¯¼è´è°ç¨
+ /~quux/foo.cgiã
å¨å° document.YYYY è¿ç§»å°
+ document.XXXXï¼ä¾å¦å°ä¸æ¹ .html
+ æä»¶ç¿»è¯ä¸º .phpï¼ä¹åï¼
+ å¦ä½ä½¿ URL ä¿æååå
¼å®¹ï¼ä»ç¶èæåå¨ï¼ï¼
ä» å½å ·ææ°æ©å±åçç®æ æä»¶åå¨èå ·ææ§æ©å±åçåå§æä»¶ä¸å卿¶ï¼ + æå° URL 仿§æ©å±åéåä¸ºæ°æ©å±åãå¦åï¼URL ä¿æä¸åã
+ +æ¤ç¤ºä¾ä½¿ç¨äº document.htmlï¼åç®æ æä»¶
+ ï¼document.phpï¼çå卿§ã
æ¤è§åé设计ç¨äºç®å½çº§ä¸ä¸æ
+ ï¼å¨ <Directory> åæ .htaccess æä»¶ä¸ï¼ï¼
+ 以便 -f æ£æ¥æ£ç¡®çç®å½è·¯å¾ã
+ ä½ å¯è½éè¦è®¾ç½®
æä½³æ¹å¼æ ¹æ¬ä¸æ¶å
ä½ ä¹å¯ä»¥ä½¿ç¨
+
æè ï¼ä¾å¦ï¼è¦å°ç«ç¹çä¸é¨åéå®åå° HTTPSï¼ä½ å¯ä»¥æ§è¡ä»¥ä¸æä½ï¼
+ +妿åºäºæç§åå ä½ ä»ç¶æ³ä½¿ç¨
对äºè¿è¡å¨é 80 端å£ä¸çç«ç¹ï¼
+对äºè¿è¡å¨ 80 端å£ä¸çç«ç¹ï¼
++ å¦æä½ å¸æå¯¹ææååéç¨å°æ§è¡æ¤æä½ââä¹å°±æ¯è¯´ï¼ + å¦æä½ æ³å° example.com éå®åå° + www.example.comï¼å ¶ä¸ + example.com å¯ä»¥æ¯ä»»ä½å¼ï¼ + ä½ å¯ä»¥ä½¿ç¨ä»¥ä¸æ¹æ¡ï¼
+ +è¿äºè§åéå¯ä»¥å¨ä¸»æå¡å¨é
ç½®æä»¶ä¸ä½¿ç¨ï¼
+ ä¹å¯ä»¥å¨æ¾ç½®äºæå¡å¨ .htaccess æä»¶ä¸ä½¿ç¨ã
æä¸ªç¹å®èµæºå¯è½åå¨äºå¤ä¸ªä½ç½®ï¼ + æä»¬å¸æå¨è¯·æ±æ¶å¨è¿äºä½ç½®ä¸æ¥æ¾è¯¥èµæºã + ä¹è®¸æä»¬æè¿éæ°æ´çäºç®å½ç»æï¼å°å 容忣å°å¤ä¸ªä½ç½®ã
+以ä¸è§åéå¨ä¸¤ä¸ªç®å½ä¸æç´¢èµæºï¼ + 妿å¨ä¸¤ä¸ªä½ç½®é½æ¾ä¸å°ï¼åå°è¯ä»è¯·æ±çä½ç½®ç´æ¥æä¾ã
+ +æä»¬çç½ç«æå¤ä¸ªéåï¼ + 叿å°ç¨æ·éå®åå°è·å ¶æå¨å½å®¶æè¿çéåã
+æ¥ç请æ±å®¢æ·ç«¯ç主æºåï¼ç¡®å®ä»ä»¬æ¥èªåªä¸ªå½å®¶ã + å¦ææ æ³æ¥æ¾å ¶ IP å°åï¼ååéå°é»è®¤æå¡å¨ã
+æä»¬å°ä½¿ç¨
onï¼è¿å¯è½ä¼å¯¹æ§è½äº§çæ¾èå½±åãå¨æäº Web æå¡å¨ä¸ï¼ä¸ä¸ªèµæºå¯è½æå¤ä¸ª URLã + é常æè§è URLï¼å³å®é 使ç¨åååç URLï¼ + ååªæ¯å¿«æ·æ¹å¼ãå é¨ URL çç URLã + æ è®ºç¨æ·å¨è¯·æ±ä¸æä¾çæ¯åªä¸ª URLï¼ + ä»ä»¬æç»åºå¨æµè§å¨å°åæ ä¸çå°è§è URLã
+æä»¬å¯¹ææéè§è URL æ§è¡å¤é¨ HTTP éå®åï¼
+ 以卿µè§å¨çå°åè§å¾ä¸ä¿®æ£å®ä»¬ï¼å¹¶ç¨äºææåç»è¯·æ±ã
+ å¨ä¸é¢ç示ä¾è§åéä¸ï¼æä»¬å° /puppies å
+ /canines æ¿æ¢ä¸ºè§èç /dogsã
DocumentRooté常 Web æå¡å¨ç /"ã
+ä½è¿äºæ°æ®é叏䏿¯æé«ä¼å
级çå
容ãä¾å¦ï¼
+ä½ å¯è½å¸æè®¿å®¢å¨é¦æ¬¡è¿å
¥ç«ç¹æ¶è½¬å°ç¹å®åç®å½ /about/ã
+è¿å¯ä»¥ä½¿ç¨ä»¥ä¸è§å鿥å®ç°ï¼
æä»¬å° URL / éå®åå° /about/ï¼
+
请注æï¼è¿ä¹å¯ä»¥ä½¿ç¨
+
è¿è¦æ³¨æï¼æ¤ç¤ºä¾ä»
éåæ ¹ URLãä¹å°±æ¯è¯´ï¼
+å®éå对 http://example.com/ ç请æ±ï¼
+ä½ä¸ä¼éå对 http://example.com/page.html ç请æ±ã
+å¦æä½ ç¡®å®æ´æ¹äºææ¡£æ ¹ç®å½ââä¹å°±æ¯è¯´ï¼å¦æä½ çææå
容
+å®é
ä¸é½å¨è¯¥åç®å½ä¸ï¼é£ä¹æå¥½ç´æ¥æ´æ¹
+
ä» 2.2.16 çæ¬å¼å§ï¼ä½ åºè¯¥ä½¿ç¨
+
使¯ï¼å¨æ©æçæ¬ç Apache ä¸ï¼æè å¦æä½ çéæ±æ¯è¿æ´å¤æï¼ +ä½ å¯ä»¥ä½¿ç¨ä»¥ä¸éåéçå使¥å®ç°ç¸åçç®çï¼
+ +å¦ä¸æ¹é¢ï¼å¦æä½ 叿å°è¯·æ±ç URI ä½ä¸ºæ¥è¯¢åç¬¦ä¸²åæ°ä¼ éç» index.phpï¼ +ä½ å¯ä»¥å°è¯¥ RewriteRule æ¿æ¢ä¸ºï¼
+ +请注æï¼è¿äºè§åéå¯ä»¥å¨ .htaccess æä»¶ä¸ä½¿ç¨ï¼
+ä¹å¯ä»¥å¨ <Directory> åä¸ä½¿ç¨ã
æ¬èä¸ç许å¤è§£å³æ¹æ¡é½ä½¿ç¨ç¸åçæ¡ä»¶ï¼ +该æ¡ä»¶å°å¹é çå¼çå¨ %2 ååå¼ç¨ä¸ã%1 æ¯æ¥è¯¢å符串çå¼å¤´ +ï¼ç´å°æå ´è¶£çé®ï¼ï¼%3 æ¯å©ä½é¨åã +æ¤æ¡ä»¶ç¨å¾®å¤ææ¯ä¸ºäºçµæ´»æ§åé¿å æ¿æ¢ä¸åºç°å '&&'ã
+Dieses Dokument ergänzt die
+ Die
Die Syntax der
Der MapName ist ein + beliebiger Name, den Sie der Map zuweisen und den Sie später in + Direktiven verwenden. Argumente werden der Map über die folgende + Syntax übergeben:
+ +
+
+ ${ MapName : LookupKey
+ }
${ MapName :
+ LookupKey | DefaultValue }
+
+
Wenn ein solches Konstrukt auftritt, wird die Map MapName + konsultiert und der Schlüssel LookupKey nachgeschlagen. + Wenn der Schlüssel gefunden wird, wird das Map-Funktions-Konstrukt + durch SubstValue ersetzt. Wenn der Schlüssel nicht gefunden + wird, wird es durch DefaultValue oder durch den leeren + String ersetzt, falls kein DefaultValue angegeben wurde.
+ +Sie können beispielsweise eine
+
Sie können diese Map dann in einer
+
Ein Standardwert kann für den Fall angegeben werden, dass nichts in +der Map gefunden wird:
+ +
+Die .htaccess-Dateien verwendet werden. Sie müssen die Map im Server-
+oder VirtualHost-Kontext deklarieren. Sie können die Map, einmal erstellt, in
+Ihren
Die folgenden Abschnitte beschreiben die verschiedenen MapTypes, +die verwendet werden können, und geben Beispiele für jeden.
+Wenn ein MapType von int verwendet wird, ist die
+ MapSource eine der verfügbaren internen
+ ap_register_rewrite_mapfunc-API
+ registrieren. Die standardmäÃig bereitgestellten Funktionen sind:
+
+ Um eine dieser Funktionen zu verwenden, erstellen Sie eine
+
Eine URI auf eine komplett kleingeschriebene Version umleiten
+Bitte beachten Sie, dass das hier angebotene Beispiel nur zur
+ Veranschaulichung dient und keine Empfehlung ist. Wenn Sie URLs
+ unabhängig von der GroÃ-/Kleinschreibung machen möchten, ziehen Sie
+ stattdessen die Verwendung von
Wenn ein MapType von txt verwendet wird, ist die
+ MapSource ein Dateisystempfad zu einer Klartext-Zuordnungsdatei,
+ die ein durch Leerzeichen getrenntes Schlüssel/Wert-Paar pro Zeile
+ enthält. Optional kann eine Zeile einen Kommentar enthalten, der
+ mit einem '#'-Zeichen beginnt.
Eine gültige Text-Rewrite-Map-Datei hat die folgende Syntax:
+ +Wenn die
Beispielsweise können wir eine Map-Datei verwenden, um + Produktnamen in Produkt-IDs für leichter zu merkende URLs + zu übersetzen, mit dem folgenden Rezept:
+Produkt-zu-ID-Konfiguration
+Wir nehmen hier an, dass das prods.php-Skript weiÃ,
+ was zu tun ist, wenn es ein Argument von id=NOTFOUND
+ erhält, wenn ein Produkt nicht in der Nachschlagetabelle gefunden
+ wird.
Die Datei /etc/apache2/productmap.txt enthält dann
+ Folgendes:
Wenn also http://example.com/product/television
+ angefordert wird, wird die /prods.php?id=993 abgebildet.
.htaccess-Datei verwenden möchten, müssen Sie den
+ führenden Schrägstrich aus dem Umschreibungsmuster entfernen, damit
+ es übereinstimmt:
+
+ Die nachgeschlagenen Schlüssel werden von httpd zwischengespeichert,
+ bis sich die mtime (Ãnderungszeit) der Map-Datei ändert
+ oder der httpd-Server neu gestartet wird. Dies gewährleistet eine
+ bessere Leistung bei Maps, die von vielen Anfragen aufgerufen werden.
+
Wenn ein MapType von rnd verwendet wird, ist die
+ MapSource ein Dateisystempfad zu einer Klartext-Zuordnungsdatei,
+ wobei jede Zeile einen Schlüssel und einen oder mehrere durch
+ | getrennte Werte enthält. Einer dieser Werte wird
+ zufällig ausgewählt, wenn der Schlüssel übereinstimmt.
Sie können beispielsweise die folgende Map-Datei und Direktiven + verwenden, um eine zufällige Lastverteilung zwischen mehreren + Backend-Servern über einen Reverse-Proxy bereitzustellen. Bilder + werden an einen der Server im 'static'-Pool gesendet, während alles + andere an einen der Server im 'dynamic'-Pool gesendet wird.
+ +Konfigurationsdirektiven
+Wenn also ein Bild angefordert wird und die erste dieser Regeln
+ übereinstimmt, schlägt static in der Map-Datei nach, die einen der
+ angegebenen Hostnamen zufällig zurückgibt, der dann im
+
Wenn Sie möchten, dass einer der Server häufiger ausgewählt wird + (zum Beispiel, wenn einer der Server mehr Speicher hat und daher mehr + Anfragen verarbeiten kann), listen Sie ihn einfach häufiger in der + Map-Datei auf.
+ +Wenn ein MapType von dbm verwendet wird, ist die
+ MapSource ein Dateisystempfad zu einer DBM-Datenbankdatei, die
+ Schlüssel/Wert-Paare für die Zuordnung enthält. Dies funktioniert
+ genau wie die txt-Map, ist aber viel schneller, da eine
+ DBM indiziert ist, während eine Textdatei dies nicht ist. Dies
+ ermöglicht einen schnelleren Zugriff auf den gewünschten Schlüssel.
Sie können optional einen bestimmten DBM-Typ angeben:
+ +Der Typ kann sdbm, gdbm,
+ ndbm oder db sein. Es wird jedoch
+ empfohlen, einfach das mit dem Apache HTTP Server mitgelieferte
+ Dienstprogramm httxt2dbm
+ zu verwenden, da es die korrekte DBM-Bibliothek verwendet, die mit
+ der beim Bau von httpd selbst verwendeten übereinstimmt.
Um eine DBM-Datei zu erstellen, erstellen Sie zunächst eine
+ Text-Map-Datei wie im Abschnitt txt beschrieben.
+ Führen Sie dann httxt2dbm aus:
Sie können dann die resultierende Datei in Ihrer
+
Beachten Sie, dass bei einigen DBM-Typen mehr als eine Datei mit
+einem gemeinsamen Basisnamen erzeugt wird. Beispielsweise können zwei
+Dateien namens mapfile.map.dir und
+mapfile.map.pag vorhanden sein. Dies ist normal, und Sie
+müssen nur den Basisnamen mapfile.map in Ihrer
+
+Die nachgeschlagenen Schlüssel werden von httpd zwischengespeichert, bis
+sich die mtime (Ãnderungszeit) der Map-Datei ändert oder der
+httpd-Server neu gestartet wird. Dies gewährleistet eine bessere Leistung
+bei Maps, die von vielen Anfragen aufgerufen werden.
+
Wenn ein MapType von prg verwendet wird, ist die
+ MapSource ein Dateisystempfad zu einem ausführbaren Programm, das
+ das Zuordnungsverhalten bereitstellt. Dies kann eine kompilierte
+ Binärdatei oder ein Programm in einer interpretierten Sprache wie
+ Python oder Perl sein.
Dieses Programm wird einmal beim Start des Apache HTTP Servers
+ gestartet und kommuniziert dann mit der Umschreibungs-Engine über
+ STDIN und STDOUT. Für jede Map-Funktions-Nachschlagung
+ wird der Schlüssel auf das STDIN des Programms geschrieben,
+ gefolgt von einem Zeilenumbruch. Das Programm sollte eine Zeile von
+ STDIN lesen (bis einschlieÃlich des Zeilenumbruchs) und
+ seine Antwort als einzelne durch einen Zeilenumbruch abgeschlossene
+ Zeile auf STDOUT schreiben. Schlüssel enthalten niemals
+ Zeilenumbrüche; wenn ein Schlüssel mit einem Zeilenumbruch angetroffen
+ wird, schlägt die Nachschlagung fehl.
Wenn es keinen entsprechenden Nachschlagewert gibt, sollte das
+ Map-Programm den vierstelligen String "NULL" zurückgeben,
+ um dies anzuzeigen. Beachten Sie, dass dieser Vergleich
+ GroÃ-/Kleinschreibung ignoriert, sodass "null", "Null" usw. ebenfalls
+ als fehlgeschlagene Nachschlagung behandelt werden. Folglich ist es
+ nicht möglich, dass ein Zuordnungsprogramm den literalen String "NULL"
+ als zugeordneten Wert zurückgibt.
Das STDERR des Programms wird vom httpd-Elternprozess
+ geerbt, sodass alles, was das Programm auf STDERR schreibt,
+ an derselben Stelle wie die eigene Fehlerausgabe von httpd erscheint
+ (typischerweise das
Externe Umschreibungsprogramme werden nicht gestartet, wenn sie in
+ einem Kontext definiert sind, der on
+ gesetzt hat.
StandardmäÃig werden externe Umschreibungsprogramme als der
+ Benutzer:Gruppe ausgeführt, der httpd gestartet hat. Auf
+ UNIX-Systemen kann dies geändert werden, indem Benutzername und
+ Gruppenname als drittes Argument an
+ username:groupname übergeben werden.
Diese Funktion nutzt den rewrite-map-Mutex, der
+ für eine zuverlässige Kommunikation mit dem Programm erforderlich ist.
+ Der Mutex-Mechanismus und die Sperrdatei können mit der
+
Hier wird ein einfaches Beispiel gezeigt, das alle Bindestriche + in einem Anfrage-URI durch Unterstriche ersetzt.
+ +Umschreibungskonfiguration
+dash2under.py
+flush=True an print(). Gepufferte I/O bewirkt,
+dass httpd auf die Ausgabe wartet und daher hängen bleibt.SIGTERM gesendet; wenn
+es nicht innerhalb von 3 Sekunden beendet wird, wird SIGKILL
+gesendet.Wenn ein MapType von dbd oder fastdbd
+ verwendet wird, ist die MapSource eine SQL-SELECT-Anweisung, die
+ ein einzelnes Argument entgegennimmt und einen einzelnen Wert
+ zurückgibt.
Es gibt zwei Formen dieses MapType. Bei Verwendung eines MapType
+ von dbd wird die Abfrage bei jeder Map-Anfrage ausgeführt,
+ während bei fastdbd die Datenbank-Nachschlagungen intern
+ zwischengespeichert werden. Obwohl fastdbd effizienter
+ und daher schneller ist, werden Ãnderungen an der Datenbank erst nach
+ einem Neustart des Servers übernommen.
Wenn eine Abfrage mehr als eine Zeile zurückgibt, wird eine + zufällige Zeile aus der Ergebnismenge verwendet.
+ +Der Abfragename wird als Label für eine vorbereitete + SQL-Anweisung an den Datenbanktreiber übergeben und muss daher alle + Regeln (wie GroÃ-/Kleinschreibung) einhalten, die Ihre Datenbank + erfordert.
Die
Obwohl Sie eine Map nicht im Verzeichniskontext
+ (.htaccess-Dateien oder
+
Este documento complementa la
+ La directiva
La sintaxis de la directiva
El MapName es un + nombre arbitrario que asigna al mapa, y que usará en + directivas más adelante. Los argumentos se pasan al mapa a través de la + siguiente sintaxis:
+ +
+
+ ${ MapName : LookupKey
+ }
${ MapName :
+ LookupKey | DefaultValue }
+
+
Cuando se encuentra tal construcción, se consulta el mapa MapName + y se busca la clave LookupKey. Si la + clave se encuentra, la construcción de función de mapa se sustituye por + SubstValue. Si la clave no se encuentra entonces se + sustituye por DefaultValue o por la cadena vacÃa + si no se especificó DefaultValue.
+ +Por ejemplo, puede definir un
+
Entonces podrá usar este mapa en una
+
Se puede especificar un valor predeterminado en caso de que no se encuentre nada +en el mapa:
+ +
+La directiva .htaccess. Debe
+declarar el mapa en contexto de servidor o virtualhost. Puede usar el mapa,
+una vez creado, en sus directivas
Las secciones siguientes describen los diversos MapTypes que +pueden usarse, y dan ejemplos de cada uno.
+Cuando se usa un MapType de int, el MapSource es una
+ de las funciones internas disponibles de ap_register_rewrite_mapfunc.
+ Las funciones que se proporcionan por defecto son:
+
+ Para usar una de estas funciones, cree un
Redirigir una URI a una versión toda en minúsculas de sà misma
+Por favor tenga en cuenta que el ejemplo ofrecido aquà es para
+ fines ilustrativos únicamente, y no es una recomendación. Si desea
+ hacer URLs insensibles a mayúsculas/minúsculas, considere usar
+
Cuando se usa un MapType de txt, el MapSource es una ruta del sistema de archivos a un
+ archivo de mapeo de texto plano, que contiene un par clave/valor separado por espacios
+ por lÃnea. Opcionalmente, una lÃnea puede contener un comentario, comenzando con
+ un carácter '#'.
Un archivo de mapa de reescritura de texto válido tendrá la siguiente sintaxis:
+ +Cuando se invoca el
Por ejemplo, podemos usar un archivo de mapa para traducir nombres de productos a + IDs de productos para URLs más fáciles de recordar, usando la siguiente + receta:
+Configuración de Producto a ID
+Asumimos aquà que el script prods.php sabe qué
+ hacer cuando recibe un argumento de id=NOTFOUND cuando
+ un producto no se encuentra en el mapa de búsqueda.
El archivo /etc/apache2/productmap.txt entonces contiene
+ lo siguiente:
AsÃ, cuando se solicita http://example.com/product/television,
+ se aplica la /prods.php?id=993.
.htaccess,
+ necesitará eliminar la barra inicial del patrón de
+ reescritura para que coincida con algo:
+
+ Las claves buscadas son almacenadas en caché por httpd hasta que el mtime
+ (tiempo de modificación) del archivo de mapa cambia, o el servidor httpd se
+ reinicia. Esto asegura un mejor rendimiento en mapas que son llamados
+ por muchas solicitudes.
+
Cuando se usa un MapType de rnd, el MapSource es una
+ ruta del sistema de archivos a un archivo de mapeo de texto plano, cada lÃnea del cual
+ contiene una clave, y uno o más valores separados por |.
+ Uno de estos valores se elegirá al azar si la clave
+ coincide.
Por ejemplo, puede usar el siguiente archivo de mapa + y directivas para proporcionar un balanceo de carga aleatorio entre + varios servidores backend, a través de un proxy inverso. Las imágenes se envÃan + a uno de los servidores en el grupo 'static', mientras que todo + lo demás se envÃa a uno del grupo 'dynamic'.
+ +Directivas de configuración
+AsÃ, cuando se solicita una imagen y la primera de estas reglas
+ coincide, static en el archivo de mapa, que devuelve uno de los
+ nombres de host especificados al azar, que luego se usa en el
+ destino de la
Si quisiera que uno de los servidores sea más probable de ser elegido + (por ejemplo, si uno de los servidores tiene más memoria que los otros, + y por lo tanto puede manejar más solicitudes) simplemente listelo más veces en el + archivo de mapa.
+ +Cuando se usa un MapType de dbm, el MapSource es una
+ ruta del sistema de archivos a un archivo de base de datos DBM que contiene pares clave/valor para
+ ser usados en el mapeo. Esto funciona exactamente igual que el
+ mapa txt, pero es mucho más rápido, porque un DBM está indexado,
+ mientras que un archivo de texto no. Esto permite un acceso más rápido a la
+ clave deseada.
Opcionalmente puede especificar un tipo particular de dbm:
+ +El tipo puede ser sdbm, gdbm, ndbm
+ o db.
+ Sin embargo, se recomienda que simplemente use la utilidad httxt2dbm que se
+ proporciona con Apache HTTP Server, ya que usará la biblioteca DBM correcta,
+ que coincida con la que se usó cuando se compiló httpd mismo.
Para crear un archivo dbm, primero cree un archivo de mapa de texto como se describe
+ en la sección txt. Luego ejecute
+ httxt2dbm:
Luego puede referenciar el archivo resultante en su
+directiva
Tenga en cuenta que con algunos tipos de dbm, se genera más de un archivo, con
+un nombre base común. Por ejemplo, puede tener dos archivos llamados
+mapfile.map.dir y mapfile.map.pag. Esto es
+normal, y solo necesita usar el nombre base mapfile.map en
+su directiva
+Las claves buscadas son almacenadas en caché por httpd hasta que el mtime
+(tiempo de modificación) del archivo de mapa cambia, o el servidor httpd se
+reinicia. Esto asegura un mejor rendimiento en mapas que son llamados
+por muchas solicitudes.
+
Cuando se usa un MapType de prg, el MapSource es una
+ ruta del sistema de archivos a un programa ejecutable que proporcionará el
+ comportamiento de mapeo. Puede ser un archivo binario compilado, o un programa
+ en un lenguaje interpretado como Python o Perl.
Este programa se inicia una vez, cuando se inicia Apache HTTP Server,
+ y luego se comunica con el motor de reescritura a través de
+ STDIN y STDOUT. Para cada búsqueda de función de mapa,
+ la clave se escribe en el STDIN del programa,
+ seguida de un carácter de nueva lÃnea. El programa deberÃa leer una lÃnea
+ de STDIN (hasta e incluyendo la nueva lÃnea), y
+ escribir su respuesta como una única lÃnea terminada en nueva lÃnea en
+ STDOUT. Las claves nunca contendrán caracteres de nueva lÃnea;
+ si se encuentra una clave que contenga una nueva lÃnea, la búsqueda
+ fallará.
Si no hay un valor de búsqueda correspondiente, el programa de mapa
+ deberÃa devolver la cadena de cuatro caracteres "NULL" para
+ indicar esto. Tenga en cuenta que esta comparación no distingue entre mayúsculas y minúsculas, asà que
+ "null", "Null", etc. también se tratan como una búsqueda fallida. Como
+ consecuencia, no es posible que un programa de mapeo devuelva
+ la cadena literal "NULL" como valor mapeado.
El STDERR del programa se hereda del
+ proceso padre de httpd, por lo que cualquier cosa que el programa escriba en
+ STDERR terminará en el mismo lugar que la propia
+ salida de errores de httpd (tÃpicamente el
Los programas de reescritura externos no se inician si están definidos en
+ un contexto que no tiene on.
Por defecto, los programas de reescritura externos se ejecutan como el
+ usuario:grupo que inició httpd. Esto puede cambiarse en sistemas UNIX
+ pasando nombre de usuario y nombre de grupo como tercer argumento a
+ username:groupname.
Esta caracterÃstica utiliza el mutex rewrite-map,
+ que es necesario para una comunicación fiable con el programa.
+ El mecanismo de mutex y el archivo de bloqueo pueden configurarse con la
+ directiva
Aquà se muestra un ejemplo simple que reemplazará todos los guiones con + guiones bajos en una URI de solicitud.
+ +Configuración de reescritura
+dash2under.py
+flush=True a
+print(). La E/S con buffer causará que httpd espere la
+salida, y por lo tanto se colgará.SIGTERM al programa; si no sale dentro de 3 segundos, se
+le envÃa SIGKILL.Cuando se usa un MapType de dbd o fastdbd,
+ el MapSource es una sentencia SQL SELECT que toma un solo
+ argumento y devuelve un solo valor.
Hay dos formas de este MapType.
+ Usar un MapType de dbd causa que la consulta se
+ ejecute con cada solicitud de mapa, mientras que usar fastdbd
+ almacena en caché las búsquedas de base de datos internamente. AsÃ, mientras que
+ fastdbd es más eficiente, y por lo tanto más rápido, no
+ reflejará los cambios en la base de datos hasta que el servidor sea
+ reiniciado.
Si una consulta devuelve más de una fila, se usa una fila aleatoria del + conjunto de resultados.
+ +El nombre de la consulta se pasa al controlador de base de datos como una etiqueta para + una sentencia SQL preparada, y por lo tanto necesitará seguir cualquier regla + (como sensibilidad a mayúsculas/minúsculas) requerida por su base de datos.
La directiva
Aunque no puede declarar un mapa en
+ contexto per-directorio (archivos .htaccess o
+ bloques
ãã®ããã¥ã¡ã³ãã¯
+
MapName ã¯ã + ãããã«å²ãå½ã¦ãä»»æã®ååã§ãå¾ã®ãã£ã¬ã¯ãã£ãã§ä½¿ç¨ãã¾ãã + 弿°ã¯ä»¥ä¸ã®æ§æã§ãããã«æ¸¡ããã¾ã:
+ +
+
+ ${ MapName : LookupKey
+ }
${ MapName :
+ LookupKey | DefaultValue }
+
+
ãã®ãããªæ§æãåºç¾ããã¨ãããã MapName ãåç §ããã + ãã¼ LookupKey ãæ¤ç´¢ããã¾ãããã¼ãè¦ã¤ãã£ãå ´åã + ããã颿°ã®æ§æã¯ SubstValue ã§ç½®æããã¾ãããã¼ã + è¦ã¤ãããªãã£ãå ´åã¯ãDefaultValue ã§ç½®æããããã + DefaultValue ãæå®ããã¦ããªãå ´åã¯ç©ºæååã§ + ç½®æããã¾ãã
+ +ä¾ãã°ã
ãã®å¾ããã®ãããã
ãããã§ä½ãè¦ã¤ãããªãã£ãå ´åã«åãã¦ãããã©ã«ãå¤ãæå® +ã§ãã¾ã:
+ +
+.htaccess ãã¡ã¤ã«ã§ã¯ä½¿ç¨ã§ãã¾ããããããã¯ãµã¼ãã¾ãã¯
+ãã¼ãã£ã«ãã¹ãã®ã³ã³ããã¹ãã§å®£è¨ããå¿
è¦ãããã¾ãã使ãããããã¯ã
+ãããã®ã¹ã³ã¼ãå
ã®
以ä¸ã®ã»ã¯ã·ã§ã³ã§ã¯ã使ç¨å¯è½ãªãã¾ãã¾ãª MapType ã +説æããããããã®ä¾ã示ãã¾ãã
+MapType ã« int ã使ç¨ããã¨ãMapSource ã¯å©ç¨å¯è½ãª
+ å
é¨ ap_register_rewrite_mapfunc API ã使ç¨ãã¦è¿½å ã®å
é¨
+ 颿°ãç»é²ã§ãã¾ãã
+ ããã©ã«ãã§æä¾ããã颿°ã¯ä»¥ä¸ã®éãã§ã:
+
+ ãããã®é¢æ°ã®ããããã使ç¨ããã«ã¯ãint 颿°ãåç
§ãã
+
URI ããã¹ã¦å°æåã®ãã¼ã¸ã§ã³ã«ãªãã¤ã¬ã¯ã
+ããã§æä¾ããã¦ããä¾ã¯èª¬æç®çã®ã¿ã§ãããæ¨å¥¨ã§ã¯ããã¾ããã
+ URL ã大æåå°æåãåºå¥ããªãããã«ãããå ´åã¯ã代ããã«
+
MapType ã« txt ã使ç¨ããã¨ãMapSource ã¯ãã¬ã¼ã³ããã¹ãã®
+ ãããã³ã°ãã¡ã¤ã«ã¸ã®ãã¡ã¤ã«ã·ã¹ãã ãã¹ã§ã1 è¡ã« 1 ã¤ã®ã¹ãã¼ã¹åºåãã®
+ ãã¼/å¤ãã¢ãå«ã¾ãã¾ãããªãã·ã§ã³ã§ã'#' æåã§å§ã¾ãã³ã¡ã³ãè¡ã
+ å«ãããã¨ãã§ãã¾ãã
æå¹ãªããã¹ãæ¸ãæãããããã¡ã¤ã«ã®æ§æã¯ä»¥ä¸ã®éãã§ã:
+ +ä¾ãã°ãããããã¡ã¤ã«ã使ç¨ãã¦è£½ååã製å ID ã«å¤æãã + è¦ãããã URL ãå®ç¾ããã«ã¯ã以ä¸ã®ã¬ã·ãã使ç¨ã§ãã¾ã:
+製åãã ID ã¸ã®è¨å®
+ããã§ã¯ãprods.php ã¹ã¯ãªããã
+ id=NOTFOUND ã¨ãã弿°ãåãåã£ãå ´åã®å¦çã
+ çè§£ãã¦ããã¨ä»®å®ãã¦ãã¾ã (æ¤ç´¢ãããã§è£½åãè¦ã¤ãããªãã£ãå ´å)ã
ãã¡ã¤ã« /etc/apache2/productmap.txt ã«ã¯
+ 以ä¸ãå«ã¾ãã¾ã:
ãããã£ã¦ãhttp://example.com/product/television ã
+ ãªã¯ã¨ã¹ããããã¨ã/prods.php?id=993
+ ã«ãããã³ã°ããã¾ãã
.htaccess ãã¡ã¤ã«ã§ä½¿ç¨ããå ´åã¯ã
+ ä½ãã«ãããããããã«æ¸ãæããã¿ã¼ã³ããå
é ã®ã¹ã©ãã·ã¥ã
+ åé¤ããå¿
è¦ãããã¾ã:
+
+ æ¤ç´¢ããããã¼ã¯ãããããã¡ã¤ã«ã® mtime (夿´æå») ã
+ 夿´ãããããhttpd ãµã¼ããåèµ·åãããã¾ã§ httpd ã«ãã£ãã·ã¥
+ ããã¾ããããã«ãããå¤ãã®ãªã¯ã¨ã¹ãã§å¼ã³åºããããããã®
+ ããã©ã¼ãã³ã¹ãåä¸ãã¾ãã
+
MapType ã« rnd ã使ç¨ããã¨ãMapSource ã¯ãã¬ã¼ã³ããã¹ãã®
+ ãããã³ã°ãã¡ã¤ã«ã¸ã®ãã¡ã¤ã«ã·ã¹ãã ãã¹ã§ãåè¡ã«ã¯ãã¼ã¨
+ | ã§åºåããã 1 ã¤ä»¥ä¸ã®å¤ãå«ã¾ãã¾ãããã¼ã
+ ãããããã¨ããããã®å¤ã® 1 ã¤ãã©ã³ãã ã«é¸æããã¾ãã
ä¾ãã°ã以ä¸ã®ããããã¡ã¤ã«ã¨ãã£ã¬ã¯ãã£ãã使ç¨ãã¦ã + ãªãã¼ã¹ãããã·çµç±ã§è¤æ°ã®ããã¯ã¨ã³ããµã¼ãéã®ã©ã³ãã 㪠+ ãã¼ããã©ã³ã·ã³ã°ãæä¾ã§ãã¾ããç»å㯠'static' ãã¼ã«å ã® + ãµã¼ãã® 1 ã¤ã«éä¿¡ããããã以å¤ã¯ 'dynamic' ãã¼ã«ã® 1 ã¤ã« + éä¿¡ããã¾ãã
+ +è¨å®ãã£ã¬ã¯ãã£ã
+ç»åããªã¯ã¨ã¹ããããæåã®ã«ã¼ã«ããããããã¨ã
+ static ãæ¤ç´¢ããæå®ããããã¹ãåã® 1 ã¤ã
+ ã©ã³ãã ã«è¿ãã¾ããããã
ãµã¼ãã® 1 ã¤ãããå¤ã鏿ãããããã«ãããå ´å + (ä¾ãã°ããµã¼ãã® 1 ã¤ãããå¤ãã®ã¡ã¢ãªãæã¡ãããå¤ãã® + ãªã¯ã¨ã¹ããå¦çã§ããå ´å)ãããããã¡ã¤ã«ã«ãã®ãµã¼ãã + è¤æ°åè¨è¿°ãã¦ãã ããã
+ +MapType ã« dbm ã使ç¨ããã¨ãMapSource ã¯ãããã³ã°ã§
+ 使ç¨ããããã¼/å¤ãã¢ãå«ã DBM ãã¼ã¿ãã¼ã¹ãã¡ã¤ã«ã¸ã®
+ ãã¡ã¤ã«ã·ã¹ãã ãã¹ã§ãããã㯠txt ãããã¨
+ ã¾ã£ããåãããã«åä½ãã¾ãããDBM ã¯ã¤ã³ããã¯ã¹åããã¦ãã
+ ããã¹ããã¡ã¤ã«ã¯ããã§ã¯ãªããããã¯ããã«é«éã§ããããã«ããã
+ ç®çã®ãã¼ã¸ã®ã¢ã¯ã»ã¹ãé«éã«ãªãã¾ãã
ç¹å®ã® dbm ã¿ã¤ãããªãã·ã§ã³ã§æå®ã§ãã¾ã:
+ +ã¿ã¤ã㯠sdbmãgdbmãndbmã
+ ã¾ã㯠db ã§ãã
+ ãã ããApache HTTP Server ã«ä»å±ã® httxt2dbm ã¦ã¼ãã£ãªãã£ã
+ 使ç¨ãããã¨ãæ¨å¥¨ãã¾ããhttpd èªä½ã®ãã«ãæã«ä½¿ç¨ããããã®ã¨
+ ãããããæ£ãã DBM ã©ã¤ãã©ãªã使ç¨ããããã§ãã
dbm ãã¡ã¤ã«ã使ããã«ã¯ãã¾ã txt ã»ã¯ã·ã§ã³ã§
+ 説æããã¦ããããã¹ãããããã¡ã¤ã«ã使ããæ¬¡ã«
+ httxt2dbm ãå®è¡ãã¾ã:
ãã®å¾ã
dbm ã¿ã¤ãã«ãã£ã¦ã¯ãå
±éã®ãã¼ã¹åã§è¤æ°ã®ãã¡ã¤ã«ãçæããã
+ãã¨ããããã¨ã«æ³¨æãã¦ãã ãããä¾ãã°ãmapfile.map.dir
+㨠mapfile.map.pag ã¨ãã 2 ã¤ã®ãã¡ã¤ã«ãåå¨ãã
+å ´åãããã¾ããããã¯æ£å¸¸ã§ãããmapfile.map ã®ã¿ã使ç¨
+ãã¦ãã ããã
+æ¤ç´¢ããããã¼ã¯ãããããã¡ã¤ã«ã® mtime (夿´æå») ã
+夿´ãããããhttpd ãµã¼ããåèµ·åãããã¾ã§ httpd ã«ãã£ãã·ã¥
+ããã¾ããããã«ãããå¤ãã®ãªã¯ã¨ã¹ãã§å¼ã³åºããããããã®
+ããã©ã¼ãã³ã¹ãåä¸ãã¾ãã
+
MapType ã« prg ã使ç¨ããã¨ãMapSource ã¯ãããã³ã°åä½ã
+ æä¾ããå®è¡å¯è½ããã°ã©ã ã¸ã®ãã¡ã¤ã«ã·ã¹ãã ãã¹ã§ããããã¯
+ ã³ã³ãã¤ã«æ¸ã¿ãã¤ããªãã¡ã¤ã«ãã¾ã㯠Python ã Perl ãªã©ã®
+ ã¤ã³ã¿ããªã¿è¨èªã®ããã°ã©ã ã§ãã
ãã®ããã°ã©ã 㯠Apache HTTP Server ã®èµ·åæã«ä¸åº¦èµ·åããã
+ STDIN 㨠STDOUT ãéãã¦æ¸ãæãã¨ã³ã¸ã³ã¨
+ éä¿¡ãã¾ããåããã颿°ã®æ¤ç´¢ã§ã¯ããã¼ãããã°ã©ã ã®
+ STDIN ã«æ¸ãè¾¼ã¾ãããã®å¾ã«æ¹è¡æåãç¶ãã¾ãã
+ ããã°ã©ã 㯠STDIN ãã 1 è¡ (æ¹è¡ãå«ã) ãèªã¿åãã
+ å¿çãæ¹è¡ã§çµãã 1 è¡ã¨ã㦠STDOUT ã«æ¸ãè¾¼ã
+ å¿
è¦ãããã¾ãããã¼ã«æ¹è¡æåãå«ã¾ãããã¨ã¯ããã¾ããã
+ æ¹è¡ãå«ããã¼ãæ¤åºãããå ´åãæ¤ç´¢ã¯å¤±æãã¾ãã
対å¿ããæ¤ç´¢å¤ããªãå ´åããããããã°ã©ã 㯠4 æåã®
+ æåå "NULL" ãè¿ãã¦ãããã示ãå¿
è¦ãããã¾ãã
+ ãã®æ¯è¼ã¯å¤§æåå°æåãåºå¥ããªãããã"null"ã"Null" çã
+ æ¤ç´¢å¤±æã¨ãã¦æ±ããã¾ãããã®çµæããããã³ã°ããã°ã©ã ã
+ ãªãã©ã«æåå "NULL" ãããããããå¤ã¨ãã¦è¿ããã¨ã¯
+ ã§ãã¾ããã
ããã°ã©ã ã® STDERR 㯠httpd 親ããã»ã¹ãã
+ ç¶æ¿ããããããããã°ã©ã ã STDERR ã«æ¸ãè¾¼ãå
容ã¯
+ httpd èªä½ã®ã¨ã©ã¼åºå (é常ã¯
å¤é¨æ¸ãæãããã°ã©ã ã¯ãon ã«
+ è¨å®ããã¦ããªãã³ã³ããã¹ãã§å®ç¾©ããã¦ããå ´åã¯èµ·åããã¾ããã
ããã©ã«ãã§ã¯ãå¤é¨æ¸ãæãããã°ã©ã 㯠httpd ãèµ·åãã
+ ã¦ã¼ã¶:ã°ã«ã¼ãã¨ãã¦å®è¡ããã¾ãããã㯠UNIX ã·ã¹ãã ã§ã¯
+ username:groupname å½¢å¼ã§ã¦ã¼ã¶åã¨
+ ã°ã«ã¼ãåãæ¸¡ããã¨ã§å¤æ´ã§ãã¾ãã
ãã®æ©è½ã¯ rewrite-map ãã¥ã¼ããã¯ã¹ã使ç¨ãã¦ããã
+ ããã°ã©ã ã¨ã®ä¿¡é ¼æ§ã®ããéä¿¡ã«å¿
è¦ã§ãããã¥ã¼ããã¯ã¹ã®
+ ã¡ã«ããºã ã¨ããã¯ãã¡ã¤ã«ã¯
ãªã¯ã¨ã¹ã URI å ã®ãã¹ã¦ã®ããã·ã¥ãã¢ã³ãã¼ã¹ã³ã¢ã«ç½®ãæãã + ã·ã³ãã«ãªä¾ã以ä¸ã«ç¤ºãã¾ãã
+ +æ¸ãæãè¨å®
+dash2under.py
+print() ã« flush=True ã
+渡ããã¨ã§ãããè¡ã£ã¦ãã¾ãããããã¡ããã I/O 㯠httpd ã
+åºåãå¾
ã¤åå ã¨ãªãããã³ã°ãã¾ããSIGTERM ãéä¿¡ããã¾ãã3 ç§ä»¥å
ã«çµäºããªãå ´åã¯
+SIGKILL ãéä¿¡ããã¾ããMapType ã« dbd ã¾ã㯠fastdbd ã使ç¨ããã¨ã
+ MapSource ã¯åä¸ã®å¼æ°ãåããåä¸ã®å¤ãè¿ã SQL SELECT æã§ãã
ãã®æãå®è¡ããããã«ã
ãã® MapType ã«ã¯ 2 ã¤ã®å½¢å¼ãããã¾ãã
+ MapType ã« dbd ã使ç¨ããã¨ãåããããªã¯ã¨ã¹ãã§
+ ã¯ã¨ãªãå®è¡ããã¾ãããfastdbd ã使ç¨ããã¨
+ ãã¼ã¿ãã¼ã¹æ¤ç´¢ãå
é¨çã«ãã£ãã·ã¥ããã¾ãããããã£ã¦ã
+ fastdbd ã¯ããå¹ççã§é«éã§ããããµã¼ãã
+ åèµ·åãããã¾ã§ãã¼ã¿ãã¼ã¹ã®å¤æ´ãæ¤åºãã¾ããã
ã¯ã¨ãªãè¤æ°ã®è¡ãè¿ãå ´åãçµæã»ããããã©ã³ãã ãªè¡ã + 使ç¨ããã¾ãã
+ +ã¯ã¨ãªå㯠SQL ããªãã¢ãã¹ãã¼ãã¡ã³ãã®ã©ãã«ã¨ã㦠+ ãã¼ã¿ãã¼ã¹ãã©ã¤ãã«æ¸¡ãããããããã¼ã¿ãã¼ã¹ã§å¿ è¦ãª + ã«ã¼ã« (大æåå°æåã®åºå¥ãªã©) ã«å¾ãå¿ è¦ãããã¾ãã
ãã£ã¬ã¯ããªåä½ã®ã³ã³ããã¹ã (.htaccess ãã¡ã¤ã«ã
+
ì´ ë¬¸ìë
+
MapNameì + ë§µì í ë¹íë ììì ì´ë¦ì´ë©°, ì´í ì§ìì´ìì + ì¬ì©í©ëë¤. ì¸ìë ë¤ì 구문ì íµí´ ë§µì ì ë¬ë©ëë¤:
+ +
+
+ ${ MapName : LookupKey
+ }
${ MapName :
+ LookupKey | DefaultValue }
+
+
ì´ë¬í êµ¬ì¡°ê° ë°ìíë©´ ë§µ MapNameì´ + ì¡°íëê³ í¤ LookupKeyê° ê²ìë©ëë¤. í¤ê° + ë°ê²¬ëë©´ ë§µ í¨ì 구조ë SubstValueë¡ + ëì²´ë©ëë¤. í¤ë¥¼ ì°¾ì§ ëª»íë©´ DefaultValueë¡ + ëì²´ëê±°ë, DefaultValueê° ì§ì ëì§ ìì + ê²½ì° ë¹ ë¬¸ìì´ë¡ ëì²´ë©ëë¤.
+ +ì를 ë¤ì´ ë¤ìê³¼ ê°ì´
+
ê·¸ë¬ë©´
ë§µìì ì무ê²ë ì°¾ì§ ëª»í ê²½ì°ë¥¼ ëë¹íì¬ ê¸°ë³¸ê°ì +ì§ì í ì ììµëë¤:
+ +
+.htaccess íì¼ìì ì¬ì©í ì ììµëë¤. ìë² ëë
+ê°ìí¸ì¤í¸ 컨í
ì¤í¸ìì ë§µì ì ì¸í´ì¼ í©ëë¤. ì¼ë¨ ìì±ë ë§µì
+í´ë¹ ë²ìì
ë¤ì ì¹ì ììë ì¬ì©í ì ìë ë¤ìí MapTypeì +ì¤ëª íê³ ê°ê°ì ìì 를 ì ê³µí©ëë¤.
+MapTypeì´ intì¸ ê²½ì° MapSourceë ì¬ì© ê°ë¥í
+ ë´ë¶ ap_register_rewrite_mapfunc API를 ë±ë¡íì¬
+ ì¶ê° ë´ë¶ í¨ì를 ì ê³µí ì ììµëë¤.
+ 기본ì ì¼ë¡ ì ê³µëë í¨ìë ë¤ìê³¼ ê°ìµëë¤:
+
+ ì´ë¬í í¨ì ì¤ íë를 ì¬ì©íë ¤ë©´ int í¨ì를 참조íë
+
URI를 모ë ì문ì ë²ì ì¼ë¡ 리ë¤ì´ë í¸
+ì¬ê¸°ì ì ê³µë ìì ë ì¤ëª
목ì ì¼ë¡ë§ ì ê³µëë©°
+ ê¶ì¥ ì¬íì´ ìëëë¤. URLì ëì문ì êµ¬ë¶ ìì´
+ ë§ë¤ë ¤ë©´ ëì
MapTypeì´ txtì¸ ê²½ì° MapSourceë
+ í ì¤ì íëì 공백ì¼ë¡ 구ë¶ë í¤/ê° ìì í¬í¨íë
+ ì¼ë° í
ì¤í¸ 매í íì¼ì íì¼ ìì¤í
ê²½ë¡ì
ëë¤.
+ ì íì ì¼ë¡ '#' 문ìë¡ ììíë 주ìì´ í¬í¨ë ì
+ ììµëë¤.
ì í¨í í ì¤í¸ ì¬ìì± ë§µ íì¼ì ë¤ìê³¼ ê°ì 구문ì + ê°ì§ëë¤:
+ +ì를 ë¤ì´, 기ìµí기 ì¬ì´ URLì ìí´ ì í ì´ë¦ì + ì í IDë¡ ë³ííë ë§µ íì¼ì ì¬ì©í ì ììµëë¤:
+ì íìì IDë¡ì ì¤ì
+ì¬ê¸°ì prods.php ì¤í¬ë¦½í¸ë ì¡°í ë§µìì
+ ì íì ì°¾ì§ ëª»íì ë id=NOTFOUND ì¸ì를
+ ë°ì¼ë©´ ì´ë»ê² í´ì¼ íëì§ ìê³ ìë¤ê³ ê°ì í©ëë¤.
/etc/apache2/productmap.txt íì¼ìë
+ ë¤ìì´ í¬í¨ë©ëë¤:
ë°ë¼ì http://example.com/product/televisionì´
+ ìì²ëë©´ /prods.php?id=993ì 매íë©ëë¤.
.htaccess íì¼ìì ì¬ì©í
+ ê³íì´ë¼ë©´, 무ìì´ë ì¼ì¹íëë¡ ì¬ìì± í¨í´ìì ìì
+ ì¬ëì를 ì ê±°í´ì¼ í©ëë¤:
+
+ ì¡°íë í¤ë ë§µ íì¼ì mtime(ìì ìê°)ì´
+ ë³ê²½ëê±°ë httpd ìë²ê° ì¬ììë ëê¹ì§ httpdì ìí´
+ ìºìë©ëë¤. ì´ë ë§ì ìì²ì ìí´ í¸ì¶ëë ë§µì
+ ì±ë¥ì í¥ììíµëë¤.
+
MapTypeì´ rndì¸ ê²½ì° MapSourceë ì¼ë°
+ í
ì¤í¸ 매í íì¼ì íì¼ ìì¤í
ê²½ë¡ì´ë©°, ê° ì¤ìë
+ í¤ì |ë¡ êµ¬ë¶ë íë ì´ìì ê°ì´ í¬í¨ë©ëë¤.
+ í¤ê° ì¼ì¹íë©´ ì´ ê° ì¤ íëê° ë¬´ììë¡ ì íë©ëë¤.
ì를 ë¤ì´, 리ë²ì¤ íë¡ì를 íµí 무ìì ë¶í ë¶ì°ì + ìí´ ë¤ì ë§µ íì¼ê³¼ ì§ìì´ë¥¼ ì¬ì©í ì ììµëë¤. + ì´ë¯¸ì§ë 'static' íì ìë² ì¤ íëë¡ ì ì¡ëê³ , + ë머ì§ë 'dynamic' íì ìë² ì¤ íëë¡ ì ì¡ë©ëë¤.
+ +ì¤ì ì§ìì´
+ë°ë¼ì ì´ë¯¸ì§ê° ìì²ëê³ ì´ ê·ì¹ ì¤ ì²« ë²ì§¸ê°
+ ì¼ì¹íë©´ staticì ì¡°ííê³
+ ì§ì ë í¸ì¤í¸ëª
ì¤ íë를 무ììë¡ ë°ííì¬
+
ìë² ì¤ íëê° ì íë íë¥ ì ëì´ë ¤ë©´(ì를 ë¤ì´ + ìë² ì¤ íëê° ë ë§ì ë©ëª¨ë¦¬ë¥¼ ê°ì§ê³ ìì´ ë ë§ì + ìì²ì ì²ë¦¬í ì ìë ê²½ì°) ë§µ íì¼ì í´ë¹ ìë²ë¥¼ + ë ë§ì´ ëì´íë©´ ë©ëë¤.
+ +MapTypeì´ dbmì¸ ê²½ì° MapSourceë
+ 매íì ì¬ì©í í¤/ê° ìì í¬í¨íë DBM ë°ì´í°ë² ì´ì¤
+ íì¼ì íì¼ ìì¤í
ê²½ë¡ì
ëë¤. ì´ê²ì txt
+ 맵과 ì íí ê°ì ë°©ìì¼ë¡ ìëíì§ë§, DBMì ì¸ë±ì±ëì´
+ ìë ë°ë©´ í
ì¤í¸ íì¼ì ê·¸ë ì§ ìì¼ë¯ë¡ í¨ì¬ ë¹ ë¦
ëë¤.
+ ì´ë¥¼ íµí´ ìíë í¤ì ë ë¹ ë¥´ê² ì ê·¼í ì ììµëë¤.
ì íì ì¼ë¡ í¹ì dbm ì íì ì§ì í ì ììµëë¤:
+ +ì íì sdbm, gdbm,
+ ndbm ëë dbì¼ ì ììµëë¤.
+ ê·¸ë¬ë httpd ìì²´ê° ë¹ëë ë ì¬ì©ë ê²ê³¼ ì¼ì¹íë
+ ì¬ë°ë¥¸ DBM ë¼ì´ë¸ë¬ë¦¬ë¥¼ ì¬ì©íë¯ë¡ Apache HTTP Serverì
+ í¨ê» ì ê³µëë httxt2dbm
+ ì í¸ë¦¬í°ë¥¼ ì¬ì©íë ê²ì´ ì¢ìµëë¤.
dbm íì¼ì ìì±íë ¤ë©´ 먼ì txt
+ ì¹ì
ì ì¤ëª
ë ëë¡ í
ì¤í¸ ë§µ íì¼ì ìì±í©ëë¤. ê·¸ë° ë¤ì
+ httxt2dbmì ì¤íí©ëë¤:
ê·¸ë° ë¤ì
ì¼ë¶ dbm ì íììë ê³µíµ ê¸°ë³¸ ì´ë¦ì ê°ì§ ë ì´ìì
+íì¼ì´ ìì±ë©ëë¤. ì를 ë¤ì´ mapfile.map.dirê³¼
+mapfile.map.pagë¼ë ë íì¼ì´ ìì ì ììµëë¤.
+ì´ê²ì ì ìì´ë©° mapfile.mapë§ ì¬ì©íë©´
+ë©ëë¤.
+ì¡°íë í¤ë ë§µ íì¼ì mtime(ìì ìê°)ì´
+ë³ê²½ëê±°ë httpd ìë²ê° ì¬ììë ëê¹ì§ httpdì ìí´
+ìºìë©ëë¤. ì´ë ë§ì ìì²ì ìí´ í¸ì¶ëë ë§µì
+ì±ë¥ì í¥ììíµëë¤.
+
MapTypeì´ prgì¸ ê²½ì° MapSourceë
+ 매í ëìì ì ê³µí ì¤í ê°ë¥í íë¡ê·¸ë¨ì íì¼ ìì¤í
+ ê²½ë¡ì
ëë¤. ì´ê²ì ì»´íì¼ë ë°ì´ë리 íì¼ì´ê±°ë
+ Pythonì´ë Perlê³¼ ê°ì ì¸í°íë¦¬í° ì¸ì´ì íë¡ê·¸ë¨ì¼ ì
+ ììµëë¤.
ì´ íë¡ê·¸ë¨ì Apache HTTP Serverê° ììë ë í ë²
+ ììëë©°, STDINê³¼ STDOUTì
+ íµí´ ì¬ìì± ìì§ê³¼ íµì í©ëë¤. ê° ë§µ í¨ì ì¡°íì ëí´
+ í¤ê° íë¡ê·¸ë¨ì STDINì 기ë¡ëê³ ê·¸ ë¤ì
+ ì¤ë°ê¿ 문ìê° ìµëë¤. íë¡ê·¸ë¨ì STDINìì
+ í ì¤ì ì½ê³ (ì¤ë°ê¿ í¬í¨) ìëµì
+ STDOUTì ì¤ë°ê¿ì¼ë¡ ëëë í ì¤ë¡
+ ìì±í´ì¼ í©ëë¤. í¤ìë ì¤ë°ê¿ 문ìê° í¬í¨ëì§
+ ìì¼ë©°, ì¤ë°ê¿ì´ í¬í¨ë í¤ê° ë°ê²¬ëë©´ ì¡°íê°
+ ì¤í¨í©ëë¤.
ëìíë ì¡°í ê°ì´ ìì¼ë©´ ë§µ íë¡ê·¸ë¨ì
+ ë¤ ë¬¸ì 문ìì´ "NULL"ì ë°ííì¬ ì´ë¥¼
+ ëíë´ì¼ í©ëë¤. ì´ ë¹êµë ëì문ì를 구ë¶íì§
+ ìì¼ë¯ë¡ "null", "Null" ë±ë ì¤í¨í ì¡°íë¡
+ ì²ë¦¬ë©ëë¤. ê²°ê³¼ì ì¼ë¡ 매í íë¡ê·¸ë¨ì´ 매íë ê°ì¼ë¡
+ 리í°ë´ 문ìì´ "NULL"ì ë°ííë ê²ì ë¶ê°ë¥í©ëë¤.
íë¡ê·¸ë¨ì STDERRì httpd ë¶ëª¨
+ íë¡ì¸ì¤ìì ììëë¯ë¡ íë¡ê·¸ë¨ì´ STDERRì
+ ì°ë 모ë ê²ì httpdì ìì²´ ì¤ë¥ ì¶ë ¥ê³¼ ê°ì ê³³(ì¼ë°ì ì¼ë¡
+
ì¸ë¶ ì¬ìì± íë¡ê·¸ë¨ì onì¼ë¡ ì¤ì ëì§ ìì 컨í
ì¤í¸ìì
+ ì ìë ê²½ì° ììëì§ ììµëë¤.
기본ì ì¼ë¡ ì¸ë¶ ì¬ìì± íë¡ê·¸ë¨ì httpd를 ììí
+ user:groupì¼ë¡ ì¤íë©ëë¤. ì´ê²ì UNIX ìì¤í
ìì
+ username:groupname íìì¼ë¡
+ ì¬ì©ì ì´ë¦ê³¼ 그룹 ì´ë¦ì ì ë¬íì¬ ë³ê²½í ì ììµëë¤.
ì´ ê¸°ë¥ì íë¡ê·¸ë¨ê³¼ì ìì ì ì¸ íµì ì íìí
+ rewrite-map 뮤í
ì¤ë¥¼ íì©í©ëë¤.
+ 뮤í
ì¤ ë©ì»¤ëì¦ê³¼ ì ê¸ íì¼ì
ì¬ê¸°ì ìì² URIìì 모ë ëì를 ë°ì¤ë¡ ëì²´íë + ê°ë¨í ìì ê° ëì ììµëë¤.
+ +ì¬ìì± ì¤ì
+dash2under.py
+print()ì flush=True를 ì ë¬íì¬
+ì´ë¥¼ ìíí©ëë¤. ë²í¼ë§ë I/Oë httpdê° ì¶ë ¥ì 기ë¤ë¦¬ê²
+íë¯ë¡ ë©ì¶ê² ë©ëë¤.SIGTERMì´
+ì ì¡ëë©°, 3ì´ ì´ë´ì ì¢
ë£ëì§ ìì¼ë©´
+SIGKILLì´ ì ì¡ë©ëë¤.MapTypeì´ dbd ëë fastdbdì¸
+ ê²½ì° MapSourceë ë¨ì¼ ì¸ì를 ë°ì ë¨ì¼ ê°ì ë°ííë
+ SQL SELECT 문ì
ëë¤.
ì´ ë¬¸ì´ ì¤íëë ¤ë©´ ì¬ë°ë¥¸ ë°ì´í°ë² ì´ì¤ë¥¼ ê°ë¦¬í¤ëë¡
+
ì´ MapTypeìë ë ê°ì§ ííê° ììµëë¤.
+ dbd MapTypeì ì¬ì©íë©´ ê° ë§µ ìì²ë§ë¤
+ ì¿¼ë¦¬ê° ì¤íëê³ , fastdbd를 ì¬ì©íë©´
+ ë°ì´í°ë² ì´ì¤ ì¡°íê° ë´ë¶ì ì¼ë¡ ìºìë©ëë¤. ë°ë¼ì
+ fastdbdê° ë í¨ì¨ì ì´ê³ ë¹ ë¥´ì§ë§,
+ ìë²ê° ì¬ììë ëê¹ì§ ë°ì´í°ë² ì´ì¤ ë³ê²½ ì¬íì
+ ë°ìíì§ ììµëë¤.
ì¿¼ë¦¬ê° ë ì´ìì íì ë°ííë©´ ê²°ê³¼ ì¸í¸ìì + 무ìì íì´ ì¬ì©ë©ëë¤.
+ +쿼리 ì´ë¦ì SQL ì¤ë¹ë 문ì ë ì´ë¸ë¡ ë°ì´í°ë² ì´ì¤ + ëë¼ì´ë²ì ì ë¬ëë¯ë¡ ë°ì´í°ë² ì´ì¤ì íìí 모ë + ê·ì¹(ëì문ì êµ¬ë¶ ë±)ì ë°ë¼ì¼ í©ëë¤.
ëë í ë¦¬ë³ ì»¨í
ì¤í¸(.htaccess íì¼ì´ë
+
Bu belge,
+
EÅlemAdı, eÅleme + için atadıÄınız keyfi bir addır ve daha sonra yönergelerde + kullanacaksınız. Argümanlar eÅlemeye aÅaÄıdaki sözdizimi ile + iletilir:
+ +
+
+ ${ EÅlemAdı : AramaAnahtarı
+ }
${ EÅlemAdı :
+ AramaAnahtarı | ÃntanımlıDeÄer }
+
+
Böyle bir yapı oluÅtuÄunda, EÅlemAdı eÅlemine + baÅvurulur ve AramaAnahtarı aranır. Anahtar bulunursa + eÅlem-iÅlev yapısı DeÄiÅtirmeDeÄeri ile deÄiÅtirilir. + Anahtar bulunamazsa ÃntanımlıDeÄer ile veya hiçbir + ÃntanımlıDeÄer belirtilmemiÅse boÅ dizgeyle + deÄiÅtirilir.
+ +ÃrneÄin, bir
+
Daha sonra bu eÅlemi bir
+
EÅlemde hiçbir Åey bulunamazsa öntanımlı bir deÄer +belirtilebilir:
+ +
+.htaccess dosyalarında kullanılamaz.
+EÅlemi sunucu veya sanal konak baÄlamında bildirmelisiniz. EÅlemi
+oluÅturduktan sonra,
AÅaÄıdaki bölümler kullanılabilecek çeÅitli EÅlemTürü +deÄerlerini açıklar ve her birine örnekler verir.
+int EÅlemTürü kullanıldıÄında, EÅlemKaynaÄı
+ kullanılabilir dahili ap_register_rewrite_mapfunc API'sini
+ kullanarak ek dahili iÅlevler saÄlayabilir. Ãntanımlı olarak
+ saÄlanan iÅlevler Åunlardır:
+
+ Bu iÅlevlerden birini kullanmak için, int iÅlevine baÅvuran bir
+
Bir URI'yi tamamen küçük harfli sürümüne + yönlendir
+Burada sunulan örneÄin yalnızca açıklama amaçlı olduÄunu ve
+ bir öneri olmadıÄını lütfen unutmayın. URL'leri büyük/küçük harf
+ duyarsız yapmak istiyorsanız, bunun yerine
+
txt EÅlemTürü kullanıldıÄında, EÅlemKaynaÄı satır
+ baÅına bir boÅlukla ayrılmıŠanahtar/deÄer çifti içeren düz metin
+ eÅlem dosyasının bir dosya sistemi yoludur. İsteÄe baÄlı olarak,
+ bir satır '#' karakteriyle baÅlayan bir açıklama içerebilir.
Geçerli bir metin yeniden yazma eÅlem dosyası aÅaÄıdaki + sözdizimine sahip olacaktır:
+ +ÃrneÄin, daha kolay hatırlanan URL'ler için ürün adlarını + ürün kimliklerine çevirmek üzere aÅaÄıdaki tarifi kullanarak bir + eÅlem dosyası kullanabiliriz:
+Ãrün-kimlik yapılandırması
+Burada prods.php betiÄinin, bir ürün arama
+ eÅleminde bulunmadıÄında id=NOTFOUND argümanını
+ aldıÄında ne yapacaÄını bildiÄini varsayıyoruz.
/etc/apache2/productmap.txt dosyası daha sonra
+ Åunları içerir:
Böylece, http://example.com/product/television
+ istendiÄinde, /prods.php?id=993 ile eÅlenir.
.htaccess dosyasında
+ kullanmayı planlıyorsanız, herhangi bir Åeyle eÅleÅebilmesi için
+ yeniden yazma kalıbından baÅtaki eÄik çizgiyi kaldırmanız
+ gerekecektir:
+
+ Aranan anahtarlar, eÅlem dosyasının mtime
+ (deÄiÅtirme zamanı) deÄiÅene veya httpd sunucusu yeniden
+ baÅlatılana kadar httpd tarafından önbelleÄe alınır. Bu, birçok
+ istek tarafından çaÄrılan eÅlemler için daha iyi performans
+ saÄlar.
+
rnd EÅlemTürü kullanıldıÄında, EÅlemKaynaÄı her
+ satırı bir anahtar ve | ile ayrılmıŠbir veya daha
+ fazla deÄer içeren düz metin eÅlem dosyasının bir dosya sistemi
+ yoludur. Anahtar eÅleÅirse bu deÄerlerden biri rastgele
+ seçilir.
ÃrneÄin, ters vekil aracılıÄıyla birkaç arka uç sunucu + arasında rastgele yük dengeleme saÄlamak için aÅaÄıdaki eÅlem + dosyasını ve yönergeleri kullanabilirsiniz. Resimler 'static' + havuzundaki sunuculardan birine gönderilirken, diÄer her Åey + 'dynamic' havuzuna gönderilir.
+ +Yapılandırma yönergeleri
+Böylece, bir resim istendiÄinde ve bu kurallardan ilki
+ eÅleÅtiÄinde, static dizgesini arar ve belirtilen
+ konak adlarından birini rastgele döndürür; bu daha sonra
+
Sunuculardan birinin daha sık seçilmesini istiyorsanız (örneÄin, + sunuculardan birinin daha fazla belleÄi varsa ve daha fazla isteÄi + iÅleyebiliyorsa), onu eÅlem dosyasında daha fazla kez listeleyin.
+ +dbm EÅlemTürü kullanıldıÄında, EÅlemKaynaÄı
+ eÅlemede kullanılacak anahtar/deÄer çiftleri içeren bir DBM
+ veritabanı dosyasının dosya sistemi yoludur. Bu, txt
+ eÅlemiyle tamamen aynı Åekilde çalıÅır, ancak DBM dizinlendiÄinden
+ ve metin dosyası dizinlenmediÄinden çok daha hızlıdır. Bu, istenen
+ anahtara daha hızlı eriÅim saÄlar.
İsteÄe baÄlı olarak belirli bir dbm türü belirtebilirsiniz:
+ +Tür sdbm, gdbm, ndbm
+ veya db olabilir. Ancak, Apache HTTP Sunucusu ile
+ saÄlanan httxt2dbm
+ aracını kullanmanız önerilir; çünkü httpd'nin kendisi
+ oluÅturulurken kullanılan doÄru DBM kitaplıÄını kullanacaktır.
Bir dbm dosyası oluÅturmak için önce txt
+ bölümünde açıklandıÄı gibi bir metin eÅlem dosyası oluÅturun.
+ Ardından httxt2dbm'yi çalıÅtırın:
Daha sonra ortaya çıkan dosyaya
Bazı dbm türleriyle, ortak bir temel adla birden fazla dosya
+oluÅturulduÄunu unutmayın. ÃrneÄin, mapfile.map.dir
+ve mapfile.map.pag adlı iki dosyanız olabilir. Bu
+normaldir ve mapfile.map temel adını
+kullanmanız yeterlidir.
+Aranan anahtarlar, eÅlem dosyasının mtime
+(deÄiÅtirme zamanı) deÄiÅene veya httpd sunucusu yeniden
+baÅlatılana kadar httpd tarafından önbelleÄe alınır. Bu, birçok
+istek tarafından çaÄrılan eÅlemler için daha iyi performans
+saÄlar.
+
prg EÅlemTürü kullanıldıÄında, EÅlemKaynaÄı
+ eÅleme davranıÅını saÄlayacak çalıÅtırılabilir bir programın
+ dosya sistemi yoludur. Bu, derlenmiÅ bir ikili dosya veya Python
+ ya da Perl gibi yorumlanan bir dilde yazılmıŠbir program
+ olabilir.
Bu program, Apache HTTP Sunucusu baÅlatıldıÄında bir kez
+ baÅlatılır ve ardından yeniden yazma motoruyla
+ STDIN ve STDOUT aracılıÄıyla
+ iletiÅim kurar. Her eÅlem iÅlevi aramasında, anahtar programın
+ STDIN'ine yazılır ve ardından bir satırsonu karakteri
+ gelir. Program, STDIN'den bir satır okumalı (satırsonu
+ dahil) ve yanıtını STDOUT'a tek bir satırsonu ile
+ sonlandırılmıŠsatır olarak yazmalıdır. Anahtarlar hiçbir zaman
+ satırsonu karakteri içermez; satırsonu içeren bir anahtarla
+ karÅılaÅılırsa arama baÅarısız olur.
KarÅılık gelen bir arama deÄeri yoksa, eÅlem programı bunu
+ belirtmek için dört karakterlik "NULL" dizgesini
+ döndürmelidir. Bu karÅılaÅtırmanın büyük/küçük harf duyarsız
+ olduÄunu unutmayın; "null", "Null" vb. de baÅarısız arama olarak
+ deÄerlendirilir. Sonuç olarak, bir eÅleme programının eÅlenen
+ deÄer olarak "NULL" birebir dizgesini döndürmesi mümkün
+ deÄildir.
Programın STDERR'si httpd üst sürecinden
+ miras alınır; bu nedenle programın STDERR'ye
+ yazdıÄı her Åey httpd'nin kendi hata çıktısıyla (genellikle
+
Harici yeniden yazma programları, on
+ olarak ayarlanmamıŠbir baÄlamda tanımlanmıÅlarsa
+ baÅlatılmaz.
Ãntanımlı olarak, harici yeniden yazma programları httpd'yi
+ baÅlatan kullanıcı:grup olarak çalıÅtırılır. Bu, UNIX
+ sistemlerinde kullanıcıadı:grupadı biçiminde kullanıcı adı ve
+ grup adı geçirilerek deÄiÅtirilebilir.
Bu özellik, programla güvenilir iletiÅim için gerekli olan
+ rewrite-map mutex'ini kullanır. Mutex mekanizması
+ ve kilit dosyası
Burada, bir istek URI'sindeki tüm tireleri alt çizgilerle + deÄiÅtirecek basit bir örnek gösterilmektedir.
+ +Yeniden yazma yapılandırması
+dash2under.py
+print() iÅlevine
+flush=True geçirilerek yapılır. ArabelleÄe alınmıŠG/Ã,
+httpd'nin çıktıyı beklemesine neden olur ve askıda kalmasına
+yol açar.SIGTERM
+gönderilir; 3 saniye içinde çıkmazsa SIGKILL
+gönderilir.dbd veya fastdbd EÅlemTürü
+ kullanıldıÄında, EÅlemKaynaÄı tek bir argüman alan ve tek bir
+ deÄer döndüren bir SQL SELECT deyimidir.
Bu deyimin yürütülmesi için
Bu EÅlemTürünün iki biçimi vardır. dbd EÅlemTürü
+ kullanmak, sorgunun her eÅlem isteÄinde yürütülmesine neden
+ olurken, fastdbd kullanmak veritabanı aramalarını
+ dahili olarak önbelleÄe alır. Böylece fastdbd daha
+ verimli ve dolayısıyla daha hızlı olsa da, sunucu yeniden
+ baÅlatılana kadar veritabanındaki deÄiÅiklikleri almaz.
Bir sorgu birden fazla satır döndürürse, sonuç kümesinden + rastgele bir satır kullanılır.
+ +Sorgu adı veritabanı sürücüsüne bir SQL hazır deyimi için + etiket olarak iletilir ve bu nedenle veritabanınız için gereken + tüm kuralları (büyük/küçük harf duyarlılıÄı gibi) izlemelidir.
+Dizin baÅına baÄlamda (.htaccess dosyaları veya
+
æ¬ææ¡£æ¯
+
MapName + æ¯ä½ åé ç»æ å°çä»»æåç§°ï¼ç¨åå°å¨æä»¤ä¸ä½¿ç¨ã + éè¿ä»¥ä¸è¯æ³å°åæ°ä¼ éç»æ å°ï¼
+ +
+
+ ${ MapName : LookupKey
+ }
${ MapName :
+ LookupKey | DefaultValue }
+
+
å½åºç°è¿æ ·çç»ææ¶ï¼å°æ¥è¯¢æ å° MapName + å¹¶æ¥æ¾é® LookupKeyã妿æ¾å°è¯¥é®ï¼ + æ å°å½æ°ç»æå°è¢«æ¿æ¢ä¸º SubstValueã + å¦ææªæ¾å°è¯¥é®ï¼åæ¿æ¢ä¸º DefaultValueï¼ + å¦ææªæå® DefaultValue åæ¿æ¢ä¸ºç©ºå符串ã
+ +ä¾å¦ï¼ä½ å¯ä»¥å®ä¹ä¸ä¸ª
+
ç¶åä½ å¯ä»¥å¨
+
卿 å°ä¸æªæ¾å°ä»»ä½å 容æ¶ï¼å¯ä»¥æå®é»è®¤å¼ï¼
+ +
+.htaccess æä»¶ä¸ä½¿ç¨ãä½ å¿
须卿å¡å¨æèæä¸»æºä¸ä¸æä¸å£°ææ å°ã
+å建æ å°åï¼ä½ å¯ä»¥å¨è¿äºèå´å
ç
+
以ä¸åèæè¿°äºå¯ä»¥ä½¿ç¨çåç§ MapTypeï¼å¹¶ç»åºäºæ¯ç§ç±»åç示ä¾ã
+å½ MapType 为 int æ¶ï¼MapSource æ¯å¯ç¨ç
+ ap_register_rewrite_mapfunc API æ³¨åæ¥æä¾é¢å¤çå
é¨å½æ°ã
+ é»è®¤æä¾ç彿°æï¼
+
+ è¦ä½¿ç¨è¿äºå½æ°ä¹ä¸ï¼å建ä¸ä¸ªå¼ç¨ int 彿°ç
+
å° URI éå®åå°å ¶å ¨å°åçæ¬
+请注æï¼æ¤å¤æä¾ç示ä¾ä»
ç¨äºè¯´æç®çï¼å¹¶é建议ã
+ å¦æä½ æ³ä½¿ URL ä¸åºå大å°åï¼è¯·èè使ç¨
+
å½ MapType 为 txt æ¶ï¼MapSource æ¯ä¸ä¸ªçº¯ææ¬æ å°æä»¶ç
+ æä»¶ç³»ç»è·¯å¾ï¼æ¯è¡å
å«ä¸ä¸ªä»¥ç©ºæ ¼åéçé®/å¼å¯¹ã
+ å¯éå°ï¼ä¸è¡å¯ä»¥å
å«ä»¥ '#' å符å¼å¤´ç注éã
ææçææ¬éåæ å°æä»¶å°å ·æä»¥ä¸è¯æ³ï¼
+ +å½è°ç¨
ä¾å¦ï¼æä»¬å¯ä»¥ä½¿ç¨æ å°æä»¶å°äº§åå称转æ¢ä¸ºäº§å IDï¼ + 以è·å¾æ´æè®°ç URLï¼ä½¿ç¨ä»¥ä¸é æ¹ï¼
+产åå° ID çé ç½®
+æä»¬å设 prods.php èæ¬ç¥é卿¶å°
+ id=NOTFOUND åæ°æ¶å¦ä½å¤çââå½å¨æ¥æ¾æ å°ä¸æ¾ä¸å°äº§åæ¶ã
æä»¶ /etc/apache2/productmap.txt å
å«ä»¥ä¸å
容ï¼
å æ¤ï¼å½è¯·æ± http://example.com/product/television æ¶ï¼
+ /prods.php?id=993ã
.htaccess æä»¶ä¸ä½¿ç¨ï¼
+ åéè¦ä»é忍¡å¼ä¸å é¤åå¯¼ææ æè½å¹é
ä»»ä½å
容ï¼
+
+ æ¥æ¾çé®ä¼è¢« httpd ç¼åï¼ç´å°æ å°æä»¶ç mtime
+ ï¼ä¿®æ¹æ¶é´ï¼åçååæ httpd æå¡å¨éå¯ã
+ è¿ç¡®ä¿äºè¢«è®¸å¤è¯·æ±è°ç¨çæ å°ææ´å¥½çæ§è½ã
+
å½ MapType 为 rnd æ¶ï¼MapSource æ¯ä¸ä¸ªçº¯ææ¬æ å°æä»¶ç
+ æä»¶ç³»ç»è·¯å¾ï¼æ¯è¡å
å«ä¸ä¸ªé®åä¸ä¸ªæå¤ä¸ªç± |
+ åéçå¼ã妿é®å¹é
ï¼å°éæºéæ©å
¶ä¸ä¸ä¸ªå¼ã
ä¾å¦ï¼ä½ å¯ä»¥ä½¿ç¨ä»¥ä¸æ å°æä»¶åæä»¤éè¿åå代çå¨å¤ä¸ªå端æå¡å¨ä¹é´ + æä¾éæºè´è½½åè¡¡ãå¾å被åéå° 'static' æ± ä¸çæä¸ªæå¡å¨ï¼ + èå ¶ä»ææå 容被åéå° 'dynamic' æ± ä¸çæä¸ªæå¡å¨ã
+ +é ç½®æä»¤
+å æ¤ï¼å½è¯·æ±å¾åå¹¶ä¸ç¬¬ä¸æ¡è§åå¹é
æ¶ï¼
+ staticï¼
+ éæºè¿åæå®ä¸»æºåä¹ä¸ï¼ç¶åå°å
¶ç¨äº
+
å¦æä½ æ³è®©æä¸ªæå¡å¨æ´æå¯è½è¢«éä¸ï¼ä¾å¦ï¼ + 妿æä¸ªæå¡å¨æ¯å ¶ä»æå¡å¨ææ´å¤å åï¼å æ¤å¯ä»¥å¤çæ´å¤è¯·æ±ï¼ï¼ + åªé卿 å°æä»¶ä¸å¤æ¬¡ååºå®å³å¯ã
+ +å½ MapType 为 dbm æ¶ï¼MapSource æ¯ä¸ä¸ª DBM
+ æ°æ®åºæä»¶çæä»¶ç³»ç»è·¯å¾ï¼å
¶ä¸å
å«ç¨äºæ å°çé®/å¼å¯¹ã
+ å
¶å·¥ä½æ¹å¼ä¸ txt æ å°å®å
¨ç¸åï¼ä½é度æ´å¿«ï¼
+ å 为 DBM æ¯æç´¢å¼çï¼èææ¬æä»¶æ²¡æç´¢å¼ã
+ è¿å
许æ´å¿«å°è®¿é®æéçé®ã
ä½ å¯ä»¥éæ©æå®ç¹å®ç dbm ç±»åï¼
+ +ç±»åå¯ä»¥æ¯ sdbmãgdbmãndbm
+ æ dbãä½å»ºè®®ä½ ä½¿ç¨ Apache HTTP Server æä¾ç
+ httxt2dbm å·¥å
·ï¼
+ å 为å®ä¼ä½¿ç¨æ£ç¡®ç DBM åºï¼ä¸æå»º httpd æ¬èº«æ¶ä½¿ç¨çåºç¸å¹é
ã
è¦å建 dbm æä»¶ï¼é¦å
æç
§ txt
+ èä¸çæè¿°åå»ºææ¬æ å°æä»¶ãç¶åè¿è¡
+ httxt2dbmï¼
ç¶åä½ å¯ä»¥å¨
+
请注æï¼å¯¹äºæäº dbm ç±»åï¼ä¼çæå¤ä¸ªæä»¶ï¼å®ä»¬å
·æå
±åçåºæ¬åç§°ã
+ä¾å¦ï¼ä½ å¯è½æä¸¤ä¸ªå为 mapfile.map.dir å
+mapfile.map.pag çæä»¶ãè¿æ¯æ£å¸¸çï¼ä½ åªéå¨
+mapfile.map å³å¯ã
+æ¥æ¾çé®ä¼è¢« httpd ç¼åï¼ç´å°æ å°æä»¶ç mtime
+ï¼ä¿®æ¹æ¶é´ï¼åçååæ httpd æå¡å¨éå¯ã
+è¿ç¡®ä¿äºè¢«è®¸å¤è¯·æ±è°ç¨çæ å°ææ´å¥½çæ§è½ã
+
å½ MapType 为 prg æ¶ï¼MapSource æ¯ä¸ä¸ªå¯æ§è¡ç¨åºç
+ æä»¶ç³»ç»è·¯å¾ï¼è¯¥ç¨åºå°æä¾æ å°è¡ä¸ºãè¿å¯ä»¥æ¯ç¼è¯çäºè¿å¶æä»¶ï¼
+ ä¹å¯ä»¥æ¯ Python æ Perl çè§£éåè¯è¨çç¨åºã
æ¤ç¨åºå¨ Apache HTTP Server å¯å¨æ¶å¯å¨ä¸æ¬¡ï¼
+ ç¶åéè¿ STDIN å STDOUT
+ ä¸éå弿éä¿¡ãå¯¹äºæ¯æ¬¡æ å°å½æ°æ¥æ¾ï¼
+ é®è¢«åå
¥ç¨åºç STDINï¼åè·æ¢è¡ç¬¦ã
+ ç¨åºåºä» STDIN 读åä¸è¡ï¼ç´å°å¹¶å
æ¬æ¢è¡ç¬¦ï¼ï¼
+ å¹¶å¨ STDOUT ä¸åå
¥å
¶ååºä½ä¸ºå个以æ¢è¡ç¬¦ç»æ¢çè¡ã
+ 鮿°¸è¿ä¸ä¼å
嫿¢è¡ç¬¦ï¼å¦æéå°å
嫿¢è¡ç¬¦çé®ï¼æ¥æ¾å°å¤±è´¥ã
å¦ææ²¡æå¯¹åºçæ¥æ¾å¼ï¼æ å°ç¨åºåºè¿ååå符å符串
+ "NULL" æ¥è¡¨ç¤ºè¿ä¸ç¹ã请注æï¼æ¤æ¯è¾ä¸åºå大å°åï¼
+ å æ¤ "null"ã"Null" çä¹è¢«è§ä¸ºæ¥æ¾å¤±è´¥ã
+ å æ¤ï¼æ å°ç¨åºä¸å¯è½è¿ååé¢éå符串 "NULL" ä½ä¸ºæ å°å¼ã
ç¨åºç STDERR ç»§æ¿èª httpd ç¶è¿ç¨ï¼
+ å æ¤ç¨åºåå
¥ STDERR çä»»ä½å
容é½å°ä¸ httpd
+ èªèº«çé误è¾åºåºç°å¨ç¸åçä½ç½®ï¼é常æ¯
+
妿å¤é¨éåç¨åºå®ä¹å¨æªå°
+ on çä¸ä¸æä¸ï¼åä¸ä¼å¯å¨ã
é»è®¤æ
åµä¸ï¼å¤é¨éåç¨åºä»¥å¯å¨ httpd çç¨æ·:ç»èº«ä»½è¿è¡ã
+ å¨ UNIX ç³»ç»ä¸ï¼å¯ä»¥éè¿å°ç¨æ·ååç»åä½ä¸ºç¬¬ä¸ä¸ªåæ°ä¼ éç»
+ username:groupname æ ¼å¼è¿è¡æ´æ¹ã
æ¤åè½ä½¿ç¨ rewrite-map äºæ¥éï¼
+ è¿æ¯ä¸ç¨åºå¯é éä¿¡æå¿
éçãäºæ¥éæºå¶åéæä»¶å¯ä»¥éè¿
+
è¿éå±ç¤ºäºä¸ä¸ªç®åç示ä¾ï¼å®å°è¯·æ± URI ä¸çææç ´æå·æ¿æ¢ä¸ºä¸å线ã
+ +éåé ç½®
+dash2under.py
+print() ä¼ é flush=True æ¥å®æçã
+ç¼å²ç I/O å°å¯¼è´ httpd çå¾
è¾åºï¼ä»èæèµ·ãSIGTERM ä¿¡å·ï¼
+å¦æå¨ 3 ç§å
æªéåºï¼å伿¶å° SIGKILL ä¿¡å·ãå½ MapType 为 dbd æ fastdbd æ¶ï¼
+ MapSource æ¯ä¸ä¸ªæ¥ååä¸ªåæ°å¹¶è¿åå个å¼ç SQL SELECT è¯å¥ã
éè¦é
ç½®
æ¤ MapType æä¸¤ç§å½¢å¼ãä½¿ç¨ dbd ç MapType
+ ä¼å¨æ¯æ¬¡æ å°è¯·æ±æ¶æ§è¡æ¥è¯¢ï¼èä½¿ç¨ fastdbd
+ åå¨å
é¨ç¼åæ°æ®åºæ¥æ¾ç»æãå æ¤ï¼è½ç¶ fastdbd
+ æ´é«æãæ´å¿«ï¼ä½å®ä¸ä¼å¨æå¡å¨éå¯ä¹åè·åæ°æ®åºçæ´æ¹ã
妿æ¥è¯¢è¿åå¤è¡ï¼å°ä»ç»æéä¸éæºä½¿ç¨ä¸è¡ã
+ +æ¥è¯¢åç§°ä½ä¸º SQL é¢å¤çè¯å¥çæ ç¾ä¼ éç»æ°æ®åºé©±å¨ç¨åºï¼ + å æ¤éè¦éµå¾ªæ°æ®åºè¦æ±çä»»ä½è§åï¼ä¾å¦å¤§å°åæææ§ï¼ã
è½ç¶ä½ ä¸è½å¨ç®å½çº§ä¸ä¸æï¼.htaccess æä»¶æ
+
Dieses Dokument behandelt einige der technischen Details von
+
Der Apache HTTP Server bearbeitet Anfragen in mehreren Phasen. + In jeder dieser Phasen können ein oder mehrere Module aufgerufen + werden, um diesen Teil des Anfrage-Lebenszyklus zu behandeln. Zu + den Phasen gehören Dinge wie URL-zu-Dateiname-Ãbersetzung, + Authentifizierung, Autorisierung, Inhalt und Protokollierung. (Dies + ist keine vollständige Liste.)
+ +Erstens verwendet es den URL-zu-Dateiname-Ãbersetzungs-Hook, der
+ nach dem Lesen der HTTP-Anfrage stattfindet, aber bevor eine
+ Autorisierung beginnt. Zweitens verwendet es den Fixup-Hook, der
+ nach den Autorisierungsphasen und nach dem Lesen der
+ verzeichnisbezogenen Konfigurationsdateien
+ (.htaccess-Dateien) stattfindet, aber bevor der
+ Inhalts-Handler aufgerufen wird.
Nachdem eine Anfrage eingegangen ist und ein entsprechender Server
+ oder virtueller Host bestimmt wurde, beginnt die Umschreibungs-Engine
+ mit der Verarbeitung aller
Einige Schritte später, nachdem die endgültigen Datenverzeichnisse
+ gefunden wurden, werden die verzeichnisbezogenen
+ Konfigurationsdirektiven (.htaccess-Dateien und
+
In jedem dieser Fälle schreibt REQUEST_URI entweder auf eine neue URL oder auf einen
+ Dateinamen um.
Im Verzeichniskontext (d.h. in .htaccess-Dateien und
+ Directory-Blöcken) werden diese Regeln angewendet,
+ nachdem eine URL bereits in einen Dateinamen übersetzt wurde. Aus
+ diesem Grund ist der URL-Pfad, gegen den
Zur Veranschaulichung: Wenn Regeln in /var/www/foo/.htaccess stehen + und eine Anfrage für /foo/bar/baz verarbeitet wird, würde ein Ausdruck + wie ^bar/baz$ übereinstimmen.
+ +Wenn eine Ersetzung im Verzeichniskontext vorgenommen wird, wird
+ eine neue interne Unteranfrage mit der neuen URL ausgelöst, die die
+ Verarbeitung der Anfragephasen neu startet. Wenn die Ersetzung ein
+ relativer Pfad ist, bestimmt die
+
Aufgrund dieser weiteren Manipulation der URL im Verzeichniskontext + müssen Sie Ihre Umschreibungsregeln in diesem Kontext anders + gestalten. Insbesondere denken Sie daran, dass der führende + Verzeichnispfad vom URL-Pfad abgeschnitten wird, den Ihre + Umschreibungsregeln sehen. Betrachten Sie die folgenden Beispiele + zur weiteren Verdeutlichung.
+ +| Ort der Regel | +Regel | +
|---|---|
| VirtualHost-Abschnitt | +RewriteRule "^/images/(.+)\.jpg" "/images/$1.gif" | +
| .htaccess-Datei im Document Root | +RewriteRule "^images/(.+)\.jpg" "images/$1.gif" | +
| .htaccess-Datei im images-Verzeichnis | +RewriteRule "^(.+)\.jpg" "$1.gif" | +
Für noch mehr Einblick, wie
Wenn
Die Reihenfolge der Regeln im Regelsatz ist wichtig, da die
+ Umschreibungs-Engine sie in einer speziellen (und nicht sehr
+ offensichtlichen) Reihenfolge verarbeitet. Die Regel lautet:
+ Die Umschreibungs-Engine durchläuft den Regelsatz Regel für Regel
+ (RewriteCond-Direktiven).
+ Aus historischen Gründen werden die Bedingungen zuerst angegeben,
+ sodass der Kontrollfluss etwas umständlich ist. Siehe Abbildung 1
+ für weitere Details.
+ 
+ Abbildung 1:Der Kontrollfluss durch den Umschreibungsregelsatz
+
Zuerst wird die URL gegen das Pattern jeder Regel
+ abgeglichen. Wenn es fehlschlägt, stoppt
Este documento discute algunos de los detalles técnicos de
Apache HTTP Server maneja las solicitudes en varias fases. En + cada una de estas fases, uno o más módulos pueden ser llamados para + manejar esa porción del ciclo de vida de la solicitud. Las fases incluyen cosas + como traducción de URL a nombre de archivo, autenticación, autorización, + contenido, y registro. (Esta no es una lista exhaustiva.)
+ +Primero, usa el hook de traducción de URL a nombre de archivo, que ocurre
+ después de que la solicitud HTTP ha sido leÃda, pero antes de que cualquier autorización
+ comience. Segundo, usa el hook de Fixup, que es después de las
+ fases de autorización, y después de que los archivos de configuración per-directorio
+ (archivos .htaccess) han sido leÃdos, pero antes de que el
+ manejador de contenido sea llamado.
Después de que una solicitud llega y se ha determinado un servidor o
+ host virtual correspondiente, el motor de reescritura comienza a
+ procesar cualquier directiva de
Unos pasos más tarde, una vez que se han encontrado los directorios de datos finales,
+ se aplican las directivas de configuración per-directorio (archivos .htaccess
+ y bloques
En cada uno de estos casos, REQUEST_URI ya sea a una nueva URL, o a un nombre de archivo.
En contexto per-directorio (es decir, dentro de archivos .htaccess
+ y bloques Directory), estas reglas se están aplicando
+ después de que una URL ya ha sido traducida a un nombre de archivo. Debido a
+ esto, la ruta URL contra la que
Para ilustrar: Si las reglas están en /var/www/foo/.htaccess y se está procesando una solicitud + para /foo/bar/baz, una expresión como ^bar/baz$ coincidirÃa.
+ +Si se hace una sustitución en contexto per-directorio, se emite una nueva
+ sub-solicitud interna con la nueva URL, que reinicia el procesamiento de las
+ fases de la solicitud. Si la sustitución es una ruta relativa, la directiva
Debido a esta manipulación adicional de la URL en contexto per-directorio, + necesitará tener cuidado de crear sus reglas de reescritura + de manera diferente en ese contexto. En particular, recuerde que la + ruta de directorio principal se eliminará de la URL que sus + reglas de reescritura verán. Considere los ejemplos siguientes para más + clarificación.
+ +| Ubicación de la regla | +Regla | +
|---|---|
| Sección VirtualHost | +RewriteRule "^/images/(.+)\.jpg" "/images/$1.gif" | +
| Archivo .htaccess en la raÃz del documento | +RewriteRule "^images/(.+)\.jpg" "images/$1.gif" | +
| Archivo .htaccess en el directorio images | +RewriteRule "^(.+)\.jpg" "$1.gif" | +
Para aún más información sobre cómo
Ahora cuando
El orden de las reglas en el conjunto de reglas es importante porque el
+ motor de reescritura las procesa en un orden especial (y no muy
+ obvio). La regla es esta: El motor de reescritura recorre
+ el conjunto de reglas regla por regla (directivas
+ RewriteCond).
+ Por razones históricas las condiciones se dan
+ primero, y por lo tanto el flujo de control es un poco
+ enrevesado. Vea la Figura 1 para más detalles.
+ 
+ Figura 1:El flujo de control a través del conjunto de reglas de reescritura
+
Primero la URL se compara contra el
+ Pattern de cada regla. Si falla,
Ce document passe en revue certains détails techniques à propos du +
Ce document passe en revue certains détails techniques à propos du
module
Le traitement des requêtes par le serveur HTTP Apache se - déroule en plusieurs phases. Au cours de chaque phase, un ou - plusieurs modules peuvent être appelés pour traiter la partie - concernée du cycle de vie de la requête. Les différentes phases +
Le traitement des requêtes par le serveur HTTP Apache se + déroule en plusieurs phases. Au cours de chaque phase, un ou + plusieurs modules peuvent être appelés pour traiter la partie + concernée du cycle de vie de la requête. Les différentes phases peuvent consister en traduction d'URL en nom de fichier, authentification, autorisation, gestion de contenu ou journalisation (la liste n'est pas exhaustive).
Tout d'abord, il utilise le hook traduction URL vers nom de
- fichier qui intervient après la lecture de la requête HTTP, mais
+ fichier qui intervient après la lecture de la requête HTTP, mais
avant le processus d'autorisation. Ensuite, il utilise le hook
- Fixup, qui intervient après les phases d'autorisation, après la
- lecture des fichiers de configuration de niveau répertoire (fichiers
+ Fixup, qui intervient après les phases d'autorisation, après la
+ lecture des fichiers de configuration de niveau répertoire (fichiers
.htaccess), mais avant l'appel du gestionnaire de
contenu.
Lorsqu'une requête arrive et une fois le serveur - correspondant ou le serveur virtuel déterminé, le moteur de - réécriture commence à traiter toute directive apparaissant dans la +
Lorsqu'une requête arrive et une fois le serveur
+ correspondant ou le serveur virtuel déterminé, le moteur de
+ réécriture commence à traiter toute directive
Quelques étapes plus loin, une fois les répertoires de données - finaux trouvés, les directives de configuration de niveau répertoire +
Quelques étapes plus loin, une fois les répertoires de données
+ finaux trouvés, les directives de configuration de niveau répertoire
(fichiers .htaccess et sections
Dans tous ces cas,
Dans tous ces cas, REQUEST_URI soit vers une nouvelle URL, soit vers un
nom de fichier.
Dans un contexte de niveau répertoire (autrement dit dans les +
Dans un contexte de niveau répertoire (autrement dit dans les
fichiers .htaccess et les sections
- Directory), les règles de réécriture s'appliquent après
+ Directory), les règles de réécriture s'appliquent après
la traduction de l'URL en nom de fichier. C'est pourquoi le chemin
URL auquel
Un exemple : si les règles se trouvent dans - /var/www/foo/.htaccess et si une requête pour /foo/bar/baz est - traité, une expression comme ^bar/baz$ correspondra.
+Un exemple : si les règles se trouvent dans + /var/www/foo/.htaccess et si une requête pour /foo/bar/baz est + traité, une expression comme ^bar/baz$ correspondra.
-Si une substitution intervient dans un contexte de répertoire, - une nouvelle sous-requête interne est générée avec la nouvelle URL, - ce qui relance le traitement des phases de la requête. Si la +
Si une substitution intervient dans un contexte de répertoire,
+ une nouvelle sous-requête interne est générée avec la nouvelle URL,
+ ce qui relance le traitement des phases de la requête. Si la
substitution est un chemin relatif, la directive
En conséquence de cette manipulation de l'URL , vous devrez - pensez à confectionner différemment vos règles de réécriture dans un - contexte de niveau répertoire. En particulier, rappelez-vous que le - chemin de répertoire sera absent de l'URL que vos règles de - réécriture verront. Voici quelques exemples qui permettront de + processus de réécriture pour une discussion plus détaillée à + propos de ce problème.
+ +En conséquence de cette manipulation de l'URL , vous devrez + pensez à confectionner différemment vos règles de réécriture dans un + contexte de niveau répertoire. En particulier, rappelez-vous que le + chemin de répertoire sera absent de l'URL que vos règles de + réécriture verront. Voici quelques exemples qui permettront de clarifier les choses :
| Position de la règle | -Règle | +Position de la règle | +Règle |
|---|---|---|---|
| Fichier .htaccess à la racine des documents | +Fichier .htaccess à la racine des documents | RewriteRule "^images/(.+)\.jpg" "images/$1.gif" | |
| Fichier .htaccess dans le répertoire images | +Fichier .htaccess dans le répertoire images | RewriteRule "^(.+)\.jpg" "$1.gif" |
Pour une étude plus approfondie de la manière dont
Pour une étude plus approfondie de la manière dont
Maintenant, quand
L'ordre dans lequel les règles sont définies est important car
- le moteur de réécriture les traite selon une chronologie
- particulière (et pas très évidente). Le principe est le suivant :
- le moteur de réécriture traite les règles (les directives L'ordre dans lequel les règles sont définies est important car
+ le moteur de réécriture les traite selon une chronologie
+ particulière (et pas très évidente). Le principe est le suivant :
+ le moteur de réécriture traite les règles (les directives RewriteConddirectives) associées.
+ à la suite des autres, et lorsqu'une règle s'applique, il parcourt
+ les éventuelles conditions (directives
+ RewriteConddirectives) associées.
Pour des raisons historiques, les
- conditions précèdent les règles, si bien que le déroulement du
- contrôle est un peu compliqué. Voir la figure 1 pour plus de
- détails.

- Figure 1:Déroulement du contrôle à travers le jeu de
- règles de réécriture
+ Figure 1:Déroulement du contrôle à travers le jeu de
+ règles de réécriture
L'URL est tout d'abord comparée au
- Modèle de chaque règle. Lorsqu'une règle ne s'applique
- pas,
L'URL est tout d'abord comparée au
+ Modèle de chaque règle. Lorsqu'une règle ne s'applique
+ pas,
ãã®ããã¥ã¡ã³ãã§ã¯ã
Apache HTTP Server ã¯ãããã¤ãã®ãã§ã¼ãºã§ãªã¯ã¨ã¹ããå¦çãã¾ãã + åãã§ã¼ãºã§ã¯ããªã¯ã¨ã¹ãã©ã¤ããµã¤ã¯ã«ã®ãã®é¨åãå¦çããããã« + 1 ã¤ä»¥ä¸ã®ã¢ã¸ã¥ã¼ã«ãå¼ã³åºãããå¯è½æ§ãããã¾ãããã§ã¼ãºã«ã¯ã + URL ãããã¡ã¤ã«åã¸ã®å¤æãèªè¨¼ãèªå¯ãã³ã³ãã³ãããã®ã³ã°ãªã©ã + å«ã¾ãã¾ãã(ããã¯å®å ¨ãªãªã¹ãã§ã¯ããã¾ããã)
+ +ã¾ããURL ãããã¡ã¤ã«åã¸ã®å¤æããã¯ã使ç¨ãã¾ããããã¯
+ HTTP ãªã¯ã¨ã¹ããèªã¿åãããå¾ãèªå¯ãéå§ãããåã«çºçãã¾ãã
+ 次ã«ãFixup ããã¯ã使ç¨ãã¾ããããã¯èªå¯ãã§ã¼ãºã®å¾ã
+ ãã£ã¬ã¯ããªåä½ã®è¨å®ãã¡ã¤ã« (.htaccess ãã¡ã¤ã«)
+ ãèªã¿åãããå¾ãã³ã³ãã³ããã³ãã©ãå¼ã³åºãããåã§ãã
ãªã¯ã¨ã¹ããå°çãã対å¿ãããµã¼ãã¾ãã¯ãã¼ãã£ã«ãã¹ãã
+ 決å®ãããå¾ãæ¸ãæãã¨ã³ã¸ã³ã¯ãµã¼ãåä½ã®è¨å®ã«å«ã¾ãã
+
æ°ã¹ãããå¾ãæçµçãªãã¼ã¿ãã£ã¬ã¯ããªãè¦ã¤ããã¨ã
+ ãã£ã¬ã¯ããªåä½ã®è¨å®ãã£ã¬ã¯ãã£ã (.htaccess
+ ãã¡ã¤ã«ã¨
ãããã®åã±ã¼ã¹ã§ãREQUEST_URI ãæ°ãã URL ã¾ãã¯ãã¡ã¤ã«åã«
+ æ¸ãæãã¾ãã
ãã£ã¬ã¯ããªåä½ã®ã³ã³ããã¹ã (ã¤ã¾ã .htaccess
+ ãã¡ã¤ã«ã¨ Directory ãããã¯å
) ã§ã¯ãURL ãæ¢ã«
+ ãã¡ã¤ã«åã«å¤æãããå¾ã«ãããã®ã«ã¼ã«ãé©ç¨ããã¾ãããã®ããã
+
ä¾ã¨ãã¦: ã«ã¼ã«ã /var/www/foo/.htaccess ã«ããã + /foo/bar/baz ã¸ã®ãªã¯ã¨ã¹ããå¦çããã¦ããå ´åã^bar/baz$ ã®ãã㪠+ å¼ãããããã¾ãã
+ +ãã£ã¬ã¯ããªåä½ã®ã³ã³ããã¹ãã§ç½®æãè¡ãããå ´åãæ°ãã URL ã§
+ æ°ããå
é¨ãµããªã¯ã¨ã¹ããçºè¡ããããªã¯ã¨ã¹ããã§ã¼ãºã®å¦çã
+ åéããã¾ããç½®æãç¸å¯¾ãã¹ã®å ´åã
ãã£ã¬ã¯ããªåä½ã®ã³ã³ããã¹ãã§ã® URL ã®ãããªãæä½ã®ããã + ãã®ã³ã³ããã¹ãã§ã¯æ¸ãæãã«ã¼ã«ãç°ãªãããã«ä½æãããã + 注æããå¿ è¦ãããã¾ããç¹ã«ãå é ã®ãã£ã¬ã¯ããªãã¹ãæ¸ãæãã«ã¼ã«ã + èªèãã URL ããåé¤ããããã¨ãå¿ããªãã§ãã ããã詳細ã«ã¤ãã¦ã¯ + 以ä¸ã®ä¾ãåç §ãã¦ãã ããã
+ +| ã«ã¼ã«ã®å ´æ | +ã«ã¼ã« | +
|---|---|
| VirtualHost ã»ã¯ã·ã§ã³ | +RewriteRule "^/images/(.+)\.jpg" "/images/$1.gif" | +
| ããã¥ã¡ã³ãã«ã¼ãã® .htaccess ãã¡ã¤ã« | +RewriteRule "^images/(.+)\.jpg" "images/$1.gif" | +
| images ãã£ã¬ã¯ããªã® .htaccess ãã¡ã¤ã« | +RewriteRule "^(.+)\.jpg" "$1.gif" | +
ããã 2 ã¤ã® API ãã§ã¼ãºã§
ã«ã¼ã«ã»ããå
ã®ã«ã¼ã«ã®é åºã¯éè¦ã§ããæ¸ãæãã¨ã³ã¸ã³ã¯
+ ç¹æ®ãª (ãã¾ãç´æçã§ã¯ãªã) é åºã§ã«ã¼ã«ãå¦çããããã§ãã
+ ã«ã¼ã«ã¯æ¬¡ã®ã¨ããã§ã: æ¸ãæãã¨ã³ã¸ã³ã¯ã«ã¼ã«ã»ãããã«ã¼ã«ãã¨ã«
+ (RewriteCond ãã£ã¬ã¯ãã£ã) ããªãã·ã§ã³ã§
+ ã«ã¼ããã¾ããæ´å²çãªçç±ã«ãããæ¡ä»¶ãå
ã«è¨è¿°ãããããã
+ å¶å¾¡ããã¼ã¯å°ãåé·ã«ãªãã¾ãã詳細ã¯å³ 1 ãåç
§ãã¦ãã ããã
+ 
+ å³ 1: æ¸ãæãã«ã¼ã«ã»ãããéãå¶å¾¡ããã¼
+
ã¾ããURL ãåã«ã¼ã«ã® Pattern ã«å¯¾ãã¦ãããããã¾ãã
+ ãããããªãå ´åã
ì´ ë¬¸ìë
Apache HTTP Serverë ì¬ë¬ ë¨ê³ë¡ ìì²ì ì²ë¦¬í©ëë¤. + ì´ë¬í ê° ë¨ê³ìì ìì² ìëª ì£¼ê¸°ì í´ë¹ ë¶ë¶ì ì²ë¦¬í기 + ìí´ íë ì´ìì 모ëì´ í¸ì¶ë ì ììµëë¤. ë¨ê³ìë + URLìì íì¼ëª ì¼ë¡ì ë³í, ì¸ì¦, ì¸ê°, ì½í ì¸ , ë¡ê¹ + ë±ì´ í¬í¨ë©ëë¤. (ì´ê²ì ì ì²´ 목ë¡ì´ ìëëë¤.)
+ +첫째, HTTP ìì²ì´ ì½íì§ í ì¸ê°ê° ììë기 ì ì
+ ë°ìíë URLìì íì¼ëª
ì¼ë¡ì ë³í í
ì ì¬ì©í©ëë¤.
+ ë째, ì¸ê° ë¨ê³ í ê·¸ë¦¬ê³ ëë í ë¦¬ë³ ì¤ì íì¼
+ (.htaccess íì¼)ì´ ì½í í ì½í
ì¸
+ í¸ë¤ë¬ê° í¸ì¶ë기 ì ì ë°ìíë Fixup í
ì
+ ì¬ì©í©ëë¤.
ìì²ì´ ë¤ì´ì¤ê³ í´ë¹ ìë² ëë ê°ì í¸ì¤í¸ê°
+ ê²°ì ë í, ì¬ìì± ìì§ì ìë²ë³ ì¤ì ì ëíëë
+ 모ë
ëª ë¨ê³ í, ìµì¢
ë°ì´í° ëë í ë¦¬ê° ë°ê²¬ëë©´
+ ëë í ë¦¬ë³ ì¤ì ì§ìì´(.htaccess íì¼ê³¼
+
ì´ë¬í ê° ê²½ì°ì REQUEST_URI를 ì URL ëë íì¼ëª
ì¼ë¡
+ ì¬ìì±í©ëë¤.
ëë í ë¦¬ë³ ì»¨í
ì¤í¸(ì¦, .htaccess íì¼ê³¼
+ Directory ë¸ë¡ ë´)ìì ì´ë¬í ê·ì¹ì
+ URLì´ ì´ë¯¸ íì¼ëª
ì¼ë¡ ë³íë íì ì ì©ë©ëë¤.
+ ì´ ë문ì
ì를 ë¤ì´: ê·ì¹ì´ /var/www/foo/.htaccessì ìê³ + /foo/bar/bazì ëí ìì²ì´ ì²ë¦¬ëê³ ìë¤ë©´ + ^bar/baz$ì ê°ì ííìì´ ì¼ì¹í©ëë¤.
+ +ëë í ë¦¬ë³ ì»¨í
ì¤í¸ìì ì¹íì´ ì´ë£¨ì´ì§ë©´
+ ì URLë¡ ìë¡ì´ ë´ë¶ ìë¸ìì²ì´ ë°íëì´ ìì²
+ ë¨ê³ì ì²ë¦¬ê° ë¤ì ììë©ëë¤. ì¹íì´ ìë ê²½ë¡ì¸
+ ê²½ì°
ëë í ë¦¬ë³ ì»¨í ì¤í¸ììì ì´ë¬í ì¶ê° URL ì¡°ì + ë문ì í´ë¹ 컨í ì¤í¸ìì ì¬ìì± ê·ì¹ì ë¤ë¥´ê² + ìì±íëë¡ ì£¼ìí´ì¼ í©ëë¤. í¹í ìì ëë í 리 ê²½ë¡ê° + ì¬ìì± ê·ì¹ì´ ë³´ê² ë URLìì ì ê±°ëë¤ë ê²ì + 기ìµíììì¤. ë ìì¸í ì¤ëª ì ìë ìì 를 + 참조íììì¤.
+ +| ê·ì¹ì ìì¹ | +ê·ì¹ | +
|---|---|
| VirtualHost ì¹ì | +RewriteRule "^/images/(.+)\.jpg" "/images/$1.gif" | +
| 문ì 루í¸ì .htaccess íì¼ | +RewriteRule "^images/(.+)\.jpg" "images/$1.gif" | +
| images ëë í 리ì .htaccess íì¼ | +RewriteRule "^(.+)\.jpg" "$1.gif" | +
ì´ì
ê·ì¹ ì¸í¸ìì ê·ì¹ì ììë ì¬ìì± ìì§ì´
+ í¹ë³í(ê·¸ë¦¬ê³ ê·¸ë¤ì§ ë¶ëª
íì§ ìì) ììë¡ ì²ë¦¬íë¯ë¡
+ ì¤ìí©ëë¤. ê·ì¹ì ë¤ìê³¼ ê°ìµëë¤: ì¬ìì± ìì§ì
+ ê·ì¹ ì¸í¸ë¥¼ ê·ì¹ë³ë¡(RewriteCond ì§ìì´)ì
+ ìíí©ëë¤. ìì¬ì ì´ì ë¡ ì¡°ê±´ì´ ë¨¼ì 주ì´ì§ë¯ë¡
+ ì ì´ íë¦ì´ ì½ê° ì¥í©í©ëë¤. ìì¸í ë´ì©ì
+ 그림 1ì 참조íììì¤.
+ 
+ 그림 1: ì¬ìì± ê·ì¹ ì¸í¸ë¥¼ íµí ì ì´ íë¦
+
먼ì URLì´ ê° ê·ì¹ì Patternê³¼
+ ë¹êµë©ëë¤. ì¤í¨íë©´
Bu belge,
Apache HTTP Sunucusu, istekleri birkaç aÅamada iÅler. Bu + aÅamaların her birinde, istek yaÅam döngüsünün o bölümünü + iÅlemek üzere bir veya daha fazla modül çaÄrılabilir. AÅamalar + URL-dosyaadı çevirisi, kimlik doÄrulama, yetkilendirme, içerik + ve günlükleme gibi Åeyleri içerir. (Bu kapsamlı bir liste + deÄildir.)
+ +İlk olarak, HTTP isteÄi okunduktan sonra ancak herhangi bir
+ yetkilendirme baÅlamadan önce gerçekleÅen URL-dosyaadı çevirisi
+ kancasını kullanır. İkinci olarak, yetkilendirme aÅamalarından
+ sonra ve dizin baÅına yapılandırma dosyaları
+ (.htaccess dosyaları) okunduktan sonra ancak içerik
+ iÅleyicisi çaÄrılmadan önce gerçekleÅen Düzeltme (Fixup)
+ kancasını kullanır.
Bir istek geldikten ve karÅılık gelen sunucu veya sanal konak
+ belirlendikten sonra, yeniden yazma motoru sunucu baÅına
+ yapılandırmada görünen
Birkaç adım sonra, son veri dizinleri bulunduktan sonra dizin
+ baÅına yapılandırma yönergeleri (.htaccess dosyaları
+ ve
Bu durumların her birinde REQUEST_URI'yi ya yeni bir URL'ye ya da bir dosya
+ adına yeniden yazar.
Dizin baÅına baÄlamda (yani .htaccess dosyaları ve
+ Directory blokları içinde) bu kurallar, bir URL
+ zaten bir dosya adına çevrilmiŠolduktan sonra uygulanır. Bu
+ nedenle,
Göstermek gerekirse: Kurallar /var/www/foo/.htaccess içindeyse + ve /foo/bar/baz isteÄi iÅleniyorsa, ^bar/baz$ gibi bir ifade + eÅleÅecektir.
+ +Dizin baÅına baÄlamda bir deÄiÅtirme yapılırsa, yeni URL ile
+ yeni bir dahili alt istek verilir ve bu da istek aÅamalarının
+ iÅlenmesini yeniden baÅlatır. DeÄiÅtirme göreli bir yolsa,
+
Dizin baÅına baÄlamda URL'nin bu ek iÅlenmesi nedeniyle, bu + baÄlamda yeniden yazma kurallarınızı farklı Åekilde oluÅturmaya + dikkat etmeniz gerekecektir. Ãzellikle, baÅtaki dizin yolunun + yeniden yazma kurallarınızın göreceÄi URL'den çıkarılacaÄını + unutmayın. Daha fazla açıklama için aÅaÄıdaki örneklere bakın.
+ +| Kuralın konumu | +Kural | +
|---|---|
| VirtualHost bölümü | +RewriteRule "^/images/(.+)\.jpg" "/images/$1.gif" | +
| Belge kökündeki .htaccess dosyası | +RewriteRule "^images/(.+)\.jpg" "images/$1.gif" | +
| images dizinindeki .htaccess dosyası | +RewriteRule "^(.+)\.jpg" "$1.gif" | +
Åimdi
Kural kümesindeki kuralların sırası önemlidir; çünkü yeniden
+ yazma motoru bunları özel (ve çok belirgin olmayan) bir sırada
+ iÅler. Kural Åudur: Yeniden yazma motoru kural kümesini kural
+ kural (RewriteCond
+ yönergeleri) döner. Tarihsel nedenlerle koÅullar önce verilir
+ ve bu nedenle kontrol akıÅı biraz dolambaçlıdır. Daha fazla
+ ayrıntı için Åekil 1'e bakın.
+ 
+ Åekil 1:Yeniden yazma kural kümesindeki kontrol akıÅı
+
İlk olarak URL, her kuralın Kalıp'ıyla eÅleÅtirilir.
+ BaÅarısız olursa
æ¬ææ¡£è®¨è®º
Apache HTTP æå¡å¨åå¤ä¸ªé¶æ®µå¤ç请æ±ã卿¯ä¸ªé¶æ®µï¼ + ä¸ä¸ªæå¤ä¸ªæ¨¡åå¯è½è¢«è°ç¨æ¥å¤ç请æ±çå½å¨æçé£ä¸ªé¨åã + è¿äºé¶æ®µå æ¬ URL å°æä»¶å转æ¢ã身份éªè¯ãææãå 容忥å¿è®°å½çã + ï¼è¿ä¸æ¯ä¸ä¸ªè¯¦å°½çå表ãï¼
+ +é¦å
ï¼å®ä½¿ç¨ URL å°æä»¶å转æ¢é©åï¼è¯¥é©åå¨ HTTP
+ 请æ±è¢«è¯»åä¹åãä½å¨ä»»ä½ææå¼å§ä¹å触åãå
¶æ¬¡ï¼å®ä½¿ç¨ Fixup é©åï¼
+ 该é©å卿æé¶æ®µä¹åãå¨ç®å½çº§é
ç½®æä»¶ï¼.htaccess æä»¶ï¼
+ 被读åä¹åãä½å¨å
容å¤çç¨åºè¢«è°ç¨ä¹å触åã
å½è¯·æ±è¿å
¥å¹¶ç¡®å®äºå¯¹åºçæå¡å¨æèæä¸»æºåï¼
+ éå弿å¼å§å¤çåºç°å¨æå¡å¨çº§é
ç½®ä¸çææ
å 个æ¥éª¤ä¹åï¼ä¸æ¦æ¾å°æç»çæ°æ®ç®å½ï¼
+ å°±ä¼åºç¨ç®å½çº§é
ç½®æä»¤ï¼.htaccess æä»¶å
卿¯ç§æ
åµä¸ï¼REQUEST_URI éå为æ°ç URL ææä»¶åã
å¨ç®å½çº§ä¸ä¸æä¸ï¼å³å¨ .htaccess æä»¶å
+ Directory åä¸ï¼ï¼è¿äºè§åå¨ URL
+ å·²ç»è¢«è½¬æ¢ä¸ºæä»¶åä¹åæè¢«åºç¨ãå æ¤ï¼
䏾便¥è¯´ï¼å¦æè§åä½äº /var/www/foo/.htaccess ä¸ï¼ + æ£å¨å¤ç对 /foo/bar/baz ç请æ±ï¼åè¡¨è¾¾å¼ ^bar/baz$ å°ä¼å¹é ã
+ +妿å¨ç®å½çº§ä¸ä¸æä¸è¿è¡äºæ¿æ¢ï¼å°ä½¿ç¨æ°ç URL
+ ååºæ°çå
é¨å请æ±ï¼éæ°å¼å§è¯·æ±é¶æ®µçå¤çãå¦ææ¿æ¢æ¯ç¸å¯¹è·¯å¾ï¼
+
ç±äºå¨ç®å½çº§ä¸ä¸æä¸å¯¹ URL è¿è¡äºè¿ä¸æ¥æä½ï¼ + ä½ éè¦æ³¨æå¨è¯¥ä¸ä¸æä¸ä»¥ä¸åæ¹å¼ç¼åéåè§åãç¹å«è¦è®°ä½ï¼ + å导ç®å½è·¯å¾å°ä»ä½ çéåè§åæçå°ç URL ä¸è¢«å»é¤ã + 请åèä¸é¢ç示ä¾ä»¥è¿ä¸æ¥è¯´æã
+ +| è§åä½ç½® | +è§å | +
|---|---|
| VirtualHost é 置段 | +RewriteRule "^/images/(.+)\.jpg" "/images/$1.gif" | +
| ææ¡£æ ¹ç®å½ä¸ç .htaccess æä»¶ | +RewriteRule "^images/(.+)\.jpg" "images/$1.gif" | +
| images ç®å½ä¸ç .htaccess æä»¶ | +RewriteRule "^(.+)\.jpg" "$1.gif" | +
è¦æ´æ·±å
¥å°äºè§£
ç°å¨å½
è§åéä¸è§åç顺åºå¾éè¦ï¼å 为éå弿以ä¸ç§ç¹æ®çï¼ä¸ä¸å¤ªç´è§çï¼
+ 顺åºå¤çå®ä»¬ãè§åå¦ä¸ï¼éå弿鿡éåè§åéä¸çè§å
+ ï¼RewriteCond æä»¤ï¼ãç±äºåå²åå ï¼
+ æ¡ä»¶åå¨åé¢ï¼å æ¤æ§å¶æµç¨æç¹ç»ãåè§å¾ 1 äºè§£æ´å¤ç»èã
+ 
+ å¾ 1ï¼éåè§åéçæ§å¶æµç¨
+
é¦å
ï¼URL 䏿¯æ¡è§åçæ¨¡å¼è¿è¡å¹é
ã妿å¹é
失败ï¼
+
Dieses Dokument ergänzt die
Wir möchten automatisch einen virtuellen Host für jeden Hostnamen + erstellen, der in unserer Domain aufgelöst wird, ohne für jeden + eine neue VirtualHost-Sektion erstellen zu müssen.
+ +In diesem Rezept nehmen wir an, dass wir den Hostnamen
+ SITE.example.com für jeden Benutzer
+ verwenden und deren Inhalte aus
+ /home/SITE/www ausliefern. Wir möchten
+ jedoch, dass www.example.com von dieser Zuordnung
+ ausgenommen wird.
Die interne tolower-RewriteMap-Direktive wird verwendet,
+um sicherzustellen, dass alle verwendeten Hostnamen in Kleinbuchstaben
+sind, sodass keine Mehrdeutigkeit in der Verzeichnisstruktur entsteht,
+die erstellt werden muss.
Klammern in einer %1, %2 usw.
+erfasst, während Klammern in $1, $2 usw. erfasst
+werden.
Die erste RewriteCond prüft, ob der Hostname mit
+www. beginnt, und wenn ja, wird die Umschreibung
+übersprungen.
+Wie bei vielen in diesem Dokument besprochenen Techniken ist
+
Dieser Auszug aus httpd.conf bewirkt dasselbe wie
+ das erste Beispiel. Die erste Hälfte
+ ist dem entsprechenden Teil oben sehr ähnlich, mit einigen
+ Ãnderungen, die für die Abwärtskompatibilität und die korrekte
+ Funktionsweise des
Da ScriptAlias-Direktiven umgehen würden, müssen
+ wir
Diese Anordnung verwendet fortgeschrittenere
+
Die vhost.map-Datei sollte in etwa so aussehen:
Die httpd.conf sollte Folgendes enthalten:
Este documento complementa la
Queremos crear automáticamente un host virtual para cada nombre de host + que resuelva en nuestro dominio, sin tener que crear + nuevas secciones VirtualHost.
+ +En esta receta, asumimos que usaremos el nombre de host
+ SITIO.example.com para cada
+ usuario, y serviremos su contenido desde
+ /home/SITIO/www. Sin embargo, queremos
+ que www.example.com sea omitido de este mapeo.
La directiva interna tolower de RewriteMap se usa para
+asegurar que los nombres de host que se usen estén todos en minúsculas, de modo que no haya
+ambigüedad en la estructura de directorios que debe crearse.
Los paréntesis usados en una %1, %2, etc, mientras que los paréntesis
+usados en $1, $2,
+etc.
La primera RewriteCond verifica si el nombre de host
+comienza con www., y si es asÃ, la reescritura se
+omite.
+Como con muchas técnicas discutidas en este documento,
Este extracto de httpd.conf hace lo mismo
+ que el primer ejemplo. La primera
+ mitad es muy similar a la parte correspondiente anterior, excepto por
+ algunos cambios, necesarios para compatibilidad hacia atrás y para hacer que la
+ parte de
Debido a que ScriptAlias, debemos hacer que
+
Este arreglo usa caracterÃsticas más avanzadas de
El archivo vhost.map deberÃa verse algo como
+ esto:
El httpd.conf deberÃa contener lo siguiente:
ãã®ããã¥ã¡ã³ãã¯
ãã¡ã¤ã³å ã§è§£æ±ºããããã¹ã¦ã®ãã¹ãåã«å¯¾ãã¦ãæ°ãã + VirtualHost ã»ã¯ã·ã§ã³ã使ãããã¨ãªããèªåçã«ãã¼ãã£ã«ãã¹ãã + 使ãããã¨ãã¾ãã
+ +ãã®ã¬ã·ãã§ã¯ãåã¦ã¼ã¶ã«å¯¾ãã¦ãã¹ãå
+ SITE.example.com ã使ç¨ãã
+ ã³ã³ãã³ãã /home/SITE/www ãã
+ æä¾ããã¨ä»®å®ãã¦ãã¾ãããã ããwww.example.com ã¯
+ ãã®ãããã³ã°ããé¤å¤ãããã¨ãã¾ãã
å
é¨ tolower RewriteMap ãã£ã¬ã¯ãã£ãã¯ã使ç¨ããã
+ãã¹ãåããã¹ã¦å°æåã§ãããã¨ãä¿è¨¼ãã使ãã¹ããã£ã¬ã¯ããªæ§é ã«
+ææ§ãããªãããã«ãã¾ãã
%1ã%2 çã«
+ãã£ããã£ããã$1ã$2
+çã«ãã£ããã£ããã¾ãã
æåã® RewriteCond ã¯ããã¹ãåã www. ã§
+å§ã¾ããã©ããã確èªããå§ã¾ãå ´åã¯æ¸ãæããã¹ãããããã¾ãã
+ãã®ããã¥ã¡ã³ãã§èª¬æããã¦ããå¤ãã®ãã¯ããã¯ã¨åæ§ã«ã
+
ãã® httpd.conf ããã®æç²ã¯ã
+ æåã®ä¾ã¨åããã¨ãè¡ãã¾ãã
+ ååã¯ä¸è¨ã®å¯¾å¿ããé¨åã¨é常ã«ä¼¼ã¦ãã¾ããã徿¹äºææ§ã®ããã
+ ããã³
ScriptAlias ãã£ã¬ã¯ãã£ãããã¤ãã¹ããããã
+
ãã®æ§æã§ã¯ã
vhost.map ãã¡ã¤ã«ã¯æ¬¡ã®ããã«ãªãã¾ã:
httpd.conf ã«ã¯ä»¥ä¸ãå«ããå¿
è¦ãããã¾ã:
ì´ ë¬¸ìë
ìë¡ì´ VirtualHost ì¹ì ì ë§ë¤ì§ ìê³ ëë©ì¸ìì + í´ìëë 모ë í¸ì¤í¸ëª ì ëí´ ìëì¼ë¡ ê°ì í¸ì¤í¸ë¥¼ + ë§ë¤ê³ ì í©ëë¤.
+ +ì´ ë ìí¼ììë ê° ì¬ì©ìì ëí´ í¸ì¤í¸ëª
+ SITE.example.comì ì¬ì©íê³
+ /home/SITE/wwwìì ì½í
ì¸ ë¥¼
+ ì ê³µíë¤ê³ ê°ì í©ëë¤. ê·¸ë¬ë
+ www.example.comì ì´ ë§¤íìì ì ì¸íê³ ì
+ í©ëë¤.
ë´ë¶ tolower RewriteMap ì§ìì´ë ì¬ì©ëë
+í¸ì¤í¸ëª
ì´ ëª¨ë ì문ìì¸ì§ íì¸íì¬ ìì±í´ì¼ íë ëë í 리
+구조ì 모í¸í¨ì´ ìëë¡ í©ëë¤.
%1, %2 ë±ì¼ë¡
+캡ì²ëë©°, $1, $2 ë±ì¼ë¡
+캡ì²ë©ëë¤.
첫 ë²ì§¸ RewriteCondë í¸ì¤í¸ëª
ì´
+www.ë¡ ììíëì§ íì¸íê³ , ê·¸ë ë¤ë©´ ì¬ìì±ì´
+ê±´ëë°ì´ì§ëë¤.
+ì´ ë¬¸ììì ë
¼ìë ë§ì 기ì ê³¼ ë§ì°¬ê°ì§ë¡,
+
httpd.confììì ì´ ë°ì·ë
+ 첫 ë²ì§¸ ìì ì ëì¼í ìì
ì
+ ìíí©ëë¤. ì ë°ë¶ë ìì í´ë¹ ë¶ë¶ê³¼ ë§¤ì° ì ì¬íì§ë§
+ íì í¸íì±ì ìí´ ê·¸ë¦¬ê³
ScriptAlias ì§ìì´ë¥¼ ì°ííë¯ë¡
+
ì´ ë°°ì¹ë ë ê³ ê¸
vhost.map íì¼ì ë¤ìê³¼ ê°ì ííì¬ì¼
+ í©ëë¤:
httpd.confìë ë¤ìì´ í¬í¨ëì´ì¼
+ í©ëë¤:
Bu belge,
Alan adımızda çözümlenen her konak adı için, yeni VirtualHost + bölümleri oluÅturmak zorunda kalmadan otomatik olarak bir sanal + konak oluÅturmak istiyoruz.
+ +Bu tarifle, her kullanıcı için
+ SITE.example.com konak adını
+ kullanacaÄımızı ve içeriklerini
+ /home/SITE/www dizininden
+ sunacaÄımızı varsayıyoruz. Ancak
+ www.example.com'u bu eÅlemeden hariç tutmak
+ istiyoruz.
Kullanılan konak adlarının tümünün küçük harf olmasını saÄlamak
+için dahili tolower RewriteMap yönergesi kullanılır;
+böylece oluÅturulması gereken dizin yapısında belirsizlik olmaz.
Bir %1, %2 vb.
+geri baÅvurulara yakalanırken, $1, $2 vb. geri baÅvurulara
+yakalanır.
İlk RewriteCond, konak adının www. ile
+baÅlayıp baÅlamadıÄını kontrol eder ve baÅlıyorsa yeniden yazma
+atlanır.
+Bu belgede tartıÅılan birçok teknikte olduÄu gibi, bu görevi
+gerçekleÅtirmek için
Bu httpd.conf alıntısı, ilk örnekle aynı Åeyi yapar. İlk yarısı
+ yukarıdaki karÅılık gelen bölüme çok benzer; ancak geriye dönük
+ uyumluluk ve
ScriptAlias yönergelerini
+ atlayacaÄından,
Bu düzenleme, sanal konaktan belge köküne çeviriyi ayrı bir
+ yapılandırma dosyasından çözmek için daha geliÅmiÅ
+
vhost.map dosyası Åöyle görünmelidir:
httpd.conf dosyası Åunları içermelidir:
æ¬ææ¡£æ¯
æä»¬å¸æä¸ºåä¸è§£æçæ¯ä¸ªä¸»æºåèªå¨å建èæä¸»æºï¼ + èæ éå建æ°ç VirtualHost é 置段ã
+ +卿¬é
ç½®æ¹æ¡ä¸ï¼æä»¬å设对æ¯ä¸ªç¨æ·ä½¿ç¨ä¸»æºå
+ SITE.example.comï¼
+ å¹¶ä» /home/SITE/www æä¾å
¶å
容ã
+ 使¯ï¼æä»¬å¸æ www.example.com ä¸å
å«å¨æ¤æ å°ä¸ã
å
é¨ tolower RewriteMap æä»¤ç¨äºç¡®ä¿æä½¿ç¨ç主æºåå
¨é¨ä¸ºå°åï¼
+以é¿å
ç®å½ç»æä¸çæ§ä¹ã
å¨ %1ã%2 çä¸ï¼
+èå¨ $1ã$2 çä¸ã
第ä¸ä¸ª RewriteCond æ£æ¥ä¸»æºåæ¯å¦ä»¥ www. å¼å¤´ï¼
+妿æ¯ï¼åè·³è¿éåã
+䏿¬ææ¡£ä¸è®¨è®ºçè®¸å¤ææ¯ä¸æ ·ï¼
æ¤ httpd.conf æå½ä¸ç¬¬ä¸ä¸ªç¤ºä¾
+ å®ç°ç¸åçåè½ãååé¨åä¸ä¸é¢å¯¹åºçé¨åé常ç¸ä¼¼ï¼
+ åªæ¯ä¸ºäºååå
¼å®¹å使
å 为 ScriptAlias æä»¤ï¼
+ æä»¬å¿
须让
æ¤æ¹æ¡ä½¿ç¨æ´é«çº§ç
vhost.map æä»¶åºç±»ä¼¼äºï¼
httpd.conf åºå
å«ä»¥ä¸å
容ï¼