Dinamik sayfalar ve temiz URL çatışmalar

2 Cevap php

Ben diğer bazı siteler bu işlemek nasıl etrafa yoktu ve gerçekten bana dışarı fırladı şey görmedim. Ben her sayfasından bağlantılı olsun sayfaları oluşturabilirsiniz bir proje üzerinde çalışıyorum. Konu benim için geliyor İşte burada.

Ben bu sayfalara bağlayan hakkında gitmek nasıl emin değilim. Ben sadece gerçekten onlara varlık, iki fikir düşündüm:

  1. website.com/page/My-Page-Name
  2. website.com/My-Page-Name

Unutulmaması gereken, bir parametre olarak sayfa adını alır ve DB tüm ilgili bilgi alır ve görüntüler bunları bir dosyaya yönlendirmek için mod_rewrite kullanıyorum. Bir sorun fikir # 2 geliştirir yerdir.

Idea #1 çalışır ve sağlam, ama ben bu tür çirkin olduğunu düşünüyorum ve URL yastıklı diğer bilgiler ile sitenin diğer sayfalarına bağlantı web siteleri bir çok görmüyorum.

EDIT netlik biraz. Dedi sayfaların niyeti anlamda onlar sadece hiç kullanıcı görüntülemek için onları ayarlar ne gösterecektir statik olması için vardır. Onlar bu örnekteki gibi biçimlendirilmiş durumda sayfaları daha uygun olacağını veri herhangi bir tür hariç asla. Ben bu yüzden faqs doğru ya da bu şekilde formatlanmış URL'leri yok sayfa hakkında daha fazla bu yüzden bu sayfayı karşılaştırmak istiyorum.

Idea #2 temiz görünüyor ama mod_rewrite kullanarak ve oluştururken bazı konularda geçmektedir sayfaları söyledi.

Buna bağlı olduğunuz sitenin diğer bölümleri taklit ve aynı sayfasını adlı çakışmaları neden olabilir vardır. Birisi sayfa1 adlı bir sayfa oluşturmak istedim Örneğin, zaten var sayfadır1, ama bir çatışmaya website.com/page1/ puan ortaya çıkacak.

Yani filtre var ve onlar ne kullanabilirsiniz sayfa isimleri kullanıcıyı sınırlamak ve aynı zamanda bu özellik biraz unintuitive yapmak ve onların kafasını kaşıyor bırakabilir ediyorum bu fikir yürütüyor. Bunun yanı sıra kabul edilemez sayfa isimlerinden oluşan bir dizi olan ve buna karşı kontrol etmek zorunda, bunu kodlama biraz çirkin görünüyor.

Böyle bir şeye yönlendirmek için mod_rewrite ile ilgili son bit: o hariç olacak ne sınırlayan bile biraz açgözlü alır gibi RewriteRule ^([A-Za-z0-9-]+)$ getPage.php?p=$1 biraz çirkin olur.

Yani herkes bu sorunu ya da ne kadar söz ikisinin birinin uygulanması farklı / daha iyi olabilir mücadele için herhangi bir diğer olası yöntemler üzerinde herhangi bir fikir var mı?

Teşekkürler.

2 Cevap

Ben 1. Fikir (website.com / sayfa / My-Page-Name) daha iyi olduğunu kabul etmek gerekir. Bu aliasing önler, ve kod süpürge (örn. yeniden yazma kuralı sadece /page/.* bakar) geri kalanını yapmak. Bu tekniği kullanmak popüler siteleri arasında Wikipedia (http://en.wikipedia.org /wiki/ C), Everything2 (http://everything2.com /title/ Soğuk + Arşiv) ve Answers.com (http://www.answers.com /topic/ nefis).

Eğer dava ile yerleşik sayfalarından kullanıcı sayfaları ayırmak durumunda EDIT: 2. Fikir işe yarayabilir. bir URL yolu parçası harf duyarlıdır ve yazma kuralı kolayca kontrol edebilirsiniz. Örnek:

http://example.com/faq <- web yerleşik sss sayfa.

http://example.com/Faq <- bir kullanıcının sayfa.

http://example.com/Frequently-asked-questions <- başka bir kullanıcı sayfası.

Ben hala basitlik ve kullanım kolaylığı için # 1 ile gitmek istiyorum, ama bu önlemek en azından aliasing.

I #1, bu oldukça yaygın bir âdet ve önler potansiyel sorunlar ile giderdim. Eğer görünüşe yukarı baktı sığınak, herhangi siteleri bunu görmedim dedi

  (look up)
      ^
      |
http://stackoverflow.com/questions/2121720/dynamic-pages-and-clean-url-conflicts
                         ^^^^^^^^^

Diğer örnekler:

http://dsc.discovery.com/videos/mythbusters-raw-kari-goes-macgirlver.html
                         ^^^^^^

http://www.hulu.com/watch/115500/the-colbert-report-alicia-keys-and-stephen-perform
                    ^^^^^

Başka bir alternatif sayfalarında yerleşik ve kullanıcı oluşturulan içerikler url kök olmak ped olmaktır. Ve örnek Tcler en wiki:

http://wiki.tcl.tk/_/recent        <-- special page padded with _
http://wiki.tcl.tk/coroutine       <-- user generated content