Ben URL php yeniden nasıl yapabilirim?

6 Cevap php

Bu iki soru: herhangi bir avantaj giderse varsa doğru cevap mümkünse de sayar "PHP bunu nasıl" açıklayan gidecek.

Ben gerçekten bilmiyorum çünkü ben sadece merak ediyorum ve bunu web sayfalarında bir sürü bakın.

Edit: I don't know the technical name, but for example here in stackoverflow: http://stackoverflow.com/posts/edit/522452 <-- This is what I mean 'folders'.

6 Cevap

Bu tür URL'ler kullanmak için üç adımda yapmak zorunda:

  1. Bu istekleri PHP komut yönlendiriliyorsunuz gerektiğini, web sunucusu sen söyle. Apache ile bunu yapmak için mod_rewrite module kullanabilirsiniz:

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule !^index\.php$ index.php [L]
    

    Bu direktifler index.php için, dosya sistemindeki bir dosyaya eşleşmiyor her isteği, yönlendirmek.

  2. Script olan URL'leri ayrıştırmak alın:

    $_SERVER['REQUEST_URI_PATH'] = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']);
    $segments = explode('/', trim($_SERVER['REQUEST_URI_PATH'], '/'));
    var_dump($segments);
    

    Bu muhtemelen URL yolunu ayrıştırmak ve her yol parçasını almak için en kolay yoludur.

  3. Çıktınıza bu URL'leri kullanın. (Önemsiz)

SEO amaçlar, önbelleğe alma ve okunurluk, diğerleri işaret gibi, ben bu klasör tarzı parametreleri eklemek istiyorum için bir kısmı da kullanıcıların parametreleri ile "oynamak" için bir teşvik vardır. Burada Stackoverflow üzerinde Örneğin sık sık etiketleri ile filtreleme zaman yerine uygun düğmeye arıyor ve bunun üzerine tıklayarak, elle url düzenlemek için caziptir.

Orada birkaç nedeni var, ama esas olarak:

  • SEO amaçlar. Arama motorları genellikle sonra bir şey görmezden '?' soru işareti işareti, böylece unindexes sayfaları size bırakarak, ya da daha kötüsü, indeksleme hiç.

  • Hassasiyet:

    www.somesite.com/products/devices/keyboards/20,asc
    www.somesite.com/products/devices/keyboards/20,asc.html
    

    daha iyi görünüyor:

    www.somesite.com?show=products&cat=devices&sub_cat=keyboards&sort=asc&items=20
    
  • Önbelleğe alma.

For info on how to do this in Apache: http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

What makes a "friendly URL"? orada SEO ve diğer faydaları oldukça iyi bir tartışma var: Bu komik, Matt Peterson sadece buna benzer bir soru sordu.

Avantaj okunabilirliği ve muhtemelen arama motorlarında daha iyi bir yerleşim olduğunu.

Apache kullanıyorsanız eğer mod_rewrite ile bu elde edebilirsiniz. PHP, ayrıca önceden tanımlanmış globalleri bakabilirsiniz - I $_SERVER['REQUEST_URI'] çalıştığını düşünüyorum, ama etrafında daha iyi bir tane olabilir.

Yeniden olmadan düz PHP kullanırken uygun bir biçimde sunucusu yapılandırmak ve böylece hala 'güzel' URL'leri alırsanız, ayrıca betiğin dosya ismi .php bırakabilirsiniz.