.htaccess

htaccess (büyük resim için tıklayın)

.htaccess Nedir?

.htaccess (Hypertext Access), Apache web sunucusu tarafından kullanılan bir yapılandırma dosyasıdır. Bu dosya, belirli bir dizin veya site için çeşitli ayarları özelleştirmek ve yönlendirmek amacıyla kullanılır. .htaccess dosyası, web sitesinin ana dizininde veya alt dizinlerinde yer alabilir.

.htaccess Neden Kullanılır?

  • Web Sitesi Yönetimi: Hızlı ve kolay bir şekilde sunucu ayarlarını özelleştirmek için kullanılır.
  • SEO Optimizasyonu: URL yönlendirme ve temiz URL’ler oluşturma.
  • Güvenlik: IP adreslerini engelleme, dizin erişimini sınırlama.
  • Performans: GZIP sıkıştırma ve önbellekleme ayarları.
  • Hata Yönetimi: Özel hata sayfaları oluşturma.

.htaccess Dosyasının Kullanıldığı Bazı Alanlar ve Örnek Kodlar

1. URL Yönlendirme ve SEO Dostu URL'ler

301 Kalıcı Yönlendirme

Bir URL’nin kalıcı olarak başka bir URL’ye yönlendirilmesi için: Redirect 301 /eski-sayfa.html https://www.omurserdar.com/yeni-sayfa.html

SEO Dostu URL'ler

Dinamik URL'leri temiz bir şekilde göstermek için: 

RewriteEngine On

RewriteRule ^kategori/(.*)$ kategori.php?kategori=$1 [L]

Örnek: https://www.omurserdar.com/kategori/genel → kategori.php?kategori=genel

2. Hotlink Koruması

Web sitenizdeki medya dosyalarının izinsiz olarak başka sitelerde kullanılmasını engellemek için:

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^https://(www\.)?site.com/ [NC]

RewriteCond %{HTTP_REFERER} !^$

RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

3. IP Adresi Engelleme

Belirli IP adreslerinden gelen istekleri engellemek için:

<Limit GET POST>

Order Allow,Deny

Allow from all

Deny from 192.168.1.1

</Limit>

4. Dizin Listelemeyi Devre Dışı Bırakma

Sunucudaki dizinlerin listelenmesini önlemek için: Options -Indexes

5. Özel Hata Sayfaları

Özel hata sayfalarını belirlemek için: 

ErrorDocument 404 /hata-sayfalari/404.html

ErrorDocument 500 /hata-sayfalari/500.html

6. GZIP Sıkıştırma

Web sitenizin yükleme hızını artırmak için GZIP sıkıştırmasını etkinleştirme:

<IfModule mod_deflate.c>

   AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json

</IfModule>

7. Temel Yetkilendirme (Basic Authentication)

Bir dizine parola koruması eklemek için:

AuthType Basic

AuthName "Restricted Area"

AuthUserFile /path/to/.htpasswd

Require valid-user

Bu kodla birlikte .htpasswd dosyası kullanılır.

8. Önbellekleme (Caching)

Web sitenizdeki statik dosyaların tarayıcı önbelleğinde saklanmasını sağlamak için:

<IfModule mod_expires.c>

   ExpiresActive On

   ExpiresByType image/jpg "access plus 1 month"

   ExpiresByType image/png "access plus 1 month"

   ExpiresByType text/css "access plus 1 week"

   ExpiresByType application/javascript "access plus 1 week"

</IfModule>

9. WWW ile veya WWW’siz Yönlendirme

Web sitenizi www ile veya www olmadan kullanıma zorlamak için:

www ile Zorlamak

RewriteEngine On

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

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

www Olmadan Zorlamak

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.site.com [NC]

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

Bazı Projelerde Kullanım Örnekleri

E-Ticaret Siteleri

  • SEO Dostu URL’ler: Ürün kategorilerini temiz bir şekilde göstermek.
  • Güvenlik: Dizin erişimlerini engellemek ve IP bloklama.
  • Performans: GZIP sıkıştırma ve önbellekleme.

Blog Siteleri

  • Hotlink Koruması: Görsellerin izinsiz kullanımını engellemek.
  • SEO: 301 yönlendirme ve özel hata sayfaları.

Ders veya Eğitim Platformları

  • Yetkilendirme: Belirli içeriklere parola koruması eklemek.
  • Önbellekleme: Ders videolarını tarayıcıda saklamak.

.htaccess’in Avantajları

  1. Esneklik: Sunucu ayarlarını hızlıca değiştirme imkanı.
  2. Küçük ve Hafif: Sadece ilgili dizin veya dosya üzerinde etkili olur.
  3. SEO ve Güvenlik: Web sitenizin hem performansını artırır hem de güvenliğini sağlar.

Dikkat Edilmesi Gerekenler

  • Hatalı Kullanım: Yanlış yapılandırmalar sitenizin çalışmasını durdurabilir.
  • Performans: Çok fazla kural yazmak sunucu performansını etkileyebilir.

.htaccess, basit ve etkili bir şekilde web sitenizin davranışını kontrol etmek için güçlü bir araçtır.

*Gönderi ve görsel chatgpt ile oluşturulmuştur.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)