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_rewriteyü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.phpdosyası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_rewritemodülünün aktif olması gerekir. -
.htaccessdosyalarınınAllowOverride Allyetkisiyle 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.