Kısa Cevap: MySQL veritabanından çekilen dinamik sayfa linklerini
seo uyumlu (SEF URL) yapıya dönüştürmenin en güvenli yolu, Apache sunucunuzda `mod_rewrite` modülünü etkinleştirerek `.htaccess` dosyası üzerinden kurallar tanımlamaktır. Bu yöntem, hem arama motoru optimizasyonu (
seo) için okunabilirliği artırır hem de site hızına olumlu katkı sağlar. Güvenlik açısından, gelen istekleri doğru bir şekilde işleyerek ve potansiyel güvenlik açıklarını (örneğin, SQL enjeksiyonu gibi) engelleyerek sağlam bir yapı oluşturulmalıdır.
MySQL veritabanından alınan dinamik URL'leri SEO dostu (SEF - Search Engine Friendly) yapılara dönüştürmek, hem kullanıcı deneyimini iyileştirir hem de arama motoru sıralamalarını olumlu etkiler. Bu dönüşümü en güvenli ve profesyonel şekilde gerçekleştirmek için Apache sunucunuzda bulunan Mod_rewrite modülünü ve .htaccess dosyasını kullanmanız en etkili yöntemdir.
Bu sürecin temelinde, sunucu tarafında URL'leri yeniden yazma (URL rewriting) yeteneği yatar. Mod_rewrite modülü, gelen istekleri belirli kurallara göre işleyerek farklı bir URL'ye yönlendirir veya aynı içeriği farklı bir URL yapısıyla sunar. Güvenlik açısından en kritik nokta, gelen parametreleri veritabanı sorgularında kullanmadan önce mutlaka Doğru şekilde temizlemek ve doğrulamaktır. Bu, SQL enjeksiyonu gibi saldırıların önüne geçmek için hayati önem taşır.
Adım Adım uygulama ve Güvenli Kod Yapısı
İşte bu dönüşümü sağlamak için izlenmesi gereken adımlar ve dikkat edilmesi gerekenler:
Mod_rewrite Modülünü Etkinleştirme: Sunucunuzda Mod_rewrite modülünün aktif olduğundan emin olun. Genellikle hosting panellerinde bu ayar mevcuttur veya sunucu yöneticisi ile iletişime geçilerek etkinleştirilebilir..htaccess Dosyasını Yapılandırma: Sitenizin kök dizinine (veya ilgili alt dizine) bir .htaccess dosyası oluşturun. Bu dosya, Apache sunucusuna özel yönlendirme ve yapılandırma kurallarını içerir.- Temel Rewrite Kuralları: Dinamik URL'leri statik görünümlü SEF URL'lere dönüştürmek için aşağıdaki gibi kurallar kullanabilirsiniz. Burada amaç, örneğin
Site.com/urun.php?id=123&kategori=telefon gibi bir URL'yi Site.com/telefon/urun-adi-123 formatına getirmektir.
Yukarıdaki örnekte:
RewriteEngine On: URL yeniden yazma motorunu etkinleştirir.RewriteBase /: Yönlendirmelerin temel yolunu belirtir.RewriteRule ^([^/]+)/([^/]+)/?$ urun.php?kategori=$1&urunadi=$2 [L,QSA]: Bu kural, /kategori/urun-adi formatındaki URL'leri Urun.php?kategori=kategori&urunadi=urun-adi şeklinde işler.[L] (Last): Bu kural uygulandıktan sonra başka kural aranmaz.[QSA] (Query String Append): Orijinal URL'deki sorgu parametrelerini yeni URL'ye ekler.
Güvenlik Odaklı uygulama (php Tarafı)
.htaccess ile URL'leri dönüştürürken, PHP tarafında veritabanı sorgularını güvenli hale getirmek esastır. Dinamik URL'den alınan parametreleri (örneğin, $_GET['kategori'] veya $_GET['urunadi']) doğrudan veritabanı sorgularında kullanmak yerine, mutlaka Hazırlanmış ifadeler (prepared statements) veya güvenli fonksiyonlarla temizlemelisiniz.
Bu yaklaşım, hem URL'lerinizi SEO dostu hale getirir hem de veritabanı güvenliğini en üst düzeyde tutar. Dinamik verileri URL'ye yansıtırken, veritabanınızdaki ID'ler yerine SEO'ya uygun, okunabilir metinler (örneğin, ürün adları veya kategori adları) kullanmak, arama motorları için daha anlamlı olacaktır. Bu yapının doğru kurulması, sitenizin hem arama motorları nezdinde daha görünür olmasını sağlar hem de kullanıcıların sitenizle daha kolay etkileşim kurmasına olanak tanır.