Apache HTTP Sunucusu 4xx veya 5xx HTTP durum kodları ile ilgili olaylarda soysal hata yanıtları üretse de bu yanıtlar site kullanıcılarına aşırı sade, bilgi vermez ve hatta korkutucu gelebilir. Daha dostça yazılmış, İngilizce değil de kendi dilinizde ve belki sayfalarınızın yerleşimine uygun daha hoş satırlarda özel hata yanıtları üretmek isteyebilirsiniz.
Kişiselleştirilmiş hata yanıtları, bir hata durumuna göre tasarlanmış herhangi bir HTTP durum kodu (yani 4xx ve 5xx kodlarından biri) için tanımlanabilir.
Ek olarak bir değer kümesi de sağlanmıştır. Böylece hata belgeleri, Sunucu taraflı İçerik Yerleştirme kullanılarak bu değişkenlerin değerlerine göre özelleştirilebilir. İsterseniz bunun yerine bir CGI programı veya devingen bir eylemci (PHP, mod_perl, vs.) kullanarak da bu değişkenlerin değerlerine göre hata sayfalarınızı üretebilirsiniz.
Kişiselleştirilmiş hata belgeleri FileInfo
atanarak .htaccess
dosyalarında da kullanılabilir.
ErrorDocument
yönergesinin sözdizimi:
eylem şunlardan biri olabilir:
Yerel bir adrese yönlendirme yapılırken ek ortam değişkenleri de atanarak yanıt daha da özelleştirilebilir. Bunlar harici URL'lere gönderilmez.
Hata durumunu açıklayacak veya hata günlüğüne daha açıkça kaydedilebilecek bazı bilgilerin aktarılması koşuluyla, başka bir adrese yönlendirme kullanışlı olabilir
Hata yönlendirmesi yapılırken bunu sağlamak için ek ortam değişkenleri tanımlanır. Bu değişkenlerin isimleri, özgün istekle sağlanan başlık isimlerinin önüne 'REDIRECT_' dizgesi getirilerek üretilir. Böylece özgün istek bağlamından hata belgesi üretilebilir.
Örneğin, aşağıdaki gibi, daha yararlı olacak ek ortam değişkenleri alabilirsiniz.
REDIRECT_
ortam değişkenleri, yönlendirme öncesi varolan
ortam değişkenlerinden üretilir. Bunlar önlerine REDIRECT_
getirilerek yeniden isimlendirilir. Örneğin,
HTTP_USER_AGENT
değişkeni
REDIRECT_HTTP_USER_AGENT
haline gelir.
REDIRECT_URL
, REDIRECT_STATUS
ve
REDIRECT_QUERY_STRING
mutlaka atanır. Diğer başlıklarla
ilgili olanlar ise hata durumu öncesinde mevcut oldukları takdirde
üretilirler.
Eğer http:
ile başlayan herşey harici yönlendirme sayılır).
Hata yanıtınızı üretmek için sunucu taraflı içerik yerleştirme, bir CGI betiği veya başka bir eylemciyi devingen eylemci olarak kullanıyorsanız, bu yanıtı özelleştirmek için bu kullanıma özel üretilmiş ortam değişkenlerini kullanmak isteyebilirsiniz.
Status:
" başlık alanına yer verilmelidir. Örneğin, bir
Perl betiği şunları içerebilirdi:
Eğer betik, 404 Not Found
gibi, belli bir hata
durumunu ele almaya adanmışsa duruma özel kod ve hata metni
kullanılabilir.
Eğer yanıt, (istemci taraflı yönlendirme yapılırken) bir
Location:
başlığı da içeriyorsa betiğin çıktıya uygun bir
Status:
başlığı (302 Found
) eklemesinin
gerekli oluşuna dikkat ediniz. Aksi takdirde, Location:
başlığı etkisiz olabilir.
Apache HTTP Sunucusunun kurulumunda, 16 dile çevrilmiş özel hata
iletileri belgeleri içeren bir dizin bulunmaktadır. Ayrıca,
conf/extra
yaplandırma dizininde bu özelliği etkin kılmak
için yapılandırmaya dahil edilebilecek bir yapılandırma dosyası
vardır.
Sunucu yapılandırma dosyanızda şöyle satırlar görebilirsiniz:
Bu Include
satırını açıklama olmaktan çıkarırsanız
bu özelliği etkinleştirmiş olursunuz. Böylece, istemcinin tarayıcısında
belirtilmiş dil tercihine uygun dil uzlaşımlı hata iletileri
sağlanır.
Ek olarak, bu belgeler çeşitli REDIRECT_
değişkenleri
içerir. Böylece, son kullanıcıya neler olduğu ve şimdi ne yapması
beklendiği hakkında ek bilgiler sağlanabilir.
Bu belgeleri istediğiniz kadar özelleştirebilir, kullanıcıya siteniz hakkında ve orada bulabilecekleri şeylere dair faydalı bilgiler de sağlayabilirsiniz.
Bu özelliği kullanmak için