Htaccess dosyamda bulunan satırlar şu şekilde
ErrorDocument 404 /404.php
RewriteRule ^([a-zA-Z0-9_-]+)$ uyedetay.php?nick=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ uyedetay.php?nick=$1
http://siteadi.com/bozuklink
bozuklink nickli bir üye yoksa 404 yönlenmesini istiyorum nasıl yaparım ?
HTACCESS Sorunum
7
●106
- 03-06-2020, 06:14:15Üyeliği durdurulduŞöyle yapsanız hocam;
uyedetay.php dosyasında gelen nicke göre sorgu yaptırıyorsunuz ya hocam orda üye yoksa header komutu ile 404.php sayfasına yönlendirseniz. - 03-06-2020, 06:39:56Hocam şöyle bir kod yazdım ama çalışmadı inceleyebilir misinizmustafaaslan adlı üyeden alıntı: mesajı görüntüle
define('PATH',$_SERVER['DOCUMENT_ROOT'].'/'); include_once (PATH.'/inc/headergiris.php'); $nick = $_GET["nick"]; if(empty($nick)){ header('Location: http://localhost/uyeadibos'); } $query=$db->prepare("SELECT * FROM uye WHERE kadi = ?"); $query->execute(array($nick)); $say=$query->rowCount(); if($say < 1){ header('Location: http://localhost/kullanicidbdeyok'); }else{ //Fonkiyon kodlarım }
Tekrardan inceledim hocam saçma bir şekilde header kodlarım çalışmıyorlar
- 03-06-2020, 07:40:11PHP de header fonksiyonunun çalışması için o komuttan önce bir çıktı yapmamış olman gerekir. Yani /inc/headergiris.php eğer bir çıktı üretiyorsa header çalışmaz.
Bide böyle dene
define('PATH',$_SERVER['DOCUMENT_ROOT'].'/'); $nick = $_GET["nick"]; if(empty($nick)){ header('Location: http://localhost/uyeadibos'); } $query=$db->prepare("SELECT * FROM uye WHERE kadi = ?"); $query->execute(array($nick)); $say=$query->rowCount(); if($say < 1){ header('Location: http://localhost/kullanicidbdeyok'); }else{ //Fonkiyon kodlarım } include_once (PATH.'/inc/headergiris.php'); - 03-06-2020, 08:54:49Üyeliği durdurulduYukarıdaki arkadaş cevabı vermiş muhtemelen çalışması lazım ama çalışmaz ise özelden yazın yardımcı olurum size.ONURERDGN adlı üyeden alıntı: mesajı görüntüle
- 03-06-2020, 09:52:22Bak sana mantığını anlatayım sen gerekli yerleri düzeltirsin.ONURERDGN adlı üyeden alıntı: mesajı görüntüle
Öncelikle htaccess kodun aşağıdaki gibi olsun. Senin yaptığın gibi olursa siteadresi.com/iletisim, siteadresi.com/hakkimizda sayfalarıda uyedetay.php sayfasına atmış olursun.
RewriteEngine on
RewriteRule ^profil/([a-zA-Z0-9_-]+)$ uyedetay.php?nick=$1 [L,NC,QSA]
ErrorDocument 404 http://siteadi.com/404.php
Burada ne yaptık böyle bir link olursa siteadi.com/profil/burayagelenneyse şu adrese yönlendir dedik siteadi.com/uyedetay.php?nick=burayagelenneyse
Sen böyle bir profil olup olmadığını uyedetay.php sayfanda kontrol etmelisin. Var ise profilini göstermelisin yoksa 404 sayfana yönlendirmelisin.
PHP kodlarında aşağıdaki gibi olabilir.
ob_start(); $nick=$_GET["nick"]; $query=$db->prepare("SELECT * FROM uye WHERE kadi = ?"); $query->execute(array($nick)); $say=$query->rowCount(); if($say > 1){ echo "Kullanıcı bulundu. Profil detaylarını burada"; }else{ header("Location:http://siteadi.com/404.php"); exit(); }yukarıda belirttiğim htaccess kodundaki 404 sayfasının çalışması için. Orada belirttiğim url yapılarına karşılık gelmeyen bir url yapısı olduğunda çalışır. Mesela aşağıdaki gibi url olursa htaccess içindeki 404 sayfasına yönlenir.
siteadi.com/deneme/burayagelenneyse
Umarım ufakta olsa htaccess in çalışma mantığını anlatabilmişimdir. Selamlar - 03-06-2020, 21:13:25Hocamecho ile head etiketi ekleyip içersine html ile yönlendirme ekledim aynen dediğiniz gibi header içersinde yönlendirme olduğu için çalışmıyormuş işimi gördü yani bu yaptığım teşekkür ederimbycengiz adlı üyeden alıntı: mesajı görüntüle
Çok sağolun hocam ben kendi sorunumuhallettim ama umarım forumda diğer arkadaşlarada yardımcı olur.salimsevindik adlı üyeden alıntı: mesajı görüntüle