1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
4 <!-- English Revision: 788930:922267 (outdated) -->
5 <!-- =====================================================
6 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
7 Reviewed by: Orhan Berent <berent belgeler.org>
8 ========================================================== -->
11 Licensed to the Apache Software Foundation (ASF) under one or more
12 contributor license agreements. See the NOTICE file distributed with
13 this work for additional information regarding copyright ownership.
14 The ASF licenses this file to You under the Apache License, Version 2.0
15 (the "License"); you may not use this file except in compliance with
16 the License. You may obtain a copy of the License at
18 http://www.apache.org/licenses/LICENSE-2.0
20 Unless required by applicable law or agreed to in writing, software
21 distributed under the License is distributed on an "AS IS" BASIS,
22 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 See the License for the specific language governing permissions and
24 limitations under the License.
27 <manualpage metafile="custom-error.xml.meta">
29 <title>Hata Yanıtlarının Kişiselleştirilmesi</title>
32 <p>Apache, bazı sorunlara ve hatalara karşılık vereceği yanıtların
33 yapılandırabilmesini mümkün kılan ek bir işlevselliğe sahiptir.</p>
35 <p>Site yöneticisi tarafından kişiselleştirilebilen bu tür yanıtlar,
36 sunucu belli hatalar veya sorunlarla karşılaştığında etkin kılınmak
37 üzere tanımlanabilir.</p>
39 <p>Bir betik bir hata nedeniyle bir "500 Server Error" yanıtının
40 verilmesine sebep olursa bu yanıt yerine başka bir adrese
41 yönlendirilerek (dahili veya harici) veya doğrudan daha dostça bir
42 metin sunulabilir.</p>
45 <section id="behavior">
46 <title>Davranış</title>
49 <title>Eski Davranış</title>
51 <p>NCSA httpd 1.3, çoğunlukla kullanıcıya anlamsız gelen ve sebebiyle
52 kavramsal bir bağ kurulamayan günlük kayıtları üreten, can sıkıcı
53 bazı hata/sorun yanıtları döndürürdü.</p>
57 <title>Yeni Davranış</title>
59 <p>Sunucudan NCSA kodlu iletiler yerine</p>
62 <li>başka bir metin göstermesi,</li>
64 <li>istemciyi başka bir yerel adrese yönlendirmesi veya</li>
66 <li>istemciyi bir harici adrese yönlendirmesi</li>
69 <p>istenebilir. Başka bir adrese yönlendirme, hata veya sorunu daha iyi
70 açıklamakta kullanılabilecek bazı bilgilerin aktarılması şartıyla
71 oldukça kullanışlı olabilir.</p>
73 <p>Apache, buna olanak vermek için CGI benzeri yeni ortam değişkenleri
77 REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap,
79 REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05
81 REDIRECT_PATH=.:/bin:/usr/local/bin:/etc<br />
82 REDIRECT_QUERY_STRING=<br />
83 REDIRECT_REMOTE_ADDR=121.345.78.123<br />
84 REDIRECT_REMOTE_HOST=ooh.ahhh.dom<br />
85 REDIRECT_SERVER_NAME=batti.balik.yan.gider.edu<br />
86 REDIRECT_SERVER_PORT=80<br />
87 REDIRECT_SERVER_SOFTWARE=Apache/0.8.15<br />
88 REDIRECT_URL=/cgi-bin/hatalar.pl
91 <p><code>REDIRECT_</code> önekine dikkat edin.</p>
93 <p>Yeni adrese (hedefin bir CGI betiği veya SSI sayfası olduğu
94 kabulüyle) en azından <code>REDIRECT_URL</code> ve
95 <code>REDIRECT_QUERY_STRING</code> değişkenleri aktarılır. Diğer
96 değişkenler ise sadece hata veya sorunun öncesinde mevcut oldukları
97 takdirde aktarılacaklardır. Eğer <em>harici</em> yönlendirmeyi
98 <directive module="core">ErrorDocument</directive> yönergesi
99 üzerinden yapıyorsanız bunlara <strong>None</strong> değeri
100 atanacaktır. (Yönlendirme adresi <code>http:</code> ile başlıyorsa
101 adres aynı sunucuya ait olsa bile bu bir harici yönlendirme olarak
106 <section id="configuration">
107 <title>Yapılandırma</title>
109 <p><directive module="core">ErrorDocument</directive> yönergesinin
110 <code>.htaccess</code> dosyalarında kullanılması sadece <directive
111 module="core">AllowOverride</directive> yönergesine <code>FileInfo</code>
112 atanmışsa mümkündür.</p>
114 <p>Bazı örnekler:</p>
117 ErrorDocument 500 /cgi-bin/hata-kurtarma <br />
118 ErrorDocument 500 "Pardon, galiba bizim betik hata verdi." <br />
119 ErrorDocument 500 http://xxx/ <br />
120 ErrorDocument 404 /ozuru_kabahatinden_buyuk/yok.html <br />
121 ErrorDocument 401 /Uyeler/NASIL_uye_olunur.html
124 <p>Burada sözdizimi şöyledir:</p>
127 ErrorDocument <3-rakamlı-kod> <eylem>
130 <p><code><em>eylem</em></code> şunlardan biri olabilir:</p>
133 <li>Gösterilecek metin. Metin tırnak (") içine alınmalıdır.</li>
135 <li>Yönlendirmenin yapılacağı harici adres.</li>
137 <li>Yönlendirmenin yapılacağı dahili adres.</li>
141 <section id="custom">
142 <title>Özel Hata Yanıtları ve Yönlendirme</title>
144 <p>Apache’nin yönlendirme ile ilgili davranışı bir CGI betiği veya SSI
145 sayfası sözkonusu olduğunda bazı ek ortam değişkenleri ile
146 yapılandırılabilir.</p>
149 <title>Eski Davranış</title>
151 <p>Yönlendirme yapılan betikte standart CGI değişkenleri kullanılırdı.
152 Yönlendirmenin kaynağı ile ilgili bir belirtiye rastlanmazdı.</p>
156 <title>Yeni Davranış</title>
158 <p>Yönlendirme yapılan betikte kullanılmak üzere özel olarak
159 tanımlanmış ortam değişkenleri vardır. Her değişkenin ismi
160 <code>REDIRECT_</code> ile başlar. <code>REDIRECT_</code> ortam
161 değişkenleri, yönlendirme öncesinde tanımlanmış CGI ortam
162 değişkenlerinin isimlerinin başına <code>REDIRECT_</code> öneki
163 getirilerek oluşturulur. Yani, <code>HTTP_USER_AGENT</code> değişkeni
164 <code>REDIRECT_HTTP_USER_AGENT</code> haline gelir. Bunlara ek
165 olarak, betiğe olayın izini sürmekte yardımcı olması için
166 <code>REDIRECT_URL</code> ve <code>REDIRECT_STATUS</code>
167 değişkenleri tanımlanmıştır. Erişim günlüğüne özgün adresle birlikte
168 yönlendirme adresi de kaydedilir.</p>
170 <p>Eğer <directive module="core">ErrorDocument</directive> yönergesi
171 bir yerel CGI betiğine yönlendirme belirtiyorsa, hatanın kaynağı
172 hakkında istemciye bilgi vermek amacıyla betiğin çıktısında bir
173 "<code>Status:</code>" başlık alanına yer verilmesi önerilir.
174 Örneğin, bir Perl betiği şunları içerebilirdi:</p>
178 print "Content-type: text/html; charset=UTF-8\n"; <br />
179 printf "Status: %s durumu saptandı.\n", $ENV{"REDIRECT_STATUS"}; <br />
183 <p>Eğer betik, <code>404 Not Found</code> gibi, belli bir
184 hata durumunu ele almaya adanmışsa duruma özel kod ve hata metni
187 <p>Eğer yanıt, (istemci taraflı yönlendirme yapılırken) bir
188 <code>Location:</code> başlığı da içeriyorsa betiğin çıktıya uygun
189 bir <code>Status:</code> başlığı (<code>302 Found</code> gibi)
190 eklemesinin <em>gerekli</em> oluşuna dikkat ediniz. Aksi takdirde,
191 <code>Location:</code> başlığı etkisiz olabilir.</p>