v2.5.2
Giriş yap

PHP Seo link sorunu

d0nz
1,161 defa görüntülendi

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;
Cevap yaz
Cevaplar (11)
d0nz
1370 gün önce

Çalışmıyor efendim, aynı sorun.

Not Found
The requested URL /www/duzenle/1.php was not found on this server.

link yapısı:
<a href="duzenle/<?=$mId;?>">düzenle</a>

aydinkeskin
1370 gün önce

RewriteRule ^duzenle/([0-9]+).*$ duzenle.php?id=$1 [L,QSA]

duzenle/5 gibi düşün sorunsuz çalışacaktır.
d0nz
1370 gün önce

Çok iyi anladım ama, düzenle klasör değil ki. Dosya o. duzenle.php şeklinde.
Ayrıca 1.php de dosya değil müşterinin id numarası

duzenle.php?id=1 öncesi
duzenle/1/ sonrası :(

qplot
1370 gün önce

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

d0nz
1370 gün önce

Nerede hata yapıyorum anlamış değilim. Verdiği hata sonucu hala aynı; kişi id' sini 1.php olarak görüyor.

"The requested URL /www/duzenle/1.php was not found on this server."

sync
1370 gün önce
RewriteRule ^duzenle/(.*)$ /duzenle.php?id=$1 [L]
d0nz
1370 gün önce

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.

qplot
1370 gün önce

sen mevzuyu yanlıs anlamıssın kardes

sen 1.php yi oyle gostermek ıstıyorsun

oysakı yukarıda duzenle.php ile işlem yaptırmak ıstıyorsun

RewriteRule ^duzenle/([^/]*)$ 1.php?mId=$1 [L]

bu sekıl dene

d0nz
1370 gün önce

Dediğiniz gibi yaptığım zaman aldığım hata:

Not Found
The requested URL /www/duzenle/1.php was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

qplot
1370 gün önce

RewriteRule ^duzenle/([^/]*)$ duzenle.php?mId=$1 [L]

sync
1370 gün önce

Merhaba

duzenle.php?mId=$1&id=$2

içinde ki id=$2 kısımlarını kaldırman lazım.