Hypertext access diğer bir deyişle .htaccess; web sunucu yapılandırmalarından bağımsız bir yönetime imkan veren, belirli bir web sunucusunun destek sağladığı, dizin seviyesinden yapılandırma dosyalarına verilen isimdir. Web dizin içinde bulunan .htaccess web sunucusunun yapılandırma ayarlarından bazılarının içerisinde yer aldığından dizin için geçersiz görerek yeni kuralların ilave edilebilmesini sağlayabilmektedir.
.htaccess dosyası her bir klasöre erişimi ayrı ayrı kontrol edebilmektedir. Herhangi bir klasöre parola koruması eklenmesi gibi işlemlerin yanı sıra içerik türleri, karakter setleri, CGI uygulayıcıları ve birçok düzenleyici parametre içerebilmektedir. Birçok farklı ağ sunucusunun kullandığı .htaccess dosyası kullanılarak site hızı ayarlanabilir, güvenlik sağlanabilir, dosya koruma ve SEO uygulama gibi işlemler yapılabilir.
Erişim kurallarının yeniden yazılması için kullanılan kod ile arama motorları için gereken kuralları yazmayı sağlayan kod farklı olmakla birlikte bu kodlar kullanılarak web sitelerinde birçok değişiklik yapılması mümkündür. 100’den fazla komutu kullanma imkanı veren .htaccess dosyası ile istenmeyen ziyaretçiler yasaklanabilir, kısıtlama ve yetkilendirme işlemleri yapılabilir.
htaccess Dosyası Nerede Bulunur?
Web sayfasının ana doküman dizininde bulunabilen .htaccess dosyasının görüntülenebilmesi için;
- cPanel yönetim paneline giriş yapılmalı,
- Dosya yöneticisi simgesinin üzerine tıklanmalı,
- “Gizli Dosyaları Göster” seçeneği işaretlenmeli,
- Doküman Dizini seçilerek “Git” butonuna tıklanmalıdır.
- Bu işlemlerden sonra .htaccess dosyası public_html klasörünün altında düzenlenip görüntülenebilir.
Dosyanın ana dizin içinde ya da diğer dizinlerde yer almaması durumunda kullanıcı “.htaccess” ismiyle kendisi yapabilir ve kodlarını girebilir.
htaccess Hangi Amaçlar İçin Kullanılmalıdır?
.htaccess dosyasının kullanılmasıyla Apache gibi ağ sunucusu tarafından kullanılmakta olan web alanları üzerinde ayar değişimlerinin yapılması mümkün olmaktadır. Bu sayede web sitesinde her tür değişim, yetki ve kısıtlama işlemleri yapılabilmektedir. .htaccess dosyası aracılığıyla herhangi bir kod bilgisi gereksinimi olmaksızın web siteleri için .htaccess dosyası oluşturmak mümkündür.
.htaccess dosyası kullanılarak;
- SEO uyumlu link yapısı oluşturmak,
- Dosya engellemek,
- Hotlink engellemesi yapmak,
- Hata sayfalarını düzenlemek,
- Klasör yetki sınırlandırmalarını ayarlamak,
- Düşman botlarını engellemek,
- www yapılandırması yapmak,
- Dosya şifrelemesi ve şifre koruması gibi güvenlik işlemlerini yapmak,
- IP engellemek,
- Domain yönlendirmesi yapmak,
- Verileri sıkıştırarak optimize etmek,
- Bakım sayfası oluşturmak,
- Spamları engellemek,
- iPhone algılama ve yönlendirme yapmak mümkündür.
htaccess Dosyası Nasıl Kullanılır ve Nerede Bulunur?
.htaccess dosyasına cPanel ya da FTP üzerinden erişim sağlanarak istenilen şekilde değişiklik yapılabilmektedir. Yeni dosya oluşturma işlemi;
# BEGIN HTTPS Redirection
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/[0-9]+..+.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}.txt(?: Comodo DCV)?$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# END HTTPS Redirection şeklinde yapılır.

htaccess Nasıl Kullanılır?
.htaccess dosyanın tam adı olup dosya uzantısı anlamına gelmemektedir. Örneğin ‘dosyaadı. Htaccess’ isimli bir dosya meydana getirilmezse dosya yalnızca ‘.htaccess’ olarak isimlendirilmektedir.
UltraEdit, Microsoft WordPad, TextPad ya da benzer metin düzenleyiciler kullanılarak .htaccess dosyası kullanılabilir. .htaccess dosyası ASCII modunda yüklenmelidir. ASCII ve BINARY veri aktarımında kullanılan farklı yöntemler olup .htaccess dosyaları ASCII modunda aktarılmalıdır. FTP yazılımının varsayılanı BINARY olacağı için menülerin içerisinde Trans Mode ya da Trans Type seçenekleri aranmalıdır. .htaccess dosyası üstünde etkili olması istenilen dizin dosyasına yüklenmelidir.
Yüklenen .htaccess dosyasının web sitesindeki dosyalar için dizin listelerinde görünmemesi söz konusu olabilir. Bu FTP yazılımının ya da sunucunun izleyeceği anlamına gelmekte olup sorun teşkil eden bir durum değildir. Bununla birlikte .htaccess dosyasındaki dosya izinlerinin doğru bir şekilde ayarlanmaması bazı hatalara yol açabilir. Dosya izinlerinin her zaman “755” olması gerekir. Bu durumda .htaccess dosyası işe yaramazsa web barındırma şirketi ya da sistem yöneticisi ile iletişime geçilmeli ve hesaptaki .access etkin hale getirilmelidir.
.htaccess dosyası kullanılırken çok dikkatli olunmalı ve yanlış kod yazılımlarının web sitesine zarar verebileceği göz ardı edilmemelidir. Eksik ya da yanlış kodlar kullanılması yapılan işlemin ters etki yaratmasına neden olabilir. Eğer SEO uyumu sağlanırken hata yapılırsa arama motoru bu durumu algılamaz ve yeniden düzenleme yapılması gerekir. Bu nedenle yapılacak her işlem için tamamen doğru ve eksiksiz kodlar girmeye özen gösterilmelidir.
.htaccess dosyasının doğru bir şekilde kullanılması web siteleri açısından son derece yararlıdır. Bu dosya dijital dünyanın kurallarına uygun bir web sitesine sahip olma noktasında son derece avantajlıdır. .htaccess dosyası herhangi bir web sitesi için güvenlik ayarlarından SEO uyumuna kadar gerekli olan tüm işlevleri sağlar. Web sitelerinde bulunan tüm verileri internet kurallarına uygun bir hale getirmesi nedeniyle web sitesinin çok daha kullanışlı bir hale gelmesinde önemli bir rol oynar.
Özel 404 Sayfaları ve .htaccess
Özel 404 sayfalarının yapılması son derece yararlı bir durumdur. URL sayfasının çalışmaması durumunda web sitesi kullanıcılarına hata mesajı iletilebilir. “404 Dosya Bulunamadı” hatası vermek yerine olası çözümleri açıklayan ve web sitesi içeriğine yönlendiren bir 404 sayfası görüntülenmesi sağlanabilir. Özel hata belgelerinin ayarlanabilmesi için şu adımlar izlenerek .htaccess dosyası meydana getirilmelidir.
htaccess ve Yönlendirme
Web sitesi kullanıcılarının web sitesinde bulunan herhangi bir belgeden bir diğerine yönlendirilmesi yeniden yönlendirme ile sağlanır. Bu durum özellikle web sitesi içeriğinin bir başka yere taşındığı ve eski bağlantılardan yeni içerik konumuna kullanıcıların yeniden yönlendirilmek istendiği durumlarda yararlıdır.
htaccess Kullanımı İle İlgili Bazı Örnek Komutlar
.htaccess dosyasına girilen komutlar .htaccess dosyasının bulunduğu dizini ve altındakileri etkilediğinden .htaccess dosyasının oluşturulduğu dizin konusunda çok dikkatli olunmalıdır.
Klasörlere erişimin engellenmesi istenilen durumlarda klasörün içinde .htaccess dosyası oluşturulur. İçine;
#deny all access
deny from all yazılmalıdır. Söz konusu klasöre yalnızca belirlenen IP adresiyle ve IP bloğu tarafından erişilmesi isteniyorsa;
#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 yazılmalıdır.
Tek bir dosya erişimi için;
<Files private.html>
Order allow,deny
Deny from all
</Files>
Bir klasördeki dosyaların listelenmesi için .htaccess dosyasına şunlar yazılmalıdır:
Options +Indexes +MultiViews +FollowSymlinks
<ifmodule mod_autoindex.c>
IndexOptions FancyIndexing
</ifmodule>
Klasördeki öntanımlı listenin iptal edilmesi için;
IndexIgnore * yazılmalıdır.
Sitenin bandwidth’inin yani bant genişliğinin korunabilmesi için PHP özelliklerinden biri olan veri sıkıştırmadan yararlanılabilir. Bunun için;
<ifModule mod_php4.c>
php_value zlib.output_compression 16386
</ifModule> komutu kullanılır.
Belirli dosyalara erişimin engellenmesi için Files direktifiyle birlikte Regular Expression kullanmak mümkündür. Bu şekilde konfigürasyon dosyalarına, robots.txt’ye ya da loglara erişimin engellenmesi için;
<Files ~ “^.ht”>
Order allow,deny
Deny from all
Satisfy All
</Files> yazılabilir.
Ziyaretçilerin 404: Sayda Bulunamadı hatasıyla karşılaşacakları durumda istenilen bir dosyaya yönlendirme sağlanması için;
ErrorDocument 404 /errors/notfound.html yazılmalıdır.
Hotlinking’in engellenmesi için;
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+.)?siteniz.com[NC]
RewriteRule .*.(zip|mp3|avi|wmv|mpg|mpeg)$ http://www.siteniz.com/img/nohotlink.gif [R,NC,L]
</ifModule> yazılması gerekir.
htaccess Dosyasının SEO Üzerindeki Etkisi
Kalıcı URL yönlendirmeleri olan 301 yönlendirmeleri web kullanıcılarını ve arama motoru botlarını değiştirilen sayfalara yönlendirir. Böylece arama motorları eski ve yeni web sayfalarını aynı anda taramak zorunda kalmayacağı için içerik sorununun yaşanması söz konusu olmaz.
.htaccess Dosyası Düzenlerken Dikkat Edilmesi Gerekenler
Sunucu yapılandırmalarını yönetmek için bu dosya kritik bir rol oynar. Düzenleme yapmadan önce mevcut kod yapısını dikkatle incelemek, yanlış bir komutun tüm siteyi erişilemez hale getirmesini engeller. Yazım hataları veya eksik karakterler, sunucu tarafında anında zincirleme hatalara yol açabilir.
Dosya içerisindeki komutların sırası, kuralların çalışma mantığını doğrudan etkiler. Özellikle yönlendirme kurallarını eklerken, daha genel kuralların daha özel kurallardan önce gelmediğinden emin olun. Her değişikliği yaptıktan sonra sitenizin farklı sayfalarını kontrol ederek fonksiyonelliğin korunduğunu teyit edin.
.htaccess Dosyası Hataları ve Çözüm Yöntemleri
Yanlış yapılandırılmış bir dosya, web sitenizin ziyaretçilere kapanmasına neden olan en yaygın sebeplerden biridir. Hataları tespit etmek için genellikle sunucu hata günlüklerini (error logs) incelemek en hızlı yoldur. Hangi satırın hataya sebep olduğunu bulduğunuzda, o satırı devre dışı bırakarak sorunu giderebilirsiniz.
Sözdizimi hatalarının yanı sıra, sunucuda desteklenmeyen bir modülün çağrılması da ciddi sorunlar yaratır. Eğer bir kuralın çalışmadığını fark ederseniz, sunucu konfigürasyonunuzun o komutu destekleyip desteklemediğini kontrol edin. Basit bir yazım yanlışı bile sitenizin yanıt vermesini durdurabilir.
500 Internal Server Error Hatası Nasıl Düzeltilir?
Bu hata, sunucunun isteği yerine getiremediği durumlarda ortaya çıkan genel bir mesajdır. Genellikle htaccess dosyası içerisindeki geçersiz bir komut veya yanlış bir yazım formatı bu duruma sebebiyet verir. Çözüm için dosyadaki son yaptığınız değişiklikleri geri almayı deneyin.
Eğer hata devam ediyorsa, dosyanın içeriğini tamamen temizleyip sunucuyu test edin. Sorun düzelirse, hata veren komutu parça parça ekleyerek suçlu satırı tespit edebilirsiniz. Unutmayın, sunucu tarafındaki bu tür kritik hatalar genellikle yapılandırma çakışmalarından kaynaklanır.
.htaccess Dosyası Yedekleme Neden Önemlidir?
Sunucu ayarlarını değiştirmek, her zaman bir risk barındırır. Bir hata yaptığınızda eski haline dönebilmek için htaccess dosyası yedeğini elinizde bulundurmak hayati önem taşır. Yedekleme sayesinde, dakikalar içinde sitenizi stabil çalışan eski durumuna döndürebilirsiniz.
Düzenleme yapmadan hemen önce dosyanın bir kopyasını bilgisayarınıza indirmek veya sunucuda farklı bir isimle saklamak en güvenli yöntemdir. Bu basit alışkanlık, olası bir çökme anında büyük bir stres ve zaman kaybını önler. Güvenli bir yönetim süreci için yedekleme, her zaman ilk adım olmalıdır.
.htaccess ve Mod_Rewrite Modülü İlişkisi
Apache sunucularda URL yapısını özelleştirmek için kullanılan en güçlü araç Mod_Rewrite modülüdür. htaccess dosyası içindeki RewriteRule komutları, bu modülün aktif olması sayesinde çalışır. Mod_rewrite, karmaşık URL’leri daha okunabilir ve SEO dostu hale getirmenize olanak tanır.
Eğer sunucunuzda bu modül etkinleştirilmemişse, yazdığınız yönlendirme kuralları hiçbir işe yaramayacaktır. Mod_rewrite sayesinde, dinamik parametreleri içeren URL’leri statik görünümlü linklere dönüştürebilirsiniz. Bu ilişki, modern web sitelerinin URL yapısını yöneten temel mekanizmadır.




