• 08-02-2017, 21:13:10
    #1
    Arkadaşlar merhaba. Sef url olayını kendi sistemimde bir türlü beceremedim. Olayı kavrasamda benim sistemde pek sağlıklı olmadı ya da ben başaramadım. Yardımcı olabilirseniz çok sevinirim sistemi şöyle anlatayım.

    Tüm sayfaları syf.php adında php dosyamın içerisinde belirtiyorum. Sayfanın index.php ye göre bulunduğu yolu[1] ve navigasyonda kullanmak için sayfanın ismini[2] saklıyorum.

    Örnek olarak; (syf.php)

    $syf[11][1]    =    "sayfalar/duyurular/duyurular.php"; // sayfanın yolu
    $syf[11][2]    =    "Duyurular";                        // sayfanın ismi
    $syf[12][1]    =    "sayfalar/duyurular/duyuru-ekle.php";        
    $syf[12][2]    =    "Duyuru Ekle";
    $syf[13][1]    =    "sayfalar/duyurular/duyuru-durum-guncelle.php";
    $syf[13][2]    =    "Duyuru Durum Güncelle";
    Tüm sayfaları index.php içerisine çağırıyorum;

    siteadi.com/index.php?syf=12

    bunun yerine siteadi.com/duyuru-ekle ' ye nasıl çevirebilirim?
  • 10-02-2017, 09:12:25
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    RewriteRule ^duyuru-ekle(/?)$ index.php?syf=12 [L,QSA]

    bu örnekteki gibi, sabit sayfaları htaccess'e tüm url'leri tek tek ekliycen. eğer tek tek uğraşmak istemiyorsan, yani değişkene göre sayfa sef url olsun istiyorsan şu örnekteki gibi yapmalısın:

    RewriteRule ^urun/(.*)(/?)$ index.php?urunkodu=$1 [L,QSA]

    Bu örnekte tarayıcıya, http://siteadi.com/urun/126378 veya http://siteadi.com/urun/126378/ yazıldığında, htaccess üzerinden sunucudan http://siteadi.com/index.php?urunkodu=126378 sayfası istenir ama tarayıcıda yazdığın sef url gözükür. (.*) ürün kodunun geleceği değişken olan parametreyi tanımlar. tüm karakterler gelebilir. eğer (.*) yerine sadece 2 harften oluşan rakam içermeyen değişken gelsin dersen ([a-z]{2}) yerleştirebilirsin. Bu örnekler çoğalıp gider.

    eğer 2 tane değişken olan sef url sayfası oluşturmak istiyorsan şu şekilde yaparsın:
    RewriteRule ^urun/(.*)/(.*)(/?)$ index.php?urunadi=$1&urunkodu=$2 [L,QSA]

    Bunları istediğin amaca göre değiştirebilirsin. Yapabileceklerin hayal gücünle sınırlıdır.

    İngilizce aratmayı becerebiliyorsan stackoverflow.com bu işte 1 numaralı sitedir.
  • 10-02-2017, 09:38:22
    #3
    Üyeliği durduruldu
    Arkadaşında söylediği .htaccess ve RewriteRule komutu işinizi görecektir.
  • 21-04-2017, 20:38:45
    #4
    Cevap vermeyeli aylar olmuş ama çözümü yazayım benim gibi ayrı bir php sayfasından linkleri çekenler için kolaylık sağlayacaktır.

    asıl link yapısı : siteadi.com/index.php?syf=duyurular

    istenen seo link yapısı: siteadi.com/duyurular


    sayfa.php de ki [1] değişken sayfanın yolu ve
    sayfa.php de ki [2] değişken ise sayfanın navigasyonda görülen adı. (anasayfa > sayfalar > duyurular vs..)

    a href
    <a href="duyurular"></a>
    sayfa.php
    $syf[duyurular][1]     =    "sayfalar/duyurular/duyurular.php";
    $syf[duyurular][2]     =    "Duyurular";
    $syf[duyuru-ekle][1]   =    "sayfalar/duyurular/duyuru-ekle.php";        
    $syf[duyuru-ekle][2]   =    "Duyuru Ekle";
    .htaccess
    RewriteRule ^(.*)$ index.php?syf=$1 [L,NC]