0

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)

1 Answers1

0

There is no problem with the code. The error was in the htaccess. Changed FallbackResource index.php to FallbackResource /index.php Note the leading slash.