türkçe karakterleri çevirdiğin ayrıntılı fonksiyon olduğunu varsayarak
function tr($url)
    {
    $turkce=array('ı','ö','ü','ğ','ş',' ');
    $yeni=array('i','o','u','g','s','-');
    $url=str_replace($turkce,$yeni,$url);
    return $url;
    }

function seflink($id,$baslik,$sef)
    {
    switch($sef)
        {
        case 1: $sefbaslik=tr($baslik); $seflink='makale/'.$id.'/'.$sefbaslik; break;
        default: $seflink='makaleoku.php?id='.$id; break;
        }
    return $seflink;
    }
uygularken
<?
# Ana Sayfada 5 tane konu başlığı ve önyazı listeleniyor...
$devaminioku= "Devamını oku...";
$sql = mysql_query ("SELECT * FROM yazilar ORDER BY id DESC LIMIT 5"); 
while($goster=mysql_fetch_array($sql)){
echo "<h5><p><a href=\"".seflink($goster['id'],$goster['baslik'],1)."\">".$goster['baslik']."</a></h5>";
echo "<p>".$goster['onyazi']."<br>";
echo "<h6><p><a href=\"".seflink($goster['id'],$goster['baslik'],1)."\">".$devaminioku."</a></h6>";
echo "<br>";
 }  
?>
.htaccess

RewriteRule ^makale/([0-9]+)/([_A-Za-z0-9-]+)?$ makaleoku.php?id=$1 [L]

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

ikisinden birini eklersen olur.

ilki eklersen fonksiyondaki "$seflink='makale/'.$id.'/'.$sefbaslik;" urlencode($sefbaslik) olarak değiştir.

kolay gelsin

+kodları kontrol et yazım yanlışları olabilir.