.htaccess (hypertext access) dosyası, bir web sunucusunun çeşitli isteklere nasıl yanıt vereceğini kontrol eden bir yapılandırma dosyasıdır. Bu, sunucuyu yalnızca .htaccess dosyasının bulunduğu dizinde yapılandırdığı anlamına gelir. Çoğu ticari web barındırma sağlayıcısı tarafından kullanılan popüler Apache web sunucusu da dahil olmak üzere birkaç web sunucusu tarafından desteklenir.

.htaccess dosyası, belirli bir dizin için sunucu yapılandırmalarını ayarlamanıza olanak tanır. Bu, web sitenizin kök dizini,  /images veya /downloads dizini olabilir.

.Htaccess Nasıl Çalışır?

.Htaccess dosyası web sunucusundaki bir dizine yerleştirilir. Bu işlem yapıldıktan sonra, bu dizinden bir istek yapıldığında Apache web sunucusu tarafından yürütülür. “/ public_html” gibi bir sitenin kök dizinine .htaccess dosyası yerleştirmek yaygındır. Bu, tüm web sitesi için web sunucusunu yapılandırır. .Htaccess dosyalarını bir alt dizine yerleştirmek çok yaygın değildir, ancak bazı özel kullanımları vardır.

Diğer Apache yapılandırma dosyaları gibi .htaccess dosyasının da yukarıdan aşağıya doğru okunduğunu bilmeniz gerekir. Bu, üstteki konfigürasyonların alttakilerden önce yürütüleceği anlamına gelir. Doğru ve verimli çalıştığından emin olmak için kurallarınızın sırasına dikkat etmeniz gerekir.

.Htaccess dosyası bir sunucu yapılandırma dosyası olduğundan, bir yazım hatası sunucunuzun yanlış yapılandırılmasına neden olabilir. Bu da, web sitenizin çalışmamasına sebep olur.

.htaccess Dosyasına Nasıl Erişebilirsiniz?

blank

Apache’de (web sunucunuzu destekleyen yazılım), .htaccess adlı tüm dosyalar gizlenecek şekilde yapılandırılmıştır. 

Neden mi? 

Çünkü bu dosyalar önemli yapılandırma bilgilerine sahiptir ve sunucunuzun güvenliğini aşmak için kullanılabilir.

Dosya gizli olsa da, .htaccess dosyası, genellikle web sitenizin public_html klasöründe bulunur.

.Htaccess dosyanıza birkaç farklı yoldan erişebilirsiniz:

  • Barındırma hesabınızın dosya yönetiminden (cPanel gibi)
  • Bir sFTP veya FTP istemcisinden

.Htaccess dosyanızı public_html klasörünüzde görmüyorsanız, “Gizli Dosyaları Göster (Show Hidden Files)” seçeneğini işaretlemeniz gerekebilir.

.Htaccess dosyasını açtığınızda, aşağıdaki gibi görünmelidir:

blank

.Htaccess Dosyasının Yaygın Kullanım Alanları

.Htaccess dosyası için birkaç kullanım durumu vardır. En yaygın örnekler aşağıdakileri içerir:

  • Belirli URL’ler için yeniden yönlendirmeler ekleme
  • 404 sayfaları gibi özel hata sayfaları yükleme
  • Sitenizi HTTP yerine HTTPS kullanmaya zorlama
  • Sunucunuzdaki belirli dizinleri parola ile koruma
  • Hotlinking’i önleme
  • Domain değişikliği sonrasında yönlendirme ekleme

.Htaccess dosyalarını kullanmak, sunucunuzu yönetmek için güçlü bir araçtır, ancak yanıltıcı olabilir. .Htaccess dosyalarını düzenlemeye başlamadan önce sunucunuzda değişiklik yapmayı bildiğinizden emin olun.

Yukarıda açıkladığımız şeylerden herhangi birini denemeden önce, .htaccess dosyasının ve tüm WordPress web sitenizin, bir WordPress yedekleme eklentisiyle yedeğini almanız gerekir. .Htaccess dosyanızda değişiklik yapma konusunda hala rahat değilseniz, bir web sitesi geliştiriciden yardım almanızda fayda var.

Birden Fazla .htaccess Dosyasını Kullanma

Birden çok .htaccess dosyası kullanarak sunucunuzdaki farklı dizinlere farklı ayarlar uygulayabilirsiniz. Teorik olarak, bir düz metin dosyası oluşturup yükleyerek sunucunuzdaki herhangi bir dizinde .htaccess dosyası oluşturabilirsiniz.

Bu konuyla ilgili unutmamanız gereken birkaç nokta aşağıdaki şekildedir:

  • Genel olarak, sunucunuzdaki .htaccess dosyalarının sayısını en aza indirmeniz gerekir, çünkü çok fazla yapılandırma sunucunuzu yavaşlatabilir.
  • Sunucunuz bir dizinde bir .htaccess dosyası gördüğünde, tüm ana dizinlerde de .htaccess dosyalarını arar ve bu da sunucu kaynak kullanımını artırır.
  • Dosya yolunda daha yukarıda bulunan .htaccess dosyaları her zaman önceliklidir.

.Htaccess Dosyası Düzenleme

.Htaccess dosyanızı düzenlemeniz gerekiyorsa, mevcut dosyayı FTP istemcinizi kullanarak veya cPanel gibi barındırıcınızın dosya erişim sistemi aracılığıyla indirmeniz gerekir.

Web sitenizin .htaccess dosyası zaten önemli ayarlar içeriyor olabilir. .Htaccess dosyanızın mevcut ayarları varsa, yeni kodu zaten var olana ekleyin.

Mevcut .htaccess dosyasını boş olmadıkça veya silmenin uygun olduğundan kesinlikle emin olmadıkça silmeyin.

.Htaccess Dosyası ile URL’ler Nasıl Yeniden Yönlendirilir?

Alan adlarını değiştirmeye veya sitenizin organizasyonunu değiştirmeye karar verirseniz, web sitesi ziyaretçilerinizin kafasının karışmamak için URL yönlendirmeleri ayarlayabilirsiniz. Bunu yapmanın en kolay yolu .htaccess dosyaları kullanmaktır.

.Htaccess dosyanızı düzenlemek için, dosyayı kendiniz yeniden oluşturmanız ve SFTP kullanarak sunucuya yüklemeniz gerekir.

1. SFTP aracılığıyla sunucunuzda oturum açın.

2. .htaccess dosyanızı bulun ve indirin. Genellikle içerik klasörünüzde bulunur. Bir .htaccess dosyanız yoksa, yapılandırmalarınızı tutmak için bilgisayarınızda .htaccess adlı bir dosya oluşturabilirsiniz.

3. Dosyayı favori metin düzenleyicinizle açın.

4. Aşağıdaki satırları dosyanıza ekleyin

# enable basic rewriting

RewriteEngine on

5. Yeni yapılandırmalarınızı .htaccess dosyasına kopyalayıp yapıştırın ve dosyayı kaydedin.

6. Bunu, .htaccess dosyanızı orijinal olarak aldığınız dizine geri yükleyin.

7. Web sitenize gidip yeniden yönlendirmek istediğiniz sayfaları görüntüleyerek çalışmanızı test edin.

.Htaccess ile URL Yeniden Yazma

Yeniden yazma yeniden yönlendirmeye benzer, çünkü hedef bir URL’yi başka bir URL’ye yönlendirir. Ancak bu, aslında trafik işlenirken web sunucusu tarafından dönüştürülür.

En yaygın URL yeniden yazma, siteleri URL’de www olan veya olmayan URL’lere sahip olmaya yönlendirir.

  • WWW Olmayan Site Adreslerini Yönlendirme

Aşağıdaki bilgiyi .htaccess dosyanıza eklediğinizde, www.niobehosting.com yazan tüm ziyaretçiler niobehosting’e gönderilecektir.

Options +FollowSymLinks 

RewriteEngine on 

RewriteCond %{HTTP_HOST} . 

RewriteCond %{HTTP_HOST} !^niobehosting\.com 

RewriteRule (.*) http://niobehosting.com/$1 [R=301,L]

niobehosting.com’u alan adınızla değiştirin. Farklı bir üst düzey alanınız varsa (ör. .com yerine .net veya .org), “.com” yerine o üst düzey alanı kullanın. Doğru söz dizimi için gerekli olduğundan “\” işaretini kaldırmayın.

  • .Htaccess ile WWW ile Başlayan Site Adreslerini Yönlendirme

Options +FollowSymLinks 

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^niobehosting.com [NC] 

RewriteRule ^(.*)$ http://www.niobehosting.com/$1 [L,R=301]

niobehosting.com’u alan adınızla değiştirin. Farklı bir üst düzey alanınız varsa (ör. .com yerine .net veya .org), “.com” yerine o üst düzey alanı kullanın. Doğru söz dizimi için gerekli olduğundan “\” işaretini kaldırmayın.

.Htaccess ile Tek Bir Sayfa İçin 301 Yönlendirmesi Yapma

1. Bir .htaccess dosyası oluşturmak için, not defterini açın, dosyayı adlandırın ve .htaccess olarak kaydedin.

2. Sunucunuzda zaten bir .htaccess dosyası varsa, düzenlemek için masaüstünüze indirin.

3. Bu kodu .htaccess dosyanıza yerleştirin:

redirect 301 /old/old.htm http://www.you.com/new.htm

4. .htaccess dosyasında zaten kod satırları varsa, bir satırı atlayın ve ardından yukarıdaki kodu ekleyin.

5. .htaccess dosyasını kaydedin

6. Bu dosyayı sunucunuzun kök klasörüne yükleyin.

7. Değiştirdiğiniz sayfanın eski adresini yazarak test edin.

.Htaccess ile Özel bir 404 Hata Sayfası Oluşturma

Bir 404 sayfası, aslında bir web sitesinde bulunmayan sayfalar için görüntülenen bir hata mesajıdır. Bir 404 sayfası yerine genellikle “Sayfa Bulunamadı” yazar, ancak web sitesi ziyaretçilerine daha iyi bir deneyim sunmak için özelleştirilmiş eğlenceli 404 sayfaları örneklerini de bulabilirsiniz.

Hata sayfaları herhangi bir web sitesinin parçasıdır. Ne olursa olsun, web sitesi ziyaretçileri bazen hata sayfalarıyla karşılaşır. Özel hata sayfaları kullanırsanız, bir hata sayfasını komik 404 sayfalarla olumlu bir deneyime dönüştürebilirsiniz.

Hata sayfalarınızı ayarlamadan önce, hata sayfalarınızı oluşturmanız gerekir. Bunu istediğiniz gibi yapabilirsiniz (bir site oluşturucu kullanarak veya başka bir yolla sayfanızı elle kodlayarak). Hata sayfanızı oluşturmayı tamamladığınızda, sunucunuza yüklenebilmesi için dosyayı kaydedin.

Artık özel hata sayfalarını ayarlamak için web sitenizin .htaccess dosyasını düzenleyebilirsiniz:

1. .htaccess dosyanızı düzenlemeden önce, özelleştirilmiş hata sayfalarınızı sunucunuza yükleyin. Bunu SFTP ile yapabilirsiniz. Bu dosyaları web sitenizin içerik dizinine koyun.

2. Seçtiğiniz FTP programını kullanarak SFTP aracılığıyla sunucunuzda oturum açın.

3. Özel hata sayfalarını kullanmak istediğiniz alan adına karşılık gelen .htaccess dosyasını indirin.

4. Bu dosyayı bir metin düzenleyicide açın ve aşağıdaki bilgileri ekleyin.

# serve custom error pages 

ErrorDocument 400 /errors/400.html

5. /Errors/400.html’yi, yüklediğiniz bir hata sayfasının dosya yolu ile değiştirin. Bu örnekte 400 hatası için “400” vardır.

6. Hata numarasını ve dosya yolunu gerektiği kadar değiştirerek gerektiği kadar satır ekleyin.

ErrorDocument 500

ErrorDocument 404

ETC…

7. .htaccess dosyanıza eklemeyi bitirdiğinizde, dosyayı kaydedin ve çıkın. Sonra onu aldığınız dizine geri yükleyin.

8. Son olarak, hata sayfalarınızın çalıştığından emin olmak için web sitenizi test edin.

HTTPS’yi .htaccess İle Yönlendirme

Her web sitesi ziyaretçisinin güvenli (SSL) bir bağlantı kullandığından emin olmak istiyorsanız, güvenli olmayan trafiği yeniden yönlendirmek için .htaccess kurallarını kullanabilirsiniz. Bu, http://niobehosting.com’u https://niobehosting.com’a yönlendirecektir. Elbette, bu yalnızca alan adınız için yüklenmiş bir SSL varsa işe yarar.

Her web sitesi ziyaretçisini güvenli bir bağlantıya yeniden yönlendirmek için, yeniden yönlendirmek istediğiniz web sitesinin .htaccess dosyasına aşağıdaki kuralı ekleyin:

#force SSL on entire site

RewriteEngine On 

RewriteCond %{HTTPS} !=on

RewriteRule ^/?(.*) https://niobehosting.com/$1 [R=301,L]

niobehosting.com’u sitenizin gerçek alan adıyla değiştirmeniz gerekecektir.

.Htaccess ile Hotlink Koruması

Sitenizde hotlink korumasını etkinleştirme işleminin nasıl yapılacağını aşağıda adım adım açıkladık:

1. Öncelikle sitenizde SFTP aracılığıyla oturum açın.

2. Şimdi .htaccess dosyasını / web / content klasörünüzden indirin.

3. .htaccess dosyasını bilgisayarınıza indirdikten sonra bu dosyaya aşağıdaki satırları ekleyin:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www\.)alanadiniz.com/.*$ [NC]

RewriteRule \.

4. alanadiniz.com’u kendi alanınızla eşleşecek şekilde değiştirdiğinizden emin olun. Ayrıca, lütfen .htaccess dosyasındaki başka herhangi bir kodu değiştirmediğinizden emin olun.

5. Yukarıdaki satırları ekledikten sonra, .htaccess dosyasını / web / content dizininize geri yükleyin.

6. Yüklendikten sonra, SFTP bağlantısını kesin ve herhangi bir hata olmadığından emin olmak için sitenizi kontrol edin.

Tarayıcı Üzerinden Dosya Erişiminin Etkinleştirilmesi

Aşağıdaki komut, dizin içeriğinin tarayıcılarda gösterilmesini ve kullanıcılar tarafından indirilmesini sağlar:

# show directory content

Options +Indexes 

Uzantıları Kaldırma

.Php uzantısını bir PHP dosyasından, örneğin abc.com/wallpaper.php’den abc.com/wallpaper’a kaldırmak için, .htaccess dosyasına aşağıdaki kodu eklemeniz gerekir:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^\.]+)$ $1.php [NC,L]

.Html uzantısını bir html dosyasından, örneğin abc.com/wallpaper.html’den abc.com/wallpaper’a kaldırmak istiyorsanız, dosya adıyla eşleşmesi için yukarıdaki kodun son satırını değiştirmeniz yeterlidir:

RewriteRule ^([^\.]+)$ $1.html [NC,L]

Artık sayfanın uzantısını eklemenize gerek kalmadan HTML belgesindeki sayfaları bağlayabilirsiniz.

Tek Bir Dosyayı Parola ile Koruma

Bir dizini korumaya benzer şekilde, .htaccess dosyası kullanarak sunucunuzdaki tek bir dosyaya sınırlı erişim verebilirsiniz.

1. .htaccess’i düzenleyin

Henüz yapmadıysanız, önce metin düzenleyicinizi açın ve .htaccess adlı bir dosya oluşturun. Aşağıdaki satırları .htaccess dosyasına ekleyin; burada MYFILE.html, korumak istediğiniz dosyanın adı ve APPNAME, uygulamanızın adıdır.

<Files MYFILE.html>

AuthType Basic

AuthName “Authentication Required”

AuthUserFile /srv/users/SYSUSER/apps/APPNAME/public/.htpasswd

Require valid-user

</Files>

2. .htpasswd oluşturun

Zaten bir .htpasswd dosyası oluşturduysanız, sonraki adıma geçin.

Oluşturmadıysanız, uygulamanın ait olduğu sistem kullanıcısı olarak sunucunuza SSH ekleyin. .Htpasswd dosyanızı oluşturmak için APPNAME yerine uygulamanızın adını yazarak aşağıdaki komutu çalıştırın.)

touch ~/apps/APPNAME/public/.htpasswd

3. Kullanıcı adı ve parola atayın

Şimdi, bir kullanıcı adı ve parola eklemek veya değiştirmek için htpasswd-sp komutunu kullanın. (Adınızın yerine herhangi bir kullanıcı adı koyabilirsiniz).

htpasswd-sp ~/apps/APPNAME/public/.htpasswd yourname

Yeni şifreyi eklemek için komut satırındaki istemleri izleyin.

blank

Dosyayı tarayıcınız üzerinden ziyaret ettiğinizde, şimdi bir kullanıcı adı ve şifre girmeniz istenecektir.

Yukarıda sizinle .htaccess’in ne olduğunu, ne işe yaradığını, kullanımlarını vb. .htaccess ile ilgili merak edebileceğiniz birçok şeyi paylaştık. .htaccess ile ilgili merak ettiğiniz farklı şeyler varsa, yorum bölümünde bize yazın. İçeriğimizi geliştirmek için deneyimlerinizi ve önerilerinizi paylaşmayı unutmayın.