WordPress'te Yeni Etki Alanı Normal İfadesi (Regex) Yönlendirmeleri
Son birkaç haftadır, bir müşterinin WordPress ile karmaşık bir geçiş yapmasına yardımcı oluyoruz. Müşterinin, her ikisi de işletmeleri, markalamayı ve içeriği ayrı alan adlarına ayırmaları gerektiği noktaya kadar popüler hale gelen iki ürünü vardı. Oldukça girişim!
Mevcut etki alanları sabit kalıyor, ancak yeni etki alanı bu ürünle ilgili tüm içeriğe sahip olacak… resimlerden, gönderilerden, örnek olay incelemelerinden, indirmelerden, formlardan, bilgi tabanından vb. Tek bir varlığı bile kaçırmayın.
Yeni siteyi kurduktan ve çalışır hale getirdikten sonra, anahtarı çekip yayınlama zamanı gelmişti. Bu, birincil sitedeki bu ürüne ait tüm URL'lerin yeni alana yeniden yönlendirilmesi gerektiği anlamına geliyordu. Siteler arasında çoğu yolu tutarlı tuttuk, bu nedenle önemli olan, yönlendirmeleri uygun şekilde ayarlamaktı.
WordPress Eklentilerini Yönlendirme
WordPress ile yönlendirmeleri yönetmek için harika bir iş çıkaran iki popüler eklenti vardır:
- Yönlendirme - belki de piyasadaki en iyi eklenti, düzenli ifade yetenekleri ve hatta yönlendirmelerinizi yönetmek için kategoriler.
- Sıralama SEO'su - bu hafif SEO eklentisi yeni bir soluktur ve benim listemi oluşturur En İyi WordPress Eklentileri piyasada. Teklifinin bir parçası olarak yönlendirmeleri vardır ve hatta geçiş yaparsanız Yeniden Yönlendirme verilerini içe aktarır.
Yönetilebilir bir WordPress Hosting motoru kullanıyorsanız WPEngine, kişi sitenize ulaşmadan yeniden yönlendirmeleri ele alacak bir modüle sahipler… barındırmanızdaki gecikmeyi ve ek yükü azaltabilecek oldukça güzel bir özellik.
Ve elbette şunları yapabilirsiniz: htaccess dosyanıza yönlendirme kuralları yazın WordPress sunucunuzda… ama bunu tavsiye etmem. Sitenizi erişilemez kılmaktan bir sözdizimi hatası uzaktasınız!
Regex Yönlendirmesi Nasıl Oluşturulur
Yukarıda verdiğim örnekte, bir alt klasörden yeni etki alanına ve alt klasöre tipik bir yeniden yönlendirme yapmak basit görünebilir:
Source: /product-a/
Destination: https://newdomain.com/product-a/
Yine de bununla ilgili bir sorun var. Ya kampanya izleme veya yönlendirmeler için bir sorgu dizesi olan bağlantılar ve kampanyalar dağıtıyorsanız? Bu sayfalar düzgün bir şekilde yeniden yönlendirilmeyecektir. Belki URL şudur:
https://existingdomain.com/product-a/?utm_source=newsletter
Tam eşleşme yazdığınız için, bu URL hiçbir yere yönlendirilmez! Bu nedenle, bunu normal bir ifade haline getirmek ve URL'ye bir joker karakter eklemek cazip gelebilir:
Source: /product-a/(.*)
Destination: https://newdomain.com/product-a/
Bu oldukça iyi, ancak hala birkaç sorun var. İlk olarak, herhangi bir URL ile eşleşecek / ürün-a / içinde bulunun ve hepsini aynı hedefe yönlendirin. Yani tüm bu yollar aynı hedefe yönlendirilecek.
https://existingdomain.com/product-a/
https://existingdomain.com/help/product-a/
https://existingdomain.com/category/parent/product-a/
Normal ifadeler yine de güzel bir araçtır. İlk olarak, klasör seviyesinin tanımlandığından emin olmak için kaynağınızı güncelleyebilirsiniz.
Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/
Bu, yalnızca birincil klasör seviyesinin doğru şekilde yeniden yönlendirilmesini sağlayacaktır. Şimdi ikinci soruna gelelim… Eğer yönlendirmeniz bunu içermiyorsa, yeni sitede yakalanan sorgu dizisi bilgisini nasıl elde edeceksiniz? Normal ifadelerin de bunun için harika bir çözümü var:
Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/$1
Joker karakter bilgisi gerçekte yakalanır ve değişken kullanılarak hedefe eklenir. Yani…
https://existingdomain.com/product-a/?utm_source=newsletter
Doğru şekilde yönlendirilecek:
https://newdomain.com/product-a/?utm_source=newsletter
Joker karakterin herhangi bir alt klasörün de yeniden yönlendirilmesine izin vereceğini, dolayısıyla bunun da etkinleştirileceğini unutmayın:
https://existingdomain.com/product-a/features/?utm_source=newsletter
Yönlendirilecek:
https://newdomain.com/product-a/features/?utm_source=newsletter
Elbette, normal ifadeler bundan çok daha karmaşık hale gelebilir… ancak ben sadece, her şeyi temiz bir şekilde yeni bir etki alanına geçiren bir joker karakter normal ifade yeniden yönlendirmesinin nasıl ayarlanacağına dair hızlı bir örnek vermek istedim!