Hypertext Access yani .htaccess dosyası, Apache Web
sunucuları ve diğer bir çok sunucu tarafından kullanılan ve web alanı üzerinde
çeşitli komutlar yardımıyla ayarların değiştilmesine ve yapılandırılmasına
olanak sağlayan bir doysa olarak karşımıza çıkmaktadır.
.htaccess dosyası web sitesinin ana dizininde bulunur. Web
sitenizin ana dizininde böyle bir dosya bulunmuyor ise ve siz bir .htaccess
dosyası kullanmak istiyorsanız web sitenizin ana dizininde bir metin belgesi
açarak adını .htaccess olarak değiştirmeniz yeterlidir.
Fakat kapsamlı bir bilgiye sahip değilseniz .htaccess
dosyasını kullanırken çok dikkatli olmanız gerekmektedir. .htaccess dosyasının
genel kullanılış biçimlerinden bir kaç örnek aşağıda sıralanmıştır.
404 Hata Sayfaları
Hazırladığınız internet sitesini yayınlamaya başladığınız
andan itibaren sizin hatalarınız yada elinizde olmayan nedenlerden dolayı
hatalar oluşabilir. Bu hataların en başta geleni 404 kodlu hatadır. 404 kodlu
hata yani sayfa bulunamadı hatası, ziyaretçi internet siteniz üzerinde bir URL
ye tıkladığında bu URL bulunmuyor ise yada bozulmuş bir sayfa ise 404 kodlu
sayfa bulunamadı hatası ile karşılaşır. İnternet siteniz üzerinde bulunabilecek
bu hata sayfalarını düzenlemek için .htaccess dosyası içinde şu kodlama yapısını
kullanabilirsiniz.
ErrorDocument
404/hata/bulunamadi.html
Bu kod ile sayfanızda 404 hatası sayfa bulunamadı hatasıyla
karşılaşan bir kullanıcıyı siteadiniz.com/hata/bulunamadi.html
sayfasına yönlendirecektir.
500 Dahili Sunucu Hatası (Internal Server Error)
İnternet sitenizde bulunabilecek sunucu hataları genellikle
kodlamalardan kaynaklanan hatalardır. Ziyaretçileri sunucu hataları ile
karşılaştıklarında 404 sayfa bulunamadı hata sayfası gibi bir başka URL'ye
yönlendirilebilirler.
ErrorDocument
500/hata/sunucuhatasi.html
Bu kod ile sunucu hatası ile karşılaşan bir kullanıcı siteadiniz.com/hata/sunucuhatasi.html sayfasına
yönlendirilecektir.
401 Yetki Gerekliliği Hatası (Authorization Required)
401 hata kodu internet siteniz üzerinde şifre ile korunmuş
bir sayfaya şifresiz olarak giriş yapılmaya çalışıldığında karşılaşılan hata
sayfasıdır.
ErrorDocument
401/hata/yetkisizgiris.html
Şifre ile koruduğunuz bir sayfaya giriş yapılmak
istenildiğinde az önce bahsettiğimiz gibi bir yönlendirme işlemi gerçekleştirmenizi
sağlamaktadır.
403 yasaklanmış sayfa (Forbidden Page)
Web sitenizi oluşturan dosyaların yetki izinleri (CHMOD) kısıtlanmış sayfalara ulaşılmak
istenildiğinde karşılaşılan sayfadır.
ErrorDocument 403/hata/yasaklanmissayfa.html
Web siteniz için giriş yapılmasını yasaklamak istediğiniz
sayfalara ulaşılmak istenildiğinde yönlendirilecek sayfayı göstermektedir.
Hotlinking
İnternet siteniz üzerinde bulunan medya dosyalarının diğer
sitelerden erişilmesini istemediğiniz durumlarda kullanılır. Web sitenizin bant
genişliğinin (bandwidth) yeterli olmadığını düşündüğünüz zamanlarda aşağıdaki
kodlar yardımıyla diğer sitelerin belirtilen dosyalara ulaşmasını
engelleyebilirsiniz.
<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>
Bu kod yardımı ile siteniz dışından zip,mp3,avi,wmv ve mpeg
uzantılı dosyaların çağırılmasını engellemiş olursunuz. Siteniz dışından bu
dosyalara ulaşmak isteyen tüm istekler, ulaşılmak istenilen dosya yerine
nothotlink.gif adlı dosyaya ulaşacaktır. Ancak bilinmesi gereken bir durum
bulunmaktadır. Siteniz üzerinde bulunan resim dosyalarına erişimi engellediğiniz
de FeedBurner gibi siteler üzerinde resimleriniz gösterilmeyecektir. Bu sebep
ile kod yapısını kullandığınız da dikkat etmeniz ne yaptığınızı iyi biliyor
olmanız gerekmektedir.
Kötü Niyetli Botları Engelleme
Bazı botlar sitenizi indeksleme dışında başka amaçlar
taşıyabilir. Bu türdeki botları engellemek için aşağıdaki kodu .htaccess
dosyanız içinde kullanabilirsiniz. Listede bulunan botlar arasında ekleme ve
çıkarma yapabilirsiniz.
NOT: Botlar sadece örnek amaçlıdır.
<IfModule mod_rewrite.c>
RewriteEngine On
RewRiteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewRiteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewRiteCond %{HTTP_USER_AGENT} ^Download\Demon [OR]
RewRiteCond %{HTTP_USER_AGENT} ^Zeus [OR]
RewriteCond.*-[F]
</ifModule>
Yukarıda belirttiğimiz kodlar yardımıyla belirlediğiniz
botların web sitenize ulaşmasını engelleyebilirisiniz. Eğer isterseniz de
aşağıdaki kodlar yardımıyla botları bir başka URL'ye yönlendirebilirsiniz.
RewriteEngine On
RewRiteCond %{HTTP_USER_AGENT} ^BadBot [OR]
RewRiteCond %{HTTP_USER_AGENT} ^EvilScraper [OR]
RewRiteCond %{HTTP_USER_AGENT} ^FakeUser [OR]
RewriteRule^(.*)$http://go.away
Bu kod yardımı ile siteye gelen BadBot veya belirtilen diğer isimlerde gelen botlar olduğunda bu
botlar var olmayan http://go.away
adresine yönlendirilecektir.
Bir Tek Siteyi Engellemek
İnternet sitenize gelen trafik konusunda bazı durumlarda bir
tek siteden gelen trafiği engellemek durumunda kalabilirisiniz. Bunu sağlamak
için kullanabileceğiniz kod şu şekildedir.
RewriteEngine On
RewriteCond %{HTTP_REFERER} istenmeyensite\.com [NC]
RewriteRule.*-[F]
Birden Fazla Siteyi Engellemek
Trafiğin gelmesini engellemek istenilen site sayısı birden
fazla ise aşağıdaki kodu kullanabiliriz.
RewriteEngine On
RewriteCond %{HTTP_REFERER} istenmeyensite\.com [NC,OR]
RewriteCond %{HTTP_REFERER} istenmeyensite2\.com [NC]
RewriteRule.*-[F]
Ref-Link Saldırısını Önlemek
Arama motorları üzerinden web sitenize gelen bağlantılarda
?ref= şeklinde bir bağlantı bulunuyor ve sonrasında tanımadığınız bir site adı
bulunuyorsa web sitenize Ref-Link saldırısı yapılıyor olabilir. Bu saldırıların
amacı web siteniz üzerinden bir rant kazanmaktır. Bu durumu engellemek için
aşağıdaki kodu kullanabilirsiniz.
RewriteCond %{THE REQUEST} \?(ref=.*)?\ HTTP [NC]
RewriteRule.? http://www.siteadiniz.com%{REQUEST_URI}?[R=301,L]
Bu kod ile sitenize gelen ve ?ref= ile başlayan bağlantıları istemediğinizi belirtmiş
olacaksınız.
301 Canonical (non-www - to-www)
http://siteadiniz.com ile http://www.siteadiniz.com
adresleri arama motorları tarafından birbirinden farklı adresler olarak
görülür. Her ne kadar iki URL de aynı içeriğe ulaşmamızı sağlasa da bu tür URL
ler yenilenen içerik (duplicated Content) olarak algılanabilir. Böyle bir durum
arama motorları tarafından istenmediğinden içeriklerinizi tek bir URL altında
yayınlanmasını sağlamalısınız. Web sitenizin http://www.siteadiniz.com gibi
"www" ile kullanılmasını istiyorsanız aşağıdaki kodu
kullanabilirsiniz.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.siteadiniz|.com$
RewriteRule(.*) http://www.siteadiniz.com/$1 [R=301,L]
bu kod sayesinde http://siteadiniz.com/sayfabasligi.html
şeklinde gelen tüm URL'ler http://www.siteadiniz.com/sayfabasligi.html
şeklinde bir URL'ye dönüştürülecektir.
301 Yönlendirme (Tek Sayfa)
Web sitenizde bulunan bir tek URL'yi başka bir URL'ye
yönlendirmek istediğinizde aşağıdaki kodu kullanabilirsiniz
.
Redirect /kategori/eskisayfa.html
http://siteadiniz.com/kategori/yenisayfa.html
301 Dizin Yönlendirme
Web sitenizde bulunan bir dizini başka bir dizine yönlendirmek
istediğinizde aşağıdaki kodu kullanabilirsiniz.
Redirect /eskidizin
http:siteadiniz.com/yenidizin
Hypertext Access yani .htaccess dosyası kullanımı internet
siteleri için oldukça önemlidir. Doğru bir şekilde kullanıldığında web sitesi
için faydalı olabileceği gibi bilinçsizlikle yada yeteri kadar bilgi sahibi
olmadan Hypertext Access yani .htaccess dosyası içerisinde değişiklikler yapmak
web sitenizin zararına olacaktır.
Yazılarınızı okuyarak bilgi sahibi oluyoruz. Güzel ve açıklayıcı paylaşımınız için teşekkürler hocam
YanıtlaSilhocam teşekürler güzel bir makale bir sorum var benim sitemde seo sef link yaptım single.php de sorunsuz çalışıyor ama site üzerindeki başka klasörlere girdiğimde hata veriyor ve index.php deki resimleri yazıları listeliyor
YanıtlaSil