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

crear router de paginas

Estas en el tema de crear router de paginas en el foro de Apache en Foros del Web. Hola amigos estoy tratando de enterder como hacer esto, quiero que toda pagina de esta manera http://midominio.com/resgistro , http://midominio.com/lista , http://midominio.com/altas vaya siempre a index ...
  #1 (permalink)  
Antiguo 12/09/2011, 23:58
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 15 años
Puntos: 21
Pregunta crear router de paginas

Hola amigos estoy tratando de enterder como hacer esto, quiero que toda
pagina de esta manera http://midominio.com/resgistro, http://midominio.com/lista, http://midominio.com/altas

vaya siempre a index y mediante php pueda saber que valores que han puesto despues de http://midominio.com/?

estoy usando por el momento este mecanismo

http://www.phpbsd.net/2007/01/11/url...-php-y-apache/

y buscar en mi tablas de paginas en mysql algo como lo hace worpress

http://casidiablo.net/permalinks-personalizados/

para comparar si en el perfil de usuario tienes acceso a dicha pagina, mi problema
es que debo hacer si por x o por y entran a un directorio exitente y pongan algo asi

http://midominio.com/library/header.php

al parecer el htacces sabe que es un achivo real y mi index no lo revisa como en las otras urls
al poner esa url existente me imprime en pantalla la pagina o parte de un contenido

como puedo controlar este tipo de accesos.

saludos espero me puedan acesorar

gracias
__________________
gerardo
  #2 (permalink)  
Antiguo 13/09/2011, 04:16
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 852
Antigüedad: 11 años, 8 meses
Puntos: 31
Respuesta: crear router de paginas

Por lo que leo, entiendo que no te funciona las url's amigables ¿no?

Que reglas has puesto en el fichero .htaccess? por cierto recuerda que lleva un punto delante.
  #3 (permalink)  
Antiguo 13/09/2011, 08:59
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 15 años
Puntos: 21
Pregunta Respuesta: crear router de paginas

si mira es este

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


pero si funciona si pongo http://midominio.com/algo
y si efectivamente no me marca ningun error

el valor de "algo" es el que buscare en base de datos
y entonces aprovecho para buscar en la base de dastos algo que coincida
el mecanismo para capturar lo que se puso en la url

http://www.phpbsd.net/2007/01/11/url...-php-y-apache/

Código:
function get_url() {
  $parametros = array();
  $url = parse_url($_SERVER['REQUEST_URI']);
  foreach(explode("/", $url['path']) as $p)
    if ($p!='') $parametros[] = $p;
  return $parametros;
}
pero veo un problema

este es mi directorio

library
js
css
otra..
index.php

entonces si pongo http://midominio.com/library/header.php o otro cosa
se va directo al archivo no se si estoy confundido yo esperaba que
index checara si si library en la posicion $parametros[0] lo buscara
en mi tablas de mysql

espero me puedas orientar saludos

y gracias
__________________
gerardo
  #4 (permalink)  
Antiguo 13/09/2011, 11:17
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 852
Antigüedad: 11 años, 8 meses
Puntos: 31
Respuesta: crear router de paginas

Vale ya te entiendo.... déjame ponerte como lo hago yo, a ver si así te funciona, a mi me da muy buenos resultados.

Código:
ErrorDocument 404 /index.php
ErrorDocument 403 /index.php
ErrorDocument 401 /index.php

RewriteEngine On


RewriteBase /
RewriteRule ^validar-usuario/codigo/(.*)-(.*)    login/validacion.php?cod=$1&valor=$2  [L]
Si te fija, cada RewriteRule tiene dos partes, primera es la dirección corta y la segunda parte es la equivalencia.

En el ejemplo que te he puesto al poner la dirección
http://www.dominio.com/validad-usuar...o/1234567-abcd

Tiene que recoger el valor de la variable con $_GET[cod] y $_GET[valor], ya luego hace lo que veas conveniente con la recogida de los get, en tu caso, buscar en tu BD.

Si tienes dudas, preguntas.

Saludos.
  #5 (permalink)  
Antiguo 13/09/2011, 12:15
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 15 años
Puntos: 21
Pregunta Respuesta: crear router de paginas

ohh sorry creo que sigo aun confundido
ese htacces lo debo guardar en el subdirectorio
o en la raiz del sitio como lo tengo actualmente

saludos
__________________
gerardo
  #6 (permalink)  
Antiguo 13/09/2011, 15:05
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 852
Antigüedad: 11 años, 8 meses
Puntos: 31
Respuesta: crear router de paginas

lo tienes que guardar en la raiz de la página, que tambien se llama Document Root.

En él, se va poniendo todas las reglas que afecta a toda la página, no tienes que poner un htaccess por cada subdirectorio que haya... eso lo tienes que tener muy claro.

Y repitiendome en lo anterior, tienes que ponerle un punto delante (.htaccess)

Saludos.
  #7 (permalink)  
Antiguo 13/09/2011, 16:07
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 15 años
Puntos: 21
Respuesta: crear router de paginas

si con respecto al archivo .htaccess
si esta funcionando vere si puedo
aplicar lo que me indicas

muchas gracias
__________________
gerardo
  #8 (permalink)  
Antiguo 14/09/2011, 11:39
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 15 años
Puntos: 21
Respuesta: crear router de paginas

pues de alguna manera ya esta funionando lo que deseo
tuve que agregar este linea en el .htaccess

Código:
RewriteCond %{REQUEST_URI} ^(/libery/|/MSOffice/) [NC]
RewriteRule ^.*$ - [F,L]
asi quedo mi htaccess

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^(/libery/|/Office/) [NC]
RewriteRule ^.*$ - [F,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#RewriteRule ^(.*)$ index.php [L,QSA]
__________________
gerardo

Etiquetas: mysql, php, router, tabla, usuarios
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:18.