Pregunta

Lo he visto mencionado en muchos blogs de la red, pero creo que debería discutirse aquí.¿Qué podemos hacer cuando tenemos un framework MVC (estoy interesado en ZEND) en PHP pero nuestro host no proporciona mod_rewrite?¿Hay algún "atajo"?¿Podemos transferir el control de alguna manera (de modo que pueda ocurrir un mapeo entre páginas)?¿Algunas ideas?Gracias :-)

¿Fue útil?

Solución

Zend framework debería funcionar sin mod_rewrite.Si puedes vivir con tus URL pareciéndose más a "/path/to/app/index.php/controller/action".Si tuviera mod_rewrite, podría eliminar el bit "index.php", pero también debería funcionar.

Todo es cuestión de configurar las rutas para aceptar la parte index.php.

Otros consejos

OK mi veredicto :-) :He usado zend con éxito sin mod_rewrite y es como todos han dicho site/index.php/controller/action.Lo sabía antes de publicar esto.También descubrí en la red una técnica que "empuja" 404 páginas a index.php, por lo tanto, lo que no es un recurso (por ejemplo,CSS, imagen, etc.) llega allí, con una excepción:Valores postales.Así que decidí que la próxima vez que se tuviera que crear una aplicación en el servidor específico, pediría cortésmente mod_rewrite.Si el administrador no puede proporcionármelo, hablo con mi jefe o si es para mí, cambio de proveedor.Generalmente es una pena que a veces el mercado de PHP esté tan fragmentado (php4, php5, php6, mod_rewrite, mod_auth, mod_whatever), pero esta es otra historia...

mod_rewrite es casi esencial en el entorno de alojamiento actual... pero desafortunadamente no todos entendieron el mensaje.

Muchos de los programas php grandes (estoy pensando en Magento, pero la mayoría puede manejarlos) tienen un modo alternativo de URL bonita para cuando mod_rewrite no está disponible.

Las URL terminan pareciéndose a www.site.com/index.php?load-this-page

Deben estar ejecutando algo de magia para tomar el nombre de la variable de la variable $_GET y usarlo como selector de qué módulo/función ejecutar.

En una nota relacionada, he visto muchas URL confusas en el nuevo sitio de Facebook donde se usa el símbolo #.Entonces los enlaces se ven como www.new.facebook.com/home.php#/inbox/ Claramente no debemos ver eso, pero sugiere que probablemente estén analizando la variable $_SERVER['REQUEST_URI'].

Si puede encontrar una forma que no sea mod_rewrite para redirigir todas las solicitudes a index.php (o dondequiera que esté su script de inicio), puede, como se mencionó anteriormente, usar 'REQUEST_URI' para tomar la parte de la dirección después del dominio y luego analizar Hazlo como quieras y haz que la solicitud haga lo que quieras.Así es como lo hace Wordpress (concedido, con mod_rewrite).Siempre que pueda redirigir las solicitudes a su página de índice manteniendo el mismo URI, puede hacer lo que necesite para procesar la solicitud.

Se traducen las reglas de reescritura de Drupal

http://example.com/path/goes/aquí

en

http://example.com/index.php?q=path/goes/here

...y tiene lógica para decidir qué tipo de URL generar.Si puede vivir con URL feas, esto le permitirá mantener toda la lógica de un único controlador frontal en su lugar sin depender de la reescritura de URL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top