Php htaccess ayarlarından bazıları

İlk olarak dosyamızı bir kod editörü veya metin editörü aracılığı ile açıyoruz.
– Dosya içinde kodların başına yazacağımız (#) işareti, o satırı pasifleştirmek için kullanılmaktadır.
– RewriteEngine On: Bu komut ile apache serverımızı url yönlendirmesi için aktif hale getirmiş oluyoruz.
– RewriteBase / : Bu kod ise yönlendirmemizin etkili olacağı klasörü göstermektedir. Örnek verecek olursak web sitemiz root – ana klasörde değilde bir alt sayfada kurulu ise www.siteadi.com değilde www.siteadi.com/blog/ bizim RewriteBase kodumuz “RewriteBase /blog” şeklinde olmalıdır.

Bu iki kodlamadan sonra artık yönlendirme ile ilgili detaylardan bahsedebiliriz.
– RewriteRule : Bu bizim asıl yönlendirme komutumuzdur. Hangi adresin hangi adrese yönleneceğini bu komut ile belirleriz.
Komut örneklerine geçmeden önce bilinmesi gereken bazı bilgiler:
Düzenli İfadeler:
(.) Herhangi bir karakter olduğunu belirtir.
(?) 0 veya 1 tane olduğunu belirtir
(*) 0 ve daha büyük olabilidiğini belirtir
(^) Seçilecek ifadenin başlangıç noktasını belirtir
($) Seçilecek olan ifadenin bitiş noktasını belirtir
(\) . veya ‘ gibi kod yapısında etkili olabilecek işaretleri normal karakter şeklinde güzekmesini sağlar.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ sayfa.php?sayfa=$1 [QSA,L]

Yukarıda gözüken kodlardan sonra htaccess; eğer olmayan bir sayfaya girilmeye çalışılırsa, yani örnek vermek gerekirse/hakkinda ya da /iletisim gibi bir dizinimiz olmadığı için, 404 hata sayfasına değil de bizim sayfa.php dosyamıza yönlendirecek.

Fakat yönlendirirken girilmiş olan sayfayı bizim dosyamıza “sayfa” GET parametresi olarak gönderecek ve bu şekilde site.com/deneme diye girildiğinde arkaplanda çalışacak olan sayfa “site.com/sayfa.php?sayfa=deneme” olacaktır.

L: Last
Bu tanımlanmadan önce ifade edilen kurallar bundan sonrakilere geçmemesini ve karışmamasını sağlar.
R: Redirect
Bu değer kullanılırsa browserda adres değişir, kullanılmazsa yönlendirme arkaplanda yapılır fakat kullanıcının girdiği URL aynı kalır.
NC: No Case
Büyük küçük harfe duyarsız davranır.
QSA: Query String Append
GET metodu ile yönlendirme yaptığımızda yönlendirilen yere sonuna eklenen GET parametrelerini de dahil eder.