‘404’ olarak etiketlenmiş yazılar

Apache web sunucusunda PHP kullanarak kişiselleştirilmiş hata sayfası oluşturma

Cumartesi, 29 Ağustos 2009

Başlık uzun, yöntem kısa…

Hepimiz biliyoruz, web sunucudan olmayan bir sayfa istendiğinde “genelde” “HTTP 404″ kodlu sayfa bulunamadı hatası alıyoruz. Biz kendi web sunucumuzda ufak bir PHP betiği yardımıyla, olmayan sayfa istendiğinde web sunucumuzun istemcilere “HTTP 200″ kodu kişiselleştirilmiş hata sayfaları (Custom error page) göndermesini sağlayabiliriz.

Bunun için önce Apache web sunucumuzun httpd.conf yapılandırma dosyasına aşağıdaki gibi bir satır ekleyerek, “HTTP 404″ kodlu hata durumlarında bizim php betiğimizi çağırmasını sağlıyoruz:

# Ozellestirilmis Hata Sayfasi
ErrorDocument 404 /error-404.php

Şimdi de basit PHP betiğimizi DocumentRoot altında error-404.php olarak kaydedelim:

<?php
header("HTTP/1.1 200 OK");
echo $_SERVER['REQUEST_URI']. " Aradiginiz sayfa bulunamadi.";
?>

Bu küçük PHP betiği sayesinde web sunucu üzerinde olmayan bir URI istendiğinde de HTTP 200 kodlu bir sayfa döndürmüş olursunuz. Bu sayede nikto vb. tarama araçlarını yanıltmak da mümkün olacaktır.

Yapılan bir HTTP isteği ve yanıtı şöyle olacaktır:

$ telnet web_sunucu 80
Trying web_sunucu…
Connected to web_sunucu.
Escape character is ‘^]’.
GET /olmayan_sayfa HTTP/1.1
HOST: a

HTTP/1.1 200 OK
Date: Sat, 29 Aug 2009 14:12:45 GMT
Server: Apache
X-Powered-By: PHP
Vary: Accept-Encoding
Content-Length: 43
Content-Type: text/html

/olmayan_sayfa Aradiginiz sayfa bulunamadi.