Tengo un problema a la hora de utilizar una clase para hacer que mis URLS sean amigables, y creo que he detectado que esto es por un bug de php o del server, aún no lo tengo claro, pero creo que es más de php, por eso lo posteo en este foro.
A continuación les pongo el método que haría parte de la "traducción" de las urls, el problema está en que las variables están vacías (más abajo). La verdad es que no se me ocurre coo solucionarlo, porque he leído que cuando está vacía $_SERVER['PATH_INFO'], suele funcionar $_SERVER['ORIG_PATH_INFO'] pero en mi caso ninguna de las dos devuelve nada.
Alguna idea?
Muchas gracias!!!
Código PHP:
protected function fetch_uri_string()
{
$path = (isset($_SERVER['PATH_INFO'])) ? $_SERVER['PATH_INFO'] : @getenv('PATH_INFO');
if (trim($path, '/') != '' && $path != "/".SELF)
{
$this->uri_string = $path;
return;
}
$path = str_replace($_SERVER['SCRIPT_NAME'], '', (isset($_SERVER['ORIG_PATH_INFO'])) ? $_SERVER['ORIG_PATH_INFO'] : @getenv('ORIG_PATH_INFO'));
if (trim($path, '/') != '' && $path != "/".SELF)
{
$this->uri_string = $path;
return;
}
$this->uri_string = '/';
}
Código HTML:
$_SERVER VARS: $_SERVER['PATH'] es /usr/local/bin:/usr/bin:/bin $_SERVER['PATH_INFO'] es $_SERVER['SCRIPT_NAME'] es /server_vars.php $_SERVER['ORIG_PATH_INFO'] es $_SERVER['REQUEST_URI'] es /server_vars.php $_SERVER['PHP_SELF'] es /server_vars.php
Código:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/$1 [L]