• 2013-12-28  / 
  •  3647  / 
  •  0

PHP HTACCESS KULLANIMI ve HTACCESS İLE PHP SAYFALARI HTML GÖSTERMEK

PHP HTACCESS KULLANIMI ve HTACCESS İLE PHP SAYFALARI HTML GÖSTERMEK

Htaccess web alanında birçok faydalı yönlendirme işlerinin yapılmasını sağlayan, Apache web sunucularında olan etkili ve çok amaçlı bir ayar dosyasıdır. PHP projelerimizi htaccess kullanarak kullanıcı dostu URL’ler yapmamıza ve bir takım yollarla güvenlik önlemleri de almamıza yarayan ve bu alanda en favori olaylardan bir tanesidir.

#HTACCESS İÇİN AÇIKLAMA NOTLARI

^ İşareti başlangıcı

$ İşareti Bitişi

[0-9] : 0 ile 9 arasındaki tüm sayılar olabilir.

[A-Z] : Büyük harfli A’dan Z’ye tüm harfler olabilir.

[a-z] : Küçük harfli A’dan Z’ye tüm harfler olabilir.

[A-Za-z0-9] : Bir harf ya da rakam olabilir.

(*) işareti herhangi bir şey anlamında olup sıfır karakter de olur der ve sınırsız karaktere kadar gider.

(+) ise yıldızdan farklı olarak en az 1 karakter olmasını şart koşar.

(?) ise tek bir harf için joker karakter niyetine kullanılır.

1-) PHP ile yapılan Sitemizde firma-hakkinda.php Sayfasına Link ile Metinsel Değişken göndererek oluşturulmuş Linkleri Düzenlemek için

| Hakkımızda | İletişim |

Şeklindeki Yazılara Link Verirken

Hakkımızda => İçin firma-hakkinda.php?sayfa=hakkimizda

İletişim => İçin firma-hakkinda.php?sayfa=iletisim

Şeklinde Link ile değişken gönderdiğimizi ve o değişkeni de firma-hakkinda.php sayfasında $_GET[“sayfa”] şeklinde çekip if else ile kontrol ederek bir sayfa içerisinde birden fazla sayfa içeriğini görüntülettiğimiz bir yapının ayrı ayrı html sayfalarmış gibi gösterilmesi için

Yani Hakkımızda sayfasına Tıklayınca Adres Çubuğunda Linki

firma-hakkinda.php?sayfa=hakkimizda

yerine

bt-bilgisayar-hakkimizda.html


İletişimin Linki

firma-hakkinda.php?sayfa=iletisim

yerine

bt-bilgisayar-iletisim.html

şeklinde görünsün istiyorsak.


Öncelikle .htaccess isimli bir dosya oluşturacağız. Bilgisayarımız bu dosyayı oluşturmamıza izin vermeyeceğinden biz dosyayı htaccess.txt olarak oluşturup içine aşağıdaki kodları ekleyeceğiz. Sunucuya atınca da htaccess.txt yi .htaccess ismine çevireceğiz Htaccess içeriği


Options +FollowSymLinks

RewriteEngine On

RewriteRule ^bt-bilgisayar-(.*).html$ firma-hakkinda.php?sayfa=$1 [L,NC]


Şimdi kodu biraz açıklayalım

^bt-bilgisayar-(.*).html$ firma-hakkinda.php?sayfa=$1

Başlangıcı bt-bilgisayar- olacak ondan sonra bir değişken olacak yani

firma-hakkinda.php?sayfa=iletisim

kısmında sayfa değişkenine atayacağımız değeri burada iletisim şeklinde tanımlamamız gerektiğini ve $ bitişi ifade ettiğinden dolayı da sayfanın .html ile biteceği anlatılıyor. Htaccess dosyayısını bu şekilde tanımladıktan sonra sayfamızda verdiğimiz linkleri de değiştireceğiz.

Yani

firma-hakkinda.php?sayfa=hakkimizda

yerine

bt-bilgisayar-hakkimizda.html


İletişimin Linkini

firma-hakkinda.php?sayfa=iletisim

yerine

bt-bilgisayar-iletisim.html

olarak değiştireceğiz. Bu Linke tıklayınca adres çubuğunda

bt-bilgisayar-hakkimizda.html

gözükecek.

bt-bilgisayar-hakkimizda.html -- bt-bilgisayar-(.*).html tanımından oradaki (.*) hakkimizda yı alacak ve sanki

firma-hakkinda.php?sayfa=$1

yerine hakkimizda yı koyacak

firma-hakkinda.php?sayfa=hakkimizda

gibi çalıştıracak.

SONUÇ: htaccess içinde gerekli tanımlamayı yap. Sonra da PHP sayfadaki linkleri buradaki kurala uygun hale getir. İşlem tamamdır.

2-) PHP ile yapılan Sitemizde urunlerimiz.php Sayfasına Link ile sayısal Değişken göndererek oluşturulmuş Linkleri Düzenlemek için

Adres Çubuğunda Linki

urunlerimiz.php?urun_id=1

yerine

8-urunlerimiz-buzdolabi.html

şeklinde göstermek için Aynı şekilde htaccess dosyasını oluştur. Htaccess dosya içeriği


Options +FollowSymLinks

RewriteEngine On

RewriteRule ^([0-9]+)-urunlerimiz-(.*).html$ urunlerimiz.php?kategori_id=$1 [L,NC]


id numarası sayısal olduğu için ([0-9]+)kullanıyoruz bu id yi $1 içine atıyor Sonra da sayfada verdiğimiz

urunlerimiz.php?urun_id=1 linkinini yerine

-urunlerimiz-.html yazıyoruz. Sondaki [L,NC] L ise eğer o satırdan sora eşleşme olursa bile çalıştırmamamsı içindir Sondaki [L,NC] NC ise sunucuda büyük küçük harf duyarlılığı varsa onu etkisiz hale getirir

RewriteRule ^(.*).html$ $1.php [L,NC]

Başta gördüğünü sondaki gibi çalıştır demektir.

# RewriteRule ^(.*)-uye-bak-(.*).html$ uyebak.php?id=$1&ad=$2 [L,NC] -

Şeklinde bir satırda birden fazla değişken kullanılacak ise (.*) içindekini $1 e, sonraki (.*) $2, sonraki $3 şeklinde tanımlanır.

3- ) PHP Uzantılı bir sayfayı html göstermek Yani uye-ol.php sayfasına tıklanınca uye-ol.html gibi görünsün için de Htaccess içeriği


Options +FollowSymLinks RewriteEngine On RewriteRule ^(.*).html$ $1.php [L,NC]


Olarak düzenleyip. Sonra da Linkini uye-ol.html ver işlem tamamdır.

4-) Birkaç özelliği içinde bulunduran htaccess dosya içeriği ve linklerinin son hali Htaccess dosya içeriği


Options +FollowSymLinks

RewriteEngine On

RewriteRule ^([0-9]+)-urunlerimiz-(.*).html$ urunlerimiz.php?kategori_id=$1 [L,NC]

RewriteRule ^([0-9]+).urun-(.*).html$ urun-detay.php?urun_id=$1 [L,NC]

RewriteRule ^bt-bilgisayar-(.*).html$ firma-hakkinda.php?sayfa=$1 [L,NC]

RewriteRule ^(.*).html$ $1.php [L,NC]


  • Etiketler:
  •  

Yorum Yaz

Yorumlar(0)