Bir .htaccess dosyası veya dağıtılmış bir yapılandırma dosyası, bir web sitesinin yapılandırmalarını kontrol etmek ve yönetmek için kullanılan güçlü bir dosyadır. Ana sunucu yapılandırma dosyalarının bozulmamasını sağlamak için tüm yapılandırma değişiklikleri dizin bazında yapılır.
.htaccess Dosyasının Tercih Edileceği Durumlar
İster hata sayfaları yüklemeyi ister şifre güvenliği uygulamayı amaçlayın, bir .htaccess dosyasının birçok kullanım alanı vardır. En yaygın örneklerden bazıları şunlardır:
-
Belirli bir URL veya URL listesi için yönlendirmeler eklemek.
-
Sunucudaki belirli dizinlerde şifre korumasını etkinleştirmek.
-
Özelleştirilmiş hata sayfaları yüklemek.
-
Bir siteyi HTTP yerine HTTPS kullanmaya zorlamak.
-
Hedeflenen IP'leri veya alan adlarını engellemek.
Bu kılavuzda, size şu adımlarda rehberlik edeceğiz: .htaccess dosyasını etkinleştirme, oluşturma ve kullanma.
Gereksinimler
Bu öğreticiyi takip etmek için aşağıdakilere sahip olmalısınız:
-
Sisteminizde en son sürüm Ubuntu kurulu olmalıdır.
-
Apache web sunucusu Ubuntu sunucunuzda kurulu olmalıdır.
-
Sistem kullanıcıları sudo yetkilerine sahip olmalıdır..
-
SSL ile güvenli hale getirilmiş sanal ana makine.
-
Şu kılavuzu takip edin: Ubuntu 18.04 üzerinde Let's Encrypt ile Apache'yi Güvenli Hale Getirme (eğer Apache'yi özelleştirilmiş alan adınızı kullanarak yapılandırıyor ve güvenli hale getiriyorsanız).
-
Alternatif olarak, Ubuntu 20.04'te Apache için Kendinden İmzalı SSL Sertifikası Oluşturma adımlarını uygulayabilirsiniz (eğer Apache'yi test amacıyla kullanmayı planlıyorsanız).
-
|
Not: İnternetten özelleştirilmiş alan adları satın almak için değerlendirebileceğiniz birçok alan adı sağlayıcısı vardır. Namecheap, Freenom, ve Bluehost, bunlardan sadece birkaçıdır ve olağanüstü hizmetleriyle tanınırlar. |
İlk kurulumu tamamladıktan sonra, sunucunuza sudo kullanıcısı olarak giriş yapın ve başlayalım.
Adım 1 — .htaccess Dosyasını Etkinleştirme
Varsayılan olarak, .htaccess dosyası devre dışıdır. Öncelikle Apache yapılandırmasını değiştirmemiz ve .htaccess dosyasını etkinleştirmemiz gerekir.
Şu apache2/sites-available/your_domain.conf sanal ana makine dosyasını nano veya tercih ettiğiniz herhangi bir metin düzenleyiciyi kullanarak açın:
|
1 |
$ sudo nano /etc/apache2/sites-available/your_domain.conf |
Şu kılavuzda ele alınan kuruluma hazır olduğunuzu varsayarsak: Apache web sunucusu kılavuzu, aşağıdaki yapılandırma detayını bulacaksınız:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Ardından, Directory içeriğini VirtualHost bloğuna ekleyin:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/your_domain> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow, deny allow from all </Directory> </VirtualHost> |
Yukarıdaki kod bloğunda, AllowOverride All, Directory bölümünün altındaki en önemli satırdır. Bu bölüm, .htaccess dosyalarının kullanılmasını sağlar.
Bundan sonra, çalışmanızı kaydedin ve dosyayı kapatın. Eğer nano metin editörünü kullanıyorsanız, CTRL + X, Y, ve ENTER tuşlarını kullanarak dosyayı kapatın.
Web sunucusunu yeniden başlatmadan önce yapılandırmayı kontrol edin:
|
1 |
$ sudo apache2ctl configtest |
Her şey yolundaysa çıktı olarak Syntax OK göreceksiniz. Şimdi, şifre politikanızı eklemek için sunucuyu yeniden başlatın:
|
1 |
$ sudo systemctl restart apache2 |
Once the .htaccess dosya ayarları etkinleştirildikten sonra, yeni bir dosya oluşturma zamanı geldi.
Adım 2 — Bir .htaccess Dosyası Oluşturun
Bir .htaccess dosyası oluşturmak oldukça kolaydır. Yapılandırma değişikliklerinin doğru şekilde yürütüldüğünden emin olmak için .htaccess dosyasını bulmak üzere web kök dizinine, yani kaynağa gitmeniz gerekir.
|
Not: .htaccess dosyasını konumlandırırken dikkatli olun. Yapılandırmadaki küçük bir hata, dizinini ve onu takip eden dizinleri olumsuz etkileyebilir. Örneğin, aynı Apache sunucusunda birden fazla web sitesi hedefliyorsanız, .htaccess dosyanızı web sitesiyle eşleştirilen web kök dizinine yerleştirin. |
Yukarıda belirtilen ön koşulu takip ettiyseniz, web kök dizinini /var/www/my_domain/.htaccess konumunda bulacaksınız. Ardından, aşağıdakini kullanarak web siteniz için bir .htaccess dosyası oluşturun:
|
1 |
$ sudo nano /var/www/your_domain/.htaccess |
Once we have our .htaccess dosyamız hazır olduğunda, kullanım senaryolarından bazılarına göz atalım.
Adım 3 — .htaccess Dosyasının Yaygın Kullanım Alanları

Sitenizde bir .htaccess sayfası kullanmanın çeşitli avantajları vardır. Her birini ayrıntılı olarak ele alalım:
-
URL'leri Yönlendirme
URL Yönlendirme (URL iletme olarak da adlandırılır), bir alan adının ziyaretçisini başka bir URL'ye yönlendirmek için kullanılan bir web sunucusu işlevidir. URL yönlendirme ihtiyaçlarınız için .htaccess kullanabilirsiniz. Kaynak URL'yi hedef URL ile eşleştirmek için .htaccess dosyanıza aşağıdakileri ekleyin:
|
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^testdomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.testdomain.com [NC] RewriteRule ^(.*)$ http://demodomain.com/$1 [L,R=301,NC] |
-
Özel Hata Sayfaları Oluşturma
A useful facet of the .htaccess dosyasının kullanışlı bir yönü de özel bir hata sayfası oluşturmaktır. Genellikle, bir kullanıcı web sitesinde var olmayan bir sayfayla karşılaştığında ekranda bir hata mesajı belirir. Yaygın HTTP hata kodlarından bazıları şunlardır:
-
400 Hatalı İstek
-
401 Yetkisiz
-
403 Yasak
-
404 Bulunamadı
-
500 Dahili Sunucu Hatası
-
502 Kötü Ağ Geçidi
-
503 Hizmet Kullanılamıyor
Varsayılan sunucu sayfası hatası olan "Sayfa Bulunamadı" yerine, kullanıcılarınıza daha gelişmiş ve kullanıcı dostu bir gezinme deneyimi sunmak için .htaccess dosyasından yararlanın.
-
Güvenlik Kimlik Doğrulamasını Ayarlama
Using the .htaccess dosyasını kullanarak güvenlik kimlik doğrulaması da ayarlayabilirsiniz. Bunun için, kullanıcıların kimliğini doğrulamak üzere bir .htpasswd dosyası oluşturmanız gerekir.
Güvenlik amacıyla bir şifre dosyası oluşturmak için htpasswd komutunu kullanın. Apache, doğrulanmış kullanıcıların kimliğini doğrulamak için bu şifre dosyasını kullanacaktır. /etc/apache2 dizinine giderek şu isimde gizli bir dosya oluşturun: .htpasswd.
Gerekli .htpasswd dosyasını oluşturmak için -c seçeneğini bu şifre güvenlik aracını ilk kez kullandığınızda kullanın. Ardından, dosya içinde yeni bir giriş listelemek için komutun sonuna kullanıcı adını belirtin. Bundan sonra, kullanıcı adını nick (bu kılavuzda kullanılan) kendi kullanıcı adınızla değiştirin:
|
1 |
$ sudo htpasswd -c /etc/apache2/.htpasswd nick |
Ardından, kullanıcının şifresini girmeniz ve doğrulamanız istenecektir.
Okumaya devam edin bu kılavuz Ubuntu 20.04 üzerinde Apache ile şifre kimlik doğrulaması kurma ve yapılandırma hakkında daha fazla bilgi edinmek için.
-
MIME Türleri Ekleme
İnternette kullanılan dosyaların sınıflandırılması, Çok Amaçlı İnternet Posta Uzantıları (MIME) türü kullanılarak zahmetsizce yapılır. Bir web sitesinin belirli bir dosyayı sunamadığı birkaç senaryoda, uzantı eklemek işi çözer. Apache sunucunuza Çok Amaçlı İnternet Posta Uzantıları (MIME) türleri eklemek için aşağıdaki kodu .htaccess dosyasında kullanın:
|
1 |
AddType audio/mp4a-latm .m4a |
|
Not: Kılavuzumuzda bir ses dosyası MIME türümüz var. Uygulamayı ve dosya uzantısını hedeflediğiniz MIME türüyle değiştirin. Ek olarak, sanal ana bilgisayar yapılandırmasının ve .htaccess dosyasının konum dizininin AddType yönergesini kullanabildiğinden emin olun. Aksi takdirde, bir 500 Internal Server Error. |
-
Sunucu Tarafı İçerikleri (SSI)
SSI'lar, bir HTML sayfasına dinamik içerik besleyen yönergelerdir. Her sayfayı açıkça güncellemeye gerek kalmadan çok sayıda sayfayı belirli verilerle güncellemek için kullanılır.
HTML dosyalarında, Sunucu Tarafı İçerikleri (SSI) varsayılan olarak devre dışıdır. SSI'yı etkinleştirmek için aşağıdaki kodu .htaccess dosyanıza ekleyin:
|
1 2 |
AddType text/html .shtml AddHandler server-parsed .shtml</pre> |
Yukarıdaki satırlar ilk olarak .shtml dosyalarını doğrular. Onay daha sonra .htaccess dosyasına gönderilir ve bu sırada sunucunun tüm .shtml dosyalarını ayrıştırmasına izin verilir.
Alternatif olarak, XBitHack kullanarak birden fazla .html içeriğini ayrıştırabilirsiniz; böylece .shtml uzantılarını tek tek yeniden adlandırmak zorunda kalmazsınız. .htaccess dosyasına aşağıdaki satırı ekleyerek XbitHAck kullanabilir ve Apache'den tüm .html dosyalarını kontrol etmesini isteyebilirsiniz:
|
1 |
XBitHack on |
Ardından, sayfanın XBitHack kullanma uygunluğunu geçirmek için izni değiştirmeniz gerekir. Bunu yapmak için aşağıdaki chmod komutunu kullanın:
|
1 |
$ chmod +x pagename.html |
-
IP adresini yönetme
Bazen güvenlik amacıyla sitenizi ziyaret eden bir IP'yi veya bir IP adresi aralığını engellemek isteyebilirsiniz. Hedeflenen IP'yi kısıtlamak için .htaccess dosyanıza aşağıdaki kod satırlarını ekleyin:
|
1 |
Order Deny, Allow Deny from A.A.A.A (burada A.A.A.A olan bir belirli IPv4 Adresi) |
Birden fazla IP'yi engellemek için ayrı bir satır kullanın:
|
1 |
Order Deny Allow Deny from A.A.A.A (burada A.A.A.A olan bir belirli IPv4 Adresi) Deny from B.B.B.B (burada B.B.B.B olan bir belirli IPv4 Adresi) |
Ayrıca, alan adlarının web sitenize erişmesini engelleyebilirsiniz. .htaccess dosyasına aşağıdaki kod satırını ekleyerek belirli bir alan adını kısıtlayın:
Order Deny, Allow Deny from www.blockdomain.com (burada www.blockdomain.com belirli bir alan adıdır)
.htaccess Kullanmanın Riskleri
Bir
.htaccess dosyası eklemek, web sitenizi yapılandırmak ve kullanıcı dostu hale getirmek için şüphesiz akıllıca bir harekettir. Ancak, yapılandırma ayarlarında yapılan her türlü değişiklik beraberinde başka maliyetler de getirir.
.htaccess dosyasını neden kullanmamanız gerektiğini gösteren bazı önemli nedenleri inceleyelim:
i. Performans Kaybı: Bir sunucu bir sayfa dizinini ve onun .htaccess dosyasını her taradığında sayfa yüklenir. Sonuç olarak hız ve performans kaybı birincil bir endişe haline gelir.
ii. Güvenlik: .htaccess dosyalarına erişim, sunucu yapılandırması üzerinde tam kontrol sağlar. Bu, yetkisiz herhangi bir kullanıcının .htaccess access to the .htaccess dosyasına erişim, bu da potansiyel güvenlik risklerine yol açar.
iii. Erişilebilirlik: .htaccess dosyaları büyük bir dikkat ve özenle ele alınmalıdır. Eğer .htaccess dosyasında herhangi bir hata varsa, tüm web sitesini çökertebilir.
Sonuç
Bu kılavuzda, bir .htaccess dosyasını etkinleştirme, oluşturma ve kullanma konusunda kapsamlı bir fikir edindik. Ayrıca, hangi durumlarda ve nerede .htaccess dosyasının kullanılması gerektiğini tartıştık. Web sitenizi korumak ve saldırılara karşı savunmak için .htaccess dosyalarından yararlanın. Ancak, bu yapılandırma dosyasını kullanmanın göz ardı edilmemesi gereken birkaç tuzağı vardır. Özetle, .htaccess dosyalarını sunucunuz’un kullanımına ve kullanıcının erişim ihtiyaçlarına göre kullanın.
Ayrıca, diğer ağ eğitimlerini bizim blogumuzda bulabilirsiniz:
-
Ubuntu 20.04 üzerinde Nginx ile Temel HTTP Kimlik Doğrulamasını Yapılandırma
-
Nginx HTTP Proxying, Yük Dengeleme, Arabelleğe Alma ve Önbelleğe Alma: Genel Bir Bakış
Yorumlar
Henüz yorum yapılmamış. İlk siz olun.