Nasıl http://localhost/index.php/articles/edit/1/my-first-article gibi bir URL bir. Htaccess olmadan çalışabilir?

6 Cevap php

Ben bu alamadım:

http://localhost/index.php/articles/edit/1/my-first-article

Bu URL Kohana framework documentation bir örnek olarak söz edilir. Benim kurulum dosyaları kurcaladım, ve. Htaccess bununla ilgisi yok benim kendi bir yanında hayır vardır.

Peki, nasıl bir index.php denilen ama sonra, parametre olarak, malzeme URL'ye eklenen dizinleri gibi görünüyor olabilir? Yani "gerçek" görünmüyor.

Ya da bu ne kadar doğal PHP / Apache / HTTP şeyler aslında çalışır mı? Anladığım kadarıyla, / her zaman "bir dizin, hey!" Anlatıyor. Benim için gerçekten sıfır mantıklı ... nasıl mümkün olabilir mi? Ya da bir yerde ben sadece bulmak / göremiyorum bir. Htaccess var mı?

6 Cevap

PHP, sen ["PATH_INFO'yu"] $ _SERVER ile dosya sonra verileri alabilirsiniz değişken. Bu temelde Google'a demektir, GET değişkenleri kullanmak ve ortak statik sayfaları kullanarak düşünüyorum olacak kalmadan bilgi GET sağlar. Bu temelde mod_rewrite daha sık etkin değil ise genellikle etkin olduğu mod_rewrite bir alternatiftir.

Bu sizin için açık olabilir, ancak dosya adını kullanın sürece hemen bana, bu dizin sayfaları düzgün çalışmıyor değildi. Example.com / test / index.php / benim / almak / params olacak iken Örneğin, example.com / test / benim / almak / params, çalışmaz.

Kimden Apache docs:

AcceptPathInfo Directive

This directive controls whether requests that contain trailing pathname information that follows an actual filename (or non-existent file in an existing directory) will be accepted or rejected. The trailing pathname information can be made available to scripts in the PATH_INFO environment variable.

For example, assume the location /test/ points to a directory that contains only the single file here.html. Then requests for /test/here.html/more and /test/nothere.html/more both collect /more as PATH_INFO.

Yani bu ayar bir yerde httpd.conf gibi etkin olduğunu varsayalım. Bu, mod_rewrite gibi yerlerde bir dizi / yapılandırılmış etkin olabilir unutmayın - see here.

AcceptPathInfo sunucu için açıktır. :)

Benim 'çerçeve' URI en böyle üretir ben Kohana kullanarak değilim, bu yüzden benim yöntem, herhangi bir kullanım olacak eğer ben bilmiyorum, ama ne zaman bir sunucu htaccess dosyalarını destekleyen (veya kurallarını yeniden) değildir.:

http://www.domain.com/?/articles/edit/1/my-first-article (fark?)

Sadece (windows sunucularda veya $_SERVER['HTTP-X-REWRITE-URL']) $_SERVER['REQUEST_URI'] ayrıştırmak ve '/' üzerinde patlayabilir, Kurbağa çerçevesi tarafından kullanılan benzer bir yöntem.

Bu yöntem, tamamen bağımsız yeniden ve yine daha çok veya daha az SEO dostu URI en üretir

Senin için herhangi bir kullanım umuyoruz.

Muhtemelen burada durum ve kesinlikle tavsiye edilmez değil, ve muhtemelen doğru cevap ...

AMA ...

Ben insanların isteği ayrıştırmak için 404 sayfalarını kullanabilirsiniz ve daha sonra bu bilgi ile doğru sayfasını dahil gördüm.

CGI Environment Variables olarak PATH_INFO bakın.