Apache başta olmak üzere birçok ağ tabanlı sunucular üzerinden .htaccess dosyası ile bir takım ayarlamalar yapılabilmektedir. Bu yazıda ise izlere .htacces kodları ve .htaccess kullanımı ile ilgili detaylı bilgi vermeye çalışacağım. .htaccess dosyasına ekleyeceğiniz kodlar/komutlar bulunduğu klasördeki tüm dosyaları etkiler. .htaacces dosyası yok ise çok kolay bir şekilde yeni bir dosya oluşturup; adını sadece '.htaccess' yapmanız yeterlidir.

1. Klasörlere Erişim
Herhangi bir klasör için, kullanıcıların erişimlerini sınırlandırmak yani engellemek isterseniz klasörün içine bir .htaccess dosyası oluşturup, içeriğine ise:

#deny all access
deny from all
komutlarını eklemeniz yeterli olacaktır. Bu klasöre sadece belirlediğiniz IP adresiyle ya da IP bloğu tarafından erişim sağlamasını istiyorsanız;

#deny all access
deny from all
allow from 10.0.0.1 # tek ip adresi
allow from 192.168.0.0/24 # ip bloğu
komutlarını eklemeniz yeterli olacaktır. O klasörde bulunan sadece bir tek dosya için erişimi engellemek için eklemeniz gereken komut:

<Files dosyaadi.html>
Order allow,deny
Deny from all
</Files>
2. Dosyaları Gizlemek
Örnek verecek olursak konfigürasyon dosyalarının içine, robot.txt ya da log’lara erişimi engellemek istiyorsanız aşağıdaki örnek tabloda yer alan .ht ile başlayan dosyalara erişimi engelleme yöntemidir.

<Files ~ “^\.ht”>
Order allow,deny
Deny from all
Satisfy All
</Files>
3. Özel HTTP 404 Hata Sayfası
Eğer default bir 404 sayfası yerine farklı olarak kendi oluşturduğunuz veya kullanıcıların yönlenmesini istediğiniz bir hata sayfası varsa bu sayfaya kullanıcıları yönlendirmek için aşağıdaki kodu eklemeniz yeterlidir. 'notfound.html' dosyasını kendinize göre değiştirebilirsiniz.

ErrorDocument 404 /errors/notfound.html
Bunu kullanarak hata kodlarınızı da özelleştirebilirsiniz. Dikkat! İnternet Explorer 512 bayttan daha küçük bir hata sayfası ile karşılaştığınız zaman, MSN search gibi bağlantıların yer aldığı kendi hata sayfasını ziyaretçiye göstermektedir. Belirtmiş olduğunuz hata sayfasının 512 bayttan büyük olduğuna kesinlikle emin olun.

4. no-www Yönlendirme
Eğer siet adresinizde www'siz sürümün kullanılmasına kullanıcıları ve arama motoru robotlarını zorlamak istiyorsanız bu kodu .htaccess dosyasına eklemeniz gerekir;

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www\.example\.com[nc]
RewriteRule ^(.*)$ http://example.com/$1 [r=301,nc]
</ifModule>
5. Kötü Botları Engelleme
Kötü botları engellemek için .htaccess dosyasına aşağıdaki kodları eklemeniz yeterlidir;

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule .* - [F]
</ifModule>
6. 301 Yönlendirme .htaccess Kodu
Eski sayfanızı tamamen farklı bir yeni sayfaya 301 yöntemi ile yönlendirmek için aşağıdaki kodu eklemeniz yeterlidir.

Redirect 301 /eski-sayfa.html /yeni-sayfa.html
301 yönlendirmesi ile www'siz sürümü www'li sürüme yönlendirmek için;

RewriteEngine on
RewriteCond %{HTTP_HOST} ^siteadresi.com [NC]
RewriteRule ^(.*)$ http://www.siteadresi.com/$1 [L,R=301,NC]
301 yönlendirmesi ile www'li sürümü www'siz sürüme yönlendirmek için;

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.siteadresi.com [NC]
RewriteRule ^(.*)$ http://siteadresi.com/$1 [L,R=301,NC]
301 ile alan adını değiştirerek yönlendirmek için;

RewriteEngine on
RewriteCond %{HTTP_HOST} ^eskisite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.eskisite.com [NC]
RewriteRule ^(.*)$ http://yenisite.com/$1 [L,R=301,NC]