lostyazilim

.htaccess Seo Url

7 Mesajlar 595 Okunma
lstbozum
wmaraci reklam

theharunuysal theharunuysal WM Aracı Kullanıcı
  • Üyelik 21.06.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek .
  • Konum Ankara
  • Ad Soyad H** U**
  • Mesajlar 1879
  • Beğeniler 596 / 202
  • Ticaret 19, (%95)
iyi akşamlar arkadaşlar uzatmadan net bir soru sormak istiyorum..

index.php?sayfa=2.php

bu tür linki index-2.html şekline döndürmek istiyorum.

.htaccess ile nasıl yaparım ?


Çözüm:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^mobil-video-indir/eglence/index-([0-9]+).html mobil-video-indir/eglence/index.php?sayfa=$1 [L,NC]
 

 

wmaraci
reklam

SENibrahim SENibrahim ibocum Kullanıcı
  • Üyelik 22.12.2017
  • Yaş/Cinsiyet 24 / E
  • Meslek Öğrenci
  • Konum Aydın
  • Ad Soyad İ** Ş**
  • Mesajlar 4598
  • Beğeniler 1727 / 1541
  • Ticaret 15, (%100)
Normal bir php dosyasında istediğimiz içeriği bildiğiniz gibi id ile alıp veritabanından bu ıd ye göre içerik çekeriz

$id = $_GET["id"];
$sorgu = mysql_query("SELECT * FROM veriler Where id='$id'");


Bu yapımızda verdiğimiz linklerde eğer bir seo calısması yapılmamışsa icerik.php?id=20 gibi bir url ile çalışacaktır.Fakat biz verilerimizi daha anlasılır bir url ile çekmek istiyoruz.

Örnek vermek gerekirse siteurl.com/yeni-web-sayfamiz-yayinda

Yapmamız Gerekenler

  • Yazılarımızın başlıklarını özel karakterlerden arındırarak url formatına uygun bir hale getirmek

  • .htaccess dosyamızda gerekli yönlendirmeleri yapmak

  • Yeni linklerimizi yeni seo yapımıza göre vermek



Öncelikle ilk adımımızı yani seo url ye dönüştürülecek fonksiyonumuzu yazıyoruz.Bunu sayfamızda çoğu yerde kullanacağımız için sitenizin heryerine çağrılan bir php dosyasına yazarsanız istediğiniz zaman kullanabilirsiniz. Örn (config.php veya header.php)

Gerekli Seo Fonksiyonumuz
Benim kullandığım seo fonksiyonum bu benim işimi çoğu zaman gördü

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;
}


Bu fonksiyon türkçe karakterleri normal karakterlere , özel karakterleride url formatında çevirmektedir örnek vermek gerekirse

$baslik = "İsteğe Bağlı Asil Listede Yer Alan Öğrencilerimiz için Dilekçe Duyurusu";
echo seo($baslik);

// Çıktı : istege-bagli-asil-listede-yer-alan-ogrencilerimiz-icin-dilekce-duyurusu


İstediğimiz url yapısını olusturmayı başardık , şimdi sıra geldi yönlendirmeleri yapmaya
Php dosyamızda içeriği yine id ile çağıracağız tek yapmamız gereken htaccesde doğru yönlendirme yapmak

Htaccess Yönlendirmesi
.htacces dosyamızı açıyoruz yok ise yeni bir .htacces olusturuyoruz php dosyalarımızın olduğu dizine
Dosyamızın içine girdikten sonra

# Yönlendirmeleri aktif eder
RewriteEngine on

# Yeni bir yönlendirme kuralı ekliyoruz
RewriteRule ^([0-9a-zA-Z-_]+)/([0-9]+)$ posts.php?sef=$1&id=$2 [L,QSA]


Açıklamalar
posts.php = içerikleri id ye göre aldığımız php dosyamız
sef = seo link yapımızın geldiği ara değişken
id = posts.php de veri çektiğimiz id parametresi

([0-9a-zA-Z-_]+) = seo linkimiz bu kısma yerleşecek a-z arası 0-9 arası ve – karakterleri (sef)
([0-9]+) = post.php de kullandığımız id değeri buraya gelicek

[L] = url uyuştuğu an keser bunun anlamı şu örneğin siteurl.com/merhaba burada merhaba bizim url miz fakat [L] koymaz isek merhabaads gibi bir url yide aynı sayfaya yönlendirecek bazen hatalar olabilir o yüzden [L ] koyuoruz uyuştuğu an kesiyor devam ettirmiyor

[QSA] = Bu GET ile gösterilen verilerin aktif olmasını sağlar yani örnekte sef=$1&id=$2
Bazı configlerde koymaya gerek yokken bazı web server configlerinde koymayı gerektir biz öncelik olarak ekleyelim

Linklerimizi Yeniden Oluşturalım
Örnek olarak anasayfaya bir duyuru listesi çekeceksiniz mysql_query ve fetch kullanarak bir diziye aktardınız
Dizi adımız $veri olsun

Örnek link yapımız

">

// Örnek Çıktısı yazi-basligi/1
// Örnek Çıktısı yazi-basligi/1


Diğer Htaccess Ayarları
.html ile biten url ler: rewriterule mizde sol kısımdaki $ dan önce .html koymamız yeterli

Kategoriye göre getirmek : rewriteruleye bir parametre daha vermelisiniz ,

RewriteRule ^([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+)/([0-9]+)$ posts.php?kat=$1&sef=$2&id=$3 [L,QSA]

Farklı tablolardan farklı veriler için, Örneğin
haberler tablosundan , haberler/haber1/1
fotogaleri tablosundan , fotogaleri/fotohaber1/1

RewriteRule ^haberler/([0-9a-zA-Z-_]+)/([0-9]+)$ haber.php?sef=$1&id=$2 [L,QSA]
RewriteRule ^galeriler/([0-9a-zA-Z-_]+)/([0-9]+)$ galeri.php?sef=$1&id=$2 [L,QSA]


Olası Bozukluk ve Hatalar

En önemli sorunlardan biri sitenizin statik dosyalarının yönlendirmeden etkilenmesi (css,js,img gibi dosyalar)

1.Çözüm : Sitenizin head tagları arasına base href ekleyin



2.Çözüm : Htaccess yapılandırması Rewrite kuralızdan hemen önce bu kodu ekleyin

RewriteCond %{REQUEST_FILENAME} !-f

3.Çözüm : Htaccess şartlandırması belirli klasörlere dokunulmasın

RewriteCond $1 !^(css|js|images|inc|lang)

Birden fazla rewriteruleniz varsa bazen çakışma yaşanabilir bunun için katmanlı bir yapı kullanabilirsiniz
Örneğin :

sayfalar/iletisim-sayfasi/2
yazilar/gunun-yazisi/2

Son

Web sayfalarımızda seo sadece seo linklerle sağlanamayabilir.Ancak bu en önemli faktörlerden biridir.
Size önerim her içerik için dinamik meta description ve keyword getirmenizdir.Site içi seo’nun en önemli özellikleri bu özelliklerdir.

Kaynak;
https://www.mustafaercel.com/2013/09/web-sayfalarimizi-seo-linklerle-yapilandiralim/
 

 

Herkez hata yapabilir, pardon herkes. | ibocum.com

theharunuysal theharunuysal WM Aracı Kullanıcı
  • Üyelik 21.06.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek .
  • Konum Ankara
  • Ad Soyad H** U**
  • Mesajlar 1879
  • Beğeniler 596 / 202
  • Ticaret 19, (%95)
KomanBeğrek bunları biliyorum hocam google'dan araştırdım sayfalama yapısı var.
Video çekiyorum 1 sayfada 5 tane video içeriği var page=2 dediği ikinci sayfa id ye göre değil sadece sayfa sayısını gösteriyor.
 

 

SENibrahim SENibrahim ibocum Kullanıcı
  • Üyelik 22.12.2017
  • Yaş/Cinsiyet 24 / E
  • Meslek Öğrenci
  • Konum Aydın
  • Ad Soyad İ** Ş**
  • Mesajlar 4598
  • Beğeniler 1727 / 1541
  • Ticaret 15, (%100)
theharunuysal Dostum mantığı bu eğer PHP biliyorsan bunu yapabilirsin.
 

 

Herkez hata yapabilir, pardon herkes. | ibocum.com
wmaraci
wmaraci

theharunuysal theharunuysal WM Aracı Kullanıcı
  • Üyelik 21.06.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek .
  • Konum Ankara
  • Ad Soyad H** U**
  • Mesajlar 1879
  • Beğeniler 596 / 202
  • Ticaret 19, (%95)
KomanBeğrek usta değilim amatörüm.

index.php?sayfa=1
index.php?sayfa=2
index.php?sayfa=3
index.php?sayfa=4

yerine

index-1.html
index-2.html
index-3.html
index-4.html


sadece bunu yapmak istiyorum..
 

 

SENibrahim SENibrahim ibocum Kullanıcı
  • Üyelik 22.12.2017
  • Yaş/Cinsiyet 24 / E
  • Meslek Öğrenci
  • Konum Aydın
  • Ad Soyad İ** Ş**
  • Mesajlar 4598
  • Beğeniler 1727 / 1541
  • Ticaret 15, (%100)
">

// Örnek Çıktısı yazi-basligi/1
// Örnek Çıktısı yazi-basligi/1

Ona göre düzenleyin.
 

 

Herkez hata yapabilir, pardon herkes. | ibocum.com

theharunuysal theharunuysal WM Aracı Kullanıcı
  • Üyelik 21.06.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek .
  • Konum Ankara
  • Ad Soyad H** U**
  • Mesajlar 1879
  • Beğeniler 596 / 202
  • Ticaret 19, (%95)
KomanBeğrek teşekkür ederim demek istediğimi anlamadınız ama çözdüm.. Konuya ekliyorum..
SENibrahim

kişi bu mesajı beğendi.

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al