Web Hosting & cPanel

    cPanel Apache Handlers Nedir ve Ne İşe Yarar

    Belirli uzantıların Apache tarafından hangi işleyiciyle çalıştırılacağını tanımlamayı anlatan Apache Handlers rehberi.

    10 dk okuma Güncellendi: 10 Temmuz 2026

    Bir web sunucusu, ziyaretçiden gelen isteği aldığında en temelde tek bir karar verir: "Bu dosyayı olduğu gibi mi göndereyim, yoksa önce bir programa mı işletmeliyim?" Bir .jpg uzantılı resmi tarayıcıya doğrudan yollarken, bir .php dosyasını PHP yorumlayıcısından geçirip çıkan HTML'i yollaması bu kararın sonucudur. İşte Apache sunucusunda bu kararın kuralını yazdığınız yer "handler" yani işleyici mekanizmasıdır. cPanel'in Apache Handlers aracı da tam olarak bu kuralı, komut satırına hiç dokunmadan, arayüzden tanımlamanıza olanak tanır.

    Bu rehberde Apache handler kavramının ne olduğunu, MIME türlerinden farkını, cPanel aracının hangi durumlarda işe yaradığını ve klasik .shtml (Server Side Includes) örneğini adım adım anlatacağız. Baştan söyleyelim: Apache Handlers, çoğu kullanıcının hayatında bir kez bile açmayacağı ileri düzey bir araçtır. Yanlış bir uzantı-işleyici eşleşmesi tüm sitenizin beyaz ekran vermesine ya da kaynak kodunuzun ziyaretçiye ham metin olarak görünmesine yol açabilir. O yüzden ne yaptığınızı anlamadan buradaki kutulara değer girmemenizi baştan öneriyoruz.

    Apache Handler Kavramı Nedir#

    Apache dünyasında "handler", belirli bir dosyanın nasıl işleneceğini belirleyen dahili bir isimdir. Sunucu bir dosya isteği aldığında, o dosyanın uzantısına bakarak hangi handler'ın devreye gireceğini seçer. Handler bazen sunucunun kendi içine gömülüdür (default-handler, yani "olduğu gibi gönder"), bazen bir modül tarafından sağlanır (örneğin SSI için server-parsed), bazen de bir dış programa (CGI betiği gibi) yönlendirir.

    Bunu bir postane sıralama bandına benzetebilirsiniz. Gelen her paketin üzerinde bir etiket vardır; bant, etikete bakarak paketi doğru rafa yönlendirir. Dosya uzantısı işte bu etikettir, handler ise paketin gideceği raf. .html etiketli paket "düz gönder" rafına, .cgi etiketli paket "çalıştır ve çıktısını gönder" rafına gider. Apache Handlers aracı, bu etiket-raf eşleşmesine kendi kurallarınızı eklemenize izin verir.

    Önemli bir ayrım şudur: Handler, dosyanın tarayıcıya nasıl sunulacağını değil, sunucunun onu çalıştırırken ne yapacağını belirler. Örneğin server-parsed handler'ı bir dosyayı Apache'nin mod_include modülüne verir; modül dosyanın içindeki özel yönergeleri (<!--#include --> gibi) tarar, çalıştırır ve sonucu HTML'e yerleştirir. Yani handler, dosya ile onu işleyecek yazılım arasındaki köprüdür.

    MIME Türü ile Handler Arasındaki Fark#

    Yeni başlayanlar handler ile MIME türünü sık karıştırır, çünkü ikisi de "dosya uzantısı" ile ilgilidir ama işleri tamamen farklıdır. Farkı net görmek önemli, çünkü cPanel'de ayrı bir "MIME Types" aracı da vardır ve yanlış araca girmek sorun çözmez, sorun yaratır.

    MIME türü, sunucunun tarayıcıya "bu dosya şu türdedir" diye söylediği Content-Type başlığıyla ilgilidir. Örneğin .pdf için application/pdf MIME türü tanımlıysa, tarayıcı dosyayı PDF görüntüleyicisiyle açar. MIME türü çıktının etiketini belirler. Handler ise dosyanın sunucu tarafında işlenip işlenmeyeceğini belirler. Biri sunumla, diğeri işlemeyle ilgilidir.

    KavramNe belirlerNerede etkilicPanel aracı
    MIME TypeTarayıcıya gönderilen Content-Type başlığıİstemci (tarayıcı) tarafıMIME Types
    HandlerDosyanın sunucuda hangi programa işletileceğiSunucu tarafıApache Handlers

    Somut bir örnek: .md uzantılı Markdown dosyalarınızın tarayıcıda düz metin yerine indirilmesini istiyorsanız bu bir MIME türü ayarıdır. Ama .pl uzantılı bir Perl betiğinin çalıştırılıp çıktısının gösterilmesini istiyorsanız bu bir handler ayarıdır. İkisini karıştırmak, aracın neden "işe yaramadığını" anlamaya çalışırken saatlerinizi harcatabilir.

    cPanel Apache Handlers Aracını Açmak#

    Araca ulaşmak basittir. cPanel'e giriş yaptıktan sonra arama kutusuna "Apache Handlers" yazmanız yeterli; genellikle Advanced (Gelişmiş) bölümünde listelenir. Açtığınızda iki ana alan görürsünüz: üstte mevcut handler kayıtlarını gösteren bir tablo, altta yeni kayıt eklemek için iki kutu.

    • Handler kutusu: Devreye alınacak işleyicinin adını girersiniz (örneğin server-parsed).
    • Extension(s) kutusu: Bu handler'ın uygulanacağı dosya uzantısını girersiniz (örneğin .shtml ya da birden fazlaysa boşlukla ayırarak .shtml .shtm).

    Formu doldurup Add dediğinizde cPanel, bu kuralı sizin adınıza sitenin kök dizinindeki .htaccess dosyasına yazar. Yani aslında araç sihirli bir şey yapmaz; sizin yerinize doğru satırı üretir. Bu yüzden aracın ne ürettiğini bilmek, bir sorun çıktığında elle müdahale edebilmeniz için değerlidir.

    Aracın gösterdiği tabloda bazı "System Default Handlers" (sistem varsayılan işleyicileri) de görebilirsiniz. Bunlar barındırma sağlayıcısının sunucu genelinde tanımladığı, örneğin PHP'yi belirli bir sürümle çalıştıran kurallardır. Bunları buradan değiştiremezsiniz; sadece kendi eklediğiniz kayıtları düzenleyip silebilirsiniz. PHP sürümünü değiştirmek istiyorsanız doğru yer burası değil, cPanel'in Select PHP Version / MultiPHP Manager aracıdır; bu konuyu PHP sürüm yönetimi rehberimizde ayrıntısıyla ele aldık.

    .shtml İçin Server Side Includes Tanımlama#

    Apache Handlers'ın en klasik ve en meşru kullanım örneği, Server Side Includes (SSI) özelliğini .shtml dosyaları için etkinleştirmektir. SSI, statik HTML sayfalarınıza sunucu tarafında küçük dinamik parçalar eklemenizi sağlar: her sayfaya tek bir dosyadan başlık/altbilgi çekmek, güncel tarihi yazdırmak ya da bir dosyanın son değiştirilme zamanını göstermek gibi. WordPress veya modern bir çatı kullanmadan, düz HTML ile çalışan küçük siteler için hâlâ kullanışlıdır.

    Adım adım kurulum şöyle işler:

    1. cPanel'de Apache Handlers aracını açın.
    2. Handler kutusuna server-parsed yazın.
    3. Extension(s) kutusuna .shtml yazın.
    4. Add düğmesine tıklayın.

    Bu işlem sonunda cPanel, sitenizin kök .htaccess dosyasına aşağıdakine benzer satırları ekler:

    # cPanel'in Apache Handlers aracı tarafından üretilen kayıt
    AddHandler server-parsed .shtml
    Options +Includes
    

    AddHandler server-parsed .shtml satırı Apache'ye ".shtml uzantılı dosyaları mod_include ile tara" der. Options +Includes ise SSI yönergelerinin çalışmasına izin verir; bu satır olmadan handler tanımlı olsa bile içerik işlenmez. Kurulumu test etmek için basit bir deneme.shtml dosyası oluşturup içine şunu koyabilirsiniz:

    <html>
    <body>
      <h1>SSI Testi</h1>
      <p>Sunucu tarihi: <!--#echo var="DATE_LOCAL" --></p>
      <!--#include virtual="/altbilgi.html" -->
    </body>
    </html>
    

    Sayfayı tarayıcıda açtığınızda <!--#echo --> yerine gerçek tarihin, <!--#include --> yerine ise altbilgi.html dosyasının içeriğinin geldiğini görüyorsanız SSI doğru çalışıyor demektir. Eğer bu yönergeler tarayıcıda ham metin olarak (yani <!--#echo ... --> şeklinde) görünüyorsa, ya handler tanımı işlememiştir ya da Options +Includes eksiktir.

    .htaccess Perde Arkasında Ne Yapıyor#

    cPanel arayüzü işi kolaylaştırsa da, gerçekte olan biten .htaccess dosyasına yazılan birkaç satırdan ibarettir. Bu dosyayı File Manager üzerinden ya da FTP ile açıp elle de düzenleyebilirsiniz; hatta ileri kullanıcılar genellikle bunu tercih eder çünkü arayüzün desteklemediği daha esnek kurallar yazılabilir.

    En sık kullanılan iki yönerge AddHandler ve AddType'dır. Aralarındaki fark inceliklidir ama önemlidir:

    # AddHandler: uzantıyı bir işleyiciye bağlar (dosyayı işletir)
    AddHandler cgi-script .cgi .pl
    
    # AddType: uzantıya bir MIME türü + işleyici atar (hem tür hem işleme)
    AddType text/html .shtml
    

    Bazı sunucularda CGI betiklerinin çalışması için ayrıca Options +ExecCGI gerekir:

    Options +ExecCGI
    AddHandler cgi-script .cgi .pl
    

    Elle düzenleme yaparken en kritik nokta, .htaccess dosyasının dizin bazlı çalışmasıdır. Kök dizine koyduğunuz kural tüm alt klasörleri etkiler; belirli bir klasörde farklı davranış istiyorsanız o klasöre ayrı bir .htaccess koyabilirsiniz. Bir de sözdizimi konusunda acımasızdır: tek bir hatalı satır bütün siteyi 500 Internal Server Error ile çökertebilir. Bu yüzden değişiklik yapmadan önce mutlaka mevcut .htaccess dosyasının yedeğini alın. Düzenli yedekleme alışkanlığı yoksa, otomatik yedekleme çözümümüze göz atmanızı öneririz; bu tür deneyleri geri alınabilir kılar.

    Yaygın Kullanım Senaryoları ve Örnekler#

    Apache Handlers'ı gerçekten hangi durumlarda kullanırsınız? Gündelik site yönetiminde nadiren; ama bazı özel ihtiyaçlarda hayat kurtarır. En sık karşılaşılan senaryoları toparlayalım.

    Uzantısız veya farklı uzantılı dosyaların işlenmesi. Örneğin .html uzantılı sayfalarınızın içinde de PHP kodu çalıştırmak istiyorsunuz (eski bir siteyi taşırken sık rastlanır). Bunu bir handler ile sağlayabilirsiniz:

    # .html dosyalarını PHP olarak işle (dikkatli kullanın)
    AddHandler application/x-httpd-php .html .htm
    

    Bu tür bir kural, statik görünen dosyalarınızı gizliden dinamik hâle getirir; performans ve güvenlik açısından bedeli olduğunu unutmayın çünkü artık her .html isteği PHP yorumlayıcısını meşgul eder.

    Eski CGI/Perl betikleri. Yıllar önce yazılmış bir istatistik ya da form betiğini çalıştırmanız gerekiyorsa, .cgi veya .pl uzantısını cgi-script handler'ına bağlarsınız. Modern uygulamalarda bu neredeyse hiç görülmez; genellikle bir devralınan sistemi ayakta tutarken karşınıza çıkar.

    SSI ile ortak başlık/altbilgi. Yukarıda anlattığımız .shtml senaryosu; onlarca statik sayfada tek bir menüyü yönetmenin çatı kurmadan pratik yoludur.

    Şunu da net söyleyelim: bu ihtiyaçların çoğu bugün daha iyi araçlarla çözülüyor. Ortak başlık/altbilgi için bir CMS ya da statik site üreteci, dinamik içerik için doğrudan PHP dosyaları, yönlendirme için mod_rewrite kuralları çoğunlukla handler'lardan daha temiz sonuç verir. Apache'nin istek işleme mimarisini ve Nginx ile farklarını merak ediyorsanız Apache ve Nginx karşılaştırmamız konuya daha geniş bir çerçeveden bakıyor. Uzantıya göre işleme kararı sadece bir handler meselesi değil, sunucunun genel mimarisiyle de ilgilidir.

    Yanlış Yapılandırmanın Riskleri ve Sorun Giderme#

    Apache Handlers'ı "ileri düzey" diye nitelememizin sebebi, hata payının bir kelime işlemcide yazı hizalamak kadar masum olmamasıdır. Yanlış bir eşleşme, üç tipik felaketten birini doğurur.

    Birincisi, kaynak kodun sızması. Diyelim ki bir handler'ı yanlış tanımladınız ve .php dosyaları PHP yorumlayıcısına gitmek yerine düz metin olarak sunuldu. Bu durumda veritabanı şifreniz dahil tüm kaynak kodunuz ziyaretçiye ham metin olarak görünür. Bu ciddi bir güvenlik olayıdır. İkincisi, beyaz ekran veya 500 hatası. .htaccess içindeki bozuk bir satır tüm siteyi anında erişilemez kılar. Üçüncüsü, sonsuz işleme döngüleri veya performans çöküşü; yanlışlıkla statik varlıkları da işleyici zincirine soktuğunuzda sunucu gereksiz yere boğulur.

    Sorun giderirken izlenecek pratik yol haritası şudur:

    # 1) Mevcut .htaccess dosyasını yedekleyin
    cp .htaccess .htaccess.yedek
    
    # 2) Şüpheli handler satırının başına # koyarak devre dışı bırakın
    # (satırı silmek yerine yorum satırına çevirmek geri dönüşü kolaylaştırır)
    
    # 3) Site açılıyorsa sorun o satırdaydı; kuralı gözden geçirin
    
    # 4) Hata günlüğüne bakın (yol sunucuya göre değişir)
    tail -n 50 ~/logs/error_log
    

    Hata günlüğü (error_log) neredeyse her zaman gerçek sebebi söyler: eksik modül, tanımsız handler adı ya da izin verilmeyen bir Options yönergesi. Eğer paylaşımlı bir barındırma paketindeyseniz bazı Options yönergeleri güvenlik gereği kapalı olabilir; bu durumda handler doğru olsa bile çalışmaz ve sağlayıcınızla iletişime geçmeniz gerekir.

    Genel bir tavsiye: Apache Handlers'a dokunmadan önce kendinize "bunu gerçekten handler ile mi çözmem gerekiyor?" diye sorun. Cevabınız net bir "evet" değilse, büyük ihtimalle daha güvenli bir yolu vardır. Kendinizi bu tür sunucu düzeyi ayarlarla sık sık uğraşırken buluyorsanız, yönetilen sunucu yönetimi hizmetimiz bu yükü sizin yerinize taşıyabilir; sunucu tarafı yapılandırmayı bizim ekibimiz üstlenir, siz içeriğe odaklanırsınız.

    Sıkça Sorulan Sorular#

    Apache Handlers'ı her sitede kullanmam gerekir mi#

    Hayır, tam tersine çoğu site sahibi bu araca hiç dokunmaz. Modern web uygulamaları, blog sistemleri ve mağaza yazılımları ihtiyaç duydukları işleyicileri zaten sunucu düzeyinde hazır bulur. Apache Handlers yalnızca standart dışı bir uzantıyı işletmek ya da SSI gibi özel bir özelliği açmak gibi niş durumlarda gerekir; günlük yönetim akışınızın parçası olmamalıdır.

    server-parsed handler'ını ekledim ama SSI çalışmıyor, neden#

    En yaygın sebep Options +Includes yönergesinin eksik olması ya da barındırma sağlayıcınız tarafından kapatılmış olmasıdır. Handler tanımı Apache'ye dosyayı işlemesini söyler, ama Includes seçeneği açık değilse modül devreye girmez ve yönergeleriniz ham metin olarak görünür. Ayrıca dosyanızın uzantısının gerçekten .shtml olduğundan ve .htaccess dosyasının doğru dizinde bulunduğundan emin olun.

    cPanel'de eklediğim handler'ı geri almak istiyorum, ne yapmalıyım#

    En güvenli yol yine cPanel Apache Handlers aracıdır: eklediğiniz kaydın yanındaki silme seçeneğiyle kuralı kaldırabilirsiniz. Araç, ilgili satırı .htaccess dosyasından da temizler. Elle eklediyseniz File Manager üzerinden .htaccess dosyasını açıp ilgili AddHandler satırının başına # koyarak ya da satırı silerek geri alabilirsiniz; öncesinde dosyanın bir yedeğini almanızı öneririz.

    Handler ile MIME türü ayarını nereden ayırt edeceğim#

    Basit bir soru sorun: "Dosyanın tarayıcıda nasıl görüneceğini mi, yoksa sunucuda işlenip işlenmeyeceğini mi değiştirmek istiyorum?" Görünüm ve indirme davranışı MIME türüyle, sunucu tarafında çalıştırma ise handler ile ilgilidir. Bir PDF'in indirilmesi MIME işidir; bir betiğin çalıştırılıp çıktısının gösterilmesi handler işidir. Yanlış aracı seçmek en çok zaman kaybettiren hatadır.

    Yanlış handler eklersem sitem tamamen çöker mi#

    Evet, bu ihtimal gerçektir ve aracı ciddiye almanızın başlıca sebebidir. .htaccess içindeki hatalı bir satır sitenizi anında 500 Internal Server Error ile erişilemez kılabilir, hatta yanlış eşleşme kaynak kodunuzu açığa çıkarabilir. Bu yüzden değişiklikten önce mutlaka yedek alın, mümkünse önce bir test klasöründe deneyin ve emin değilseniz düzenli yedekleme ile geri dönüş kapısını açık tutun.

    PHP sürümünü Apache Handlers ile mi değiştiriyorum#

    Hayır. PHP sürümü seçimi ayrı bir konudur ve cPanel'in Select PHP Version ya da MultiPHP Manager aracıyla yapılır. Apache Handlers'ta gördüğünüz PHP ile ilgili sistem varsayılan kayıtları yalnızca bilgilendirme amaçlıdır ve buradan değiştirilmez. Sürüm yönetiminin doğru yolunu PHP sürüm yönetimi rehberimizde bulabilirsiniz.

    Kapanış#

    Apache Handlers, doğru ellerde küçük ama güçlü bir araçtır: bir uzantının sunucuda nasıl işleneceğini tek bir satırla değiştirebilir, SSI gibi klasik özellikleri kolayca açabilir, devraldığınız eski betikleri ayakta tutabilirsiniz. Ne var ki bu güç, aynı kolaylıkla siteyi çökertebilme riskini de beraberinde getirir. Bu yüzden altın kural nettir: ne yaptığınızı bilmediğiniz sürece bu araca dokunmayın, dokunacaksanız da önce yedek alın ve değişikliği bir test alanında deneyin.

    Sunucu tarafı yapılandırmalarla tek başınıza uğraşmak istemiyorsanız Clou.TR olarak yükü sizden alıyoruz. İhtiyacınıza göre hız ve güvenliği optimize edilmiş web hosting paketlerimize, tam kontrol isteyenler için sanal ve VDS sunucularımıza veya sunucu yapılandırmasını tümüyle bize bırakabileceğiniz yönetilen sunucu yönetimi hizmetimize göz atabilirsiniz. Siteniz başka bir sağlayıcıda mı? Ücretsiz site taşıma ekibimiz, tüm handler ve .htaccess ayarlarınız dahil taşımayı sizin yerinize yapar. Doğru altyapıyla, bu tür teknik detaylar bir yük değil, bir avantaja dönüşür.

    cPanelApache

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.