Foros del Web » Administración de Sistemas » Apache »

Modrewrite básico?

Estas en el tema de Modrewrite básico? en el foro de Apache en Foros del Web. Hola, busco busco y encuentro mucho sobre mod rewrite pero nunca me funciona como debería... no sé si será que no lo entiendo o qué ...
  #1 (permalink)  
Antiguo 11/03/2010, 18:53
 
Fecha de Ingreso: agosto-2009
Ubicación: Al fondo a la derecha
Mensajes: 308
Antigüedad: 15 años, 3 meses
Puntos: 6
Modrewrite básico?

Hola, busco busco y encuentro mucho sobre mod rewrite pero nunca me funciona como debería... no sé si será que no lo entiendo o qué porque nunca puedo adaptar los ejemplos que dan para que funcione en mi servidor...

Podrían hacerme un ejemplo rápido de cómo quedaría un htaccess completo si necesitara cambiar las siguientes urls a las siguientes?
Hay que hacer una sentencia para cada url a cambiar o se hace un standart que cambia todas las urls?


Urls a cambiar:
http://www.misitio.com/Empresas.php
http://www.misitio.com/Consultas.php
http://www.misitio.com/Empresas.php?data=203

Urls amigables:
http://www.misitio.com/Empresas
http://www.misitio.com/Consultas
http://www.misitio.com/Empresas?data=203

Puse 2 urls del mismo tipo para ver si el htaccess requiere sentencias para amas o si con una sola adapta todas.

Gracias! doy karma!
__________________
Abre tu mente: Index no signigica index, significa índice
  #2 (permalink)  
Antiguo 11/03/2010, 19:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Modrewrite básico?

El .htaccess que uso es:

Código:
Options +FollowSymlinks

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Lo que hace es que todas las peticiones de archivos que no existen son enviadas a index.php y el valor de la seccion puedes recogerla en $_GET['q'] o en $_SERVER['REQUEST_URI'].

index.php
Código PHP:
Ver original
  1. $pagina = $_SERVER['REQUEST_URI'];
  2. if($pagina == '/')
  3.     include 'principal.php';
  4. else if($pagina == '/Empresa';
  5.     include 'empresa.php';
  6. else
  7.     include 'error404.php';

La informacion de la pagina a cargar la puedes tener en una matriz (array) o en base de datos, depende de tus preferencias. Tambien tendras que crear alguna opcion para analizar los parametros adicionales, tal vez usando explode() para separar la cadena que recibes en $_GET['q'] o en $_SERVER['REQUEST_URI']
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 11/03/2010, 19:48
 
Fecha de Ingreso: agosto-2009
Ubicación: Al fondo a la derecha
Mensajes: 308
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Modrewrite básico?

hay que tocar el php para que funcione el sistema del htaccess??
no es que se reinterpreta sin tocar nada?
Hay que cambiar el sistema interno del sitio?
__________________
Abre tu mente: Index no signigica index, significa índice
  #4 (permalink)  
Antiguo 11/03/2010, 21:27
Avatar de dedydamy  
Fecha de Ingreso: marzo-2010
Ubicación: Aca :D
Mensajes: 78
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Modrewrite básico?

nono, yo uso este y se cambia automaticamente lo pongo en el directorio raiz y solo cambio mis links

http://hola.com/holaatodos.php = http://hola.com/holaatodos

Código:
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ $1.php [L,QSA]
No necesita modificar NADA
  #5 (permalink)  
Antiguo 11/03/2010, 23:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Tema movido desde PHP a Apache
  #6 (permalink)  
Antiguo 12/03/2010, 08:42
 
Fecha de Ingreso: febrero-2009
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 9
Respuesta: Modrewrite básico?

Que tal, como sería en un sitio modular agregar una eventual variable mas cuando hay paginación.
Código PHP:
RewriteEngine On
RewriteCond 
%{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule 
^(.*)$ index.php?modulo=$[L,QSA]  #asi funciona perfecto

RewriteRule ^(.*)/(.*)$ index.php?modulo=$1&cur=$[L,QSA]   #cuando agrego paginacion se tranca todo, no anda 
Si me pueden ayudar les agradezco.
  #7 (permalink)  
Antiguo 12/03/2010, 09:34
 
Fecha de Ingreso: agosto-2009
Ubicación: Al fondo a la derecha
Mensajes: 308
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Modrewrite básico?

Cita:
Iniciado por dedydamy Ver Mensaje
nono, yo uso este y se cambia automaticamente lo pongo en el directorio raiz y solo cambio mis links

http://hola.com/holaatodos.php = http://hola.com/holaatodos

Código:
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ $1.php [L,QSA]
No necesita modificar NADA
Muchas gracias!
__________________
Abre tu mente: Index no signigica index, significa índice

Etiquetas: modrewrite
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 16:45.