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. 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:
- SEO uyumlu link yapısı oluşturabilirsiniz.
- Hotlink engellemesi yapabilirsiniz.
- Dosyaları gizleyebilirsiniz.
- Hata sayfalarını düzenleyebilirsiniz.
- Klasör yetki sınırlandırmasını ayarlayabilirsiniz.
- Düşman botlarını engelleyebilirsiniz.
- WWW yapılandırması yapabilirsiniz.
- 301 yönlendirmeleri oluşturabilirsiniz.
- Tarayıcı önbelleğini yönetebilirsiniz.
- Erişim denetimi yapabilirsiniz.
- IP adreslerini engelleyebilir veya izin verebilirsiniz.
- URL yeniden yazma kuralları belirleyebilirsiniz.
- HTTPS yönlendirmeleri yapabilirsiniz.
- Gzip sıkıştırma ve önbellekleme ayarları yapabilirsiniz.
- Erişim loglarını yönetebilirsiniz.
- Dosya uzantılarını gizleyebilirsiniz.
- İzin verilen veya engellenen HTTP metotlarını belirleyebilirsiniz.
- MIME türlerini belirleyebilirsiniz.
- Spam botları ve kötü niyetli kullanıcıları engelleyebilirsiniz.
- 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?
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.
- Hosting firmanızın vermiş olduğu kullanıcı adı ve şifrenizi kullanarak cPanel giriş yapın
- “Dosya Yöneticisi” ikonuna tıklayarak dosya yöneticisini açın
3. Dosya yöneticisinde sağ üst köşede bulunan “Ayarlar” ikonuna tıklayınız.
4. Açılan pencerede “Gizli Dosyaları Göster” kutucuğu işaretli değilse işaretleyiniz.
5. .htaccess dosyanız varsa dizin içindeki dosya klasör listesinde görebilirsiniz.
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.
Kodlama Kontrolünü Devre Dışı Bırakmanızı tavsiye ediyorum. Bunu yapmamak öncelikle html dosyalarında türkçe karakter sorunları yaratabilmektedir.
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.
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.
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.
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
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; 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
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
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 (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
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]
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 ile Site Kopyalamayı Engelleme
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.