es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reescribir rutas en el archivo .htaccess.

Estoy intentando reescribir las rutas con HTACCESS, pero no puedo hacerlo. Estoy usando MVC y actualmente las rutas se generan del tipo http://localhost/realestate/web/index.php?ruta=storefront

Mi idea es que sean del tipo http://localhost/realestate/web/storefront

Es decir, omitir index.php?ruta=

Actualmente estoy usando este código:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zAZ0-9]+)$ ?ruta=$1

Mi código PHP para el tratamiento de estas rutas es el siguiente:

$map = array(
‘home’ => array(‘controller’ => ‘Controller’, ‘action’ => ‘home’),
‘escaparate’ => array(‘controller’ => ‘Controller’, ‘action’ => ‘escaparate’),
);

//Parsing

if(isset($_GET[‘ruta’])){
if(isset($map[$_GET[‘ruta’]])){
$ruta = $_GET[‘ruta’];
}
else{
//404
header(‘404 Not Found’);
echo ‘

ERROR: No existe la ruta ‘. $_GET[‘ruta’] . ‘

‘;
exit;
}
}
else{
$ruta = ‘home’;
}

Pero no puedo hacerlo, he intentado varias formas que he encontrado por aquí. Realmente agradezco la ayuda.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás teniendo problemas para reescribir tus rutas con HTACCESS. Estás tratando de reescribir las rutas desde http://localhost/realestate/web/index.php?Route=storefront a http://localhost/realestate/web/storefront y estás utilizando el siguiente código:

    RewriteEngine on 
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([a-zAZ0-9]+)$ ?ruta=$1 
    

    Tu código PHP para el tratamiento de estas rutas es el siguiente:

    $map = array(
        'home' => array('controller' => 'Controller', 'action' => 'home'),
        'escaparate' => array('controller' => 'Controller', 'action' => 'escaparate'),
        );
    
    //Parsing
    
    if(isset($_GET['ruta'])){
        if(isset($map[$_GET['ruta']])){
            $ruta = $_GET['ruta'];
        }
        else{
            //404
            header('404 Not Found');
            echo '<html><body><p style="" color:red=""><b>ERROR: No existe la ruta '. $_GET['ruta'] . '</b></p></body></html>';
            exit;
        }
    }
    else{
        $ruta = 'home';
    }
    

    Desafortunadamente, no podemos proporcionar ayuda específica con tu código sin más información. Te sugerimos que te pongas en contacto con la comunidad de Stack Overflow para obtener ayuda más específica.

Comments are closed.