2010-09-07 12 views
6

PHP'de sanal dizin özelliğini uygulamada bir uygulama oluşturmak istiyorum.
Örnek: http://mydomain.com/user001, URL http://mydomain.com/index.php?user=user001'un içeriğini görüntüler. Bunu nasıl yapabilirim?PHP'de sanal dizinler nasıl oluşturulur?

Not:
Apache sunucusu kullanıyorum.

+0

Örn. [Silex] (http://silex.sensiolabs.org/) veya [Symfony Yönlendirme Bileşeni] (http://symfony.com/doc/current/components/routing/introduction.html). Kendi eşyalarınızı yuvarlamadan iyi kanıtlanmış bileşenleri kullanmak daha iyidir. – nietonfir

cevap

5

Bunu yapmanın geleneksel yolu mod_rewrite.

+0

Bir blog uygulaması için bunu yapmak istersem, her giriş için mod_rewrite yapmak zorundayım. Örnek: Stackoverflow.com'da bir soru oluşturduğumda, bu soru için otomatik olarak bir sanal dizin oluşturur. – chanchal1987

+0

no, yeniden yazma kuralınızda herhangi bir girişle eşleşecek bir normal ifade oluşturdunuz. – GrandmasterB

+0

@GrandmasterB: Tamam Teşekkürler ... – chanchal1987

2

Lütfen this friendly article regarding rewrite numaralı telefonu okuyun.

Daha sonra, PHP'de bu değişkeni $ _SERVER ['REQUEST_URI'] ayrıştırmak için basit bir yol bulmaya çalışın.

Bunu yaptıktan sonra, dizinin adını alırsınız ve verilerini DB'den alabilirsiniz.

0

$ _SERVER öğesinin 'REQUEST_URI' öğesini kullanarak HTTP isteğini engelleyin. Bu, yalnızca URI/URL'nin tamamını değil, yalnızca istenen sayfayı döndürür (daha fazla bilgi here). Sayfa isteğini yakaladıktan sonra, gerekli olan gerçek dosyanın adresini değiştirin. Örneğin, kullanıcı dostu www.somewebsite.com/page01 daha hantal sondaj www.somewebsite.com?page01.php talebi haline gelir. Bu yöntem, bir sanal dizin oluşturmaz, ancak iyi çalışmalıdır. Her sayfanın index.php aracılığıyla yüklendiği, kendi sayfamda IT website ile benzer bir yöntem kullandım ve bu dosyanın gerçek zamanlı olarak ziyaretçilerin bir günlüğünü tutmasını sağlayın (sitede bir gün veya daha fazla süredir çalışan Webalizer var).

Dosya adının yeniden yazılması işe yarayabilir; Bir URI/URL takasını etkilemek için PHP'nin kullanılması, dosya adı yeniden yazmalarından daha az disk okuma/yazma süresi gerektirdiğinden, azalan sunucu talebinin yararını taşımaktadır.

Umarım bu yardımcı olur.