Yükleniyor

Php htaccess kullanımı

Php htaccess nedir ?

Htaccess; Hypertext Access ve Apache tarafından kullanılan dosyadır ve web alanı üzerinde dilediğiniz özel ayarları yapabilmenize imkan tanır. Temelde yönlendirmelerin pek çoğu Arama motoru optimizasyonu (SEO) konusunda web projenizi daha iyi noktalara taşımanız için destekleyici bir yapılandırma sağlar. Aynı zamanda web projenize ait sayfaların dış saldırılardan korunması için de güvenlik açısından da önlemler almanıza yardımcı olur. Özetle; apache web sunucularında olan etkili ve çok amaçlı bir ayar dosyasıdır.

Php htaccess ile neler yapılır
  • SEO dostu URL’ler oluşturma.
  • Subdomain, domain ve dizin yönlendirmeleri
  • Sitenizin tamamına ve ya belirli alanlarına belirli IP adreslerinin girişlerine izin verme ve ya engelleme
  • Dosya gizleme işlemleri
  • Hata sayfalarını düzenleme yönlendirme (404,503 vb.)
  • Klasörlere ilişkin yetki düzenlemesi
  • Kötü niyetli botları engelleme
  • Spamları engelleme

Php htaccess kullanım örnekleri

htaccess https yönlendirmesi

Web sitenizde eğer ssl sertifikanız var ve kişi sitenize direk http://phpmutfagi.com olarak girdiğinde otomatik olarak sitenizi güvenli(https) alana yönlendirecektir.

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

htaccess SEO ile bağlantılar oluşturma

Web projesi içinde sahip olunan URL’lerin kolay okunmasını sağlayacak biçimde düzenlenmesi, bunu gerçekleştirirken de sayfanın neyi içerdiğini de anlatacak biçimde düzenleme işlemini ifade eder. Bu durum web projenize ait URL’leri SEO ile uyumlu hale dönüştürür. Örnek olarak https://www.phpmutfagi.com/konularimiz.php?id=12345 yerine https://www.phpmutfagi.com/php-nedir

RewriteEngine on
#Options +FollowSymLinks

RewriteRule ^anasayfa index.php [L,QSA] #anasayfa görünce index.php sayfasına git
RewriteRule ^hakkimizda hakkimizda.php [L,QSA] #hakkimizda görünce hakkimizda.php sayfasına git
RewriteRule ^iletisim iletisim.php [L,QSA] #iletisim görünce iletisim.php sayfasına git

Aşağıdaki kod ise dinamik olarak oluşturmanızı sağlar.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?sayfa=$1 [QSA,L]
## index.php sayfasına git ve sayfa değerini oradan gelen değer yap dedik

Php htaccess ile birdan fazla değer gönderme;

RewriteEngine on
#Options +FollowSymLinks

RewriteRule ^sayfa/([0-9a-zA-Z-_]+) index.php?sayfa=$1 [L,QSA]
RewriteRule ^sayfa_ikidegiskenli/([0-9a-zA-Z-_]+)/([0-9]+)$ index.php?sayfa=$1&id=$2 [L,QSA]
RewriteRule ^sayfa_ucdegiskenli/([0-9a-zA-Z-_]+)/([0-9]+)/([0-9]+)$ index.php?sayfa=$1&id=$2°isken_uc=$3 [L,QSA]

htaccess 301 yönlendirmesi

301 yönlendirmesi; kalıcı biçimde gerçekleştirilen URL yönlendirmeleridir. Arama motorları bu sayede eski ve yeni web sayfalarınızı aynı anda taramak zorunda kalmaz.

Aşağıdaki kod phpmutfagi.com sayfasına gitmek isteyen bir kişi için www ve ya www olmadan yazdığında direk https://phpmutfagi.com/ sayfasına yönlendirecektir.

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

htaccess 404 yönlendirmesi

Sitenizde bir dosyayı silebilirsiniz ve ya kullanıcı olmadığı halde yanlış URL yazarak sitenizi 404 hatasına düşürebilir. Böyle durumlarda 404 hata yönlendirmesi gerçekleştirmeniz gerekmektedir.

RewriteEngine On
ErrorDocument 404 https://www.phpmutfagi.com/404_hata_dosyasi.php

htaccess 403 yönlendirmesi

Siteniz 403 hatasına düşürebilir. Böyle durumlarda 403 hata yönlendirmesi gerçekleştirmeniz gerekmektedir.

RewriteEngine On
ErrorDocument 403 https://www.phpmutfagi.com/403_hata_dosyasi.php

htaccess Domain ve ya subdomain yönlendirme

Htaccess ile web projenizin domainini farklı bir domaine yönlendirebilirsiniz. Aynı zamanda web projenizin alan adını “www” ya da “www” olmadan açılmasını da sağlayabilirsiniz. Örnek olarak bizim sayfamızda deneyebilirsiniz. https://phpmutfagi.com adresine gittiğinizde otomatik olarak www başına eklenir. Tüm bunların dışında SSL sertifikası almanız halinde web projenizin “https://” biçinde açılması için yönlendirmeler de gerçekleştirebilirsiniz.

RewriteEngine On
RewriteCond %{HTTP_HOST} phpmutfagi.com [nc]
RewriteRule (.*) //www.phpmutfagi.com/$1 [R=301,L]

htaccess mobilden girenleri yönlendirme

Aşağıdaki htaccess kodu ile mobilden girenleri ayrı bir sayfaya ve ya dizine yönlendirebilirsiniz.

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/mobil_dizininiz/.*$
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ /mobil_dizininiz/ [L,R=302]

htaccess belirli IP adreslerini engelleme ve izin verme

deny from all #tüm ip adreslerini engelle
allow from 127.0.0.1 #sadece bu ip adresine izin ver
allow from 192.168.0.0/255 #veya bu ip bloğunun girmesine izin ver

htaccess bazı bot ve web servislerinin erişimini engelleme

Sitenizde sunucunuzu yoran botları basit bir kod bloğu ile engelleyerek sunucunuzu rahatlatabilirsiniz. Bu botlar sitenizde yoğun dolaştığı için trafik yapar ve sunucunuzu yorar.

Buraya tıklayarak kötü bot ve yazılımların listesine ulaşabilirsiniz.

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteRule .* - [F]

htaccess dizin şifreleme

Öncelikle bunun için .htpasswd adında bir şifre dosyası oluşturup satır satır isim:şifre şeklinde kullanıcı bilgileri tanımlıyoruz. Daha sonra bu dosyamızı htaccess dosyamızla tanıştırıyoruz.

AuthUserFile /dosya/dizini/.htpasswd
AuthType Basic
AuthName "Gizli Dosya Dizinim"