İçindekiler

httpd.confApache HTTP Sunucusu Ayar Dosyası
Bu dosyada Apache, httpd, ana sunucu birbirine eş anlamda kullanılmıştır.Kullanılan Türkçe terimlerin yanlarında, ilk sefere özel olarak İngilizce karşılıkları da verilmiştir. Ancak, Symbolic link, PID, Unix sistem çağrıları gibi temel kavramlar olduğu gibi bırakılmıştır.

# Bu dosyada hata olup olmadığını /apache/dizini/bin/apachectl configtest'le kontrol edebilirsiniz.

# Büyük bir değişiklik yaptıktan sonra, Apache'yi tekrar çalıştırmadan önce (../bin/apachectl restart),
# dosyada hata olmadığından (configtest'le) emin olmalısınız.

 

#################### BAŞLA NOTLAR ####################
# Apache Web sunucusu http.conf dosyasından sonra
# eğer ResourceConfig ve/veya AccessConfig yönergeleriyle (directive) değiştirilmemişse
# sırasıyla srm.conf ve access.conf dosyalarını okur.
#
# Bu dosya üç ana alana ayrılmıştır:
# 1- Global Ortamı ayarları (Bu makinenin cevap verdiği, sanal sunucular dahil, bütün sunucuları
# etkiler)
# 2- Varsayılan sunucunun ayarları (Bu ayarlar, sanal sunucularda açık olarak 'override' edilebilir,
# edilmediği takdirde bu bölümdeki ayarlar kullanılır)
# 3- Sanal sunucu ayarları (Aynı IP adresinden farklı adreslere cevap vermek için kullanılıyor)

# Ayar ve kayıt dosyalarının adları:
# Dosya adı /'la başlıyorsa absolute path kullanılıyor (ör: /usr/local/apache/logs/dosya)
# Dosya adı 'la başlamıyorsa ServerRoot'un değeri bu path'in önüne ekleniyor
# (ör: logs/dosya --> /usr/local/apache/logs/dosya oluyor)
#################### BİTİR NOTLAR ####################


#################### BÖLÜM I ####################

########## BAŞLA Evrensel Ortam (Global Environment) ##########
# Bu bölümdeki ayarlar Apache'nin genel çalışmasını etkiler, örneğin aynı anda kaç isteği karşılayacağı,
# ayar dosyalarını nerede bulacağı vs.

# ServerType: Ya inetd ya da standalone olabilir. Inetd, sadece Unix platformunda desteklenir.
ServerType standalone

# ServerRoot: Sunucunun ayar, hata ve kayıt dosyalarının durduğu ana dizin ismi.
# UYARI: Dizin isminin sonunda / OLMAMALIDIR!
ServerRoot "/usr/local/apache"

# LockFile: Apache USE_FCNTL_SERIALIZED_ACCEPT ya da USE_FLOCK_SERIALIZED_ACCEPT parametreleri
# kullanılarak derlenmişse, kilit dosyasının yerini belirtir.
# Normal olarak bu dosyanın adını değiştirmenize gerek yoktur. Ancak, kilit dosyasını NFS üzerinden
# 'mount' edilen bir yerde tutmak isterseniz değiştirin.
# Kilit dosyası YEREL BİR DİSKTE TUTULMAK ZORUNDADIR!. Dosya isminin sonuna PID (Process ID) otomatik
# olarak eklenir.
#LockFile /usr/local/apache/logs/httpd.lock

# PidFile: Sunucunun çalıştırıldığı zaman işlem numarasını (hafızadaki referansı denilebilir) tuttuğu
# dosya. Sunucu durdurulurken bu numaraya sahip işlem öldürülür.
PidFile /usr/local/apache/logs/httpd.pid

# ScoreBoardFile: İçsel sunucu işlemleri bilgisinin tutulduğu dosya.
# Bu dosyaya birçok platformda ihtiyaç yoktur. İhtiyacınız olup olmadığını dosyanın yaratılıp
# yaratılmadığına bakarak anlayabilirsiniz.
# Eğer aynı makinede iki farklı Apache sunucusu çalıştırıyorsanız, bu dosyaya ikisinin aynı anda
# erişmediğinden emin olmalısınız.
ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard

# Normalde, sunucu bu dosyadan sonra, sırasıyla srm.conf ve access.conf dosyalarını işler.
# Apache dağıtımında bu iki dosya boş olarak çıkar; kullanım kolaylığı için bütün yönergelerin tek bir
# dosyada tutulması tavsiye edilir.
# Sunucunun bu dosyaları yoksaymasını isterseniz:
# Unix için "/dev/null", Windows için "nul" girebilirsiniz.
#ResourceConfig conf/srm.conf
#AccessConfig conf/access.conf

# Timeout: İsteklerin geliş ve gönderilişleri arasında geçebilecek maksimum süre, bu süre aşıldığında,
# sunucu gelen isteği düşürür (yoksayar).
Timeout 120

# KeepAlive: Israrlı bağlantılara (persistent connection - aynı istemciden birden fazla istek) izin
# verilip verilmeyeceği. Kaldırmak için "Off" yapınız.
KeepAlive On

# MaxKeepAliveRequests: Israrlı bir bağlantıda kaç isteğe izin verileceği.
# Sınırsız bağlantı için 0 yapabilirsiniz.
# En yüksek verim için bu sayıyı yüksek tutmanız tavsiye edilir.
MaxKeepAliveRequests 100

# KeepAliveTimeout: Aynı istemciden, bir sonraki isteğin kabul edilmesi için gereken minimum süre.
KeepAliveTimeout 15

# Boştaki sunucu-havuzu düzenlemesi. Boştaki çocuk-işlemler (child process) gelen yeni istekleri
# karşılamak üzere hazırda bekler. Apache, bu sayıları tahmin etmenizi zorlamak yerine, gerek gördükçe
# kendini yüke göre adapte eder, yani, o andaki yükü kaldırmak için, gerekli gördüğü kadar çocuk-sunucu
# çalıştırmaya, ve birkaç tane de boş sunucu bekletmeye çalışır.
# Eğer, belirli bir anda MinSpareServers değerinden az boş sunucu varsa, aradaki fark kadar yeni
# sunucuyu beklemek üzere açar. Eğer, MaxSpareServers değerinden fazla sayıda çocuk-sunucu boşta
# bekliyorsa, fazla olan kadarını öldürür.
# Diğer bir deyişle, bu değerlerin yüksek olması, ani yüklenmelere karşı daha iyi tepki verilmesini,
# düşük olması da, geçişlerin daha yumuşak olması ve daha az bellek kullanılması demektir.
# Varsayılan değerler 5 ve 10'dur.
MinSpareServers 8
MaxSpareServers 16

# Sunucu ilk çalıştırıldığında başlatılacak çocuk sunucu sayısı.
StartServers 8

# Aynı anda çalışacak çocuk-sunucuların Max değeri, diğer bir deyişle aynı anda bağlanabilecek toplam
# istemci sayısı. Eğer bu sayıya ulaşılırsa, istemciler KİLİTLENECEKTİR, dolayısıyla bu sayı düşük
# tutulmamalıdır. Bu ayarın varsayılan değeri 256'dır ve derlemeden önce apache source dizinindeki
# src/include/httpd.h dosyasındaki HARD_SERVER_LIMIT'le ayarlanması gerekir. Bu dosyayı değiştirip
# tekrar derlemeden, bu ayarı arttıramazsınız.
# Bu yönerge aynı zamanda, sunucunun kilitlenmesi ya da sızdırmaya başlaması durumunda, makineyi
# çökertmemesi için kullanılmaktadır.
MaxClients 1024

# MaxRequestsPerChild: Çocuk-sunucunun öldürülmeden önce toplam kaç isteğe cevap verebileceği.
# Bu ayar sunucunun (ya da kullandığı kütüphanelerin) sızdırma olasılığına karşı kullanılır.
# Birçok sistemde, bu ayara gereksinim duyulmaz, ancak bazılarında (ör. Solaris) sızdırma çok
# olabilmektedir. Bu platformlar için, bu sayıyı 10000 civarı bir sayı yapabilirsiniz. 0 sınırsız
# demektir.
# UYARI: Bu sayı, açık tutulan (keepalive) bağlantıları kapsamaz,
# yani, bir çocuk-sunucu aynı istemciden 10 isteğe cevap vermişse, bu 1 istek sayılır.
MaxRequestsPerChild 10000

# Listen: Normal 'port' ve IP adresinin dışında, Apache'nin belli IP adresi ve/veya 'port'u
# dinlemesini/cevap vermesinisağlar.
# Ayrıca <VirtualHost> yönergesine bakınız.
#Listen 3000
#Listen 12.34.56.78:80

# BindAddress: Bu ayarla sanal sunucuları destekleyebilirsiniz. Bu yönergeyle sunucunun hangi IP
# adresini dinleyeceğini verebilirsiniz.
# "*", bir IP adresi ya da tam açık bir Internet ismi (FQDN - Fully Qualified Domain Name,
# ör: www.ulakbim.gov.tr) kullanabilirsiniz.
# Ayrıca <VirtualHost> yönergesine bakınız.
#BindAddress *

# Dinamik Paylaşımlı Nesne (Dynamic Shared Object - DSO) Desteği
# DSO'lar sunucunun başladıktan sonra çalışma zamanında (runtime) nesne kullanılacağı zaman
# yüklenebilmesini sağlarlar. Sunucu ilk başlatılırken yüklenmezler.
# Bir modülü kullanabilmek için karşılık gelen bir 'LoadModule' satırını aşağıya eklemeniz gerekir.
# Ayrıntılı bilgi için Apache 1.3 dağıtımındaki README.DSO dosyasını okuyunuz.
# Statik olarak (sunucu başlatılırken yüklenen) bağlanan modüllerin listesini görmek için 'bin'
# dizininde 'httpd -l' komutunu çalıştırınız.
# UYARI: Modüllerin yüklenme sırası önemlidir. Ne yaptığınızdan emin değilseniz, aşağıdaki sırayı
# değiştirmeyiniz.
# Ör: LoadModule foo_module libexec/mod_foo.so
LoadModule define_module libexec/mod_define.so
LoadModule includes_module libexec/mod_include.so
LoadModule speling_module libexec/mod_speling.so
LoadModule anon_auth_module libexec/mod_auth_anon.so
LoadModule digest_module libexec/mod_digest.so
LoadModule expires_module libexec/mod_expires.so
LoadModule headers_module libexec/mod_headers.so
<IfDefine SSL>
  LoadModule ssl_module libexec/libssl.so
</IfDefine>
LoadModule cookie_auth_module libexec/mod_auth_cookie.so
LoadModule inst_auth_module libexec/mod_auth_inst.so
LoadModule layout_module libexec/mod_layout.so
LoadModule put_module libexec/mod_put.so
LoadModule macro_module libexec/mod_macro.so
LoadModule roaming_module libexec/mod_roaming.so
LoadModule php4_module libexec/libphp4.so

# Doğru modül işletim sırasının belirlenmesi için, eldeki modüllerden tüm modül
# (statik ya da dinamik yüklenen) listesinin tekrar oluşturulması.
# UYARI: Ne zaman, yukarıdaki LoadModule bölümünü değiştirirseniz, bu bölümü de değiştiriniz.
ClearModuleList
AddModule mod_env.c
AddModule mod_define.c
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_speling.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
AddModule mod_digest.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_so.c
AddModule mod_setenvif.c
<IfDefine SSL>
  AddModule mod_ssl.c
</IfDefine>
AddModule mod_auth_cookie.c
AddModule mod_auth_inst.c
AddModule mod_bandwidth.c
AddModule mod_disallow_id.c
AddModule mod_layout.c
AddModule mod_put.c
AddModule mod_session.c
AddModule mod_macro.c
AddModule mod_roaming.c
AddModule mod_php4.c

# ExtendedStatus: /server-status işlemcisi (handler) çağırıldığı zaman, detaylı bilgi üretilip
# üretilmeyeceği. Varsayılanı 'Off'dur.
ExtendedStatus On

########## BİTİR Evrensel Ortam (Global Environment) ##########

 

#################### BÖLÜM II ####################

########## BAŞLA 'Varsayılan' Sunucu Ayarları ##########
# Bu bölümdeki ayarlar, hiçbir sanal sunucu tarafından ele alınmayan istekleri karşılayan
# 'Varsayılan' sunucu ayarlarını içerir.
# Ayrıca, <VirtualHost>'larda tanımlanmayan her değer bu bölümden alınır.

# Buradaki bütün yönergeler <VirtualHost>'larda yeralabilir, ki o zaman, bu bölümdeki yönergeler
# 'override' edilmiş olur, ve <VirtualHost>'daki değer kullanılır.
# Eğer yukarıda Evrensel Ortam bölümünde, ServerType inetd olarak ayarlanmışsa, aşağıdaki
# 'port', 'user' ve 'group' ayarlarının bir etkisi olmayacaktır.
# Bu durumda, ServerAdmin kısmına atlayınız.

# Port: Tekbaşına (standalone) sunucunun dinlediği 'port'. 1023'den küçük 'port'lar için httpd'nin
# çalıştırılma sırasında root haklarına sahip olması gerekir.
Port 80


# Eğer, httpd'yi (Ana sunucu) farklı bir kullanıcı ya da grupta çalıştırmak isterseniz,
# başlangıçta root olarak çalıştırın, httpd kendisini o kullanıcıyla/grupla yerdeğiştirecektir.

# Kullanıcı/Grup: httpd'nin çalışacağı kullanıcı ve/veya grup ismi (ya da #numarası)
# . SCO Unix (ODT 3) için "nouser" ve "nogroup" kullanınız.
# . HPUX'da paylaşımlı belleği "nobody" kullanıcısıyla kullanamazsınız, bunun yerine www gibi bir
# kullanıcı yaratıp onu kullanın.
# UYARI: Bazı işletim sistemlerinin çekirdekleri, grup numarası 60000'in üzerinde olduğu zaman
# setgid(Grup) ya da semctl(IPC_SET) Unix fonksiyonlarını çağırmayı reddeder.
# Bu sistemlerde webgroup grubunu kullanmayın.
User webuser
Group webgroup

# ServerAdmin: Sunucuda problem çıktığında, e-posta gönderilebilecek adres. Bu adres, hata mesajları
# gibi, sunucu tarafından üretilen sayfalarda "görünebilir".
# Ayrıca ServerSignature yönergesine bakınız.
ServerAdmin webmaster@kurum.edu.tr

# ServerName: Eğer makinenizin ismi www'den farklıysa, istemciye geri gönderilecek sunucu ismini
# değiştirebilmenizi sağlar. Yani, makinenin gerçek ismi, ör. sunucu.kurum.edu.tr, yerine
# www.kurum.edu.tr kullanmak isterseniz, bu ayarı değiştirin.
# UYARI: Kendi başınıza makine ismi yaratıp, bunların çalışmasını bekleyemezsiniz. Burada verdiğiniz
# ismin DNS'de tanımlı olması gerekir. Daha detaylı bilgi için sistem yöneticinize başvurunuz.
# Eğer sunucunuzun kayıtlı bir DNS ismi yoksa, IP numarasını giriniz. Ancak bu durumda, sunucuya sadece
# IP adresiyle erişebilirsiniz (ör. http://123.45.67.89/).
ServerName www.kurum.edu.tr

# DocumentRoot: Belgelerinizi sunacağınız dizin. Varsayılanı, bütün isteklerin bu dizinden
# karşılanmasıdır. Ancak, sembolik bağ (symbolic link) ya da alias (lakap) kullanarak farklı dizinlere
# erişim de sağlayabilirsiniz.
# Kişisel tecrübelere dayanarak Web sayfalarının Apache programlarının durduğu dizinden farklı bir
# dizinde durması yararlı olacaktır. Bu hem yedeklemede, hem de dosyaların yönetiminde avantaj sağlar.
# Bu yolu seçtiğiniz takdirde, ör. /web dizini altında her sanal sunucu için ayrı bir kök dizin,
# bu dizinlerin altında da HTML sayfaları ve CGI programları için ayrı dizinler açmak
# işinizi rahatlatacaktır.
DocumentRoot "/web/www/docs"

# Apache'nin erişiminin olduğu her dizin ve altdizinleri için, hangi servis, özelliklerin vb izin
# verildiği ve/veya verilmediği belirtilebilir.
# İlk olarak "varsayılan" dizinin haklarını epey kısacağız.
# Güvenliği maksimuma getirmek isterseniz FollowSymLinks'i de kaldırıp Options None yapın.
# FollowSymLinks'le kullanıcılarınızdan biri /etc gibi kritik bir dizine bir symbolik verebilir ve bu
# dizin dış dünya tarafından okunabilir hale gelir. Bir diğer alternatif olarak görülen
# SymLinksIfOwnerMatch daha güvenlidir ancak istenen dizinin birkaç seviye içerde olması durumunda
# tepki süresini epey yavaşlatır. Örneğin "Option SymLinksIfOwnerMatch" verilmişse, sunucu
# /usr/local/apache/htdocs/dosyalar/ dizini istendiği zaman /, /usr, /usr/local, /usr/local/apache,
# /usr/local/apache/htdocs ve /usr/local/apache/htdocs/dosyalar dizinlerinin *hepsinin* bir symbolik
# link olup olmadığını ve sahiplerinin kim olduğunu kontrol eder.
<Directory />
  Options FollowSymLinks
  AllowOverride None
</Directory>

# Bu noktadan itibaren, ayrıntılıca hangi özelliklerin kullanılabileceği belirtilebilir.
# Dolayısıyla, birşeyler istediğiniz gibi çalışmıyorsa, aşağıda açık olarak izin verildiğine emin olun.


# Bu dizin DocumentRoot yönergesinde verdiğiniz dizin olmalıdır.
<Directory "/web/www/docs">

# Bu ayar aşağıdakilerin yanısıra "None", "All", veya "Indexes", "Includes", "FollowSymLinks",
# "ExecCGI", "MultiViews"'in bir kombinasyonu olabilir.
# UYARI: "MultiViews" açık olarak(explicitly) vermek zorundasınız --- "Options All" bu işi görmez.
#
# Daha fazla güvenlik istiyorsanız, hızdan bir miktar taviz vererek buradaki FollowSymLinks'i
# SymLinksIfOwnerMatch yapabilirsiniz. Bu şekilde, sembolik bağın sahibiyle, bağ verilen yolun sahibi
# aynı olmadıkça o yol açılmayacaktır. Ör. webuser kullanıcısı /etc'ye sembolik bağ verse bile,
# /etc'nin sahibi root olduğu için /etc'nin içeriği Web sitesinden erişilemez olur.
  Options Indexes FollowSymLinks MultiViews

# Belli dizinlere .htaccess dosyası koyarak, o dizine şifreli erişim, belli adreslerden erişim gibi
# kısıtlamalar getirebilirsiniz. Bu ayar .htaccess dosyalarında nelerin 'override' edilebileceğini
# söyler. Aşağıdakinin yanısıra "All", ya da "Options", "FileInfo", "AuthConfig", "Limit"'in bir
# kombinasyonu olabilir.
  AllowOverride None

# Bu sunucudan kimlerin dosya okumasına izin verildiği ayarı.

#Bütün adreslerden erişime izin ver...
  Order allow,deny
  Allow from all

# Sadece aşağıdaki IP bloğundan okumaya izin ver...
  #Order deny,allow
  #Allow from 193.140.83.
  #Deny from all
</Directory>

# UserDir: Sistemdeki kullanıcıların kendi sayfalarına http://www.kurum.edu.tr/~kullanıcı_adı/ şeklinde
# ulaşabilmeleri için ev dizinlerinde oluşturmaları gereken dizinin adı.
<IfModule mod_userdir.c>
  UserDir public_html
</IfModule>
# Aşağıdaki satırla, Apache'nin çalışma esnasında, LD_LIBRARY_PATH ortam değişkeninini verilen şekliyle
# kullanmasını belirtiyoruz.
# Bu satır, kurulan bazı modüllerin kütüphanelerinin varsayılan olarak /usr/local/lib'e kurulması
# ve Apache'nin varsayılanında /usr/local/lib'i yeralmaması nedeniyle gereklidir.
<IfModule mod_env.c>
  SetEnv LD_LIBRARY_PATH /usr/local/lib:/lib:/usr/ucblib:/usr/openwin/lib
</IfModule>

# Kullanıcı dizinlerine erişim hakları. Aşağıdaki ayarlar, bu dizinlere sadece-okuma (read-only) izni
# verildiği bir örnektir.
<Directory /home/*/public_html>
  AllowOverride FileInfo AuthConfig Limit
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  <Limit GET POST OPTIONS PROPFIND>
    Order allow,deny
    Allow from all
  </Limit>
  <LimitExcept GET POST OPTIONS PROPFIND>
    Order deny,allow
    Deny from all
  </LimitExcept>
</Directory>

# DirectoryIndex: Dizin endeksleri (diğer bir deyişle varsayılan sayfa) için kullanılan dosya ya da
# dosyaların adları. Birden fazla girdi arasında boşluk kullanınız.
# Apache, istenen dizinde bu dosyalara verilen sırada bakar, ve bulduğu *ilkini* gönderir,
# yani sıralama önemlidir.
<IfModule mod_dir.c>
  DirectoryIndex index.ozeluzanti index.php index.php3 index.html index.htm
</IfModule>

# AccessFileName: Dizinlerin altında erişim kontrol bilgilerinin tutulduğu dosya.
# Ayrıca AllowOverride yönergesine bakınız.
AccessFileName .htaccess

# Aşağıdaki satırlar, istemcilerin .htaccess dosyalarına doğrudan erişimini kısıtlar. Bu dosyaların
# doğrulama bilgisi (şifre vb) gibi kritik bilgiler tutması nedeniyle, doğrudan erişimin kısıtlanması
# gerekir. Bu dosyalara ancak Apache programının kendisi erişebilir. Bu davranışı istemiyorsanız,
# aşağıdaki satırların başına # koyunuz.
# Ayrıca, eğer yukarıda AccessFileName yönergesinde bu dosyalara farklı bir isim verdiyseniz, bu ayarı
# da değiştiriniz.
# Aşağıdaki ayar .ht'yle başlayan tüm dosyaları filtreler, yani, .htaccess'den başka (bazı sitelerin
# kullandığı) .htpasswd, .htfiles gibi dosyaları da korur.
<Files ~ "^.ht">
  Order allow,deny
  Deny from all
</Files>
# ozel.dosya ismindeki dosyaların sunucunun kendisi haricinde kimse tarafından okunmaması için.
# Örneğin bir PHP programı sunucu tarafında çalıştığı için bu dosyaları okuyabilirken, istemciler
# doğrudan bu dosyalara erişemezler.
<Files ~ "^ozel.dosya$">
  Order allow,deny
  Deny from all
</Files>

# CacheNegotiatedDocs: Varsayılanı, Apache'nin her sayfayla birlikte "Pragma: no-cache" göndermesidir.
# Böylece 'Cache/Proxy' (Önbellek/Vekil) sunucuları (ör. http://wwwcache.ulak.net.tr/) bu dosyaları
# önbelleklemezler. Eğer bu davranışı istemiyorsanız, aşağıdaki satırın başındaki #'i kaldırınız.
#CacheNegotiatedDocs

# UseCanonicalName: (Apache 1.3 ve yukarısı) Bu ayar açıldığı zaman, ne zaman Apache geri-referans
# (self-referencing - cevabın geldiği sunucuyu gösteren) URL oluştursa, ServerName ve Port
# yönergelerinden oluşturulan bir 'Canonical' (yaklaşık olarak çözülmüş/gerçek denilebilir) isim
# kullanır.
# Bu ayar kapatıldığı zaman, Apache, istemcinin gönderdiği sunucuismi:port ikilisini kullanır.
# Ayrıca bu ayar, CGI programlarındaki SERVER_NAME ve SERVER_PORT değişkenlerini de etkiler.
UseCanonicalName On

# TypesConfig: MIME tiplerinin verildiği dosyanın nerede tutulduğunun ayarı.
<IfModule mod_mime.c>
  TypesConfig /usr/local/apache/conf/mime.types
</IfModule>

# DefaultType: Sunucu, dosya uzantısında MIME tipini bulamadığı zaman kullanacağı
# varsayılan MIME tipidir.
# Eğer sunucunuzda çoğunlukla metin ya da HTML dosyaları varsa, "text/plain" iyi bir değerdir.
# Eğer çoğunlukla ikili (binary), ör. program ya da resim, dosyanız varsa, tarayıcıların istediği
# dosyayı metin gibi göstermeye çalışmaması için, "application/octet-stream" kullanmak isteyebilirsiniz.
DefaultType text/plain

# mod_mime_magic modülü, sunucunun dosyanın içeriğine bakarak dosya tipini bulabilmesini sağlar
# (ör. UNIX'de resim dosyalarının uzantısının .gif, .jpg olması zorunlu değildir).
# MIMEMagicFile yönergesi, mime_magic modülü için ipuçları dosyasının nerede tutulduğunu ayarlar.
# Eğer yukarıdaki "Evrensel Ortam: DSO" bölümünde bu modülün LoadModule yönergesiyle yüklenmiş olması
# gerekmektedir.
# <IfModule> bu modülün gerektiği şekilde yüklenip yüklenmediğini kontrol eder, aksi takdirde
# sunucu hata verir.
<IfModule mod_mime_magic.c>
  MIMEMagicFile /usr/local/apache/conf/magic
</IfModule>

# HostnameLookups: Sunucu kayıtlarında (logfiles) İstemcilerin (varsa) açık isimlerinin
# (ör. descent.ulakbim.gov.tr) mi, yoksa sadece IP numaralarının (ör. 193.140.83.12) mı tutulacağı.
# Varsayılanı "Off"dur çünkü tersi durumda her istek için DNS sunucusundan istemcinin varsa ismi
# bulunmaya çalışılır.
# Diğer bir deyişle, "Off" durumunda sunucunun tepki süresi iyileşir.
# Ancak kayıtlarınızda istemcilerin tam adreslerini (FQDN) görmek isterseniz açın (On durumuna getirin),
# güvenliğe destek olan cinsten bir yönergedir.
HostnameLookups Off

########## BAŞLA Kayıtalma Bölümü ##########

# ErrorLog: Hata kayıtlarının tutulduğu dosya
# Eğer sanal sunucularda, aşağıdaki dışında bir hata mesajı dosyası vermezseniz, o sanal sunucu için de
# yine aşağıdaki dosya kullanılır.
# Her sanal sunucu için ayrı bir hata kayıt dosyası açılmasını istiyorsanız, <VirtualHost> bölümlerinde
# dosya isimlerini ayrıca vermeniz gerekir.
ErrorLog /usr/local/apache/logs/error_log

# LogLevel: Hata kayıtlarında tutulan mesajların seviyesi.
# Şu değerlerden birini alabilir: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn

# Aşağıdaki yönergeler, bazı takma adlar (nickname) tanımlar.
# Ayrıca aşağıdaki CustomLog yönergesine bakınız.
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# Erişim kayıt dosyasının yeri ve biçimi. Aynı hata kayıt dosyalarında olduğu gibi, sanal sunucular için
# ayrıca belirtilmezse, erişim kayıtları aşağıda belirtilen dosyada tutulur.
CustomLog /usr/local/apache/logs/access_log common

# Eğer kullanıcı ajanını (agent - kullanıcının programı; tarayıcı, robot, yansılama programı vb) ve
# havale eden sayfayı (referer page) kayıtlarını da almak isterseniz,
# aşağıdaki satırların başındaki #'leri kaldırınız.
#CustomLog /usr/local/apache/logs/referer_log referer
#CustomLog /usr/local/apache/logs/agent_log agent

# Bütün erişim, ajan ve havale eden sayfa kayıtlarını tek bir dosyada tutmak isterseniz, aşağıdaki
# yönergeyi kullanabilirsiniz. Bu yolu seçtiğiniz takdirde, yukarıdaki kayıtları iptal etmeniz tavsiye
# edilir, aksi takdirde kayıtlar çifter çifter tutulmuş olacaktır.
#CustomLog /usr/local/apache/logs/access_log combined

########## BİTİR Kayıtalma Bölümü ##########

# Seçimlik olarak, sunucunun ürettiği sayfalarda (hata sayfaları, FTP dizin listeleri, mod_status ve
# mod_info modüllerinin çıktıları vb, ama CGI çıktıları değil) sunucunun imzasının (Sunucu ismi, sürüm
# numarası, sunucu 'port'u vb bilgilerinin eklenip eklenmeyeceği.
# Email'i seçmeniz durumunda, (birden çok sanal sunucu varsa) o sunucunun yöneticisinin e-posta adresi
# de eklenir.
# Olası değerler: On | Off | EMail
ServerSignature On

########## BAŞLA Alias Bölümü ##########
# Aliases: Bu kısma istediğiniz kadar (sınırı yoktur) lakaplar (alias) ekleyebilirsiniz.
# Kullanımı: Alias sahte-isim gerçek-isim
<IfModule mod_alias.c>
# UYARI: Eğer sahte-ismin sonuna bir / eklerseniz, sunucu bu /'ın adreste de olmasını şart koşar.
# Yani, aşağıdaki örnekte, "/icons"a değil, sadece "/icons/"a lakap takılmış olur.
  Alias /icons/ "/usr/local/apache/icons/"
  <Directory "/usr/local/apache/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>

# ScriptAlias: Bu ayar, hangi dizinlerin sunucu programcıkları (script) içerebileceğini belirtir.
# ScriptAlias'lar aslında Alias'lar aynı şekilde kullanılır, tek farkı bu dizinlerdeki dosyalar, belge
# olarak değil, programcık olarak olarak işleme sokulurlar.
# Alias'lardaki / kuralı burada de geçerlidir.
  ScriptAlias /cgi-bin/ "/web/www/cgi-bin/"

# Aşağıdaki "/usr/local/apache/cgi-bin" dizinini, yukarıda ScriptAlias yönergesinde verdiğiniz dizin
# yapınız.
  <Directory "/usr/local/apache/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
  </Directory>
</IfModule>
########## BİTİR Alias Bölümü ##########

# Redirect yönergesi istemcilerin, artık sunucunuzda olmayan adresler için başka bir adrese
# yönlendirilebilmesini sağlar.
# Kullanımı: Redirect eski-URI yeni-URL (ör. Redirect /fakulte/giris.htm http://fakulte.kurum.edu.tr/)
Redirect /ftp ftp://ftp.kurum.edu.tr/

########## BAŞLA Indexing Bölümü ##########
# Sunucunun ürettiği sayfaların görünümünü düzenleyen yönergeler.
<IfModule mod_autoindex.c>
# FancyIndexing'le dizin listelerinde sade görünüm yerine, simgelerin, tarihlerin vb bilgilerin de
# görüntülenmesini sağlar
IndexOptions FancyIndexing

# AddIcon* yönergeleri sunucunun farklı dosya tip veya uzantıları için hangi simgeleri kullanacağını
# belirlerler. Sadece FancyIndexing kullanılan dizinlerde geçerlidirler.

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

# MIME tiplerine bakarak simge atama
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

# Dosya uzantısına bakarak simge atama
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^

# DefaultIcon herhangi bir simge atanmamış dosyalar için kullanılan simgedir.
DefaultIcon /icons/unknown.gif

# AddDescription yönergesi, dosyaların sonuna küçük açıklamalar koyabilmenizi sağlar.
# Bu açıklamalar her dosya için ayrı değil, aynı dosya tipine sahip tüm dosyaları toptan etkiler.
# Sadece FancyIndexing'le tanımlı dizinlerde geçerlidir.
# Kullanımı: AddDescription "açıklama" .dosya_uzantısı
AddDescription "GZIP'le sıkıştırılmış dosya" .gz
AddDescription "tar arşivi" .tar
AddDescription "GZIP'lenmiş tar arşivi" .tgz

# ReadmeName: sunucunun dizin listelerinin sonuna eklemek için baktığı dosyanın ismi.
# HeaderName: sunucunun dizin listelerinin başına eklemek için baktığı dosyanın ismi.

# Bu dosyaları kullanabilmek için bir <Directory> yönergesinin içinde "Options MultiViews
# (ve varsa diğerleri)" olmalıdır.
# Bu durumda sunucu önce dosya_ismi.html'i, yoksa dosya_ismi.txt dosyasını açmaya çalışır.
# html uzantılı dosya MIME tipi text/html olarak, txt uzantılı dosya da MIME tipi text/plain olarak
# gönderilir.
ReadmeName README
HeaderName HEADER

# IndexIgnore: Dizin listelerinde saklanacak dosyaların isimleri. Kabuk (shell) stili jokerlere
# (wildcard) izin vardır.
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

</IfModule>
########## BİTİR Indexing Bölümü ##########

########## BAŞLA Belge Tipleri Bölümü ##########
<IfModule mod_mime.c>

# AddEncoding: Farklı tarayıcılar için (ör. Mosaic/X 2.1+) sıkıştırılmış bilginin havada (on the fly)
# açılabilmesini sağlar, ancak bütün tarayıcılar bunu desteklememektedir.
# İsim benzerliğine rağmen, aşağıdaki Add*** yönergelerinin, FancyIndexing parametreleriyle
# ilgisi yoktur.
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz

# AddLanguage: Bir dosyanın dilini belirtmenize izin verir. Daha sonra, tarayıcının anlayabileceği bir
# dil seçimi için içerik pazarlığı (content negotiation) yapılır.
# UYARI 1: uzantıyla dil belirtecinin aynı olması gerekmez, ör. dil belirteci pl olan Polonyaca için
# Perl programcıklarıyla karışmaması için "AddLanguage pl .po" kullanılabilir.
# UYARI 2: aşağıdaki örneklerde birçok durum için iki harflik ülke kısaltmasıyla, dil belirtecinin aynı
# olmadığı da vurgulanmıştır, ör. 'Danmark/dk' versus 'Danish/da'.
# UYARI 3: 'ltz' durumu RFC1766'yı üç harf kullanması nedeniyle ihlal etmektedir, ancak bunu düzeltmek
# için çalışmalar sürmektedir.
# Danish (da) - Dutch (nl) - English (en) - Estonian (ee) - French (fr) - German (de)
# Greek-Modern (el) - Italian (it) - Portugese (pt) - Luxembourgeois* (ltz) - Spanish (es)
# Swedish (sv) - Catalan (ca) - Czech(cz) - Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja)

AddLanguage tr .tr
AddLanguage en .en
# AddLanguage da .dk
# AddLanguage ja .ja
# AddCharset ISO-2022-JP .jis
# AddLanguage pl .po
# AddCharset ISO-8859-2 .iso-pl

# LanguagePriority: içerik pazarlığı sırasında bazı dillere öncelik vermenizi sağlar. Aşağıdaki durumda,
# hem tr hem de en tanıyan bir tarayıcıya tr gönderilecektir.
# Dolayısıyla, istediğiniz sırada dilleri listeleyiniz.
<IfModule mod_negotiation.c>
  LanguagePriority tr en
</IfModule>

# AddType: mime.types dosyasını gerçekte açmadan üzerinde değişiklikler yapabilmenizi sağlar.
# PHP 4.x'in çalışması için, aşağıdaki satırlar gereklidir:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php-source .phps

AddType application/x-tar .tgz

# AddHandler: belli dosya uzantılarını belli programlara/hareketlere atamanıza izin verir.
# Bu hareketler sunucunun içine gömülmüş de olabilir, Action yönergesiyle (aşağı bakınız) eklenmiş de
# olabilir.
# SSI (Server Side Include) ya ScriptAlias dizinleri dışında CGI kullanmak isterseniz, aşağıdaki
# satırların başlarındaki #'leri kaldırınız.

# CGI programcıkları için:
# UYARI: Bu ayarı açmak, güvenliği ciddi derecede düşürür.
#AddHandler cgi-script .cgi

# SSI kullanmak için:
#AddType text/html .shtml
#AddHandler server-parsed .shtml

# Apache'nin desteklediği bir özellik de dosyaları "olduğu gibi" gönderebilme özelliğidir.
# asis dosyaları gönderilirken, Apache ayrıca başlık bilgileri eklemeyecektir, ancak bu durumda asis
# dosyasında bu bilgilerin verilmesi gerekmektedir.
# Bu özelliği kullanmak için, satırın başındaki #'i kaldırınız.
#AddHandler send-as-is asis

# Sunucu tarafı işlenen imagemap dosyalarını kullanmak için:
#AddHandler imap-file map

# Özel dosya uzantılarını bir PHP programına yönlendirmek için aşağıdakine benzer bir ayar kullanın.
# NOT: İstemciler, çağırılan programın ismini görmeyeceklerdir.
AddType text/html .ozelhtml
AddHandler ozelisleme .ozelhtml
Action ozelisleme /progs/onisleme.php

</IfModule>
########## BİTİR Belge Tipleri Bölümü ##########

# Action: aşağıdaki kurala eşlenen dosya tipleri için, bir programcığın çağırılabilmesine sağlar.
# Bu şekilde, sıkça çağırılan CGI dosya işleyicilerini URL'lerden atabilirsiniz.
# Kullanımı: Action mime/tipi /cgi-programcığının/yeri
# Kullanımı: Action handler-ismi /cgi-programcığının/yeri

# MetaFiles: Meta bilgilerinin kullanılıp kullanılmayacağı
# Meta bilgileri, aynı asis dosyalarına benzer, ancak sadece HTTP başlık (HTTP header) bilgilerini
# içerirler. Bu meta bilgilerini kullanarak, dosyalarınıza varsayılanlar dışında da başlık bilgisi
# ekleyebilirsiniz.
# MetaFiles, MetaDir ve MetaSuffix yönergelerini kullanabilmeniz için, mod_cern_meta modülünü derleme
# sırasında eklemiş olmanız gerekir.
# Kullanımı: MetaFiles on|off
# Aşağıdaki gibi kullanmanız tavsiye edilir:
#<IfModule mod_cern_meta.c>
#  MetaFiles on
#</IfModule>

# MetaDir: Apache'nin meta bilgilerini bulabileceği dizinin ismi.
#MetaDir .web

# MetaSuffix: meta bilgisini tutan dosyaların uzantısı
#MetaSuffix .meta

# Özelleştirilebilir hata mesajları bölümü
# Üç tipte gelmektedir:

# 1- Düz metin
#ErrorDocument 500 "Sunucu kötü birşey yaptı.
# UYARI: Tırnak (") düz metni belirtir, çıktıya gönderilmez.

# 2- Yerel yönlendirmeler
#ErrorDocument 404 /olmayan_dosya.html
# Yerel /olmayan_dosya.html URL'ine yönlendirmek için
#ErrorDocument 404 /cgi-bin/olmayan_islemcisi.pl
# Bu şekilde olmayan dosyaları, bir program ya da SSI kullanan bir dosyaya yönlendirebilirsiniz.

# 3- Harici yönlendirmeler
#ErrorDocument 402 http://baska.bir.sunucu.edu.tr/kayit_formu.html
# UYARI: Bu durumda, orjinal isteğe ait birçok ortam değişkeni böyle bir programcığa havale
# edilmeyecektir.

# Davranışın tarayıcı tipine göre özelleştirilmesi
<IfModule mod_setenvif.c>

# Aşağıdaki yönergeler, normal HTTP cevap davranışını değiştirirler.
# İlk yönerge, Netscape 2.x ve onu taklit eden tarayıcılar için 'keepalive'ı kapatırlar.
# İkinci yönerge, HTTP/1.1 desteğinde hatalar olan Internet Explorer 4.0b2 içindir.
  BrowserMatch "Mozilla/2" nokeepalive
  BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0

# Aşağıdaki yönerge, HTTP/1.1'e tam anlamıyla uyumlu olmayan ajanlar için HTTP/1.0 protokolüne geçmek
# içindir.
  BrowserMatch "RealPlayer 4.0" force-response-1.0
  BrowserMatch "Java/1.0" force-response-1.0
  BrowserMatch "JDK/1.0" force-response-1.0
</IfModule>

########## BAŞLA Status/Info Bölümü ##########
# Sunucu durum raporlarını, (güvenlik nedenleriyle) sadece kendi IP'lerinizden erişebilir kılmak için,
# aşağıdaki bloğu kendi IP bloğunuzla değiştiriniz.
# Bu özelliğin kullanılabilmesi için mod_status.c modülünün yüklenmiş olması gerekir.
# İsterseniz "Allow from .kurum.edu.tr" tipinde bir yönerge de kullanabilirsiniz, ancak bu durumda
# HostnameLookups On yönergesini yukarıda belirtmiş olmalısınız.
# Bu özelliği kullanmak için, http://www.kurum.edu.tr/server-status yazmalısınız.
<Location /server-status>
  SetHandler server-status
  Order deny,allow
  Deny from all
  Allow from 193.140.83.
</Location>

# Sunucunun ayarlarını, (güvenlik nedenleriyle) sadece kendi IP'lerinizden erişilebilir kılmak için,
# aşağıdaki bloğu kendi IP bloğunuzla değiştiriniz.
# Bu özelliğin kullanılabilmesi için mod_info.c modülünün yüklenmiş olması gerekir.
# İsterseniz "Allow from .kurum.edu.tr" tipinde bir yönerge de kullanabilirsiniz, ancak bu durumda
# HostnameLookups On yönergesini yukarıda belirtmiş olmalısınız.
# Bu özelliği kullanmak için, http://www.kurum.edu.tr/server-info yazmalısınız.
<Location /server-info>
  SetHandler server-info
  Order deny,allow
  Deny from all
  Allow from 193.140.83.
</Location>

########## BİTİR Status/Info Bölümü ##########

########## BİTİR 'Varsayılan' Sunucu Ayarları ##########

 

########## BAŞLA Sanal Sunucular Bölümü ##########
# VirtualHost: Eğer aynı makineden farklı adres/IP'lere cevap vermek istiyorsanız, herbiri için
# VirtualHost'lar tanımlamanız gerekir. Daha fazla bilgi için http://www.apache.org/docs/vhosts/
# adresine bakınız. Sanal sunucu ayarlarınızın doğru olup olmadığını '/apache/dizini/bin/httpd -S'
# komutuyla kontrol edebilirsiniz.

# Eğer isim-tabanlı sanal sunucular kullanmak isterseniz, en az bir tane IP adresi (ve port numarası)
# tanımlamanız da gerekir.
#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78

# Hemen tüm Apache yönergeleri bir sanal sunucu tanımında kullanılabilir.

# Ayrıca, varsayılan sanal sunucu da aşağıdaki gibi tanımlanabilir. Ancak, birçok durumda yukarıdaki
# 'Varsayılan' sunucu ayarları yetecektir.
#<VirtualHost _default_:*>
#</VirtualHost>

 

########## BAŞLA WWW - Ana Sunucu ##########

NameVirtualHost 193.140.83.36
<VirtualHost 193.140.83.36>
  ServerName www.kurum.edu.tr
  ServerAdmin webmaster@kurum.edu.tr
  DocumentRoot "/web/www/docs"
  ErrorLog logs/www.error.log
  CustomLog logs/www.access.log combined

  DirectoryIndex index.ozeluzanti index.php index.php3 index.html index.htm
  HostnameLookups Off

  <Directory "/web/www/docs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

  ScriptAlias /cgi-bin/ "/web/www/cgi-bin/"
  <Directory "/web/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
  </Directory>

  #Özelleştirilmiş hata mesajları için
  # /hata/index.php (dosyaların kök dizini altında) gelen hata koduna göre özel davranabilir,
  # bu bilgi Apache tarafından programın erişebileceği ortam değişkenlerine atanmaktadır.
  ErrorDocument 401 /hata/index.php
  ErrorDocument 403 /hata/index.php
  ErrorDocument 404 /hata/index.php
  ErrorDocument 500 /hata/index.php

  #Dosya açıklamaları
  AddDescription "GZIP'ped archive" .gz
  AddDescription "tar archive" .tar
  AddDescription "GZIP'ped tar archive" .tgz
  AddDescription "ZIP'ped archive" .zip .ZIP
  AddDescription "DOS/Windows executable" .exe .EXE .com .COM
  AddDescription "Portable Document Format" .pdf .PDF
  AddDescription "Microsoft movie file" .avi .AVI
  AddDescription "Quicktime movie file" .mov .MOV .qt .QT
  AddDescription "Mpeg Movie File" .mpg .MPG .mpe .MPE .mpeg .MPEG .mpa .MPA
  AddDescription "Plain text file" .txt .TXT
  AddDescription "HyperText File" .html .HTML .htm .HTM
</VirtualHost>

########## BİTİR WWW - Ana Sunucu ##########

 

########## BAŞLA WoS ##########
<VirtualHost 193.140.83.36>
  ServerName wos.ulakbim.gov.tr
  ServerAdmin wos@ulakbim.gov.tr
  # gelen istekleri başka bir sunucuya yönlendiriyoruz
  Redirect / http://atlas.ulakbim.gov.tr/cgi-isi/CIW.cgi
</VirtualHost>
########## BİTİR WoS ##########

 

########## BAŞLA Ozel ##########
<VirtualHost 193.140.83.36>
  ServerName ozel.ulakbim.gov.tr
  DocumentRoot "/web/ozel/docs"
  DirectoryIndex index.html
  CustomLog logs/ozel.erisim.log common
  ErrorLog logs/ozel.hata.log

  <Directory "/web/ozel/docs">
    Options Indexes SymLinksIfOwnerMatch
    AllowOverride None
    # Sadece kendi IP bloğumuzdan gelenlere izin ver, dışarıya kapat...
    Order deny,allow
    Deny from all
    Allow from 193.140.83.
  </Directory>
</VirtualHost>
########## BİTİR Wyg ##########

 

########## BİTİR Sanal Sunucular Bölümü ##########

# Bu dosya hakkında, daha detaylı (İngilizce) bilgiyi http://www.apache.org/docs/
# adresinde bulabilirsiniz. Ayrıca Apache ayarlarının (bastırılabilir elkitapçığı halinde) küçük bir
# referansını da http://www.refcards.com/ adresinden indirebilirsiniz.

#Özel Dosyalarımızı Yasaklayalım

#isminde "_" geçen dosyalar eşilemez.

<Files ~ "^_(.*)" >
  Order Deny,Allow
  Deny from all
</Files>

#ismi "__" ile başlayan ve ismi "_" ile biten php dosyaları eşilemez.

<Files ~ "^__(.*)$|^(.*)_.php$" >
  Order Deny,Allow
  Deny from all
</Files>
# This prevents reading of files with certain extensions. 
<FilesMatch ".(bak|inc|lib|sh|tpl|sql)$">
        order deny,allow
        deny from all
</FilesMatch>

   

<FilesMatch "^(changelog.txt|_htaccess)$">
        order deny,allow
        deny from all
</FilesMatch>