Foros del Web » Programando para Internet » PHP »

Pido consejo, usar .htaccess o php.

Estas en el tema de Pido consejo, usar .htaccess o php. en el foro de PHP en Foros del Web. Bueno, me refiero a la reescritura de las url's. Actualmente estoy utilizando el famoso mod_rewrite (apache) con .htaccess, pero pienso en usar expresiones regulares directamente ...
  #1 (permalink)  
Antiguo 17/04/2009, 09:48
 
Fecha de Ingreso: enero-2009
Mensajes: 46
Antigüedad: 15 años, 2 meses
Puntos: 1
Pido consejo, usar .htaccess o php.

Bueno, me refiero a la reescritura de las url's. Actualmente estoy utilizando el famoso mod_rewrite (apache) con .htaccess, pero pienso en usar expresiones regulares directamente desde php, ¿esto me permite un mayor control verdad?

Mi duda, al usar solo PHP, la nevagación (sin depender de mod_rewrite) ¿pierde rendimiento?

Gracias.
  #2 (permalink)  
Antiguo 17/04/2009, 10:24
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: Pido consejo, usar .htaccess o php.

Yo no he notado perdida de rendimiento y la deteccion de paginas la hago practicamente completa en PHP, lo unico que tengo en .htaccess es que las carpetas que no existan se redirijan a index.php
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 17/04/2009, 10:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Pido consejo, usar .htaccess o php.

La desventaja de hacerlo desde PHP es que es forzoso que le pases el path por un script, ya que tu URL se va a ver algo asi:

dominio.com/index.php/url/con/parametros

Ya que si no pones el index.php PHP no puede rescatar la ruta.

Por otro lado ambas herramientas te dan mucho control, de hecho mod_rewrite te da aun mas es un modulo muy amplio y complicado, ya que puedes hacer muchas cosas.

Saludos.
  #4 (permalink)  
Antiguo 17/04/2009, 10:32
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Pido consejo, usar .htaccess o php.

Voto por .htaccess
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 17/04/2009, 10:41
 
Fecha de Ingreso: enero-2009
Mensajes: 46
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Pido consejo, usar .htaccess o php.

Gracias por la información, vuelvo a aclarar que ya he utilizado mod_rewrite, pero me interesa saber si es posible no depender de él, aunque veo complicado ese objetivo.

Ejemplos de url's.
dominio.com/hola (llama al archivo hola.php).
dominio.com/ef56w41f785 (llama al archivo ver.php).
dominio.com/a-wef646 (llama al archivo a.php).
dominio.com/b-ewfw7899 (llama al archivo b.php).

Si yo quiero que se vea así y controlarlo sin depender de "mod_rewrite", ¿cómo lo interpreta apache? ahi el problema. Se dice que al devolver error 404, se configure dicho error hacia un script php.. pero no lo recomiendan en relación con lo "amigable" hacia los buscadores.

Entonces, si o si, ¿debo usar mod_rewrite?. El famoso cms Wordpress tiene la opción de "url amigables" pero no se crea ningun archivo .htaccess, ¿es así?.

Gracias.
  #6 (permalink)  
Antiguo 17/04/2009, 10:50
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: Pido consejo, usar .htaccess o php.

Ejemplo de .htaccess:
Código:
Options +FollowSymlinks

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
1- dominio.com/carpeta/que-no-existe/
2- dominio.com/carpeta/archivo-que-no-existe.html

index.php recibe en q:
1- /carpeta/que-no-existe/
2- /carpeta/archivo-que-no-existe.html

En index.php tambien se puede obtener asi:
Código php:
Ver original
  1. $parametros = (isset($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : '';
  2. $partes = explode('/', $parametros);
  3.  
  4. // $partes[0] siempre estara vacia
  5. if($partes[1] == 'noticias')
  6.    include 'noticias.php';
  7. else bla bla bla
  8.   include bla bla bla;

En cada archivo incluido analizas los parametros que le corresponden. Hasta ahora me ha funcionado en local (WAMP) y en servidor Linux.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 17/04/2009, 11:01
 
Fecha de Ingreso: enero-2009
Mensajes: 46
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Pido consejo, usar .htaccess o php.

Gracias Triby, se podría decir que mod_rewrite se debe utilizar si o si, al menos para llamar al archivo principal donde se encuentra el proceso de reescritura no?, en este caso "index.php".

Seguiré investigando, de momento se que Wordpress tiene su propio sistema rewrite, pero también depende de las directivas principales .htacces como las que mensionas.

Saludos.
  #8 (permalink)  
Antiguo 17/04/2009, 12:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Pido consejo, usar .htaccess o php.

En efecto recuerda que PHP es un Preprocesador de Hypertexto, no se encarga de gestionar las URLs, ese es mecanismo del servidor web.

PHP solo "ve" lo que el servidor web le informa, al tu usar ese .htaccess, el servidor web (Apache) le informa a PHP la ruta ($_SERVER['REQUEST_URI']) y PHP ya hace el proceso de separar e incluir.

Sin ese "paso" de que el Servidor Web le informe la ruta a PHP no es posible implementar un sistema sin mod_rewrite (o IsapiRewrite para el caso de IIS).

Saludos.
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 21:48.