2010-09-07 21 views
6

Quiero crear una aplicación en PHP que implemente la función de directorio virtual.
Ejemplo: http://mydomain.com/user001 mostrará el contenido de la url http://mydomain.com/index.php?user=user001. ¿Cómo puedo hacer eso?¿Cómo crear directorios virtuales en PHP?

Nota:
Estoy usando el servidor Apache.

+0

Eche un vistazo a, p. [Silex] (http://silex.sensiolabs.org/) o [Componente de enrutamiento de Symfony] (http://symfony.com/doc/current/components/routing/introduction.html). Es mejor usar componentes bien probados que hacer rodar tus propias cosas. – nietonfir

Respuesta

5

La forma tradicional de hacerlo es mod_rewrite.

+0

Si quiero hacer eso para una aplicación de blogging, entonces tengo que hacer mod_rewrite para cada entrada. Ejemplo: cada vez que creo una pregunta en stackoverflow.com, crea automáticamente un directorio virtual para esa pregunta. – chanchal1987

+0

no, configuraría una expresión regular en su regla de reescritura para hacer coincidir cualquier entrada. – GrandmasterB

+0

@GrandmasterB: OK Gracias ... – chanchal1987

2

Por favor, lea this friendly article regarding rewrite.

A continuación, trate de encontrar una forma simple en PHP para analizar esta variable $ _SERVER ['REQUEST_URI'].

Después de hacer eso, tiene el nombre del directorio y puede obtener sus datos de la base de datos.

0

Interceptar la solicitud HTTP utilizando el elemento 'REQUEST_URI' de $ _SERVER. Esto devuelve (creo) solo la página solicitada, no toda la URI/URL - más información here. Una vez que haya elegido la solicitud de página, sustituya la dirección del archivo real que se necesita. Por ejemplo, el fácil de usar www.somewebsite.com/page01 se convierte en una solicitud para el más torpe que suenan www.somewebsite.com?page01.php. Este método no creará un directorio virtual, como tal, pero debería funcionar bien. He usado un método similar por mi cuenta IT website, donde cada página se carga a través de index.php, lo que permite que ese archivo mantenga un registro de visitantes en tiempo real (el sitio tiene Webalizer, que tiene un día más o menos).

Volver a escribir el nombre del archivo podría funcionar, aunque no es para mi gusto personal. El uso de PHP para efectuar un URI/URL-swap probablemente conllevaría el beneficio de una menor demanda del servidor, ya que requeriría menos tiempo de lectura/escritura del disco que la reescritura del nombre del archivo.

Espero que ayude.

Cuestiones relacionadas