Bu .htaccess
kuralı, Apache sunucularda mod_rewrite modülü etkinleştirilmişse, gelen isteklerin index.php üzerinden yönlendirilmesini sağlar. Bu yapı özellikle SEO uyumlu (güzel URL) sistemlerde ve MVC yapısına sahip PHP uygulamalarında kullanılır.
Kod Açıklaması:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
Detaylı Anlamı:
-
:
mod_rewrite
yüklüyse bu kurallar çalışır. Yüklü değilse yok sayılır. -
RewriteEngine On
: URL yeniden yazma motorunu aktif eder. -
RewriteCond %{REQUEST_FILENAME} !-d
: Eğer istek yapılan adres fiziksel bir klasör değilse devam eder. -
RewriteCond %{REQUEST_FILENAME} !-f
: Eğer istek yapılan adres fiziksel bir dosya değilse devam eder. -
RewriteRule ^(.*)$ index.php [QSA,L]
: Tüm diğer istekleriindex.php
dosyasına yönlendirir.
[QSA,L]
anlamı:
-
QSA
(Query String Append): Orijinal URL’nin sorgu parametrelerini korur. -
L
(Last): Bu kuraldan sonra başka bir yönlendirme kuralı çalışmaz.
Örnek:
http://siteadi.com/hakkimizda
Bu istek aslında fiziksel bir dosya veya klasör değilse, index.php
'ye yönlenir. PHP tarafında $_SERVER['REQUEST_URI']
veya $_GET
ile yönlendirme yapılabilir.
Kullanım Alanları:
-
PHP MVC Framework’lerde (Laravel, CodeIgniter, Slim)
-
WordPress, Joomla gibi CMS altyapılarında
-
SEO uyumlu URL sistemi kurarken
Gereksinimler:
-
Apache sunucuda
mod_rewrite
modülünün aktif olması gerekir. -
.htaccess
dosyalarınınAllowOverride All
yetkisiyle kullanılmasına izin verilmiş olmalı.
Bu yapı, dinamik web uygulamalarında URL yönetimini sadeleştirmek ve yönlendirmeleri merkezi index.php
üzerinden kontrol etmek için yaygın olarak kullanılır.