Htaccess Nedir?

Htaccess Nedir?

Htaccess Nedir? .htaccess (Hypertext Access) Apache Web Sunucularında (Linux Hosting) bulunan sunucu genel ayarlarından bağımsız olarak klasör bazlı değişiklikleri yapmaya imkan veren yapılandırma dosyasıdır.

Htaccess Nedir?

.Htaccess Nedir? Ne İşe Yarar
.Htaccess Nedir? Ne İşe Yarar

Htaccess Nedir? .htaccess (Hypertext Access) Apache Web Sunucularında (Linux Hosting) bulunan sunucu genel ayarlarından bağımsız olarak klasör bazlı değişiklikleri yapmaya imkan veren yapılandırma dosyasıdır. Bu dosya apache sunucularının ek işlevlerini etkinleştirebilir veya devre dışı bırakabilir. Örneğin bir klasöre parola koruması verebilmek, 404 sayfasının yapacaklarını ayarlamak gibi. Bu dosya sayesinde temel işlemler sunucu yeniden başlatılmadan site bazlı yapılabilmektedir.

Öncelikle .htaccess komut dosyasının tam adıdır, bir dosya uzantısı değildir. Yani dosyaadi .htaccess şeklinde bir dosya oluşturamazsınız. Apache Web Server yazılımında çalışır ve her hangi bir dizine yerleştirildiğinde etkili olur. Yerleştirildiği dizinin tamamını, bu dizin içindeki tüm dosyaları ve alt dizinleri etkiler. Bir sitede birden fazla .htaccess dosyası kullanılabilir.

DİKKAT! .htaccess Üzerinde Çalışmalar Yaparken Mutlaka Öncesinde .htaccess Dosyanızın Yedeğini Aldığınızdan Emin Olun.

Htaccess Ne İşe Yarar?

Bu dosya son zamanlarda bilinirliği oldukça artan, önemli ve kullanımı oldukça artmış bir dosyadır. Bunun en büyük sebebi ise SEO yani arama motoru optimizasyonunun öneminin artması ve WordPress sitelerinin yaygınlaşmasıdır. SEO, hız gibi işlemler için gerekli yapılandırmalar direkt bu dosya kullanılarak kolay bir şekilde yapılabilmektedir.

htaccess ile Neler Yapılabilir?

htaccess Dosyası İle Yapılabilecekler:

  1. SEO uyumlu link yapısı oluşturabilirsiniz.
  2. Hotlink engellemesi yapabilirsiniz.
  3. Dosyaları gizleyebilirsiniz.
  4. Hata sayfalarını düzenleyebilirsiniz.
  5. Klasör yetki sınırlandırmasını ayarlayabilirsiniz.
  6. Düşman botlarını engelleyebilirsiniz.
  7. WWW yapılandırması yapabilirsiniz.
  8. 301 yönlendirmeleri oluşturabilirsiniz.
  9. Tarayıcı önbelleğini yönetebilirsiniz.
  10. Erişim denetimi yapabilirsiniz.
  11. IP adreslerini engelleyebilir veya izin verebilirsiniz.
  12. URL yeniden yazma kuralları belirleyebilirsiniz.
  13. HTTPS yönlendirmeleri yapabilirsiniz.
  14. Gzip sıkıştırma ve önbellekleme ayarları yapabilirsiniz.
  15. Erişim loglarını yönetebilirsiniz.
  16. Dosya uzantılarını gizleyebilirsiniz.
  17. İzin verilen veya engellenen HTTP metotlarını belirleyebilirsiniz.
  18. MIME türlerini belirleyebilirsiniz.
  19. Spam botları ve kötü niyetli kullanıcıları engelleyebilirsiniz.
  20. Dosya yollarını yeniden yönlendirebilirsiniz.

Bu listede htaccess dosyası kullanılarak yapılabilecek bazı işlemler verilmiştir. Elbette htaccess dosyasıyla çok daha fazla işlem ve yapılandırma gerçekleştirilebilir, ancak bu liste genel olarak en sık kullanılan ve popüler olanları içermektedir.

htaccess Dosyası Nasıl Oluşturulur?

Microsoft NotePad’i kullanamazsınız
Microsoft NotePad’i kullanamazsınız

Notepad++ , UltraEdit, Microsoft WordPad ve benzeri herhangi bir iyi metin düzenleyicisini kullanarak bir .htaccess dosyası oluşturabilirsiniz. Microsoft NotePad’i kullanamazsınız bunun sebebi ise Microsoft Notepad’in ASCII desteğinin olmamasıdır. Htaccess PCRE (Perl Uyumlu Düzenli İfadeler) dilinde yazılmıştır.

Aşağıda WordPress kurulumundan sonra oluşan örnek .htaccess dosyasını bulabilirsiniz.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

htaccess Dosyası Nerede?

Eğer WordPress kullanıyorsanız .htaccess dosyası sunucunuzun kök dizininde olur. Fakat sunucunuza her hangi bir yükleme yapmadıysanız kök dizinde bu dosya olmayabilir. Normalde gizli modda olan bu dosyanın olup olmadığı öğrenmek için kullandığınız hosting panel yazılımından dosya yöneticisi bölümüne girip, gizli dosyaları göster demeniz gerekmektedir. Bu işlem cPanel kullanıcıları için aşağıdaki şekilde yapılmaktadır.

  1. Hosting firmanızın vermiş olduğu kullanıcı adı ve şifrenizi kullanarak cPanel giriş yapın
  2. “Dosya Yöneticisi” ikonuna tıklayarak dosya yöneticisini açın
    Cpanel Dosya Yöneticisi
    Cpanel Dosya Yöneticisinde Oturum Açın

    3. Dosya yöneticisinde sağ üst köşede bulunan “Ayarlar” ikonuna tıklayınız.

    Cpanel Gizli Dosyaları Göstermek
    Cpanel Gizli Dosyaları Göstermek için ayarlar ikonunu kullanınız

    4. Açılan pencerede “Gizli Dosyaları Göster” kutucuğu işaretli değilse işaretleyiniz.

    Cpanel Gizli Dosyaları Göster
    Gizli Dosyaları Göster kutucuğunu işaretleyiniz

    5. .htaccess dosyanız varsa dizin içindeki dosya klasör listesinde görebilirsiniz.

    .htaccess dosyanızı dizin içinde bulabilirsiniz

    Sunucunuzda .htaccess dosyanız varsa cPanel üzerinden düzenlemesi oldukça kolaydır. cPanel üzerinden dosyanızın içeriğini görmek veya düzenlemek için dosya üzerinde sağ tuşuna basınca açılan menüden “Düzenle” butonuna basmanız durumunda cPanel’in editörü açılacaktır.

Cpanel htaccess Dosyası Düzenleme
Cpanel htaccess Dosyası Düzenleme

Kodlama Kontrolünü Devre Dışı Bırakmanızı tavsiye ediyorum. Bunu yapmamak öncelikle html dosyalarında türkçe karakter sorunları yaratabilmektedir.

Kodlama Kontrolünü Devre Dışı Bırakma
Kodlama Kontrolünü Devre Dışı Bırakma

Bu işlemlerden sonra mevcut .htaccess dosyanızın içindeki kodlar karşınıza çıkacaktır. Bu online çalışan bir editördür ve bunu kullanmak basit olduğundan bir çok işinizi fazlasıyla hızlandırabilir. Değişiklikleri yaptıktan sonra kaydet butonuna basarak yaptığınız değişiklikleri aktif edebilirsiniz. Naçizane tavsiyem bu editörde online çalıştığınızı dikkate alarak değişiklik yapmadan önce orjinal dosyanın yedeğini alınız.

Cpanel Editör
Cpanel Editör

cPpanel Kullanarak .htaccess Dosyası Oluşturma

Yukarıdaki işlemleri yaptınız ve sunucuda .htaccess dosyası olmadığını gördünüz. Peki yeni .htaccess dosyasını nasıl oluşturacaksınız. Bunun yine en kolay yolu cPanel ile yeni bir dosya oluşturmaktır.

  • Cpanel’den oturum açtıktan sonra dosya yöneticisine tıklıyoruz.
  • Açılan sayfada soldaki klasör ağacını kullanarak “public_html” klasörüne tıklayarak bu klasörün içine giriyoruz.
  • Sol üst köşedeki “+Dosya” butonuna tıklıyoruz.
  • Açılan panelde dosya adı bölümüne .htaccess yazıp “Create new file” butonuna bastığınızda boş .htaccess dosyanızı oluşturabilirsiniz.
Boş .htaccess Dosyası Oluşturma
Boş .htaccess Dosyası Oluşturma

Bundan sonra bir önceki başlıktaki işlemleri uygulayarak dosyanızı düzenleyebilirsiniz.

.Htaccess dosyanız çalışmıyorsa, hosting şirketinize danışmalı ve hesabınızda .htaccess özelliğini etkinleştirdiklerinden emin olmalısınız. Bazı web barındırma şirketleri bu dosyayı izinsiz kullandırmayabilir.


htaccess Komutları

En çok kullanılan htaccess komutlarını aşağıda bulabilirsiniz.

htaccess ile Dizine Göz Atmayı Açma ve Kapama

Sunucu içindeki dizinlerin içeriklerinin gözükmesini istemiyorsanız en kolay yol dizin içine boş bir index.html dosyası oluşturmaktır. Fakat çok fazla klasörünüz varsa ve tek tek uğraşmak istemiyorsanız veya sadece belli dosya uzantılarının listelenmemesini istiyorsanız bu işlemi .htaccess dosyası ile yapabilirsiniz. Örnek bir dizin içindeki sadece .zip uzantılı dosyaların listelenmemesini isteyebilirsiniz.

Dizine Göz Atmayı Kapatma
Dizine Göz Atmayı Kapatma

Tüm dosyalar için dizin listesini kapatmak için;

IndexIgnore *

Sadece tek bir uzantıyı listelemeye kapatmak için (Örnek .zip dosyaları). Bu kod ile dizin içindeki zip dosyaları gizlenirken varsa diğer uzantılardaki dosyalarınız listelenecektir.

IndexIgnore *.zip

Birden fazla dosya uzantısı ile gizlemek için;

IndexIgnore *.zip *.jpg *.gif

Alternatif olarak, sunucunuz dizin listelerine izin vermiyorsa ve bunları etkinleştirmek istiyorsanız aşağıdaki kodu kullanabilirsiniz.

Options +Indexes


htaccess ile Klasör Yönlendirme

.htaccess ile Klasör Yönlendirme
.htaccess ile Klasör Yönlendirme

Bu web sitenizde bir klasörün içeriğini başka bir klasöre taşıdıysanız ve ziyaretçileri eski bağlantılardan yeni içerik konumuna yönlendirmek istiyorsanız kullanabileceğiniz bir yoldur. Aşağıdaki şekilde yapılır.

Redirect /eski_klasor/ http://www.alanadi.com/yeni_klasor/index.html

Yukarıdaki satırda Apache Web Sunucusuna, bir ziyaretçi ‘eski_klasor’ dizininde bulunan bir belge isterse, onu ‘yeni_klasor’ dizininde bulunan ‘index.html’ belgesini göstermesini söyledik. Burada dikkat ettiyseniz eski klasör içindeki herhangi bir belge istediğinde bu işlemi yap dedik. Bunu bir dosya veya komple bir alan adı yönlendirme ile karıştırmamak gerekiyor.

Bu işlem seo açısından sıkıntılı durumlar yapacağından 301 yönlendirmesi yapmak daha faydalı bir yol olacaktır.


htaccess ile Hata Sayfalarını Değiştirmek (401-404-500)

.htaccess ile Hata Sayfalarını Değiştirmek (401-404-500)
.htaccess ile Hata Sayfalarını Değiştirmek (401-404-500)

htaccess ile Hata Sayfalarını Değiştirmek; Bir ziyaretçi sitenizde olmayan bir adresi çağırdığında veya bir sayfanızın adresini değiştirdiğinizde karşısına “404 not found” gibi sunucu tarafından hazır sayfalar çıkmaktadır. Bu sunucu taraflı sayfa yerine sizin özel olarak hazırlamış olduğunuz hata sayfasını ziyaretçiye göstermek isterseniz bunu .htaccess tarafından basit bir şekilde yapabilirsiniz. Örnek: htaccess 404 sayfası bulunamadi.html adında özel bir hata sayfası hazırladığınızı var sayıyorum.

Eğer bu sayfa kök dizinde yer alıyorsa .htaccess dosyanıza eklemeniz gereken kod;

ErrorDocument 404 bulunamadi.html

Eğer bir klasör içinde yer alıyorsa örnek /klasoradi/bulunamadi.html

ErrorDocument 404 /klasoradi/bulunamadi.html

Yukarıdaki örneği dikkate alarak sunucu taraflı diğer hata kod sayfalarını da belirlemek mümkündür. Değiştirmek istediğiniz hata sayfası (.html veya .htm uzantılı) için bir dosya hazırlayıp bu dosyayı sunucunuzda yüklediğiniz yola uygun olarak .htaccess dosyanıza ekleyiniz.

ErrorDocument 401 /klasoradi/401_hata_sayfasi.html
ErrorDocument 404 /klasoradi/404_hata_sayfasi.html
ErrorDocument 500 /klasoradi/500_hata_sayfasi.html

Bu tarz kişiselleştirilmiş size özgün hata sayfaları hazırlayarak ziyaretçilerinize güven telkin edebilirsiniz. Sitenize SEO açısından katkısı da olacaktır.


htaccess ile Başlangıç Sayfasını Belirleme

.htaccess ile Başlangıç Sayfasını Belirleme
.htaccess ile Başlangıç Sayfasını Belirleme

Normalde web sitesi dizinlerinde sunucuların ilk olarak okuduğu ve işleme aldığı sayfa index.htm’dir. Bazı zamanlarda veya güvenlik sebebiyle sunucunun ilk olarak başka bir dosyayı okumasını ve işleme almasını isteyebilirsiniz. Örneğin dönemsel bir kampanyanız olabilir. Yada sitenize ilk girişte bir duyuru sayfası eklemekte istemiş olabilirsiniz. Eğer bunu değiştirmek isterseniz .htaccess dosyanıza aşağıdaki kodu eklemeniz yeterli olacaktır. Ben koda basla.html olarak belirttim siz kendinize göre bunu uyarlamalısınız.

DirectoryIndex basla.html

htaccess ile 301 Yönlendirmesi

En yaygın .htaccess 301 yönlendirme komutlarını aşağıda bulabilirsiniz.

Web sitenizdeki tek bir sayfayı başka bir sayfaya yada başka bir web sitesine yönlendirmek için;

[su_note note_color=”#ffffd8″]Redirect 301 /eski-sayfa.html /yeni–sayfa-adi.html[/su_note]

http veya https olarak farklı kaynaklardan hedeflere 301 yönlendirme yapabilirsiniz.

[su_note note_color=”#ffffd8″]Redirect 301 /eski-sayfa.html https://www.siteadiniz.com/eski-sayfa.html[/su_note]

Tüm Web sitesini başka bir web sitesine yönlendirme

Web sitenizin link yapısını bozmadan web sitenizin alan adını değiştirmek için en sık kullanılan ve arama motoru dostu yöntemdir. Eski web sitenizin tüm sayfalarını birebir olacak şekilde yeni web sitenize kalıcı olarak yönlendirir.

[su_note note_color=”#ffffd8″]Redirect 301 / https://yenisiteniz.com[/su_note]

Bu yöntemle https://www.eskisiteniz.com/xxx.html ve bunun gibi binlerce alt sayfanız https://www.yenisiteniz.com/xxx.html ve binlerce alt sayfa şeklinde kalıcı yönlenmiş olacaktır.


.htaccess ile Dosya ve Dizinlere Erişimi Engelleme

htaccess ile Dosya ve Dizinlere Erişimi Engelleme
htaccess ile Dosya ve Dizinlere Erişimi Engelleme

Sitenizdeki bir dizine erişimi botlara veya istenmeyen backlinkler ile gelen trafiğe göre engelleyebilirsiniz. Bu engellemeyi ip adresi veya yönlendiren site adresi bazında yapabilirsiniz. Bu işlem robotx.txt dosyasını dikkate almayan botlar içinde kullanılabilecek bir yoldur…

Engellemek istediğiniz dizine .htaccess adında bir dosya oluşturup aşağıdaki kodları bu dosyaya ekleyerek bu işlemi gerçekleştirebilirsiniz.

Dizine tüm erişimi kapatmak isterseniz;

deny from all # DİZİNE TÜM ERİŞİMİ KAPATMA

Sadece belli bir IP adresi veya IP bloğundan erişime izin vermek isterseniz aşağıdaki kod ile bu işlemi gerçekleştirebilirsiniz.

deny from all # DİZİNE TÜM ERİŞİMİ KAPATTIK
# TEK IP ADRESİNE İZİN VERDİK. İZİN VERİLECEK IP ADRESİNİ AŞAĞIYA YAZMALISINIZ.
allow from 192.168.1.10  
# IP BLOĞUNA İZİN VERDİK. İZİN VERİLECEK IP BLOĞUNU AŞAĞIYA YAZMALISINIZ.
allow from 192.168.1.0/24

Bazı durumlarda klasör içindeki tek bir dosyaya erişimi kapatmak isteyebilirsiniz. Bu durumda aşağıdaki kodu kullanabilirsiniz.

<Files gizli.html>
Order allow,deny
Deny from all
</Files>

htaccess ile Klasöre Parola Koyma

Web sitesinin bir dizinini veya tamamını erişime kapatabilir, sadece kullanıcı adı şifreyi bilen kişilerin buraya erişmesini sağlayabilirsiniz. Bu özellik yetki verilen kullanıcın klasöre erişim bilgilerinin yer aldığı .htpasswd dosyası ile birlikte kullanılır. Bu güvenli dizinler için giriş arayüzü web tarayıcıları tarafından otomatik olarak gerçekleştirilir. Parolalar, oturum açma kimlik bilgilerinin güvende tutulmasını sağlayan en iyi şifreleme yöntemlerinden biri kullanılarak şifrelenir.

Başlamak için, hangi dizini parola ile korumak istediğinize karar verin. Unutmayın bu işlem uygulayacağınız dizin altındaki tüm dosya ve klasörleri kapsayacaktır.

Aşağıdaki metni içeren bir .htaccess dosyası oluşturun (.htaccess dosyası oluşturma)

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user

Burada sadece .htpasswd dosyasının tam yolunu değiştirmeniz gerekmektedir.

Oluşturacağınız .htpasswd dosyasına aşağıdaki kodu ekleyerek parola ile korumak istediğiniz klasöre yükleyiniz.

seocu:$apr1$rFmq0fUC$Pq/X3Qlj1i5qzshMEK8kt1

Bu kod ile oluşturduğumuz kullanacı adı seocu parolası ise 123456 ‘dır. Kendinize uygun şifrelenmiş parola oluşturmak için bu linki kullanabilirsiniz.

Birden fazla kullanıcıya yetki vermek istiyorsanız .htpasswd dosyasının her satırına bir kullanıcı adı ve şifresi olacak şekilde yazabilirsiniz.

Parola korumalı bir dizin ayarlamak sadece üyelere özel bir alan sunmanız aynı zamanda web sitenizi ziyaret edenleri izlemek ve web sitesinde bir topluluk hissi oluşturmak için mükemmel bir yoldur. Ziyaretçilerin içeriğe erişmek için kayıt olmalarını isteyerek, ziyaretçileriniz hakkında bilgi toplayarak bu bilgileri dijital pazarlama stratejinizde kullanabilirsiniz.

Bu işlemin kötü yanı ise çıkış yapma butonu gibi bir seçeneğin olmamasıdır. Kullanıcı tarayıcı kapatıncaya kadar oturum açma bilgileri web tarayıcısında önbelleğe alınır. Tarayıcı kapatılıp tekrar açıldığında, giriş bilgileri önbellekten silinir ve açılır pencere yeniden görüntülenir.


htaccess ile Dosya Türlerinin Belirlenmesi

.htaccess ile Dosya Türlerinin Belirlenmesi
.htaccess ile Dosya Türlerinin Belirlenmesi

.htaccess (Hypertext Access) Apache Web Sunucularında (Linux Hosting) bulunan sunucu genel ayarlarından bağımsız olarak klasör bazlı değişiklikleri yapmaya imkan veren yapılandırma dosyasıdır. Bu dosya kullanılarak bazı sunucu bazlı yapılandırmalar kısa yoldan bir siteye, klasöre özgün yapılabilir. Bu işlemlerden bir tanesi .htaccess ile Dosya Türlerinin Belirlenmesi ‘dir.

MIME türleri bir dosyanın ne olduğunu veya hangi dosya uzantılarının hangi dosya türlerine başvurduğunu belirler. Örneğin, ‘.html’ dosya uzantısı HTML belgesine, ‘.zip’ dosya uzantısı ZIP arşiv dosyasına işaret eder. Sunucunun bunu bilmesi gerekir, böylece dosyayla nasıl başa çıkılacağını bilir. Bu genellikle yaygın dosya türleri için özel dosya uzantısı oluşturmak için kullanılır.

Bir MIME türü ayarlamak için, aşağıdaki metni içeren bir .htaccess dosyası oluşturabilirsiniz.

AddType text/html .html .htm

Nokta isteğe bağlıdır ve uzantılarda büyük küçük harf duyarlı değildir.
örneğin Bunun yerine: AddType görüntü / jpeg .jpeg .jpg .jpe .JPG
bunu kullanabilirsiniz: AddType görüntü / jpeg jpeg jpe jpg jpe”

İşte çeşitli MIME türlerinin ve bazı ilişkilerin bir listesi;

AddType text/html .html .htm 
AddType text/plain .txt 
AddType text/richtext .rtx 
AddType text/tab-separated-values .tsv 
AddType text/x-setext .etx 
AddType text/x-server-parsed-html .shtml .sht 
AddType application/macbinhex-40 .hqx 
AddType application/netalivelink .nel 
AddType application/netalive .net 
AddType application/news-message-id 
AddType application/news-transmission 
AddType application/octet-stream .bin .exe 
AddType application/oda .oda 
AddType application/pdf .pdf 
AddType application/postscript .ai .eps .ps 
AddType application/remote-printing 
AddType application/rtf .rtf 
AddType application/slate 
AddType application/zip .zip 
AddType application/x-mif .mif 
AddType application/wita 
AddType application/wordperfect5.1 
AddType application/x-csh .csh 
AddType application/x-dvi .dvi 
AddType application/x-hdf .hdf 
AddType application/x-latex .latex 
AddType application/x-netcdf .nc .cdf 
AddType application/x-sh .sh 
AddType application/x-tcl .tcl 
AddType application/x-tex .tex 
AddType application/x-texinfo .texinfo .texi 
AddType application/x-troff .t .tr .roff 
AddType application/x-troff-man .man 
AddType application/x-troff-me .me 
AddType application/x-troff-ms .ms 
AddType application/x-wais-source .src 
AddType application/x-bcpio .bcpio 
AddType application/x-cpio .cpio 
AddType application/x-gtar .gtar 
AddType application/x-shar .shar 
AddType application/x-sv4cpio .sv4cpio 
AddType application/x-sv4crc .sv4crc 
AddType application/x-tar .tar 
AddType application/x-ustar .ustar 
AddType application/x-director .dcr 
AddType application/x-director .dir 
AddType application/x-director .dxr 
AddType application/x-onlive .sds 
AddType application/x-httpd-cgi .cgi 
AddType image/gif .gif .GIF 
AddType image/ief .ief 
AddType image/jpeg .jpeg .jpg .jpe .JPG 
AddType image/tiff .tiff .tif 
AddType image/x-cmu-raster .ras 
AddType image/x-portable-anymap .pnm 
AddType image/x-portable-bitmap .pbm 
AddType image/x-portable-graymap .pgm 
AddType image/x-portable-pixmap .ppm 
AddType image/x-rgb .rgb 
AddType image/x-xbitmap .xbm 
AddType image/x-xpixmap .xpm 
AddType image/x-xwindowdump .xwd 
AddType audio/basic .au .snd 
AddType audio/x-aiff .aif .aiff .aifc 
AddType audio/x-wav .wav 
AddType audio/x-pn-realaudio .ram 
AddType audio/x-midi .mid 
AddType video/mpeg .mpeg .mpg .mpe 
AddType video/quicktime .qt .mov 
AddType video/x-msvideo .avi 
AddType video/x-sgi-movie .movie 
AddType message/external-body 
AddType message/news 
AddType message/partial 
AddType message/rfc822 
AddType multipart/alternative 
AddType multipart/appledouble 
AddType multipart/digest 
AddType multipart/mixed 
AddType multipart/parallel 
AddType x-world/x-vrml .wrl

htaccess ile Dosya Türlerinin Belirlenmesi


WWW veya WWW Olmadan Yönlendirme

.htaccess ile www. Yönlendirme
.htaccess ile www. Yönlendirme

Kullanıcılar ziyaret ettikleri web sitelerine 2 farklı adres kullanarak erişebilir. Örnek www.seolog.com.tr veya sadece seolog.com.tr şeklinde. 2 farklı şekilde de erişilen site aynıdır ve kullanıcı gözüyle bu pek önemli olmayan bir durumdur. Fakat teknik durumlar devreye girdiğinde bu aslında bir web master veya seo uzmanı için sıkıntılı bir durumdur. Ayrıca arama motorları için karışıklık yaratabildiği için bu durumu onlarda sevmez. Nasıl karışıklıklar olabilir? Arama motorları neden sevmez? Bunları isterseniz yazının sonunda okuyabilirsiniz.

Ayrıca site adresinizde www kullanmalı mısınız yoksa kullanmamalı mısınız? Bu konu hakkındaki yazıyıda okumanızda fayda var. “Olmak (www.seocu.org) yada olmamak (seocu.org) işte bütün mesele bu”

Web sitenizin ftp dizininde bulunan .htaccess dosyasını bir editör yardımı ile (wordpad, notepad+ vb gibi. gelişmiş bir editör ile açabilirsiniz. Klasik notepad ile .htaccess dosyasını düzenleyemezsiniz.) açarak istediğiniz kullanıma uygun kodları eklemeniz gerekmektedir. Ayrıca Cpanel kullanıcıları bu işlemi Cpanel içindeki dosya yöneticisi ile kolaylıkla yapabilir.

!Unutmayın bu işlemlere başlamadan önce .htaccess dosyanızın yedeğini almakta fayda var. Aşağıdaki örnek bizim web site adresimiz ve sitenizde SSL sertifikası olması durumunda kullanabileceğiniz örnektir. Lütfen bunlara dikkate alarak kendi web sitenize göre kodlarda gerekli değişiklikleri yapmayı unutmayın. 

.htaccess dosyası yardımı ile site adresinizin www ile başlamasını sağlamak

Sonuç: http://www.seolog.com.tr
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.seolog\.com.tr
RewriteRule (.*) http://www.seolog.com.tr/$1 [R=301,L]

.htaccess dosyası yardımı ile site adresinizin www olmadan başlamasını sağlamak

Sonuç: http://seolog.com.tr
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.seolog\.com.tr$
RewriteRule ^(.*)$ http://seolog.com.tr/$1 [L,R=301]

Yukarıdaki kodlarda kendi site adresimiz yazdığını fark etmişsinizdir. Kendi web site adresine göre düzenlemeyi unutmayın. Ayrıca bu kodlar http protokolüne göre verilmiştir. Sitenizde SSL bulunuyorsa http yazan yeri https olarak düzenlemelisiniz.

Tüm linkleri HTTP’den HTTPS’ye Yönlendirme

Aşağıdaki kodu kullanarak web sitenize http ile gelen istekleri otomatik olarak https’ye çevirebilirsiniz.

RewriteEngine On
RewriteCond %{SERVER_PORT} !=443
RewriteRule ^ https://www.seolog.com.tr%{REQUEST_URI} [NS,R,L]

Siteme www ile veya www olmadan erişilmesi durumunda ne gibi sıkıntılar olabilir?

  • Arama motorları bu durumu sevmez çünkü sitenizdeki sayfalarınızı www ile veya www olmadan 2 kez indeksleyebilir. İndexlemesi durumunda arama motoru kullanıcılara hangi yapıyı göstereceğinden emin olamayacağı için sitenizi hiç göstermeyebilir. Diğer yandan botlara ekstra iş yükü bindirdiğiniz içinde sizi sevmezler. İçerikler aynı ve sadece adres satırındaki yapının belirsizliği yüzünden 2 kez sitenizde gezecekler. Onların zamanı kıymetli ve sizinle fazla uğraşmaktansa hiç uğraşmamayı tercih etmeleri daha yüksek bir olasılıktır.
  • Sitenizde caching eklentisi kullanıyorsanız bunlarda sorun çıkabilir.

Kötü Bot (Spam) ve Engelleme

.htaccess ile Kötü Bot Engelleme; Kötü botlar aslında web sitenizi ziyaret eden, içeriği kopyalayan, güvenlik açığı arayan veya e-posta adreslerini tarayan programları ifade eder. Arama motorlarının botları ile karıştırmamak gereklidir. Bu botlar bilinen arama motoru botlarının aksine robots.txt dosyasında belirtilen kuralları dikkate almaz hiçe sayarlar. Direkt bir zararları olmasa da gereksiz trafik yükü ve kafa karışıklılığı meydana getirir. Gereksiz trafik sunucu bazlı maddi kayıpların oluşmasını da sağlar. Aşağıda, bazı yaygın “kötü botların” nasıl engelleneceğine dair faydalı bir örnek görebilirsiniz.

Aşağıdaki kodu .htaccess dosyanıza ekleyerek sitenize gelen kötü botları engelleyebilirsiniz. Ayrıca aşağıdaki listede olmayan botları yorum bölümüne eklerseniz sevinirim.

RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] 
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:[email protected] [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,L]

SPAM Trafiği Engelleme

İstenmeyen Yönlendirmeleri Engelleme; Bu trafik genelde web sitenizin trafiğinin arttığı fakat ziyaretçi sayılarında artma olmadığı durumlar için kullanılabilir. Çünkü bu durumda bir anormallik vardır. Belki biri sitenizi hacklemeye çalışıyor bile olabilir. Not, bu işlevsellik sunucunuzda mod_rewrite‘ın etkin olmasını gerektirir.

Yukarıdaki kodlar arama motoru botları için kullanabileceğiniz kodlardı. Diğer yandan anti seo teknikleri içinde en çok başvurulan yolların başında gelen bot ziyaretçi yönlendirme durumlarında ise aşağıdaki kodları deneyebilirsiniz. Aşağıdaki kod ile trafficbot4free.com sitesinden sürekli gelen bot ziyaretçileri engelledik.

RewriteEngine on
RewriteCond %{HTTP_REFERER} trafficbot4free\.club [NC]
RewriteRule .* - [F]

Eğer bot ziyaretçiler birden farklı domain üzerinden geliyorsa bu durumda aşağıdaki kodları kullanmalısınız. Dikkat etmeniz gereken son satırdaki alan adı hariç ekleyeceğiniz tüm spam yapan alan adlarını [NC,OR] ile bitirmek.

Site log dosyalarınızı inceleyerek gereksiz trafik kaynağı olan web adreslerini bulabilir ve bu siteden gelen trafiği engellemek için aşağıdaki kodları .htaccess dosyanıza ekleyebilirsiniz.

RewriteEngine on
RewriteCond %{HTTP_REFERER} trafficbot4free\.club [NC,OR]
RewriteCond %{HTTP_REFERER} alanadi\.com [NC,OR]
RewriteCond %{HTTP_REFERER} alanadi\.com [NC,OR]
RewriteCond %{HTTP_REFERER} alanadi\.com [NC,OR]
RewriteCond %{HTTP_REFERER} alanadi\.com
RewriteRule .* - [F]
Yukarıdaki kodta dikkat etmeniz gereken ilk alan adında kullandığımız [NC,OR] komutudur. Her alan adından sonra bu kodu eklemeniz son alan adında ise eklememelisiniz.

Site Kopyalamayı Engelleme

Son zamanlarda uygulanan diğer anti seo tekniklerinden biride sitenizin birebir kopyasını oluşturmaktır. Bunu da o kadar başarılı bir şekilde yapıyorlar ki web siteniz sanki başka bir alan adında çalışıyormuş gibi oluyor. Sitenizde yaptığınız en ufak değişiklikten anında diğer kopya sitede de gözüküyor. Kaynak kodlara baktığınızda ise görseller, css, java gibi dosya türklerinin kaynağı sizin site olarak gözüküyor.

Bu durum için açıkçası tam bir araştırma yapamadım hangi teknikleri kullanıyorlar onuda bilmiyorum. Bir kaç teorim var daha deneme fırsatı bulamadım ancak hotlink koruması geçici bir süre içinde olsa buna bir çözüm olabilir.

Hotlink Nedir? Hotlink kısa tanımı sizin sitenizdeki dosyalarınızın başka bir sitede kullanılmasıdır. Bunu içeriği kopyalama olarak algılamama gerekir. Örnek sitenizdeki bir görsel başka bir sitede gösterilir ama görselin yolu sizin sitenizdir. Bu durumda diğer site sizin trafiğinizden çalışıyordur ve siz bunun farkına bile varmazsınız. Bu genellikle diğer web sitelerinin resimlerinizi göstermesini önlemek için kullanılsa da işi bir adım öteye götürüp sitenizin JavaScript veya CSS  dosyalarınızı kullanan kişilerin önlenmesinde de kullanılabilir.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?seocu\.org/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpg|gif|bmp|png)$ https://siteadresiniz.com/gostereceginiz_gorsel.gif [L]

Yukarıdaki örnekte gif, jpg,bmp ve png dosyalarının başka sitelerde bizim site yolumuzu kullanarak kullanılmasını engellemiş olduk. Son satırda ise eğer kullanırlarsa karşılarına çıkmasını istediğimiz bir görselin adresini yazdık.

DİKKAT! .htaccess Üzerinde Çalışmalar Yaparken Mutlaka Öncesinde .htaccess Dosyanızın Yedeğini Aldığınızdan Emin Olun.

Fiyat Teklifi Al

Aşağıdaki formu doldurarak ajansımızdan online fiyat teklifi alabilirsiniz. Sizlere daha net cevap verebilmemiz için lütfen bilgilerinizi eksiksiz giriniz. 

SEO_Teklifi_Popup_Form