Apache, bazı sorunlara ve hatalara karşılık vereceği yanıtların yapılandırabilmesini mümkün kılan ek bir işlevselliğe sahiptir.
Site yöneticisi tarafından kişiselleştirilebilen bu tür yanıtlar, sunucu belli hatalar veya sorunlarla karşılaştığında etkin kılınmak üzere tanımlanabilir.
Bir betik bir hata nedeniyle bir "500 Server Error" yanıtının verilmesine sebep olursa bu yanıt yerine başka bir adrese yönlendirilerek (dahili veya harici) veya doğrudan daha dostça bir metin sunulabilir.
NCSA httpd 1.3, çoğunlukla kullanıcıya anlamsız gelen ve sebebiyle kavramsal bir bağ kurulamayan günlük kayıtları üreten, can sıkıcı bazı hata/sorun yanıtları döndürürdü.
Sunucudan NCSA kodlu iletiler yerine
istenebilir. Başka bir adrese yönlendirme, hata veya sorunu daha iyi açıklamakta kullanılabilecek bazı bilgilerin aktarılması şartıyla oldukça kullanışlı olabilir.
Apache, buna olanak vermek için CGI benzeri yeni ortam değişkenleri tanımlamıştır:
REDIRECT_
önekine dikkat edin.
Yeni adrese (hedefin bir CGI betiği veya SSI sayfası olduğu
kabulüyle) en azından REDIRECT_URL
ve
REDIRECT_QUERY_STRING
değişkenleri aktarılır. Diğer
değişkenler ise sadece hata veya sorunun öncesinde mevcut oldukları
takdirde aktarılacaklardır. Eğer harici yönlendirmeyi
http:
ile başlıyorsa
adres aynı sunucuya ait olsa bile bu bir harici yönlendirme olarak
ele alınır.)
.htaccess
dosyalarında kullanılması sadece FileInfo
atanmışsa mümkündür.
Bazı örnekler:
Burada sözdizimi şöyledir:
eylem
şunlardan biri olabilir:
Apache’nin yönlendirme ile ilgili davranışı bir CGI betiği veya SSI sayfası sözkonusu olduğunda bazı ek ortam değişkenleri ile yapılandırılabilir.
Yönlendirme yapılan betikte standart CGI değişkenleri kullanılırdı. Yönlendirmenin kaynağı ile ilgili bir belirtiye rastlanmazdı.
Yönlendirme yapılan betikte kullanılmak üzere özel olarak
tanımlanmış ortam değişkenleri vardır. Her değişkenin ismi
REDIRECT_
ile başlar. REDIRECT_
ortam
değişkenleri, yönlendirme öncesinde tanımlanmış CGI ortam
değişkenlerinin isimlerinin başına REDIRECT_
öneki
getirilerek oluşturulur. Yani, HTTP_USER_AGENT
değişkeni
REDIRECT_HTTP_USER_AGENT
haline gelir. Bunlara ek
olarak, betiğe olayın izini sürmekte yardımcı olması için
REDIRECT_URL
ve REDIRECT_STATUS
değişkenleri tanımlanmıştır. Erişim günlüğüne özgün adresle birlikte
yönlendirme adresi de kaydedilir.
Eğer Status:
" başlık alanına yer verilmesi önerilir.
Ö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
gibi)
eklemesinin gerekli oluşuna dikkat ediniz. Aksi takdirde,
Location:
başlığı etkisiz olabilir.