.htaccess Belli bir klasorun PHP ayarlarinin yapilmasini saglar. Gunumuzde genelde arama motoru dostu sayfalar yapiminda cok kullanilir. İstediğiniz bir URL adresi üzerinde oynayıp istediğiniz bir adrese yönlendirebilirsiniz. Fakat bu özelliği kullanabilmek için httpd.conf server ayar dosyasında AllowOverride all değerinde olması ve mod_rewrite modülünün APACHE server üzerinde kurulu olması gerekir.
Örnekler ile açıklamaya çalışayım.
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|CSS)$ index.PHP
Burada !(yapı) parantez içerisinde belirttiğimiz yapılar ile karşılaşılmadı zamanlar çalışacak rule yanı kuralı belirtir. Kısacası belirttiğimiz kuralın tersini işaret eder. Parantez içerisinde belirttiğimiz uzantılar url içinde geçerse yönlendirme gerçekleştirilmeyecektir. Böylece resim CSS ve JavaScript sayfalarını kullanabiliriz. Bunun dışındaki tüm sayfalar index.PHP ye gidecektir.
Eğer belli bir HTML sayfasını istediğimiz bir PHP dosyasına yönlendirmek isterseniz aşağıdaki örneği kullanabilirsiniz.
RewriteRule urun_(.*)\.htm$ urun.PHP?urun=$1
Burada (.*) urun_ den sonra her türlü veriyi değişken değeri olarak tanıyacak $1 olarak belirttiğimiz yere atayacaktır. Birden fazla kullanmak istediğimizde ise
RewriteRule urun_(.*)_(.*)\.htm$ urun.PHP?kategori=$1&marka=$2
Eğer bir urlyi başka bir urlye yönlendirmek isterseniz
RewriteCond %{HTTP_HOST} ^tr.bounmis.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.tr.bounmis.com$
RewriteRule ^(.*)$ http://www.bounmis.com/tr/ [R=301,L]
Burada rewrıteCond hangi durumlarda yönlendirme gerçekleşeceğini [OR] ise veya anlamı taşımaktadır. R=301 ise sayfanın sürekli olarak bu adrese yönleneceğini ve L ise bunun belirttiğimiz durumun son kuralı olduğunu belirtir.
Eğer adresinizi bounmis.com/category/1/brand/5 gibi göstermek istiyorsanız.
RewriteRule ^([A-Za-z0-9-]+)/([0-9]+)/([A-Za-z0-9-]+)/([0-9]+)/?$ urun.PHP?$1=$2&$3=$4 [L]
Bunlar en fazla kullanılan örneklerdir.
Eğer APACHE serverınız cgi yada fastcgi kullanıyorsa ve sürekli "No input file specified" hatası alıyorsanız kurallarınızın sonuna [PT] eklemeniz sorunu çözecektir.










