lostyazilim
tr.link

Hata sayfalarını ilgili url ye otomatik yönlendirme

23 Mesajlar 3.177 Okunma
lstbozum
tr.link

GuestLion GuestLion WM Aracı Kullanıcı
  • Üyelik 20.04.2014
  • Yaş/Cinsiyet 47 / E
  • Meslek Yazılım Geliştirme
  • Konum İstanbul Anadolu
  • Ad Soyad O** Ö**
  • Mesajlar 852
  • Beğeniler 340 / 340
  • Ticaret 39, (%100)
Siteme gelen 404 sayfalarının url lerini yakalayıp 404 sayfasına yönlendirmek ve 404 sayfasında mevcut url ler ile karşılaştırıp en yakın olduğu sayfaya otomatik yölendirmek istiyorum.

Bunun için önce normal olarak hata sayfalarını htaccess ile 404.php sayfasına yönlendiriyorum. Ancak bu durumda yönlendirme htaccess ile geldiğinden HTTP_REFERER ile ur yi alamıyorum.

Bunun yerine headera aşağıdaki komutu eklediğimde istediğim oluyor ve url yi yakalıyorum. Ancak aşağıdaki kodu sitemde header en üstüne yerleştirmem gerekiyor doğal olarak.

header("HTTP/1.1 301 Moved Permanently");
header("Location:404.php");
exit();


Ancak bu seferde sadece hatalı değil tüm sayfaları 404.php ye yönlendiriyor. hata sayfalarını değil.

Bu durumu nasıl çözebilirim?
 

 

wmaraci
reklam

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
Bir blogun olduğunu düşünelim. Bu blogdaki bir post sayfasında içeriği çekip yazdırman gerek değil mi? Tam o sırada eğer veritabanından bir değer dönmüyorsa bi if else ile 404 sayfasına atarsın. 404 sayfasında referrer'e bakıp en uygun yere yönlendirirsin.

Şimdi diyeceksin ki post sayfaları vs tamam da diğer statik sayfalar ne olacak? Onları da htaccess ile yönlendireceksin ama referrer olmadığı için ana sayfaya yönlendirebilirsin. Ana sayfaya yönlendirmek istemiyorsan 404 sayfasına bir arama kutusu koyabilirsin.
 

 

no time for caution

GuestLion GuestLion WM Aracı Kullanıcı
  • Üyelik 20.04.2014
  • Yaş/Cinsiyet 47 / E
  • Meslek Yazılım Geliştirme
  • Konum İstanbul Anadolu
  • Ad Soyad O** Ö**
  • Mesajlar 852
  • Beğeniler 340 / 340
  • Ticaret 39, (%100)

Decimas adlı üyeden alıntı

...404 sayfasında referrer'e bakıp en uygun yere yönlendirirsin.


Hocam teşekkür ederim ancak zaten problem yukarıda yazdığınız cümleden kaynaklı. Soruda bu durumu detaylı açıkladım.

Şöyle ki 404 sayfasına .htaccess ile yönlendirirsem bu durumda 404 sayfasına http_referer boş dönüyor haklı olarak :)
 

 

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)

OğuzÖztürk adlı üyeden alıntı

Hocam teşekkür ederim ancak zaten problem yukarıda yazdığınız cümleden kaynaklı. Soruda bu durumu detaylı açıkladım.

Şöyle ki 404 sayfasına .htaccess ile yönlendirirsem bu durumda 404 sayfasına http_referer boş dönüyor haklı olarak :)


Hocam merhaba http_referer almak için javascript yönlendir o zaman referer yazıyor ;
<script>
window.location.href = "404.php";
</script>
GuestLion

kişi bu mesajı beğendi.

wmaraci
wmaraci

GuestLion GuestLion WM Aracı Kullanıcı
  • Üyelik 20.04.2014
  • Yaş/Cinsiyet 47 / E
  • Meslek Yazılım Geliştirme
  • Konum İstanbul Anadolu
  • Ad Soyad O** Ö**
  • Mesajlar 852
  • Beğeniler 340 / 340
  • Ticaret 39, (%100)

v4r1able adlı üyeden alıntı

Hocam merhaba http_referer almak için javascript yönlendir o zaman referer yazıyor ;
<script>
window.location.href = "404.php";
</script>


Peki bunu nasıl yazarsam sadece olmayan sayfaları yönlendirir? Bu haliyele header.php ye eklersem doğal olarak tüm sayfaları yönlendirir.
 

 

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)

OğuzÖztürk adlı üyeden alıntı

Peki bunu nasıl yazarsam sadece olmayan sayfaları yönlendirir? Bu haliyele header.php ye eklersem doğal olarak tüm sayfaları yönlendirir.


Kendi scriptini mi kullanıyorsun yoksa wordpress mi kullanıyorsun wordpress kullanıyorsan zaten tema yolu üzerinde 404.php var oraya ekleyebilirsin
 

 

GuestLion GuestLion WM Aracı Kullanıcı
  • Üyelik 20.04.2014
  • Yaş/Cinsiyet 47 / E
  • Meslek Yazılım Geliştirme
  • Konum İstanbul Anadolu
  • Ad Soyad O** Ö**
  • Mesajlar 852
  • Beğeniler 340 / 340
  • Ticaret 39, (%100)

v4r1able adlı üyeden alıntı

Kendi scriptini mi kullanıyorsun yoksa wordpress mi kullanıyorsun wordpress kullanıyorsan zaten tema yolu üzerinde 404.php var oraya ekleyebilirsin


Kendi scriptimi kullanıyorum.
 

 

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)

OğuzÖztürk adlı üyeden alıntı

Kendi scriptimi kullanıyorum.


Kendi scriptini kullanıyorsan örnek vereyim ;
$makaleler = mysqli_query($baglan,"select * from makaleler where id = '$id'");

while($v4_cek=mysqli_fetch_array($makaleler))
{
$makale_icerigi = $v4_cek["icerik"];
}

if(empty($makale_icerigi)) {
echo '<script>
window.location.href = "404.php";
</script>';
}
?>


bu şekilde yaparsın makale id'sini arıyor içeriği çekiyor içerik boş ise 404 sayfasına yönlendiriyor javascript ile entegre edebilirsin bu şekilde
 

 

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)

v4r1able adlı üyeden alıntı

Kendi scriptini kullanıyorsan örnek vereyim ;
$makaleler = mysqli_query($baglan,"select * from makaleler where id = '$id'");

while($v4_cek=mysqli_fetch_array($makaleler))
{
$makale_icerigi = $v4_cek["icerik"];
}

if(empty($makale_icerigi)) {
echo '<script>
window.location.href = "404.php";
</script>';
}
?>


bu şekilde yaparsın makale id'sini arıyor içeriği çekiyor içerik boş ise 404 sayfasına yönlendiriyor javascript ile entegre edebilirsin bu şekilde


echo altında exit; atabilirsin php olarak sistemi başka bir işlem için yormasın
 

 

GuestLion GuestLion WM Aracı Kullanıcı
  • Üyelik 20.04.2014
  • Yaş/Cinsiyet 47 / E
  • Meslek Yazılım Geliştirme
  • Konum İstanbul Anadolu
  • Ad Soyad O** Ö**
  • Mesajlar 852
  • Beğeniler 340 / 340
  • Ticaret 39, (%100)

v4r1able adlı üyeden alıntı

Kendi scriptini kullanıyorsan örnek vereyim ;
$makaleler = mysqli_query($baglan,"select * from makaleler where id = '$id'");

while($v4_cek=mysqli_fetch_array($makaleler))
{
$makale_icerigi = $v4_cek["icerik"];
}

if(empty($makale_icerigi)) {
echo '<script>
window.location.href = "404.php";
</script>';
}
?>


bu şekilde yaparsın makale id'sini arıyor içeriği çekiyor içerik boş ise 404 sayfasına yönlendiriyor javascript ile entegre edebilirsin bu şekilde


Bu şekilde yapıp her sayfa çağrıldığın gerksiz bir sorgu çalıştırmaki stemedim. Bu şekilde yaptıktan sonra zaten javascripte de gerek kalmıyor.

Teşekkürler desteğin için..
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al