blob: 442b6edf9f197b736b03667e59085c8470c717ba [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<meta content="noindex, nofollow" name="robots" />
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>URL’lerin Dosya Sistemi ile Eşleştirilmesi - Apache HTTP Sunucusu</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="./images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/urlmapping.html" rel="canonical" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p>
<p class="apache">Apache HTTP Sunucusu Sürüm 2.0</p>
<img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="./">Sürüm 2.0</a></div><div id="page-content"><div class="retired"><h4>Please note</h4>
<p>This document refers to the <strong>2.0</strong> version of Apache httpd, which <strong>is no longer maintained</strong>. Upgrade, and refer to the current version of httpd instead, documented at:</p>
<ul><li><a href="http://httpd.apache.org/docs/current/">Current release version of Apache HTTP Server documentation</a></li></ul><p>You may follow <a href="http://httpd.apache.org/docs/current/urlmapping.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>URL’lerin Dosya Sistemi ile Eşleştirilmesi</h1>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="./en/urlmapping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./ja/urlmapping.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/urlmapping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/urlmapping.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
<p>Bu belgede, bir istekte belirtilen URL’nin sunulacak dosyanın dosya
sistemindeki yerini bulmak için Apache tarafından nasıl kullanıldığı
açıklanmaktadır.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#related">İlgili Modüller ve Yönergeler</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#documentroot"><code>DocumentRoot</code></a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#outside">Belge Kök Dizini Dışındaki Dosyalar</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#user">Kullanıcı Dizinleri</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#redirect">URL Yönlendirme</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#proxy">Karşı Vekil</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#rewrite">Yeniden Yazma Motoru</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#notfound">Dosya orada yok</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="related" id="related">İlgili Modüller ve Yönergeler</a></h2>
<table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_alias.html">mod_alias</a></code></li><li><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li><li><code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code></li><li><code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code></li><li><code class="module"><a href="./mod/mod_vhost_alias.html">mod_vhost_alias</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_alias.html#alias">Alias</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#aliasmatch">AliasMatch</a></code></li><li><code class="directive"><a href="./mod/mod_speling.html#checkspelling">CheckSpelling</a></code></li><li><code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="./mod/core.html#errordocument">ErrorDocument</a></code></li><li><code class="directive"><a href="./mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#redirect">Redirect</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#redirectmatch">RedirectMatch</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritematch">RewriteMatch</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#scriptalias">ScriptAlias</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></code></li><li><code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code></li></ul></td></tr></table>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="documentroot" id="documentroot"><code>DocumentRoot</code></a></h2>
<p>Yapılan bir isteğe hangi dosyanın sunulacağına karar verirken
Apache’nin öntanımlı davranışı istek için URL yolunu (URL’den konak ismi
ve port ayrıldıktan sonra kalan kısım) alıp bunu yapılandırma dosyasında
<code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> yönergesi ile
belirtilen dizinin sonuna eklemektir. Bu nedenle, <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> altındaki dizinler ve dosyalar
sitenin dışardan görünen temel belge ağacını oluştururlar.</p>
<p>Örneğin, <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> yönergesine
<code>/var/http/html</code> atanmış olsun.
<code>http://mesela.dom/balıklar/zargana.html</code> şeklindeki bir
istek için istemciye <code>/var/http/html/balıklar/zargana.html</code>
dosyası sunulur.</p>
<p>Apache ayrıca, sunucunun birden fazla konak için istek kabul etmesini
sağlayan <a href="vhosts/">sanal barındırmaya</a> da muktedirdir. Bu
durumda her sanal konak için ayrı bir <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> belirtilebileceği gibi sunulacak içeriğin
istekte bulunulan IP adresi veya konak ismine dayanarak devingen olarak
saptanmasını sağlayabilen <code class="module"><a href="./mod/mod_vhost_alias.html">mod_vhost_alias</a></code> modülüyle
gelen yönergeler de kullanılabilir.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="outside" id="outside">Belge Kök Dizini Dışındaki Dosyalar</a></h2>
<p>Bazen dosya sisteminde doğrudan <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> altında bulunmayan dosyalara da erişim izni
vermek gerekir. Apache’de bunu sağlamanın çeşitli yolları vardır. Unix
sistemlerinde sembolik bağlar sayesinde dosya sisteminin farklı
yerlerindeki dosyaları ve dizinleri <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> altındaymış gibi göstermek mümkündür.
<code class="directive"><a href="./mod/core.html#options">Options</a></code> yönergesine değer olarak
<code>FollowSymLinks</code> veya <code>SymLinksIfOwnerMatch</code>
atanmadıkça Apache olası güvenlik açıklarına karşı öntanımlı olarak
sembolik bağları izlemez.</p>
<p>Bundan başka, dosya sisteminin farklı parçalarını belge kök dizini
altında göstermek için <code class="directive"><a href="./mod/mod_alias.html#alias">Alias</a></code>
yönergesi de kullanılabilir. Örneğin,</p>
<div class="example"><p><code>Alias /belgeler /var/http</code></p></div>
<p>yapılandırması ile
<code>http://mesela.dom/belgeler/dizin/dosya.html</code> URL’si için
dosya sistemindeki <code>/var/http/dizin/dosya.html</code> dosyası
sunulacaktır. Hedef dizindeki dosyaları birer <span title="sözlüğe bakınız"></span>&nbsp;<a href="./glossary.html#cgi">CGI</a> betiği olarak imlemesi dışında <code class="directive"><a href="./mod/mod_alias.html#scriptalias">ScriptAlias</a></code> yönergesi de aynı şekilde
çalışır.</p>
<p>Biraz daha fazla esnekliğin gerektiği durumlarda <span title="sözlüğe bakınız"></span>&nbsp;<a href="./glossary.html#regex">düzenli ifadelere</a> dayalı eşleşmeler sağlamak
üzere <code class="directive"><a href="./mod/mod_alias.html#aliasmatch">AliasMatch</a></code> ve <code class="directive"><a href="./mod/mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></code> yönergelerinin gücünden
yararlanılabilir. Örneğin,</p>
<div class="example"><p><code>ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+)
/home/$1/cgi-bin/$2</code></p></div>
<p>satırı sayesinde <code>http://mesela.dom/~user/cgi-bin/betik.cgi</code>
URL’si <code>/home/user/cgi-bin/betik.cgi</code> dosyası ile
eşleştirilir ve dosya bir CGI betiği olarak çalıştırılırdı.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="user" id="user">Kullanıcı Dizinleri</a></h2>
<p>Geleneksel olarak Unix sistemlerinde belli bir kullanıcının (örn,
<em>birisi</em>) ev dizinine <code>~birisi/</code> şeklinde atıfta
bulunulabilir. <code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code> modülü bu özelliği site
üzerinden kullanıcıların ev dizinlerindeki dosyaları kişisel sayfalar
olarak sunmalarını sağlamak üzere kullanır. Örnek:</p>
<div class="example"><p><code>http://mesela.dom/~birisi/dosya.html</code></p></div>
<p>Güvenlik sebebiyle kullanıcıların ev dizinlerine doğrudan HTTP erişimi
vermek uygun olmaz. Bu bakımdan, kullanıcının ev dizini altında HTTP
erişimi verilecek dosyaların bulunduğu dizini belirtmek için <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code> yönergesi sağlanmıştır.
Öntanımlı olan <code>Userdir public_html</code> yapılandırması ile
yukarıdaki gibi bir URL kullanıcının ev dizini (<code>/etc/passwd</code>
dosyasında belirtilir) <code>/home/birisi/</code> altında yer alan
<code>/home/birisi/public_html/dosya.html</code> dosyası ile
eşleşirdi.</p>
<p>Ev dizininin yerinin <code>/etc/passwd</code> dosyasında belirtilmediği
sistemlerde kullanılmak üzere <code>Userdir</code> yönergesinin başka
kullanım şekilleri de vardır.</p>
<p>Bazı kişiler (genellikle URL üzerinde <code>%7e</code> olarak
kodlanması sebebiyle) "~" simgesini biçimsiz bulabilir ve kullanıcı
dizinlerini imlemek için başka bir karakter kullanmayı tercih
edebilirler. Bu işlevsellik <code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code> tarafından
desteklenmemektedir. Ancak, kullanıcı dizinleri düzgün şekilde
yapılandırılmışsa istenen etki <code class="directive"><a href="./mod/mod_alias.html#aliasmatch">AliasMatch</a></code> yönergesi ile sağlanabilir.
Örneğin, <code>http://mesela.dom/sayfalar/birisi/dosya.html</code>
URL’si ile <code>/home/birisi/public_html/dosya.html</code> dosyasını
eşlemek için <code>AliasMatch</code> yönergesi şöyle
kullanılabilirdi:</p>
<div class="example"><p><code>AliasMatch ^/sayfalar/([a-zA-Z0-9]+)/?(.*)
/home/$1/public_html/$2</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="redirect" id="redirect">URL Yönlendirme</a></h2>
<p>Yukarıdaki bölümlerde açıklanan yapılandırma yönergeleri Apache’ye
içeriği dosya sisteminin belli bir yerinden alıp istemciye göndermesini
söyler. Bazen istemciye, istediği içeriğe farklı bir URL ile
erişebileceğini ve bu URL için ayrı bir istek yapması gerektiğini
bildirmek gerekir. Bu işleme <em>yönlendirme</em> adı verilir ve bu
işlevsellik <code class="directive"><a href="./mod/mod_alias.html#redirect">Redirect</a></code> yönergesi
ile sağlanır. Örneğin, <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code>
altındaki <code>/foo/</code> dizininin içeriğinin <code>/bar/</code>
adında yeni bir dizine taşınması halinde istemciye yeni konumun
bildirilmesi şöyle sağlanabilirdi:</p>
<div class="example"><p><code>Redirect permanent /foo/
http://mesela.dom/bar/</code></p></div>
<p>Bu atama sayesinde <code>/foo/</code> ile başlayan URL yolları
<code>mesela.dom</code> sunucundaki <code>/bar/</code> dizini altındaki
içeriğe yönlendirilmektedir. Yönlendirmeyi aynı sunucu üzerinde yapmak
zorunda değilsiniz, bu yönerge ile başka bir sunucuya da yönlendirme
yapabilirsiniz.</p>
<p>Apache ayrıca, yeniden yazma ile ilgili daha karmaşık sorunlara çözüm
olarak <code class="directive"><a href="./mod/mod_alias.html#redirectmatch">RedirectMatch</a></code> diye bir
yönerge daha sağlar. Örneğin bir sitenin baş sayfasını diğer isteklerden
ayrı olarak farklı bir siteye yönlendirmek için yönergeyi şöyle
kullanabilirsiniz:</p>
<div class="example"><p><code>RedirectMatch permanent ^/$
http://misal.dom/ilksayfa.html</code></p></div>
<p>Bundan başka, bir sitedeki tüm sayfalara yapılan istekleri başka bir
siteye geçici olarak yönlendirmek için şöyle bir şey yapabilirsiniz:</p>
<div class="example"><p><code>RedirectMatch temp .*
http://mesela.misal.dom/ilksayfa.html</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="proxy" id="proxy">Karşı Vekil</a></h2>
<p>Apache ayrıca, uzak sunuculardaki belgelerin yerel sunucunun URL
alanına getirilmesini de mümkün kılar. Bu tekniğe HTTP sunucunun
belgeleri uzak bir sunucudan alıp istemciye sunmasını sağlayarak bir
vekil sunucu gibi davranması nedeniyle <em>ters vekalet</em> adı
verilir. Belgelerin istemciye özkaynağın bulunduğu sunucudan
geliyormuş gibi değilde doğrudan isteği yaptığı sunucudan geliyormuş
gibi sunulması nedeniyle bu işlem normal vekaletten farklıdır.</p>
<p>Aşağıdaki örnekte, istemci <code>/foo/</code> dizini altından bir belge
istemekte, sunucu ise bu belgeyi <code>dahili.mesela.dom</code>
üzerindeki <code>/bar/</code> dizininden alıp istemciye yerel sunucudan
geliyormuş gibi sunmaktadır:</p>
<div class="example"><p><code>
ProxyPass /foo/ http://dahili.mesela.dom/bar/<br />
ProxyPassReverse /foo/ http://dahili.mesela.dom/bar/<br />
</code></p></div>
<p><code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code> sunucuyu uygun
belgeleri alması için yapılandırırken <code class="directive"><a href="./mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> yönergesi <code>dahili.mesela.dom</code>
sunucusundan kaynaklanan yönlendirmeleri yeniden yazar. Yalnız,
belgelerin içindeki hiperbağların yeniden yazılmayacağına dikkat ediniz.
Dolayısıyla, belge içinde <code>dahili.mesela.dom</code>’u ismiyle hedef
alan mutlak hiperbağlar varsa bunlar istemci tarafından vekil sunucudan
değil doğrudan <code>dahili.mesela.dom</code>’dan istenecektir.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="rewrite" id="rewrite">Yeniden Yazma Motoru</a></h2>
<p>Daha güçlü ikameler gerektiğinde <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> modülü
tarafından sağlanan yeniden yazma motoru işe yarayabilir. Bu modüldeki
yönergeler sunulacak içeriğin yerine karar vermek için kaynak IP adresi,
tarayıcı türü gibi isteğe özgü özellikleri kullanırlar.
<code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> modülü buna ek olarak isteğin nasıl ele
alınacağına karar vermek için harici yazılımları ve veritabanlarını
kullanabilir. Yeniden yazma motoru yukarıda değinilen üç eşleşme türünü
de uygulayabilecek yetenektedir: Dahili yönlendirmeler (rumuzlar),
harici yönlendirmeler ve vekalet. <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> modülü
tarafından sağlanan yeteneklerin ayrıntılı açıklamaları ve bunların
kullanım örnekleri <a href="misc/rewriteguide.html">URL Yeniden Yazma
Rehberi</a>nde bulunmaktadır.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="notfound" id="notfound">Dosya orada yok</a></h2>
<p>Kaçınılmaz olarak, dosya sisteminde mevcut olmayan dosyalar için de
istek yapılacaktır. Bunun çeşitli sebepleri olabilir. Bazı durumlarda
bu, belgelerin yerlerininin değiştirilmesinin bir sonucu olabilir. Bu
durumda yapılacak en iyi şey, istemciyi belgeyi yeni yerinden istemesi
için bilgilendirmek amacıyla <a href="#redirect">URL yönlendirmesi</a>
kullanmaktır. Bu şekilde, içeriğin yeri değişse bile eski yer imlerinin
ve hiperbağların çalışmaya devam edeceklerinden emin olabilirsiniz.</p>
<p>"Dosya orada yok" ("File Not Found") hatalarının diğer bir bildik
sebebi de URL’lerin hiperbağlarda veya doğrudan tarayıcıda kasıtlı ya da
kasıtsız, yanlış yazılmasıdır. Bu tür sorunlarda yardımcı olması için
Apache <code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code> (sic) adında bir modülle gelir. Bu
modül etkin kılındığında Apache, "Dosya orada yok" ("File Not Found")
hatalarının önünü kesip başka bir yerde benzer isimde bir dosya var mı
diye bakar. Böyle bir dosya varsa, <code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code>
istemciye dosyanın doğru yerini bildiren bir HTTP yönlendirmesi yollar.
Benzer çok sayıda dosya varsa bunlar istemciye bir liste halinde
sunulur.</p>
<p><code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code> modülünün en yararlı özelliklerinden biri
de dosya isimlerini harf büyüklüğüne duyarsız olarak arayabilmesidir.
Dosya isimlerinde harf büyüklüğünün önemli olduğu Unix benzeri sistemler
hakkında bilgisi olmayan kullanıcılara sahip sistemlerin kullanıcılarına
bu büyük yarar sağlar. Fakat modülün URL düzeltmekten başka şeyler için
de kullanılması, istemcilerden gelen neredeyse her isteğin URL
yönlendirmesine konu olmasına sebep olarak sunucunun yükünü
arttırabilir.</p>
<p>Yerinde bulunmayan içeriğin bulunması çabalarının tümü Apache’nin 404
(Dosya orada yok) HTTP durum kodlu bir hata sayfası döndürmesine yol
açar. Bu sayfanın içeriği <code class="directive"><a href="./mod/core.html#errordocument">ErrorDocument</a></code> yönergesi ile denetlenebilir ve <a href="custom-error.html">Hata Yanıtlarının Kişiselleştirilmesi</a> ve <a href="misc/custom_errordocs.html">Uluslararası Hata Yanıtları</a>
belgelerinde anlatıldığı gibi oldukça esnek bir şekilde
kişiselleştirilebilir.</p>
</div></div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="./en/urlmapping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./ja/urlmapping.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/urlmapping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/urlmapping.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2013 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
<p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div>
</body></html>