sustituir guión en url dinámica

Iniciado por agentsmith, 8 Agosto 2007, 15:53 PM

0 Miembros y 1 Visitante están viendo este tema.

agentsmith

Hola, tengo un problema que no puedo resolver, me pueden ayudar?

esta url:
index.php?mod=articulo1&idioma=es

con mod_rewrite me queda así:
/articulo1/es/

Lo que no puedo lograr es agregar subcategorías. Los articulos se guardan en la carpeta: /modulos/articuloN.php y yo quisiera guardar algunos en la carpeta: /modulos/categoriaN/articuloN.php

el index.php llama a un config.php que indica en la variable $conf un array de 'titulo' , 'archivo' y 'layout'

en 'archivo' es donde se pone la ruta, ej: /modulos/articuloN.php/

pero si pongo: /modulos/categoriaN/articuloN.php lo que hace el navegador me muestra el articuloN.php (y no categoriaN/articuloN.php) . como que no puedo usar el caracter '/' y tengo que usar '-' (guión).

y la pregunta era esa, si hay alguna manera modificando algo de usar '/' en lugar del guión.

/seccion1/articulo1/es/  en lugar de /seccion1-articulo1/es/

Saludos



Nakp

claro que si... pero si pones el code que estas usando seria mas facil que inventarme el orden

salu2
Ojo por ojo, y el mundo acabará ciego.

agentsmith

gracias Nakpanzer  :D!! el código:

index.php:
error_reporting(E_ALL);
include('conf.php');

if (!empty($_GET['mod']))
$modulo = $_GET['mod'];
else
$modulo = MODULO_DEFECTO;

if (empty($conf[$modulo]))
$modulo = MODULO_DEFECTO;

if (empty($conf[$modulo]['layout']))
$conf[$modulo]['layout'] = LAYOUT_DEFECTO;

// IDIOMA
$idiomaActual = 'es';

if(isset($_GET['idioma'])){
  setcookie ("idioma", $_GET['idioma'], time () + 7*24*60*60);
  $idiomaActual = $_GET['idioma'];
}
elseif(isset($_COOKIE['idioma'])){

  if(file_exists("lang/".$_COOKIE['idioma'].".php")){
    $idiomaActual = $_COOKIE['idioma'];
  }
}

include "lang/".$idiomaActual.".php";
//////////////////////////////////////

$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&oacute;dulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');


conf.php:
define('MODULO_DEFECTO', 'Inicio');
define('LAYOUT_DEFECTO', 'layout_simple.php');
define('LAYOUT_COLOR', 'layout_color.php');
define('MODULO_PATH', realpath('./modulos/'));
define('LAYOUT_PATH', realpath('./layouts/'));

$idiomaActual = 'es';
if(isset($_GET['idioma'])){
  setcookie ("idioma", $_GET['idioma'], time () + 7*24*60*60);
  $idiomaActual = $_GET['idioma'];
}

if ($idiomaActual == 'es') {
$conf['Inicio'] = array(
'titulo' => 'Inicio',
'archivo' => 'espanol/inicio.php',
'layout' => LAYOUT_DEFECTO );

$conf['articulo1'] = array(
'titulo' => 'Art&iacute;culo 1',
'archivo' => 'espanol/articulo1.php',
'layout' => LAYOUT_DEFECTO );

$conf['articulo2'] = array(
'titulo' => 'Art&iacute;culo 2',
'archivo' => 'espanol/articulo2.php',
'layout' => LAYOUT_DEFECTO );

$conf['seccion1/articulo11'] = array(
'titulo' => 'Secci&oacute;n 1 - Art&iacute;culo 1',
'archivo' => 'espanol/seccion1/articulo1.php',
'layout' => LAYOUT_DEFECTO );}

.htaccess
RewriteEngine on
RewriteRule ([^/]+)/([^/]+)\/$ /index4.php?mod=$1&idioma=$2


espero se pueda hacer algo por ese guión......

agentsmith


Freeze.

Eso no es cierto..

Alguien vendra ya veras...

agentsmith