Comunidad de diseño web y desarrollo en internet online

url y htaccess

Citar            
MensajeEscrito el 25 Jun 2012 04:55 am
Buen dia para todos, soy nuevo en este mundo, estoy haciendo un sitio web para mi, donde estoy implementando un MVC. Quiero que cuando entren al sitio, siempre me busque mi index.php raiz, para ello creé el .htacces de la siguiente maner:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

Aqui no tengo ningun problema, todo funciona correcto cuando digito en la url.

el Index.php tiene el siguiente código:

$url = $_GET['url'];

$url = rtrim($url,'/');
$url = explode('/', $url);
echo $url;

donde cuando escribo esto en la url: localhost/mvc/ o esto localhost/mvc/index me dice que:

Notice: Undefined index: url in /var/www/mvc/index.php on line 7

pero si le escribo algo como esto: localhost/mvc/ola

me muestra el valor ola en dentro de la pagina.

me parece que con el htaccess lo que estoy haciendo es quitar el index de la url, y no quiero quitarlo, o en realidad no se que esta pasando.

Estoy en Ubuntu 12.04 con apache 2.2.22

Agradecería su pronta ayuda.

Por dareyesm

1 de clabLevel



 

Ingeniero de Sistemas

firefox
Citar            
MensajeEscrito el 25 Jun 2012 12:20 pm
Pues no. Todo funciona como debería. El problema no lo tienes en la expresión regular. Simplemente estás confundido. Cuando pides cargar el index desde la URL se ejecuta el segundo RewriteCond (que dice "no continuar si el archivo existe), por lo tanto Apache ejecuta index.php sin parámetros y por lo tanto el índice "url" del array $_GET no existe, porque no hay parámetros en la URL.

En definitival, debes controlar que el array $_GET tenga algún valor antes de procesarlo, o mejor aún, verificar si existe el índice "url" en $_GET antes de intentar parsearlo con explode.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.