Cita:
Iniciado por mark_ant0n
Tengo una pagina web que la e construido modularizada, de tal forma que tengo un index.php en la raiz, y en ese index se abren todos los modulos. por ejemplo en mi url cuando entro al modulo de articulos queda asi.
Código url:
Ver originalhttp://localhost/carpeta/?mod=mod_art&opcion=inicio
Y cuando necesito entrar a ver un articulo dinamicamente lo llamo asi
Código url:
Ver originalhttp://localhost/carpeta/?mod=mod_art&opcion=mostrar&item=30
Ahora bien al codificar el .httacces, servira para todos mis modulos, es decir si necesito entrar a otro modulo por ejemplo a publicidad, serviria o seria un .httacces por modulo?, cada modulo esta en su propia carpeta. Ejem: ./modulos/mod_art/index.php
Código url:
Ver originalhttp://127.0.0.1/carpeta/?mod=mod_publ&opcion=empresas&id=12
Si se pudiera un ejemplo de como seria, gracias por su ayuda
Hola como va, ro lo utiliza de la siguiente manera
-> el primer parametro es el controlador de la aplicacion, por ejemplo articulos, por ejemplo articulos
-> el segundo parametro llama a la funcion del controlador, por ejemplo index, mostrar
luego paso parametros adicionales al controlador ejemplo id/2
lo que obtengo es una url como
mihost.com/articulos/listar
mihost.com/articulos/ver/id/1
mihost.com/articulos/ver/id/1/p/1
para llamar a los metodos utilizo un conector que funciona como un enrutador adaptado para tu funcuinamiento quedaria algo asi
Código php:
Ver original<?php
class conector{
function iniciar(){
require'config/configs',
require 'librerias/router.php';
// getVariables es una funcion del archivo router.php
$_GET = getVariables($_GET['route']);
//definimos un modulo por defecto en el caso que no se encontrara definido ninguno
//$_GET[0] devolvera el nombre del modulo, para darle una mayor estetica solo usaremos el nombre del mismo y a la hora de llamarlo le agregaremos el el prefijo mod_ sufijo .php
$nombre = 'mod_'.$_GET[0].'.php';
}else{
$nombre = 'mod_index.php';
}
include($nombre);
}else{
include('mod_index.php');
}
} // end iniciar
}
router.php
Código php:
Ver originalfunction getVariables($url)
{
//quitamos la barra del final
//separamos las partes de la url y las contamos
$cantPartes = count($partes);
//si la cantidad de partes no es par retornamos false, al ser impar una variable se quedaria sin valor y esto no es posible
if($cantPartes == 1){
return $partes;
}
if($cantPartes % 2 != 0)
return false;
//nombre del modulo
$variables[0] = limpiar($partes[0]);
for($c = 0; $c < $cantPartes; $c = $c + 2)
{
//Acumulamos los pares de valores(para nosotros variables) en el arreglo
$nombre = limpiar($partes[$c]);
$valor = limpiar($partes[$c + 1]);
$variables[$nombre] = $valor;
}
return $variables;
}
function limpiar($valor)
{
return $valor;
//permitimos solo letras(a-Z), numeros y guiones
}
.htacces
Código htacces:
Ver original<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?route=$1 [QSA,L]
</IfModule>
y por ultimo el index.php
Código php:
Ver original<?php
require 'librerias/conector.php';
conector::iniciar();
?>