PHP Seo Dostu Link Yapıları

Merhabalar, PHP Htaccess ile SEO uyumlu link yapıları elde edeceğiz.

require_once('config.php');

$baslik = mysql_query("SELECT * FROM tasarim ORDER BY id DESC");
while($gel=mysql_fetch_assoc($baslik)){
    echo '<a href="detay/'.$gel['sef'].'.html">',$gel['Baslik'],"<br/>",'</a>';
}
require_once('config.php');
$sef = mysql_escape_string($_GET['gel']);
$yazi = mysql_query("SELECT * FROM tasarim WHERE sef='$sef'");
$cek = mysql_fetch_assoc($yazi);
    switch($cek){
        case null;
            echo "<center><h1 style='font-size:500px'>404</h1></center>";
            break;
        default:
        echo $cek['icerik'];
}
mysql_select_db("calismalarim",mysql_connect("localhost","root"));
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^detay/([a-zA-Z0-9_-]+).html$ oku.php?gel=$1 [L]
require_once('config.php');
function sef_link($bas)
{	 
    $bas = str_replace(array("&quot;","&#39;"), NULL, $bas);
    $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '-');
    $yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', ' ');
    $perma = strtolower(str_replace($bul, $yap, $bas));
    $perma = preg_replace("@[^A-Za-z0-9\-_]@i", ' ', $perma);
    $perma = trim(preg_replace('/\s+/',' ', $perma));
    $perma = str_replace(' ', '-', $perma);
    return $perma;
}
$baslik = "Başlık";
$icerik= "Başlık ile ilgili bir metin.";
$sef = sef_link($baslik);
$kaydet=mysql_query("INSERT INTO tasarim (Baslik,icerik,sef) VALUES ('".$baslik."','".$icerik."','".$sef."')");
CREATE TABLE IF NOT EXISTS `tasarim` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Baslik` varchar(250) NOT NULL,
  `icerik` text CHARACTER SET utf32 NOT NULL,
  `sef` varchar(250) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `Baslik` (`Baslik`),
  KEY `Baslik_2` (`Baslik`),
  KEY `Baslik_3` (`Baslik`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
/detay/www-mkoseoglu-com-php-htaccess-ile-sef-link-olusturma

26 thoughts on “PHP Seo Dostu Link Yapıları

Mert Kardeşim Merhaba,
Öncelikle paylaşımlarından dolayı teşekkürederim.
takıldığım bir konu var benim projemde:
sayfaoku.php ve icerikoku.php gibi 2 adet oku sayfası var
gerekli kod düzenlemelerini yaptıktan sonra
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+).html$ sayfa.php?gel=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+).html$ icerik.php?gel2=$1 [L]
bunları da ekledim ama sadece sayfa.php çalışır halde diğeri görüntülenmiyor

Hocam sondaki “[L]” last anlamina gelmektedir.

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+).html$ sayfa.php?gel=$1 [N]
RewriteRule ^([a-zA-Z0-9_-]+).html$ icerik.php?gel2=$1 [L]

Son kurala dek `[N]ext` demeliyiz.

Merhabalar, siteadi.com/makale-adi şeklinde bir seflink oluşturmak yerine, siteadi.com/makale-adi/155 Şeklinde bir seflink oluşturmak dahafaydalı değil midir?

Google açısından bunun sıkıntısı var mıdır?
Performans açısından hangisi daha iyi olur ?
Teşekkürler.

Esenlikler Kubilay, SEO’nun ana mantığı “kısa ve anlamlı” link yapılarıdır. Kullanacağın link yapısı ne kadar kısa ve ilgili makale ile ne kadar bağlantılı olursa o kadar etkili olur. Ben,

/makale-adi

olanını tercih ederdim.

Teşekkürler cevabınız için
Ancak diyelim büyük bir proje geliştiriyoruz. sonuna bir id koyup sorgulatmak daha mantıklı olmaz mı? Yani seo url’ye göre değilde idye göre verinin gelmesi gerekmez mi
makale-adi-155 yada makale-adi/155 gibi

Hem SEO Url hem de ID değerine göre birlikte de sorgulatabilirsin. Burada ana amaç, en kısa ve en anlamlı Url yapısını nasıl elde ederiz? Bu tamamen sana kalmış. Bu konuda SEO kaynaklarına göz gezdirebilirsin.

Seo konusunda çok faydalı bir teknik olmuş ne zamandır bunu yapmayı araştırıyordum çok teşekkürler sizin sayenizde yapabildim gerçekten çok teşekkürler.

Linkleri, detay/konu-baslik şeklinde açıyoruz.
ama tekrardan detay2/konu-baslik2 şeklinde açtiğimizda ve 2 side oku.php yönlendirildiğinde

detay/konu-baslik > detay2/konu-baslik yaptığımızda aynı sayfa açılıyor bu engellemenin yada 404 sayfasına yönlendirmenin bir yolu var mı

Mert alakan için teşekkürler, fakat bu işe yaramıyor. Sorunun htaccess ile alakalı olduğunu şurdan anlayabilirsin, Htaccess link ayarını TR/contact.html yerine TR-contact.html olarak ayarladığım zaman düzeliyor.

Evet öyle oldu :) Bu arada sayfaya ulasabılıyor fakat dosyaları farklı dizinde aradıgı ıcın sıkıntı yasıyormussunuz siz.

Çözüm: sayfa basına bu kodu ekleyınız.

Mert merhaba,
.htaccess dosyasında Sef link için şöyle bir kodum var;

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*).html$ alt.php?lang=$1&module=$2

siteadi.com/TR/contact.html şeklinde giriş yaptığım zaman sorun yaşıyorum.
Ama RewriteRule ^(.*)-(.*).html$ alt.php?lang=$1&module=$2 değiştirdiğim zaman siteadi.com/TR-contact.html olarak sorunsuz şekilde çalışıyor. Yani “/” yerine “-” olduğu zaman sorun yok. Bunu nasıl düzeltebilirim ?

Options +FollowSymLinks
Options +Indexes +FollowSymLinks
RewriteEngine On

RewriteRule ^(.*)/(.*)$.html alt.php?lang=$1&module=$2 [L,NC]

İnanın hiçbir fikrim yok :(
Daha önce hiç karşılasmadım boyle bır durumla. Yukarıda ki kod hatasız gibi duruyor. Çözüme ulasırsanız benide bilgilendirin lütfen :)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.