Reescribir url mod_rewrite

Iniciado por d91, 18 Febrero 2017, 16:16 PM

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

d91

Hola estoy tratando de implementar las url amigables, ya active el mod_rewrite del servidor pero simplemente me da error 500

el htaccess me quedo asi:
Código (cpp) [Seleccionar]

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /?c=$1&a=$2&id=$3 [L]


mi modelo de front controller lo tengo asi:
Código (php) [Seleccionar]

<?php
require_once 'controller/alumno.controller.php';

// Ruta del proyecto, cambiala por la ruta que vas a usar
define'RUTA_HTTP''http://' $_SERVER['HTTP_HOST'] . '' );

// Todo esta lógica hara el papel de un FrontController
if(!isset($_REQUEST['c'])){
    
$controller = new AlumnoController();
    
$controller->Index();    
} else {
    
    
// Obtenemos el controlador que queremos cargar
    
$controller $_REQUEST['c'] . 'Controller';
    
$accion     = isset($_REQUEST['a']) ? $_REQUEST['a'] : 'Index';
    
    
    
// Instanciamos el controlador
    
$controller = new $controller();
    
    
// Llama la accion
    
call_user_func( array( $controller$accion ) );
}

un ejemplo de como se llama a una url es asi:
Código (php) [Seleccionar]

http://www.misitio.com/?c=Alumno&a=Crud&id=3

esa url si funciona pero al escribir las reglas en el modo rewrite y tratar de escribir algo  asi me envio error 500
Código (php) [Seleccionar]

http://www.misitio.com/Alumno/Crud/3.html

d91

Segui haciendo pruebas y ya me reconoce una expresion, pero necesito 3 expresiones, pero solo puedo tener habilitada 1 a la vez porque si tengo habilitada las 3 solo funciona la primera y como que tiene precedencia sobre las demas
Código (php) [Seleccionar]

#RewriteRule ^([A-Za-z]*)/([A-Za-z]*)/([0-9]*)$ /?c=$1&a=$2&id=$3 [L]
#RewriteRule ^([A-Za-z]*)/([a-zA-Z]*)$ /?c=$1&a=$2
  RewriteRule ^([A-Za-z]*)$ ?c=$1