Uygun 301 maintaing WordPress URL yapısını değiştirme ile mod_rewrite yönlendirmeleri

2 Cevap php

Şu anda WordPress çok gibi URL'leri kullanarak kurulmuş bir blog var:

www.domain.com/blog/?pid=384092817

Herhangi bir şey hakkında bir şey tanımadan önce bu oldu. Orada şimdi önemli bir içerik miktarı ve ben benim URL yapısını değiştirmek istiyorum:

www.domain.com/my-post-title-384092817

Kullanıcıların ilk url gittiğinizde bu yüzden ikinci URL'ye bir 301 yönlendirmesi olsun benim. Htaccess ve yeniden mod kurmak için bir yolu var mı? Ben WordPress adresi (URL) www.domain.com için www.domain.com / blog ayarını ve benim permalink için /% postname% ayarını değiştirmek için biliyorum -% Post_id%, ama nasıl yönlendirmek için eski URL'leri söyleyebilirim Yeni olanlar?

2 Cevap

WordPress içinde ve mod_rewrite olmadan sizin için hile yapmak gerekir - WP sürümüne bağlı olarak, sadece Permalink redirect plugin kullanabilirsiniz. Ancak, WordPress 2.3 gibi, bu bir sürü should work automatically. Bu noktada, yapmanız gereken gereken tek şey, size kabaca böyle mod_rewrite'ı üzerinden yapabilirsiniz rota, tüm senin / blog / ... isteklerini yönlendirmek olduğunu:

RewriteRule ^blog(.*) $1 [QSA]

Eğer aslında kullanıcıların ikinci URL gittiğinizde, bu ilk için yazılmış olacağı anlamına mı? Bu yapılabilir

RewriteRule /blog/.+-(\d+)$ /blog/?pid=$1

Eğer yenilerini eski URL'leri 301 yönlendirmeleri göndermek istiyorsanız, o zaman gerçekten yapamayacağı bir. Htaccess dosyası ile bu. Nedeni Apache mod_rewrite yazınızın başlığı erişimi yok, bu yüzden URL eklemek için ne başlık bilmiyorum olmasıdır. PHP ile yönlendirme yapmak gerekiyor.

EDIT: Aslında bu tamamen doğru değil, ne Biliyormusun. Eğer RewriteMap direktifi , such as instructing Apache to ask an arbitrary program to perform the rewriting, and in that way you could var diyelim, başlık ne olduğunu anlamaya bazı veritabanı çalışır ve uygun dayalı URL yeniden yazar PHP ile bazı çılgınca şeyler yapabilirsiniz söyledi. Ama bu yol overcomplicated çözüm gibi görünüyor ve bunu yaparken tavsiye etmem - sadece PHP doğrudan yönlendirmeyi göndermek için daha temiz ve daha kolay olacak.