• 19-11-2015, 01:35:05
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaslar.

    Link yapim soyleydi.

    ilk : /deneme/icerik.php?id=1&baslik=deneme

    sef linkle soyle yaptim.

    ikinci : /deneme/icerik/15441-deneme-konusu.html

    oldu.

    Fakat ben bu ikincide yer alan id'yi adres cubugundan 15442 yaptigimda yanında yer alan konu baslıgı degismiyor, link bu sekilde kaliyor.

    /deneme/icerik/15442-deneme-konusu.html

    halbuki şu şekilde yönlenmesi gerek;

    /deneme/icerik/15442-rasgele-bir-konu.html

    httaccess yapım şu şekilde;

    Options +FollowSymLinks
    RewriteEngine on
    RewriteBase /deneme/
    RewriteRule ^icerik/(.*)-(.*).html$ icerik.php?id=$1&baslik=$2 [L,NC]
    Bunu nasıl saglarim fikri olan varmi ?
  • 19-11-2015, 01:54:04
    #2
    icerik.php dosyasını buraya eklerseniz değişiklik yapılması gereken kodu yazarım.
  • 19-11-2015, 07:54:48
    #3
    RewriteRule ^icerik/(.*)-(.*).html$ icerik.php?id=$1&baslik=$2 [L,NC] htaccess dosyasınn yapısını değistirmeniz gerekiyor

    (.*) -> sayısal işlem yapmaz
    doğrusu
    RewriteRule ^icerik/([a-z0-9-_]*)-(.*).html$ icerik.php?id=$1&baslik=$2 [L]
  • 19-11-2015, 19:57:01
    #4
    Cycl0ne adlı üyeden alıntı: mesajı görüntüle
    icerik.php dosyasını buraya eklerseniz değişiklik yapılması gereken kodu yazarım.
    icerik phpde birşey yokki, şimdilik sadece hepsi icin "icerik goruntuleniyor" yazıyor, yani gittigini gostermek icin oyle yazdirdim daha sonra düzenliyecegim.

    halil2233 adlı üyeden alıntı: mesajı görüntüle
    RewriteRule ^icerik/(.*)-(.*).html$ icerik.php?id=$1&baslik=$2 [L,NC] htaccess dosyasınn yapısını değistirmeniz gerekiyor

    (.*) -> sayısal işlem yapmaz
    doğrusu
    RewriteRule ^icerik/([a-z0-9-_]*)-(.*).html$ icerik.php?id=$1&baslik=$2 [L]

    hocam dediginizi yaptım yine olmadı, demek istedigimi tekrar soyluyum.

    bakın tarayıcıdan adres cubugunda bulunan urldeki id yi 6 ise 7 yapıyorum fakat urlde 6 nın basligi geciyor, dogru sayfaya gidiyor fakat url degismiyor.

    adres 6-deneme.html ise ben bunu elimle;
    7-deneme.html yapıyorum ama o deneme yazan kısım öyle kalıyor adres cubugunda url. ama sayfada sorun yok sayfa degisiyor ama url degismiyor. yani ben orayı 7 yaptıgımda o deneme yazan kısımda direkt olarak 7-digerkonu.html olarak degismesi lazim.
  • 20-11-2015, 09:52:43
    #5
    CoRcH adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaslar.

    Link yapim soyleydi.

    ilk : /deneme/icerik.php?id=1&baslik=deneme

    sef linkle soyle yaptim.

    ikinci : /deneme/icerik/15441-deneme-konusu.html

    oldu.

    Fakat ben bu ikincide yer alan id'yi adres cubugundan 15442 yaptigimda yanında yer alan konu baslıgı degismiyor, link bu sekilde kaliyor.

    /deneme/icerik/15442-deneme-konusu.html

    halbuki şu şekilde yönlenmesi gerek;

    /deneme/icerik/15442-rasgele-bir-konu.html

    httaccess yapım şu şekilde;

    Options +FollowSymLinks
    RewriteEngine on
    RewriteBase /deneme/
    RewriteRule ^icerik/(.*)-(.*).html$ icerik.php?id=$1&baslik=$2 [L,NC]
    Bunu nasıl saglarim fikri olan varmi ?

    Olmaz çünkü orada başlık kısmının sql sorgusuna bir etkisi yok. Onu şöyle yaparsın.

    Makale başlığını veritabanında slug diye bir alan açarsın ve bunun içine kaydedersin. Örneğin başlığın Deneme Başlığı ise slug deneme-basligi olur. Daha sonra bu açtığın başlığın id si 2345 diyelim.

    içerik görüntülemeye girdiğin zaman get ile id ve slug ı alırsın. Sorgu içinde sadece id ye göre değil slug'a göre de arama yaparsın yani where id nin yanında bir de and deyip slug= diyeceksin ve linkten gelen deneme-basligi kısmını alacaksın. Şimdi olay bundan sonra başlıyor.

    linkte id 2345 ve slug deneme-basligi oldugu zaman içeriğin gelecektir. Amaaa id yi 23456 olarak değiştirirsen id si 23456 olan ve slug'ı deneme-basligi olan içeriği sana bulamayacak. Sorgunda da bu noktan yola çıkarak içerik bulunamadığı anda get ile gelen id yi alıp yeni bir sorgu oluşturacaksın ve 23456 nolu içeriğin slug'ını alıp bu sayfaya yönlen diyeceksin ve karşında istediğin sayfa olacak.

    Listeyle özetlersek:

    - veritabanına slug alanı aç içerik başlığını kaydet
    - içerik detay sayfasında id ve slug'a göre içerik bilgilerini çek
    - yukarıdaki bilgide içeriği bulamadığın anda değişen id ile yeni bir sql sorgusu yazıyorsun
    - sql sorgundan gelen id ve slug bilgisiyle linki oluşturup kullanıcıyı yönlendiriyorsun.
  • 23-11-2015, 19:55:41
    #6
    üstad link veriğin dosyalarda yani <a href içeren dosyalarda linkin sonuna bir de o idden sonra eklediğin "baslik" değişkenini ekle, yani link yapısı icerik.php?id=$id&baslik=$baslik şeklinde olsun, tabi bu sefsiz link sef için de icerik/$id/$baslik.html gibisinden yazarsın. Bu şekilde eklersen "baslik" parametren de linkten dolayı otomatik olarak değişmiş olur.
  • 23-11-2015, 23:07:10
    #7
    htaccess de regex uyduğu için
    orjinal /deneme/icerik/15442-test-konusu.html
    /deneme/icerik/15441-deneme-konusu.html
    /deneme/icerik/15442-deneme-konusu.html
    farklı içerikleri gösterecektir

    buna çözüm olarak js ile yönlendirme yapabilirsiniz
    /deneme/icerik/15442-deneme-konusu.html bu linkten açılan sayfa linki eğer /deneme/icerik/15442-test-konusu.html bu değilse buraya yönlendirecek
  • 26-11-2015, 22:17:52
    #8
    akaracay adlı üyeden alıntı: mesajı görüntüle
    üstad link veriğin dosyalarda yani <a href içeren dosyalarda linkin sonuna bir de o idden sonra eklediğin "baslik" değişkenini ekle, yani link yapısı icerik.php?id=$id&baslik=$baslik şeklinde olsun, tabi bu sefsiz link sef için de icerik/$id/$baslik.html gibisinden yazarsın. Bu şekilde eklersen "baslik" parametren de linkten dolayı otomatik olarak değişmiş olur.
    hocam zaten o sekilde yapı.

    susmus adlı üyeden alıntı: mesajı görüntüle
    htaccess de regex uyduğu için
    orjinal /deneme/icerik/15442-test-konusu.html
    /deneme/icerik/15441-deneme-konusu.html
    /deneme/icerik/15442-deneme-konusu.html
    farklı içerikleri gösterecektir

    buna çözüm olarak js ile yönlendirme yapabilirsiniz
    /deneme/icerik/15442-deneme-konusu.html bu linkten açılan sayfa linki eğer /deneme/icerik/15442-test-konusu.html bu değilse buraya yönlendirecek
    hocam işte dedigim gibi farklı içerik gösteriyor onda sorun yok.

    ben cok ayrıntılara takıldıgım icin linkin de değişmesini istiyorum, işte bana o js yönlendirmesi lazım
  • 26-11-2015, 22:37:00
    #9
    Bunun için scriptin url oluşturan fonksiyonunu kullanman gerekir
    <script>
    var olmasigereken=<?=$url?>
    if (location.href != olmasigereken)
    {
    window.location=olmasigereken;
    }

    </script>


    burada php ile ise $url yazının olması gereken urlsini getirmen lazım