Htaccess ile WWW Kaldırma / Ekleme

Merhaba arkadaşlar, benim her zaman problem yaşadığım bir konudur bu.. Her projemde de bunu uygularım.. Örneğin site adresini www ile belirlemişimdir.. Ancak www olmadan girince de site açıldığı için, ajax dosyamın yolu www ile belirlendiği için ajax’lar çalışmaz.. Bazı sunucularda www ile giriş yapıp, www’süz siteyi açtığında sanki giriş yapmamış gibi gözükür vs.. Bu tür sorunların önüne geçmek için ya www ile girmesini sağlayacağız kullanıcının ya da hiç www kullanmadan girmesini.. Nasıl yaparız?

Eğer anadizinde bir htaccess dosyanız varsa onu açın ya da bir tane oluşturun ve şunları ekleyin;

RewriteEngine on
RewriteCond %{HTTP_HOST} ^siteadi\.com [NC]
RewriteRule ^(.*)$ http://www.siteadi.com/$1 [L,R=301]

Yukarıdaki örnekte, nasıl girerse girsin her zaman www olarak yönlenecek.. Örn: ogretiyor.com olarak girin sizi www.ogretiyor.com’a yönlendirdiğini görebilirsiniz..

Bunun tam tersini nasıl yaparız? Yani www ile girse bile www ekini kaldıracak.. O zaman kodu şöyle değiştiririz;

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.siteadi\.com [NC]
RewriteRule ^(.*)$ http://siteadi.com/$1 [L,R=301]

Evet artık böyle bir problemimiz kalmadı, kolay gelsin 🙂

Yayınlayan

Tayfun Erbilen

2009'dan beri web işleriyle uğraşan, aynı zamanda amatör müziklede ilgilenen sıradan birisi..

“Htaccess ile WWW Kaldırma / Ekleme” üzerine 10 yorum

  1. bir arada 404 gibi özel sayfaların nasıl yapılacağını anlatırmısın tayfun. o da Htaccess il alakalıydı diye hatırlıyorum. 🙂

    teşekkürler.

  2. Tayfun mesela htaccess ile index of kaldırabiliyormuyuz ? site.com/images klasörüne girdiğin zaman listeleniyorya onu kaldırmak istiyorum.

  3. Htaccess ile dizine erişimi engelleyebilirsin şu şekilde;
    Order Deny,Allow
    Deny from all

    Bu kodu dosyalarına erişimi engellemek için hangi dizini istiyorsan orada htaccess oluşturup kodları yazıp atacaksın..

    Ancak bu şekilde sende kendi resimlerine vs. erişemezsin.. Bu işlemi genelde php dosyalarına erişimi yasaklamak için kullanıyoruz.. Php ile require edince çalışıyor ama direk linki girince çalışmıyor dosyalar.. Sen dizindekileri gizlemek için boş bir index.html atabilirsin.. http://www.uzmancevap.org/lib/theme/ gibi..

  4. @Adsız, o klasöre erişmeye çalıştığında Forbidden uyarısı verdirmek istiyorsan, "Options -Indexes" özelliğini kullanman gerekiyor. Directory Listing özelliğini kaldırır.
    Ya da benim kullandığım şöyle bir örnek vereyim sana;

    Order deny,allow
    Deny from all
    Allow from IP_Adresi
    Options -Indexes

    Burda ne olduğunu şöyle açıklayım kısaca sana;
    1. satırda yazdığımız kuralın hangi klasör için geçerli olacağını tanımladık.
    2. satırda Deny ve Allow yani izin verme, izin ver sırasını tanımlıyoruz. Buna göre ilk önce izin vermiyor, sonra da tanımladığımız değerlere izin veriyor.
    3. sırada gelen tüm requestlere dur diyoruz.
    4. satırda sadece belirlediğimiz ip adresinden gelen requestlere izin veriyoruz. Bunu şöyle de yapabiliriz;
    Mesela ip adresin 82.145.242.4,
    Allow from 82.145.242.4 dediğinde sadece senin IP adresine izin verecektir. Ya da kullandığın ip adresini belirtirsen, prefix olarak da verebilirim sana bu değeri, sadece senin kullandığın ISP üzerinden bu klasöre ulaşışabilir mesela. 82.145.242.0/24 dersen mesela senin subnetindeki bütün IP adresleri ulaşabilir bu klasöre.
    5. satırdaki options -indexes ile directory listing(klasör listeleme) özelliğini devre dışı bıraktık. Bu senin yapmak istediğindi.
    6. satırda açtığımız directory'nin kapanışı.

    Başka sorun olursa, seve seve yardımcı olayım.

  5. 1. ve 6. satırlar html tagi gibi algılandığından çıkmamış sanırım onları da açılış ve kapanışları olmadan yazıyorum:

    Directory "/www/***/***/***/wp-admin/"

    /Directory

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir