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ü. Sadecepost
olanlar yazı olarak kabul edilir.post_status
: İçerik durumu. Yalnızcapublish
(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 OnRewriteRule ^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.