Sitemizde 15 kategori'de 712 adet yazı yazılmış ve 223 yorum bulunmaktadır.

Şub 082017
 

Vereceğim bilgiler Linux tabanlı serverlarda .htaccess kullanımıdır. Hostunuzdaki bu dosyayı iyi kullanırsanız siteniz üstünde hem tam hakimiyet sağlarsınız, hemde tam verimli hale getirirsiniz. Site dosyalarınız içindeki en önemli dosyalardan birisidir.

Buyrun hemen başlayalım olaya..

Çok basit kodlar oluşturarak oldukça başarılı işler yapabilir ve satır satır kodlarla kafamız allak bullak olmadan hız kazanabiliriz. Nasıl mı? Bir okuyun…

Klasörlerinize şifre koymak, hot link korumas, IP banlama, site banlama, index klasörünü değiştirmek, yönlendirme yapmak ve .html uzantılı dosyalarda php kodlarını çalıştırmak gibi işlemleri yapabilmemizi sağlayan bir özellik. Nasıl yapıldığını tarif edeyim.

Şifre korumalı klasör yapalım.

Önce iki tane dosya yaratıyoruz sunucuda. Bunlardan birinin adı .htpasswd diğerinin adı .htaccess

.htaccess dosyası:
İçeriğine aşağıdaki kodları ekliyoruz.

[syntax=”apache”]AuthUserFile /home/fizikselpath/.htpasswd (fiziksel path sunucudaki yoldur, kalın harflileri kullanın)
AuthGroupFile /dev/null
AuthName EnterPassword
AuthType Basic

require user kullanici1[/syntax]

.htpasswd dosyasının içeriği

kullanici1:şifre (Belirlediğiniz şifre)

Bu iki dosyayı sunucumuzda hangi klasöre atıyorsak o klasör şifreleniyor.


IP Banlama yapalım

Sunucunuzun root klasöründe .htaccess adlı bır dosya yaratalım ve içine şu kodları yazalım.

[syntax=”apache”]order allow,deny
deny from 123.45.6.7
deny from 012.34.5.
deny from IP ADRESİ
deny from IP ADRESİ
allow from all[/syntax]

Bu kodlara yeni satırlar ekleyerek ban işlemini gerçekleştirebilirsiniz.


Referrer engelleme ile flood’un önüne geçelim

Bazı proxyler kullanılarak sitenize saldırı olabilir. Refferrer kayıtlarını alıp domainleri .htaccess ile banlayarak flood saldırılarından kurtulmanız mümkün.

[syntax=”apache”]RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} engellenensite\.com [NC,OR]
RewriteCond %{HTTP_REFERER} digerengellenensite\.com
RewriteRule .* – [F][/syntax]

Bu satırları çoğaltarak domain sayısını arttırın.


Hot link koruması yapalım

Özellikle download ve mp3 sitesi yapan arkadaşların çok işine yarar diye düşünüyorum. Aşağıdaki kodları dosyalarınızın olduğu klasörün içinde .htaccess adlı boş bir döküman yaratıp içine yerleştirin. Dosyalarınızı sizin siteniz dışından hiç kimse alamaz.

[syntax=”apache”]RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?sizinsiteniz.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css\mp3\zip\rar\exe)$ – [F][/syntax]

Son satırdaki dosya uzantıları kısmına farklı uzantılar ekleyebilir yada bulunanlardan çıkartma yapabilirsiniz. Size kalmış bu durum.


Hata sayfalarımızı özelleştirme

Bilirsiniz, ziyaretçiler Web sitenizde bir sayfayı bulamayınca ya da bir server hatası olunca karşımıza (çoğu zaman İngilizce) bir hata sayfası çıkar. Bu sayfaları kendi web sayfanızın tasarımına uygun olarak özelleştirmek isterseniz? En sık karşılaşılan hata mesajları 404 Sayfa Bulunamadı ve 500 Server Hatası’dır.

Şimdi, bir .htaccess dosyası açıp içine aşağıdaki kodları yazın:

ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

Sonra 404.html ve 500.html olarak iki tane sayfa hazırlayın (içine istediğiniz gibi yazılarınızı ve tasarımınızı yerleştirin) ve hazırladığınız tüm dosyaları sunucunuza yükleyin. Şimdi web sitenizde bir sayfa bulunamadığında ya da bir hata olduğunda karşınıza sizin özel hazırladığınız sayfalar çıkacak! html dosyalarına başka isimler de verebilirsiniz, 404.html ve 500.html yazmanız şart değil. Ama dosya adlarını .htaccess kodunda da değiştirmelisiniz.


Bir sayfayı başka bir sayfaya yönlendirme

Diyelim ki Web sitenizdeki bir sayfayı daha önceden birçok insan bookmark etmiş ve sürekli ziyaret ediyor. Ama siz bu sayfanın dizinini değiştirmek istiyorsunuz ve bunu yaptığınızda ziyaretçilerin eski sayfa adresine gittiğinde “Sayfa görüntülenemiyor!” mesajını almasını istemiyorsunuz.


Bunun için .htaccess kodumuz:

Redirect /eski klasör/eski.html http://www.sitenizin adresi.com/yeni klasör/yeni.html

Yukarıdaki kodu kendi bilgilerinize göre özelleştirip web sitenize yükleyin.


Html dosyaları php kodlarını yorumlasın!

Bildiğiniz gibi php kodları ancak .php uzantılı web sayfalarında çalışır. Pekiyi diyelim ki .html uzantılarıyla 100 sayfalık bir site yaptınız, ve bir gün sitenizde php kullanmaya karar verdiniz… Şimdi bütün sayfaların uzantılarını ve sayfalar arasındaki linkleri tümden değiştirmeniz mi lazım? Şüphesiz hayır.

AddType application/x-httpd-php .html

htaccess dosyasına yazacağınız bu kod sayesinde .html uzantılı dosyalarınız php kodlarını sorunsuz olarak çalıştıracaktır.

Eğer isterseniz .html yerine başka uzantı da yazabilir ya da birden fazla uzantıya php kullanımı için izin verebilirsiniz.

AddType application/x-httpd-php .html .htm .txt


Html sayfalarımda SSI çalışsın!

SSI (Server Side Include) Apache serverin sunduğu bir başka muhteşem özelliktir. Bu özellik sayesinde bir sayfayı bir başka sayfa içinde tek satır kod yazarak görüntülemek mümkündür.

Eğer aksini belirtmezseniz bu özellik sadece .shtml ve .shtm uzantılı sayfalarda çalışır. Bu özelliği normal .html uzantılı dosyalarınızda kullanmak isterseniz…

AddType text/html .shtml
AddHandler server-parsed .html
Options Indexes FollowSymLinks Includes

Kodunu .htaccess dosyanıza yazmanız yeterlidir! İkinci satır sonundaki .html sunucuya (.html uzantılı dosyalarda SSI özelliğini kullan) der. İkinci satırdaki kodu başka uzantılar içinde ekleyerek bu özelliği diğer sayfalarınıza da verebilirsiniz:

AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .htm
Options Indexes FollowSymLinks Includes


Ana sayfamızı değiştirelim!

Web tarayıcınıza Web adresinizi yazdığınızda karşınıza ilk çıkan sayfa index.htm, index.html, default.htm gibi, sunucu tarafından önceden tanımlanmış default sayfadır.

Pek iyi diyelim ki sitenizin ana sayfasında güncelleme yapıyorsunuz ve bu süre içinde sitenizi kapatmak istemiyorsunuz. Ne yapacaksınız? Efendim? İndex sayfanızın adını mı değiştireceksiniz? Yok hiç gerek yok!

DirectoryIndex dosyaadı.html

Bu kodu ziyaretçilerin sitenize girdiği zaman ilk görmesini istediğiniz sayfaya göre değiştirin ve siz arka planda rahat rahat çalışın… İşiniz bitince .htaccess dosyasını siliverin.


Dizinin görüntülenmesini engelleyin

Bazı sunucularda eğer bir dizinde bir index sayfası bulunmuyorsa o dizin içindeki tüm dosyalar alt alta Web tarayıcısında görünür! Bu özellikle herkesin erişmesini istemediğimiz sayfaların bulunduğu (örneğin şifrelerimizin yazılı olduğu bir dosya olabilir) dizinlerde büyük bir güvenlik açığı yaratır. Hatayla index sayfasını silerseniz, başınıza iş açabilirsiniz. Bu sorunu engellemek için, aşağıdaki kodu özelleştirin ve korumak istediğiniz dizine yükleyin:

IndexIgnore *

Eğer bu dizinde sadece jpeg ve gif uzantılı resim dosyalarının görüntülenmesini istiyorsanız o zaman;

IndexIgnore *.gif *.jpg

yazın (Aynı formatta istediğiniz gibi bu satıra uzantı ekleyebilirsiniz).


İstemediğiniz kişiler sayfanıza girmesin

Bazı dizinlerinize herkesin ulaşmasını istemeyebilirsiniz.

order allow,deny
deny from 123.45.6.7
deny from 012.34.5.
allow from all

Bu satırlar şu anlama geliyor… Bu dizindeki sayfalara Internete 123.45.6.7 ve 012.34.5. IP numarası ile bağlanan kişiler giremesin, diğer herkes girsin! IP numaraları superonline, ttn.net gibi bir servis sağlayıcı ile Internet’e bağlananlar için sürekli değişir, ancak kendi serverlarından bağlanan şirketler, kişiler için sabittir. İsterseniz kodu şöyle de yazabilirsiniz:

order allow,deny
deny from .superonline.com
allow from all

Bu şekilde sitenize superonline üzerinden erişimi engellemiş olursunuz (bunu neden yapmak gereği duyacağınızı sormayın, benim işim kodları anlatmak.)

Ya da;

order allow,deny
deny from all
allow from .superonline.com

yazarak sitenize sadece superonline üzerinden erişim sağlayabilir, diğerlerini bloke edebilirsiniz. Bu, özellikle sabit IP ile kendi serveri ile İnternete bağlanan bir şirkette, sadece çalışanların görmesi için bir dizin yaratmak için iyi bir alternatiftir (örnek: allow from .sirketiniz.com.) .htaccess ile şifre ile girilen sayfalar yaratmak, site abone sistemleri yaratmak da mümkün. Ancak işin bu tarafını da anlatmak için en az bir bu kadar sayfaya daha ihtiyaç var efenim.


Not: Eğer .htaccess dosyası ile yaptığınız değişikliğin tüm Web siteniz için geçerli olmasını istiyorsanız, bu dosyayı Web sitenizin ana dizinine yüklemelisiniz. Yok hayır, sadece bir klasör içindeki dokümanları etkilesin diyorsanız o zaman yüklemeyi ilgili klasöre yapacaksınız.


About Adnan DAN

Aslında çokta özel biri değilim.. Biraz ukala olduğumu söylerler.. Bildiğimi anlayabilen insanlara sunmayı severim.. Sürekli sorgulama modundayım.. Neden dünyadayız, nereye gideceğiz, bu kadar basitmi yaşamak, vs. vs.. Cevaplarını bulamadığım onlarca sorum var.. Gerçekten dost bildiğim insanların sayısı bir elimin parmaklarının sayısını geçmez.. Onlarca insan arasında kendimi hep yanlız hissederim.. Ben insanım.. Adımı Adnan koymuşlar, soyadımsa zaten otomatik olarak eklenmiş DAN olarak.. Kuralları sevmem.. Ama uymak zorunda olduğumuda bilirim.. Sevmediğim öyle çok şey yapıyorumki, bu bana mutsuzluk veriyor çok zaman.. Birini sevmeyi, aşık olmayı, ona güvenmeyi çok istiyorum.. Olmayınca olmuyor, zorlamıyorum.. Hayat garip.. Ben o gariplik içinde yüzen biriyim işte..
background