Eski "çirkin" yönlendirmek için nasıl

5 Cevap php

Ben mod_rewrite yeni kulüpler ve benim müşteri için bir şeyler yapmak gerekiyor.

Ben www.mydomain.com/products.php?prod_id=32 olduğunu varsayalım.

Bu ürün bir bölüm (giysi) ve bir isim (gömlek) sahiptir. Bu isimler ve bölümler benzersizdir.

Bir SEO Dostu Url, bu www.mydomain.com/products/clothes/shirt/ edilmelidir.

Ben oluşturabilirsiniz biliyorum

RewriteRule ^products/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ products.php?section=$1&name=$2

Ben bunu yapabilirim, ve çalışıyor. Ama (tarayıcıda kendisi değişti) www.mydomain.com/products/clothes/shirt/ yönlendirilmek üzere www.mydomain.com/products.php?prod_id=32 girmek insanlar istiyorum. Ben benim url id takmadan nasıl yapabilirim? Benim. Htaccess bir "ön-işleme" php dosyayı aramak ve "products.php? Bölümü = $ 1 & name = $ 2" yeniden mümkün mü?

Herkes mod_rewrite gerçekten ayrıntılı açıklama ile iyi bir bağlantı vardır?

Teşekkürler!

5 Cevap

Sen mod_rewrite incelikle işleyebilir daha büyük bir sorun olabilir. Ayrıca tarayıcı için bir yönlendirme dönmek için PHP kullanabilirsiniz. Bunun product_id 32 olduğunu / giysi / gömlek / anlamaya veritabanı erişebilirsiniz bu şekilde

PHP içeride bunu yaparken daha başka seçenek göreceksiniz.

Bunu products.php içeriyorsa URL ($_SERVER['REQUEST_URI']) görmek için denetler, products.php Sayfanın üstüne bir şeyler ekleyebilirsiniz - Eğer varsa, kişiyi yönlendirmek. Gerçi yönlendirmeden önce ürün kategorisini ve adını bulmak için veritabanını sorgulamak gerekir.

Daha SEO geliştirmek için başlık taşındı kalıcı ayarlamak unutmayın :)

Bu veriler "Referer" başlığı alanının üzerinden tarayıcı tarafından kabul edilebilir. Bunu url ilerleme ve get argümanları bakmak olabilir. Eğer doğru hatırlıyorum, bu tüm tarayıcılarda desteklenmez.

products.php (ya da yeniden yönlendirmek istediğiniz sayfanın) üst kısmında bir işlev çağrısı koyabilirsiniz

redirectToSeoUrl();

Sonra biri dosyaları yeni url ve yönlendirmeleri alır redirectToSeoUrl işlevi yazmak içerir. Şeyden önce kodu koymak için emin olun tarayıcıya çıktı.

Apache? Bir. Htaccess yönlendirme sahipsiniz. Hiçbir mod_rewrite gerekli.

Example: Redirect 301 /oldpage.html http://www.example.com/newpage.html