PHP Seo link sorunu
Merhabalar. SEO link ile ilgili bir sorunum var. Yapmak istediğim olay duzenle.php?mId=1 yerine duzenle/1 olarak göstermek istiyorum, bir türlü yapamadım. Yardımcı olabilir misiniz ? Cevaplarınız için şimdiden teşekkür ederim.
htaccess içeriği:
RewriteEngine On
RewriteRule ^duzenle/([0-9]+)$ duzenle.php?mId=$1&id=$2 [L,QSA]
RewriteRule ^sil/([0-9]+)$ sil.php?mId=$1&id=$2 [L,QSA]
seo.php içeriği:
function seo($s) {
$tr = array('ş','Ş','ı','I','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç','(',')','/',' ',',','?');
$eng = array('s','s','i','i','i','g','g','u','u','o','o','c','c','','','-','-','','');
$s = str_replace($tr,$eng,$s);
$s = strtolower($s); $s = preg_replace('/&.+?;/', '', $s);
$s = preg_replace('/\s+/', '-', $s);
$s = preg_replace('|-+|', '-', $s); $s = preg_replace('/#/', '', $s);
$s = str_replace('.', '', $s); $s = trim($s, '-'); return $s;
}
index.php içeriği:
<tbody>
<?
include 'seo.php';
$query = $db->query("SELECT * FROM musteri", PDO::FETCH_ASSOC);
if ( $query->rowCount() ){
foreach( $query as $row ){
$mId = $row["id"];
$mAd = $row["Ad"];
$mSoyad = $row["Soyad"];
?>
<tr>
<th scope="row"><?="#".$mId;?></th>
<td><?=$mAd;?></td>
<td><?=$mSoyad;?></td>
<td>
<a href="duzenle/<?=seo($mId);?>">düzenle</a>
<a href="sil/<?=seo($mId);?>">sil</a>
</td>
</tr>
<? }} ?>
</tbody>
duzenle.php içeriği:
$mId = $_GET["mId"];
echo $mId;
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (11)
RewriteRule ^duzenle/([0-9]+).*$ duzenle.php?id=$1 [L,QSA]
duzenle/5 gibi düşün sorunsuz çalışacaktır.
bak sen www klasorunun altındakı duzenle klasorunu sef lemeye calısıyorsun
duzenle klasorunun altında duzenle.php sayfasını cagırman lazım https://locahost/duzenle/duzenle/1
sen duzenle ana klasorune ıslem yapmaya calısıyorsun
bu hatada "The requested URL /www/duzenle/1.php was not found on this server." diyorkı duzenle klasoru altında 1.php elemanını bulamıyorum
Zaten duzenle.php yi göstermek istiyorum
Dediklerin gibi yaptım:
.htaccess:
RewriteRule ^duzenle/([^/]*)$ duzenle.php?id=$1 [L]
link yapısı
<a href="edit/<?=seo(id);?>">düzenle</a>
düzenle dediğim zaman http://local/www/duzenle/1 olarak çıkıyor ama
sayfanın verdiği hata ise
"The requested URL /www/duzenle/1.php was not found on this server."
Burada çıkan 1 normalde müşterinin id ' si
ama sayfa olarak algılıyor. o yüzden 1.php dosyası yok diyor.