Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: d91 en 18 Febrero 2017, 16:16 pm



Título: Reescribir url mod_rewrite
Publicado por: d91 en 18 Febrero 2017, 16:16 pm
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
  1. RewriteEngine On
  2. RewriteCond %{REQUEST_FILENAME} !-f
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /?c=$1&a=$2&id=$3 [L]
  5.  

mi modelo de front controller lo tengo asi:
Código
  1. <?php
  2. require_once 'controller/alumno.controller.php';
  3.  
  4. // Ruta del proyecto, cambiala por la ruta que vas a usar
  5. define( 'RUTA_HTTP', 'http://' . $_SERVER['HTTP_HOST'] . '' );
  6.  
  7. // Todo esta lógica hara el papel de un FrontController
  8. if(!isset($_REQUEST['c'])){
  9.    $controller = new AlumnoController();
  10.    $controller->Index();    
  11. } else {
  12.  
  13.    // Obtenemos el controlador que queremos cargar
  14.    $controller = $_REQUEST['c'] . 'Controller';
  15.    $accion     = isset($_REQUEST['a']) ? $_REQUEST['a'] : 'Index';
  16.  
  17.  
  18.    // Instanciamos el controlador
  19.    $controller = new $controller();
  20.  
  21.    // Llama la accion
  22.    call_user_func( array( $controller, $accion ) );
  23. }
  24.  
un ejemplo de como se llama a una url es asi:
Código
  1. http://www.misitio.com/?c=Alumno&a=Crud&id=3
  2.  
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
  1. http://www.misitio.com/Alumno/Crud/3.html
  2.  


Título: Re: Reescribir url mod_rewrite
Publicado por: d91 en 18 Febrero 2017, 16:45 pm
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
  1. #RewriteRule ^([A-Za-z]*)/([A-Za-z]*)/([0-9]*)$ /?c=$1&a=$2&id=$3 [L]
  2. #RewriteRule ^([A-Za-z]*)/([a-zA-Z]*)$ /?c=$1&a=$2
  3.  RewriteRule ^([A-Za-z]*)$ ?c=$1
  4.