blob: 08b2f98c0983002ff16e5a0545c4ec15be6dcae0 [file]
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="tr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>mod_vhost_alias - Apache HTTP Sunucusu S&uuml;r&uuml;m 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>
<link href="../images/favicon.png" rel="shortcut icon"></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Mod&uuml;ller</a> | <a href="../mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
<p class="apache">Apache HTTP Sunucusu S&uuml;r&uuml;m 2.5</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="https://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="../">S&uuml;r&uuml;m 2.5</a> &gt; <a href="./">Mod&uuml;ller</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache Mod&uuml;l&uuml; mod_vhost_alias</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="../en/mod/mod_vhost_alias.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_vhost_alias.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../tr/mod/mod_vhost_alias.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">Bu &ccedil;eviri g&uuml;ncel olmayabilir. Son değişiklikler i&ccedil;in İngilizce s&uuml;r&uuml;m ge&ccedil;erlidir.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">A&ccedil;ıklama:</a></th><td>Kitlesel sanal konakların devingen olarak yapılandırılmasını sağlar</td></tr>
<tr><th><a href="module-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Mod&uuml;l&nbsp;Betimleyici:</a></th><td>vhost_alias_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Kaynak&nbsp;Dosyası:</a></th><td>mod_vhost_alias.c</td></tr></table>
<h3>&Ouml;zet</h3>
<p>Bu mod&uuml;l, hangi dosyaların sunulacağını saptamak i&ccedil;in dosya yolunun
par&ccedil;ası olarak HTTP isteğinin <code>Host:</code> başlığının ve/veya IP
adresinin kullanılmasını m&uuml;mk&uuml;n kılarak devingen yapılandırmalı sanal
konaklar oluşturur. B&ouml;ylece benzer yapılandırmaya sahip &ccedil;ok b&uuml;y&uuml;k sayıda
sanal konak kullanımı kolaşlaşır.</p>
<div class="note"><h3>Bilginize</h3>
<p>URI'leri dosya isimlerine d&ouml;n&uuml;şt&uuml;rmek i&ccedil;in <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code>
veya <code class="module"><a href="../mod/mod_userdir.html">mod_userdir</a></code> kullanılmışsa bunlar
<code class="module"><a href="../mod/mod_vhost_alias.html">mod_vhost_alias</a></code> y&ouml;nergeleri tarafından aşağıda
a&ccedil;ıklandığı gibi ge&ccedil;ersiz kılınırlar. &Ouml;rneğin, aşağıdaki yapılandırma
her durumda <code>/cgi-bin/script.pl</code> betiğini <code>
/usr/local/apache2/cgi-bin/script.pl</code> betiğine eşleyecektir:</p>
<div class="example"><p><code>
ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/<br>
VirtualScriptAlias /nerede/bilinmiyor/%0/cgi-bin/
</code></p></div>
</div>
</div>
<div id="quickview"><h3>Konular</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif"> <a href="#interpol">Dizin İsimlerinin Elde Edilmesi</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#examples">&Ouml;rnekler</a></li>
</ul><h3 class="directives">Y&ouml;nergeler</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif"> <a href="#virtualdocumentroot">VirtualDocumentRoot</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#virtualscriptalias">VirtualScriptAlias</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#virtualscriptaliasip">VirtualScriptAliasIP</a></li>
</ul>
<h3>Bugfix checklist</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd changelog</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_vhost_alias">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_vhost_alias">Report a bug</a></li></ul><h3>Ayrıca bakınız:</h3>
<ul class="seealso">
<li><code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code></li>
<li><a href="../vhosts/mass.html">Devingen olarak Yapılandırılan Kitlesel
Sanal Barındırma</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="interpol">Dizin İsimlerinin Elde Edilmesi <a title="Permanent link" href="#interpol" class="permalink">&para;</a></h2>
<p>Bu mod&uuml;ldeki t&uuml;m y&ouml;nergeler bir dizgeyi bir dosya yoluna d&ouml;n&uuml;şt&uuml;rerek
&ccedil;alışırlar. D&ouml;n&uuml;ş&uuml;m dizgesi (bundan sonra "isim" diyeceğiz) ya sunucu
ismi olur (bunun nasıl belirlendiğini &ouml;ğrenmek i&ccedil;in <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code> y&ouml;nergesine bakınız) ya da
sunucu &uuml;zerindeki sanal konağın IP adresi olur. D&ouml;n&uuml;ş&uuml;m&uuml;,
<code>printf</code>'inkilerin benzeri birka&ccedil; bi&ccedil;em belirteci
denetler:</p>
<table>
<tr><td><code>%%</code></td>
<td>Bir <code>%</code> imi yerleştirir.</td></tr>
<tr><td><code>%p</code></td>
<td>Sanal konağın IP adresini yerleştirir.</td></tr>
<tr><td><code>%N.M</code></td>
<td>İsmin par&ccedil;alarını yerleştirir.</td></tr>
</table>
<p><code>N</code> ve <code>M</code> ismin alt dizgelerini belirtmek i&ccedil;in
kullanılır. <code>N</code>, ismin noktalarla ayrılmış bileşenlerinden
se&ccedil;im yaparken <code>M</code>, <code>N</code> ile se&ccedil;ilen par&ccedil;adan
karakter se&ccedil;mekte kullanılır. <code>M</code> isteğe bağlı olup mevcut
olmaması halinde &ouml;ntanımlı olarak sıfırdır. Noktanın varlığı
<code>M</code>'nin varlığına bağlıdır. D&ouml;n&uuml;ş&uuml;m ş&ouml;yle uygulanır:</p>
<table>
<tr><td><code>0</code></td>
<td>ismin tamamı</td></tr>
<tr><td><code>1</code></td>
<td>ilk par&ccedil;a</td></tr>
<tr><td><code>2</code></td>
<td>ikinci par&ccedil;a</td></tr>
<tr><td><code>-1</code></td>
<td>son par&ccedil;a</td></tr>
<tr><td><code>-2</code></td>
<td>sondan bir &ouml;nceki par&ccedil;a</td></tr>
<tr><td><code>2+</code></td>
<td>ikinci par&ccedil;a ve sonraki par&ccedil;aların hepsi</td></tr>
<tr><td><code>-2+</code></td>
<td>sondan bir &ouml;nceki par&ccedil;a ve daha &ouml;nceki par&ccedil;aların hepsi</td></tr>
<tr><td><code>1+</code> ve <code>-1+</code></td>
<td><code>0</code> ile aynı</td></tr>
</table>
<p><code>N</code> veya <code>M</code> par&ccedil;a sayısından b&uuml;y&uuml;kse d&ouml;n&uuml;ş&uuml;m
dizgesi sadece alt &ccedil;izgi karakterini i&ccedil;erir.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="examples">&Ouml;rnekler <a title="Permanent link" href="#examples" class="permalink">&para;</a></h2>
<p>Sunucu yapılandırma dosyanızda isme dayalı sanal konaklar i&ccedil;in
aşağıdaki y&ouml;nergeler kullanılıyor olsun:</p>
<div class="example"><p><code>
UseCanonicalName Off<br>
VirtualDocumentRoot /usr/local/apache/sankonlar/%0
</code></p></div>
<p><code>http://example.com/dizin/dosya.html</code> i&ccedil;in yapılan bir istek
<code>/usr/local/apache/sankonlar/example.com/dizin/dosya.html</code>
dosyası ile yerine getirilecektir.</p>
<p>&Ccedil;ok b&uuml;y&uuml;k sayıda sanal konak i&ccedil;in <code>sankonlar</code> dizininin
boyutlarını k&uuml;&ccedil;&uuml;k tutmak amacıyla dosyalar d&uuml;zenlenebilir. Bunu
yapılandırma dosyanızda ş&ouml;yle yapabilirsiniz:</p>
<div class="example"><p><code>
UseCanonicalName Off<br>
VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.1/%2.2/%2.3/%2
</code></p></div>
<p><code>http://falan.filan.example.com/dizin/dosya.html</code> i&ccedil;in
yapılan bir istek
<code>/usr/local/apache/sankonlar/example.com/f/i/l/filan/dizin/dosya.html
</code> ile yerine getirilecektir.</p>
<p>Bu sefer de par&ccedil;aları ismin sonundan toplayalım: </p>
<div class="example"><p><code>
VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.-1/%2.-2/%2.-3/%2
</code></p></div>
<p>Bu durumda istek
<code>/usr/local/apache/sankonlar/example.com/n/a/l/filan/dizin/dosya.html
</code>ile karşılanırdı.</p>
<p>Ş&ouml;yle bir şey de yapabilirsiniz:</p>
<div class="example"><p><code>
VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.1/%2.2/%2.3/%2.4+
</code></p></div>
<p>Bu &ouml;rnek i&ccedil;in istek
<code>/usr/local/apache/sankonlar/example.com/f/i/l/an/dizin/dosya.html
</code> dosyasından karşılanırdı.</p>
<p>IP'ye dayalı sanal konaklar i&ccedil;in yapılandırma dosyanızda şu satırlar
olabilirdi:</p>
<div class="example"><p><code>
UseCanonicalName DNS<br>
VirtualDocumentRootIP
/usr/local/apache/sankonlar/%1/%2/%3/%4/belgeler<br>
VirtualScriptAliasIP /usr/local/apache/sankonlar/%1/%2/%3/%4/cgi-bin
</code></p></div>
<p><code>http://falan.filan.example.com/dizin/dosya.html</code> i&ccedil;in
yapılan bir istek eğer <code>falan.filan.example.com</code>'un IP adresi
10.20.30.40 olsaydı,
<code>/usr/local/apache/sankonlar/10/20/30/40/belgeler/dizin/dosya.html
</code> dosyası ile karşılanırdı.
<code>http://falan.filan.example.com/cgi-bin/betik.pl</code> i&ccedil;in yapılan
bir istek ise
<code>/usr/local/apache/sankonlar/10/20/30/40/cgi-bin/betik.pl</code>
betiğinin &ccedil;alıştırılması ile sağlanırdı.</p>
<p>Bir <code>VirtualDocumentRoot</code> y&ouml;nergesinin <code>.</code>
karakterini i&ccedil;ermesini isterseniz, bir bi&ccedil;em belirteci ile karışıklığa
sebep olmaksızın bunu ş&ouml;yle sağlayabilirsiniz:</p>
<div class="example"><p><code>
VirtualDocumentRoot /usr/local/apache/sankonlar/%2.0.%3.0
</code></p></div>
<p>Bu durumda <code>http://falan.filan.example.com/dizin/dosya.html</code>
i&ccedil;in yapılan bir istek
<code>/usr/local/apache/sankonlar/filan.mesela/dizin/dosya.html</code>
dosyası ile karşılanacaktır.</p>
<p><code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> y&ouml;nergesinin
<code>%V</code> ve <code>%A</code> <a href="mod_log_config.html#formats">bi&ccedil;em belirte&ccedil;leri</a> bu mod&uuml;lle
birlikte kullanıldığında &ccedil;ok yararlı olurlar.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="virtualdocumentroot"><span id="VirtualDocumentRoot">VirtualDocumentRoot</span> Y&ouml;nergesi <a title="Permanent link" href="#virtualdocumentroot" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">A&ccedil;ıklama:</a></th><td>Bir sanal konağın belge k&ouml;k dizinini devingen olarak yapılandırır.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">S&ouml;zdizimi:</a></th><td><code>VirtualDocumentRoot <em>hesaplanan-dizin</em>|none</code></td></tr>
<tr><th><a href="directive-dict.html#Default">&Ouml;ntanımlı:</a></th><td><code>VirtualDocumentRoot none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
<tr><th><a href="directive-dict.html#Module">Mod&uuml;l:</a></th><td>mod_vhost_alias</td></tr>
</table>
<p><code class="directive">VirtualDocumentRoot</code> y&ouml;nergesi sunucu ismine g&ouml;re
belgelerin bulunacağı yeri Apache HTTP Sunucusunun saptamasını sağlar.
<code><em>hesaplanan-dizin</em></code>'in d&ouml;n&uuml;ş&uuml;m sonucu <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> y&ouml;nergesinin değeriymiş gibi
belge ağacının k&ouml;k dizini olarak kullanılır.
<code><em>hesaplanan-dizin</em></code> yerine <code>none</code>
belirtilmişse <code class="directive">VirtualDocumentRoot</code> iptal edilmiş
olur. Bu y&ouml;nerge <code class="directive"><a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></code> y&ouml;nergesinin kullanıldığı bağlamda
yer alamaz.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="virtualdocumentrootip"><span id="VirtualDocumentRootIP">VirtualDocumentRootIP</span> Y&ouml;nergesi <a title="Permanent link" href="#virtualdocumentrootip" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">A&ccedil;ıklama:</a></th><td>Bir sanal konağın belge k&ouml;k dizinini devingen olarak yapılandırır.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">S&ouml;zdizimi:</a></th><td><code>VirtualDocumentRootIP <em>hesaplanan-dizin</em>|none</code></td></tr>
<tr><th><a href="directive-dict.html#Default">&Ouml;ntanımlı:</a></th><td><code>VirtualDocumentRootIP none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
<tr><th><a href="directive-dict.html#Module">Mod&uuml;l:</a></th><td>mod_vhost_alias</td></tr>
</table>
<p><code class="directive">VirtualDocumentRootIP</code> y&ouml;nergesi, dizinin
saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP
adresini kullanması dışında <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> gibidir.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="virtualscriptalias"><span id="VirtualScriptAlias">VirtualScriptAlias</span> Y&ouml;nergesi <a title="Permanent link" href="#virtualscriptalias" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">A&ccedil;ıklama:</a></th><td>Bir sanal konağın CGI dizinini devingen olarak yapılandırır.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">S&ouml;zdizimi:</a></th><td><code>VirtualScriptAlias <em>hesaplanan-dizin</em>|none</code></td></tr>
<tr><th><a href="directive-dict.html#Default">&Ouml;ntanımlı:</a></th><td><code>VirtualScriptAlias none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
<tr><th><a href="directive-dict.html#Module">Mod&uuml;l:</a></th><td>mod_vhost_alias</td></tr>
</table>
<p><code class="directive">VirtualScriptAlias</code> y&ouml;nergesi, CGI betiklerinin
bulunacağı yeri Apache httpd'nin saptamasını sağlamak bakımından
<code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code>
y&ouml;nergesinin yaptığını yapar. <code>/cgi-bin/</code> ile başlayan
istekler i&ccedil;in ise <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
y&ouml;nergesinin yaptığını yapar.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="virtualscriptaliasip"><span id="VirtualScriptAliasIP">VirtualScriptAliasIP</span> Y&ouml;nergesi <a title="Permanent link" href="#virtualscriptaliasip" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">A&ccedil;ıklama:</a></th><td>Bir sanal konağın CGI dizinini devingen olarak yapılandırır.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">S&ouml;zdizimi:</a></th><td><code>VirtualScriptAliasIP <em>hesaplanan-dizin</em>|none</code></td></tr>
<tr><th><a href="directive-dict.html#Default">&Ouml;ntanımlı:</a></th><td><code>VirtualScriptAliasIP none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
<tr><th><a href="directive-dict.html#Module">Mod&uuml;l:</a></th><td>mod_vhost_alias</td></tr>
</table>
<p><code class="directive">VirtualScriptAliasIP</code> y&ouml;nergesi, dizinin
saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP
adresini kullanması dışında <code class="directive"><a href="#virtualscriptalias">VirtualScriptAlias</a></code> gibidir.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="../en/mod/mod_vhost_alias.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_vhost_alias.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../tr/mod/mod_vhost_alias.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> adı altında lisanslıdır.</p>
<p class="menu"><a href="../mod/">Mod&uuml;ller</a> | <a href="../mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
document.body.appendChild(qv);
var qvBtn = document.createElement('button');
qvBtn.className = 'qv-toggle';
qvBtn.setAttribute('aria-label', 'Toggle page navigation');
qvBtn.innerHTML = '&#9776;';
document.body.appendChild(qvBtn);
qvBtn.addEventListener('click', function() {
var isOpen = qv.classList.toggle('open');
if (isOpen) {
qv.style.top = window.scrollY + 10 + 'px';
}
});
window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>