I try to make a clean url with a simpel php code found here at stackoverflow. URL rewriting with PHP.
exampel.com/foo
works
exampel.com/foo/
makes a 500 internal error
exampel.com/foo/bar
also a 500.
I have tryed to figure why but i cant find the error. (i am not a php guru, but i belive i do understand some.)
my code to handel this fallback in index.php (fallback set in htacces)
$YdelseMenu = NULL;
function VisYdelser($element){
if(empty($element[0])) { // No path elements means home
$page2 = 'ydelser';
} else switch(array_shift($element))
{
case 'traefaeldning':
$page2 = 'traefaeldning';
break;
case 'beskaering':
$page2 = 'beskaering';
break;
default:
header('HTTP/1.1 404 Not Found');
$page2 = '404';
}
return $page2;
}
// https://stackoverflow.com/questions/16388959/url-rewriting-with-php
$path = ltrim($_SERVER['REQUEST_URI'], '/'); // Trim leading slash(es)
$elements = explode('/', $path); // Split path on slashes
if(empty($elements[0])) { // No path elements means home
$YdelseMenu = true;
$page = 'home';
} else switch(array_shift($elements)) // Pop off first item and switch
{
case 'ydelser':
$YdelseMenu = true;
$page = VisYdelser($elements); // passes rest of parameters to internal function
break;
case 'kontakt2':
$page = 'kontakt';
break;
default:
header('HTTP/1.1 404 Not Found');
$page = '404';
}
This might be a kaybord error but i cant find it. the error only seems to happen then 'VisYdelse()' is called and passes on to the 'switch'?
I hope someone can see what i do wrong. And maby som tips to optimise the code will be nice:)
EDIT i made a err log but but its empty (testet the log, end it do work)