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: 1361160 -->
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>
33 <p>Apache HTTP Sunucusu 4xx veya 5xx HTTP durum kodları ile ilgili
34 olaylarda soysal hata yanıtları üretse de bu yanıtlar site
35 kullanıcılarına aşırı sade, bilgi vermez ve hatta korkutucu gelebilir.
36 Daha dostça yazılmış, İngilizce değil de kendi dilinizde ve belki
37 sayfalarınızın yerleşimine uygun daha hoş satırlarda özel hata yanıtları
38 üretmek isteyebilirsiniz.</p>
40 <p>Kişiselleştirilmiş hata yanıtları, bir hata durumuna göre tasarlanmış
41 herhangi bir HTTP durum kodu (yani 4xx ve 5xx kodlarından biri) için
44 <p>Ek olarak bir değer kümesi de sağlanmıştır. Böylece hata belgeleri, <a
45 href="howto/ssi.html">Sunucu taraflı İçerik Yerleştirme</a> kullanılarak
46 bu değişkenlerin değerlerine göre özelleştirilebilir. İsterseniz bunun
47 yerine bir CGI programı veya devingen bir eylemci (PHP, mod_perl, vs.)
48 kullanarak da bu değişkenlerin değerlerine göre hata sayfalarınızı
53 <section id="configuration"><title>Yapılandırma</title>
55 <p>Kişiselleştirilmiş hata belgeleri <directive module="core"
56 >ErrorDocument</directive> yönergesi kullanılarak yapılandırılabilir. Bu
57 yönerge küresel bağlamda olabileceği gibi sanal konak ve dizin
58 bağlamlarında da kullanılabilir. <directive
59 module="core">AllowOverride</directive> yönergesine <code>FileInfo</code>
60 atanarak <code>.htaccess</code> dosyalarında da kullanılabilir.</p>
62 <highlight language="config">
63 ErrorDocument 500 "Pardon, galiba bizim betik hata verdi."
64 ErrorDocument 500 /cgi-bin/hata-kurtarma
65 ErrorDocument 500 http://error.example.com/server_error.html
66 ErrorDocument 404 /ozuru_kabahatinden_buyuk/yok.html
67 ErrorDocument 401 /Uyeler/NASIL_uye_olunur.html
70 <p><code>ErrorDocument</code> yönergesinin sözdizimi:</p>
72 <highlight language="config">
73 ErrorDocument <3-rakamlı-kod> <eylem>
76 <p><var>eylem</var> şunlardan biri olabilir:</p>
79 <li>Yönlendirmenin yapılacağı dahili adres (<var>eylem</var> bir "/" ile
81 <li>Yönlendirmenin yapılacağı harici adres (<var>eylem</var> geçerli bir
83 <li>Gösterilecek metin (yukardakilerin hiçbiri yoksa). Birden fazla
84 sözcük içeriyorsa tırnak (") içine alınmalıdır.</li>
87 <p>Yerel bir adrese yönlendirme yapılırken ek ortam değişkenleri de
88 atanarak yanıt daha da özelleştirilebilir. Bunlar harici URL'lere
93 <section id="variables"><title>Kullanılabilen Değişkenler</title>
95 <p>Hata durumunu açıklayacak veya hata günlüğüne daha açıkça
96 kaydedilebilecek bazı bilgilerin aktarılması koşuluyla, başka bir
97 adrese yönlendirme kullanışlı olabilir</p>
99 <p>Hata yönlendirmesi yapılırken bunu sağlamak için ek ortam değişkenleri
100 tanımlanır. Bu değişkenlerin isimleri, özgün istekle sağlanan
101 başlık isimlerinin önüne 'REDIRECT_' dizgesi getirilerek üretilir.
102 Böylece özgün istek bağlamından hata belgesi üretilebilir.</p>
104 <p>Örneğin, aşağıdaki gibi, daha yararlı olacak ek ortam değişkenleri
108 REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/jpeg, image/png<br />
109 REDIRECT_HTTP_USER_AGENT=Mozilla/5.0 Fedora/3.5.8-1.fc12 Firefox/3.5.8<br />
110 REDIRECT_PATH=.:/bin:/usr/local/bin:/sbin<br />
111 REDIRECT_QUERY_STRING=<br />
112 REDIRECT_REMOTE_ADDR=121.345.78.123<br />
113 REDIRECT_REMOTE_HOST=client.example.com<br />
114 REDIRECT_SERVER_NAME=www.example.edu<br />
115 REDIRECT_SERVER_PORT=80<br />
116 REDIRECT_SERVER_SOFTWARE=Apache/2.2.15<br />
117 REDIRECT_URL=/cgi-bin/buggy.pl
120 <p><code>REDIRECT_</code> ortam değişkenleri, yönlendirme öncesi varolan
121 ortam değişkenlerinden üretilir. Bunlar önlerine <code>REDIRECT_</code>
122 getirilerek yeniden isimlendirilir. Örneğin,
123 <code>HTTP_USER_AGENT</code> değişkeni
124 <code>REDIRECT_HTTP_USER_AGENT</code> haline gelir.</p>
126 <p><code>REDIRECT_URL</code>, <code>REDIRECT_STATUS</code> ve
127 <code>REDIRECT_QUERY_STRING</code> mutlaka atanır. Diğer başlıklarla
128 ilgili olanlar ise hata durumu öncesinde mevcut oldukları takdirde
131 <p>Eğer <directive module="core">ErrorDocument</directive> hedefi bir
132 <em>harici</em> yönlendirme ise bunların <strong>hiçbiri</strong>
133 üretilmez (sunucunun bulunduğu konağı hedeflese bile <code>http:</code>
134 ile başlayan herşey harici yönlendirme sayılır).</p>
137 <section id="custom"><title>Özel Hata Yanıtları</title>
139 <p>Hata yanıtınızı üretmek için sunucu taraflı içerik yerleştirme, bir
140 CGI betiği veya başka bir eylemciyi devingen eylemci olarak
141 kullanıyorsanız, bu yanıtı özelleştirmek için bu kullanıma özel
142 üretilmiş ortam değişkenlerini kullanmak isteyebilirsiniz.</p>
144 <p><directive module="core">ErrorDocument</directive> yönergesi bir CGI
145 betiğine bir yerel yönlendirme belirtiyorsa, hatanın kaynağı hakkında
146 istemciye bilgi vermek amacıyla betiğin çıktısında bir
147 "<code>Status:</code>" başlık alanına yer verilmelidir. Örneğin, bir
148 Perl betiği şunları içerebilirdi:</p>
150 <highlight language="perl">
152 print "Content-type: text/html\n";
153 printf "Status: %s durumu saptandı.\n", $ENV{"REDIRECT_STATUS"};
157 <p>Eğer betik, <code>404 Not Found</code> gibi, belli bir hata
158 durumunu ele almaya adanmışsa duruma özel kod ve hata metni
161 <p>Eğer yanıt, (istemci taraflı yönlendirme yapılırken) bir
162 <code>Location:</code> başlığı da içeriyorsa betiğin çıktıya uygun bir
163 <code>Status:</code> başlığı (<code>302 Found</code>) eklemesinin
164 gerekli oluşuna dikkat ediniz. Aksi takdirde, <code>Location:</code>
165 başlığı etkisiz olabilir.</p>
169 <section id="multi-lang"><title>Çok Dilli Özel Hata Belgeleri</title>
171 <p>Apache HTTP Sunucusunun kurulumunda, 16 dile çevrilmiş özel hata
172 iletileri belgeleri içeren bir dizin bulunmaktadır. Ayrıca,
173 <code>conf/extra</code> yaplandırma dizininde bu özelliği etkin kılmak
174 için yapılandırmaya dahil edilebilecek bir yapılandırma dosyası
177 <p>Sunucu yapılandırma dosyanızda şöyle satırlar görebilirsiniz:</p>
179 <highlight language="config">
180 # Multi-language error messages
181 #Include conf/extra/httpd-multilang-errordoc.conf
184 <p>Bu <code>Include</code> satırını açıklama olmaktan çıkarırsanız
185 bu özelliği etkinleştirmiş olursunuz. Böylece, istemcinin tarayıcısında
186 belirtilmiş dil tercihine uygun dil uzlaşımlı hata iletileri
189 <p>Ek olarak, bu belgeler çeşitli <code>REDIRECT_</code> değişkenleri
190 içerir. Böylece, son kullanıcıya neler olduğu ve şimdi ne yapması
191 beklendiği hakkında ek bilgiler sağlanabilir.</p>
193 <p>Bu belgeleri istediğiniz kadar özelleştirebilir, kullanıcıya siteniz
194 hakkında ve orada bulabilecekleri şeylere dair faydalı bilgiler de
195 sağlayabilirsiniz.</p>
197 <p>Bu özelliği kullanmak için <module>mod_include</module> ve
198 <module>mod_negotiation</module> etkin kılınmalıdır.</p>