Foros del Web » Programando para Internet » PHP »

Mod_rewrite y php.

Estas en el tema de Mod_rewrite y php. en el foro de PHP en Foros del Web. Hola, estube viendo el mod_rewrite de php y me parece demasiado complejo. En pensado si seria posible hacer un modrewrite para que todo vaya a ...
  #1 (permalink)  
Antiguo 30/11/2009, 16:26
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Mod_rewrite y php.

Hola, estube viendo el mod_rewrite de php y me parece demasiado complejo.

En pensado si seria posible hacer un modrewrite para que todo vaya a index.php y despues en ese archivo detectar la ruta y a partir de esa ruta cojer los datos de ahi e incluir un archivo u otro, etc.

Solo pregunto por el concepto, soy muy bueno con las expresiones regulares y no me resultaria nada complicado.

Saludos.
  #2 (permalink)  
Antiguo 30/11/2009, 16:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mod_rewrite y php.

de hecho, esa es una muy buena alternativa... el index sería entonces tu controlador frontal...

muchos frameworks implementan esa funcionalidad, tal ves sería bueno que analices o uses uno...

index.php/foo/candy/bar
Código PHP:
var_dump($_SERVER['REQUEST_URI']); 
mas-o-menos así es la idea.. usando explode o regex todo va bien...

suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/11/2009, 16:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mod_rewrite y php.

mod_rewrite es de Apache, no de PHP.

Usa un .htaccess:
Código:
Options +FollowSymlinks

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Esto quiere decir que si no existe un archivo o directorio, todo se redirija a index.php y, dentro de este, vas a separar y analizar cada elemento en la URL, pero depende de como armes tus enlaces la forma de determinar las acciones a realizar.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 01/12/2009, 16:41
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Mod_rewrite y php.

Interesante, ese htaccess me vendra muy bien, Triby, pero veo que se pasa un parametro a al index no?

Pero eso no es lo que quiero. Unicamente quiero que me lleva al index.php, nada mas y de ahi saco la ruta con:

$_SERVER['REQUEST_URI']

Y ya despues pues voy tomando una accion u otra segun los datos.

Saludos
  #5 (permalink)  
Antiguo 01/12/2009, 17:06
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 7 meses
Puntos: 41
Respuesta: Mod_rewrite y php.

Quizás esto te sirva...

http://casidiablo.net/permalinks-personalizados/
  #6 (permalink)  
Antiguo 01/12/2009, 21:53
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Mod_rewrite y php.

Lo mejor es contruir las reglas con php... utilizando REQUEST_URI como te dicen ahi arriba, y expresiones regulares...

saludos
  #7 (permalink)  
Antiguo 01/12/2009, 23:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mod_rewrite y php.

Cita:
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 02/12/2009, 02:23
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Respuesta: Mod_rewrite y php.

loading........

Lo que yo uso es

Cita:
RewriteRule ^.*/(.*)$ index.php [NC,L]
de esa forma hago:

domain.com/a/b/c/x/y/z

Y luego. a parsear el $_SERVER['REQUEST_URI']


connection closed.
__________________

Maborak Technologies
  #9 (permalink)  
Antiguo 02/12/2009, 13:30
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Mod_rewrite y php.

Gracias por sis respuesta.

¿Que mas haria falta para poder añadir tambien subdominios dinamicos?

Saludos.
  #10 (permalink)  
Antiguo 02/12/2009, 17:24
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Mod_rewrite y php.

He probado ya varios htaccess que han puesto por aqui, pero no me funcionan bien. Si lo pongo el el directorio "/img/" al poner una ruta ..../img/image6.jpg si me lo manda al index.php pero al poner subdirectorios se queda como cargando: ..../img/new/image4.png no funciona... alguien sabe como hacer que el htaccess afecte a todas las carpetas?

EDIT: Ya lo he arreglado. Era por las rutas absolutas... cambie en la RwriteRule la /img/index.php por img/index.php y parece que asi ya busca la ruta desde root (antes la buscaria desde la carpeta que he pedido o algo.)
  #11 (permalink)  
Antiguo 02/12/2009, 17:51
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mod_rewrite y php.

Código:
RewriteRule ^(.*)$ index.php [L,QSA]
Teniendo como condiciones que no exista como archivo ni como directorio, esa linea debe funcionar... al menos a mi me funciona.
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 06/12/2009, 13:31
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Mod_rewrite y php.

Bueno, lo siento por pedir tanto. Pero por ultimo me podrian decir como hago para que exista o no exista me mande todas las peticiones de archivos php al index? por eso de evitar vulnerabilidades con eso del acceso directo a archivos...
  #13 (permalink)  
Antiguo 06/12/2009, 15:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mod_rewrite y php.

Cita:
Iniciado por El-FeNiX Ver Mensaje
Bueno, lo siento por pedir tanto. Pero por ultimo me podrian decir como hago para que exista o no exista me mande todas las peticiones de archivos php al index? por eso de evitar vulnerabilidades con eso del acceso directo a archivos...
Cita:
RewriteRule .* index.php [L,QSA]
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 06/12/2009, 15:23
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Mod_rewrite y php.

Por "todas las peticiones e archivos php" me refieria a todas las peticiones que acaban en ".php" (es decir los archivos de extension php), sino cubriria tambien archivos css, js, imagenes etc, y eso no es lo que quiero.
  #15 (permalink)  
Antiguo 06/12/2009, 18:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mod_rewrite y php.

Cita:
Iniciado por El-FeNiX Ver Mensaje
Por "todas las peticiones e archivos php" me refieria a todas las peticiones que acaban en ".php" (es decir los archivos de extension php), sino cubriria tambien archivos css, js, imagenes etc, y eso no es lo que quiero.
bien, bien... perfecto!!

te sugiero leer el siguiente tema:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/

ya que las reglas son precisamente expresiones regulares, seguro tu mismo puedes hacer la expresión que desees, suerte...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 08/12/2009, 05:50
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Mod_rewrite y php.

Eso ya lo se, lo que no se es como combinar la regla con las demas:

Cita:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ wyweb/index.php [L]
¿Tendria que crear otra regla antes de todo eso asi?

RewriteRule ^(.*\.php)$ myweb/directaccess.php

...donde el archivo directaccess.php dice que no esta permitido el acceso directo blablabla

Es para protegeme de posibles bugs con el acceso directo, ya que en la misma carpeta que el index hay muchos mas archivos .php que estan preparados para ser incluidos pero no se lo que puede pasar si alguien intenta acceder a ellos directamente, por eso digo lo de evitar el acceso a ellos.


Saludos!

PD: Me esta gustando mucho mas esta forma de programar, ahora el primer parameto de la rua la tengo como nombre de "modulos" que son incluidos con require, y despues ahi ya compruebo las subcarpetas y demas, y me parece todo mucho mas organizado y facil.
  #17 (permalink)  
Antiguo 08/12/2009, 08:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mod_rewrite y php.

Para que no tengas que crear mas reglas mejor define una constante en tu index.php:

Código php:
Ver original
  1. // Creas la constante antes de incluir cualquier archivo
  2. define('CONSTANTE', 1);
  3.  
  4. // Lo primero que debe haber en cada uno de los archivos
  5. // que incluyas y quieras evitar el acceso directo:
  6. if(!defined('CONSTANTE')) {
  7.     header('HTTP/1.0 403 Forbidden');
  8.     die('No tienes los permisos necesarios para abrir este archivo o ver el contenido del directorio.');
  9. }
__________________
- León, Guanajuato
- GV-Foto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:30.