Seo url'yi öğrenmek için şöyle basit bir şey yaptım ve size yapmak istediğimi anlatıcam;
Şuanda bu url'lere tıklanınca "http://localhost/sefurl/servis.php?servisler_id=1" gibi sorgular döndürüyor ancak ben bunu şöyle yapmak istiyorum; "http://localhost/sefurl/yazi-editorlugu/" ve bu istediğim doğrultusunda dosyalarımı oluşturuyorum;
index.php dosyam (En yukarıdaki resimdeki yer yani servislerin listeleneceği alan.) Ve Kodları Şu şekilde;
<?php
require_once('baglan.php');
$servisler=$db->prepare("SELECT * FROM servisler");
$servisler->execute();
?>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
<title>Hello, world!</title>
</head>
<body>
<div class="container">
<div class="row mt-5">
<?php
while ($vericek=$servisler->fetch(PDO::FETCH_ASSOC)) { ?>
<div class="col-md-4">
<div class="shadow-lg p-3 mb-5 bg-body rounded">
<div class="text-center">
<i class="<?php echo $vericek['servisler_icon'] ?> fa-5x"></i>
<h2 class="mt-3"><?php echo $vericek['servisler_title'] ?></h2>
<p><?php echo $vericek['servisler_text'] ?></p>
<a href="<?=seo($vericek["servisler_title"]).'/'.$veri["servisler_id"]?>"><button class="btn btn-success">İNCELE</button></a>
</div>
</div>
</div>
<?php
}
?>
</div>
</div>
<?php
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('/&amp;amp;amp;amp;amp;amp;amp;amp;.+?;/', '', $s);
$s = preg_replace('/\s+/', '-', $s);
$s = preg_replace('|-+|', '-', $s);
$s = preg_replace('/#/', '', $s);
$s = str_replace('.', '', $s);
$s = trim($s, '-');
return $s;
}
?>
<!-- Optional JavaScript; choose one of the two! -->
<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.min.js" integrity="sha384-Atwg2Pkwv9vp0ygtn1JAojH0nYbwNJLPhwyoVbhoPwBhjQPR5VtM2+xf0Uwh9KtT" crossorigin="anonymous"></script>
<script src="https://kit.fontawesome.com/267d24fc8a.js" crossorigin="anonymous"></script>
</body>
</html>servis.php dosyam (servislerim detaylarının gösterileceği yer.) Ve kodları;
[COLOR=#ffffff][FONT=Consolas][COLOR=#e1efff]<?php[/COLOR][/FONT][/COLOR]
require_once('baglan.php');
$sorgu=$db->prepare("SELECT * FROM servisler where servisler_id=:id");
$sorgu->execute(array(
'id'=>$_GET['servisler_id']
));
$vericek=$sorgu->fetch(PDO::FETCH_ASSOC);
?>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
<title>Hello, world!</title>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="shadow-lg p-3 mb-5 bg-body rounded mt-5">
<div class="text-center">
<i class="<?php echo $vericek['servisler_icon'] ?> fa-5x"></i>
<h2><?php echo $vericek['servisler_title'] ?></h2>
<?php echo $vericek['servisler_text'] ?></div>
</div>
</div>
</div>
</div>
<!-- Optional JavaScript; choose one of the two! -->
<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.min.js" integrity="sha384-Atwg2Pkwv9vp0ygtn1JAojH0nYbwNJLPhwyoVbhoPwBhjQPR5VtM2+xf0Uwh9KtT" crossorigin="anonymous"></script>
<script src="https://kit.fontawesome.com/267d24fc8a.js" crossorigin="anonymous"></script>
</body>
</html>baglan.php dosyam (veritabanı bağlantımı yaptığım yer) ve kodları;(Not:error_reporting(0); kullanmamın nedeni dizin ifşasını önlemektir.)
<?php
error_reporting(0);
try{
$db=new PDO("mysql:host=localhost;dbname=sefurl;charset=utf8","root","");
}catch(PDOEXception $hata){
echo $hata->getMessage();
}
?>.htaccess dosyam ve kodları;
RewriteEngine on
RewriteRule ^servisler/([0-9a-zA-Z-_]+)/([0-9]+)$ servis.php?sef=$1&id=$2 [L,QSA]
Ve son olarak veritabanım (Veritabanı adım sefurl çalıştığım tablo ise servisler tablosu İD değerimi auto increment olarak saklıyorum.) ve görünümü;
1-2 Haftadır uğraşıyorum fazlasıyla bıktırdı lütfen bana daha önce yazılmış blogları vs. atmayın google'da aramasını yapıp çıkan ilk 5 sayfaya da baktım olmadı. Bana bunu öğretecek kişiye yazılımcıların işine yarayacak bir platform olan 1 adet envato elements hesabı ve R10+ ileteceğim. Şimdiden herkese teşekkürler iyi forumlar