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

ayuda Url Amigables!!!

Estas en el tema de ayuda Url Amigables!!! en el foro de Apache en Foros del Web. Hola a todos, Tengo una duda, seguro ustedes me prodran ayudar, soy nuevo en esto de las url amigables y recien empieso a practicar con ...
  #1 (permalink)  
Antiguo 30/06/2009, 13:11
 
Fecha de Ingreso: junio-2009
Mensajes: 3
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta ayuda Url Amigables!!!

Hola a todos,

Tengo una duda, seguro ustedes me prodran ayudar, soy nuevo en esto de las url amigables y recien empieso a practicar con el.
El tema es el siguiente, tengo un codigo que crea la web modular y el otro las variebles, pero el problema es que cuendo en el htacces escribo la varieble de esta forma anda.

RewriteRule ^inicio$ index.php?mod=inicio [L]
RewriteRule ^servicios$ index.php?mod=servicios [L]
queda asi: ejemplo.com.ar/inicio

pero si lo escrivo asi tengo un problema, .

RewriteRule ^([^/]*)$ index.php?mod=$inicio [L]
RewriteRule ^([^/]*)$ index.php?mod=$servicios [L]
queda asi: ejemplo.com.ar/inicio/
ejemplo.com.ar/servicios/

pero en la direccion se repite quedando de esta manera y no funciona porque cada lin que le doy click me imprime denuevo y asi queda.

ejemplo.com.ar/inicio/servicios/inicio/servicios/

en vez quedar asi: ejemplo.com.ar/inicio/
ejemplo.com.ar/servicios/

espero que me puedan ayudar les dejo todo el script.

index.php
Código PHP:
<?php  

error_reporting
(E_ALL);
// Primero incluimos el archivo de configuración
include('conf.php');

/** Verificamos que se haya escogido un modulo, sino
* tomamos el valor por defecto de la configuración.
*/
if (!empty($_GET['mod']))
    
$modulo $_GET['mod'];
else
    
$modulo MODULO_DEFECTO;

/** También debemos verificar que el valor que nos 
* pasaron, corresponde a un modulo que existe, caso
* contrario, cargamos el modulo por defecto
*/
if (empty($conf[$modulo]))
        
$modulo MODULO_DEFECTO;
 
/** Ahora determinamos que archivo de Layout tendrá
* este módulo, si no tiene ninguno asignado, utilizamos
* el que viene por defecto
*/
if (empty($conf[$modulo]['layout']))
        
$conf[$modulo]['layout'] = LAYOUT_DEFECTO;
        
        
/** Aqui podemos colocar todos los comandos necesarios para
* realizar las tareas que se deben repetir en cada recarga
* del index.php - En el ejemplo, conexión a la base de datos.

* include('clases/class.DB.php');
* $db = new DB();
* $db->conectar();
*/

/** Finalmente, cargamos el archivo de Layout que a su vez, se
* encargará de incluir al módulo propiamente dicho. si el archivo
* no existiera, cargamos directamente el módulo. También es un
* buen lugar para incluir Headers y Footers comunes.
*/
$path_layout LAYOUT_PATH.'/'.$conf[$modulo]['layout'];
$path_modulo MODULO_PATH.'/'.$conf[$modulo]['archivo'];

if (
file_exists($path_layout))
    include( 
$path_layout );
else
    if (
file_exists$path_modulo ))
        include( 
$path_modulo );
    else
        die(
'Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
?>
conf.php
Código PHP:
<?php

function urls_amigables($string) {

    
$string preg_replace("`\[.*\]`U","",$string);
    
$string preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$string);
    
$string htmlentities($stringENT_COMPAT'utf-8');
    
$string preg_replace"`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);`i","\\1"$string );
    
$string preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-"$string);
    return 
strtolower(trim($string'-'));

}
// La variable 
$i "inicio";
$s "servicios";
$id "index";


/*
 * Archivo de configuración para nuestra aplicación modularizada.
 * Definimos valores por defecto y datos para cada uno de nuestros módulos.
*/
define('MODULO_DEFECTO''inicio');
define('LAYOUT_DEFECTO''layout_simple.php');
define('MODULO_PATH'realpath('./modulos/'));
define('LAYOUT_PATH'realpath('./layouts/'));

$conf['inicio'] = array(
        
'archivo' => 'home.php',
        
'titulo' => 'inicio'
        
'layout' => LAYOUT_DEFECTO );
                 
        
$conf['nosotros'] = array(
        
'titulo' => 'servicios,',
        
'archivo' => 'servicios.php' );
        

?>
menu.php
Código PHP:
<a href= <?php echo "".urls_amigables($i)."/"?> >HOME</a></li>
<a href= <?php echo "".urls_amigables($n)."/"?> >SERVICIOS</a>
home.php
Código PHP:
<head>
<
title>Inicio</title>
</
head>

<
body>
<
h1>Home</h1>
</
body>
</
html
servicios.php
Código PHP:
<head>
<
title>Servicios</title>
</
head>

<
body>
<
h1>Servicios</h1>
</
body>
</
html
layout_simple.php
Código PHP:
    <?php
include("menu.php"); //incluimos el archivo 
?>

<div id="incluir"><?
    
if (file_exists$path_modulo )) include( $path_modulo );
    else die(
'Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
?>
</div>
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 09:04.