WordPress Yazı Linklerini SQL ile Almak ve .htaccess Yönlendirmeleri Oluşturmak

Giriş

WordPress sitelerinde kalıcı bağlantı yapısını değiştirdiğinizde, eski bağlantılardan yeni bağlantılara yönlendirme yapmak önemlidir. Bu, SEO sıralamanızın korunmasına ve kullanıcı deneyiminin iyileştirilmesine yardımcı olur. Eğer yönlendirmeleri elle eklemek çok zahmetli hale geliyorsa, SQL sorguları kullanarak WordPress veritabanından gerekli verileri çekip otomatik yönlendirme kurallarını oluşturabilirsiniz. Bu makalede, WordPress’te yazıların permalink (kalıcı bağlantı) adreslerini SQL sorguları ile nasıl alacağınızı ve bunları .htaccess yönlendirme kuralları şeklinde çıktı almayı adım adım ele alacağız.

WordPress Veritabanı Yapısını Anlamak

WordPress, yazılar ve sayfalar gibi içerikleri wp_posts tablosunda saklar. Bu tablo, her içeriğin başlığı, içeriği, yayın tarihi gibi birçok bilgiyi içerir. Kalıcı bağlantı (permalink) kısmı ise post_name sütununda saklanır ve her yazıya özgüdür. Yayınlanma durumu, içerik tipi gibi bilgileri kullanarak hangi içeriklerin yazı, hangilerinin sayfa olduğunu ayırt edebiliriz.

Kalıcı bağlantıları veritabanından çekmek için dikkate almamız gereken önemli sütunlar şunlardır:

  • post_name: Kalıcı bağlantı olarak kullanılan yazı adı (slug).
  • post_date: Yayınlanma tarihi. Kalıcı bağlantı yapısı tarih bilgisi içeriyorsa, bu sütun gerekli olacaktır.
  • post_type: İçerik türü. Sadece post olanlar yazı olarak kabul edilir.
  • post_status: İçerik durumu. Yalnızca publish (yayınlanmış) olanları almak isteyebiliriz.

SQL ile WordPress Yazı Linklerini Alma

İlk olarak, basit bir permalink yapısında olan kalıcı bağlantıları almak için SQL sorgusunu oluşturalım. Örneğin, WordPress’in kalıcı bağlantı yapısı yalnızca yazı adını içeriyorsa (/yazi-adi/), şu SQL sorgusunu kullanabiliriz:

SELECT CONCAT(
‘RewriteRule ^’, post_name, ‘/$ /blog/’, post_name, ‘/ [R=301,L]’
) AS redirect_rule
FROM wp_posts
WHERE post_type = ‘post’
AND post_status = ‘publish’;

Bu sorgu, her yazı için RewriteRule komutunu oluşturur ve redirect_rule adında bir sütun döndürür. Çıktılar, eski bağlantıları /blog/yazi-adi/ yapısına yönlendirecek şekilde oluşturulmuştur.

Tarih Bilgisine Dayalı Kalıcı Bağlantı Yapısı

Eğer kalıcı bağlantı yapınız /yil/ay/yazi-adi/ gibi tarih bilgisi içeriyorsa, post_date sütununu da kullanmalısınız. Bu durumda SQL sorgusu şöyle olur:

SELECT CONCAT(
‘RewriteRule ^’, YEAR(post_date), ‘/’, LPAD(MONTH(post_date), 2, ‘0’), ‘/’, post_name, ‘/$ /blog/’, post_name, ‘/ [R=301,L]’
) AS redirect_rule
FROM wp_posts
WHERE post_type = ‘post’
AND post_status = ‘publish’;

Bu sorgu, yayın tarihine göre /2024/11/yazi-adi/ gibi bağlantı yapısına uygun yönlendirme kurallarını çıkarır. Sorgu sonuçları yine .htaccess dosyasına eklenmeye uygun şekilde listelenir.

Çıktı Örnekleri

Yukarıdaki sorgulardan herhangi birini çalıştırdığınızda, şu şekilde bir çıktı elde edersiniz:

RewriteRule ^2024/11/how-to-install-nmap-network-scanner-on-linux/$ /blog/how-to-install-nmap-network-scanner-on-linux/ [R=301,L]
RewriteRule ^2024/11/another-sample-post/$ /blog/another-sample-post/ [R=301,L]

Her satır, eski permalink yapısını yeni /blog/ alt dizinine yönlendirir. Bu kurallar .htaccess dosyasına eklenerek, ziyaretçiler veya arama motorları eski bağlantılara erişmeye çalıştığında otomatik olarak yeni bağlantıya yönlendirilir.

Yönlendirme Kurallarını .htaccess Dosyasına Eklemek

Elde edilen çıktıyı .htaccess dosyanıza ekleyerek 301 yönlendirmelerini aktif hale getirebilirsiniz. .htaccess dosyasının WordPress kurulumunuzun ana dizininde bulunduğundan emin olun. Çıktıyı dosyanın en altına eklemek en iyi yöntemdir.

Örnek .htaccess Ekleme

# Eski yazı linklerini yeni blog bağlantılarına yönlendirme
RewriteEngine On

RewriteRule ^2024/11/how-to-install-nmap-network-scanner-on-linux/$ /blog/how-to-install-nmap-network-scanner-on-linux/ [R=301,L]
RewriteRule ^2024/11/another-sample-post/$ /blog/another-sample-post/ [R=301,L]

 

.htaccess dosyasındaki RewriteEngine On komutunun aktif olduğundan emin olun. Bu kural, eski URL’yi 301 yönlendirmesi ile kalıcı olarak yeni URL’ye taşır. Arama motorları bu yönlendirmeyi görür ve eski bağlantının yerine yeni bağlantıyı dizinlerinde günceller.

Sonuç

WordPress sitenizdeki eski bağlantıları SQL kullanarak otomatik bir şekilde yeniden yönlendirmek, özellikle kalıcı bağlantı yapınızı değiştirdiğinizde veya bağlantıların alt dizinlerde yer almasını istediğinizde oldukça kullanışlıdır. Bu yöntemle eski yazı URL’lerinizi güncelleyerek SEO sıralamanızı koruyabilir ve kullanıcıların eski linklere tıkladığında hata sayfası yerine ilgili içeriğe yönlendirilmesini sağlayabilirsiniz.

SQL sorgularını kullanarak veritabanınızdan kolayca yönlendirme kuralları oluşturabilir ve sitenizin performansını artırabilirsiniz.

 

Başa dön tuşu