При запросе к несуществующему файлу, запрос доходит до index.php и с этим надо что-то делать. На сколько правильное следующее решение:
private function process_request()
{
$request = strtolower($_SERVER['REQUEST_URI']);
$query_string = strstr($request, '?');
if( !empty($query_string) ){
$request = str_replace($query_string, '', $request);
}
$ext = strstr($request, '.');
$good_ext = array('.php', '.html', '.htm');
if($ext===false){
return $request;
}elseif(in_array($ext, $good_ext)){
$right_url = str_replace($ext, '', $request);
$this->redirect($right_url);
}else{
$this->set_404();
}
}
private function set_404()
{
if( !headers_sent() ){
header('HTTP/1.1 404 Not Found');
header('Status: 404 Not Found');
exit();
}else{
Ylog('Headers have been sent!');
}
}
private function redirect($page)
{
if( !headers_sent() ){
header('HTTP/1.1 303 See Other');
header('Location: '.$page);
exit();
}else{
Ylog('Headers have been sent!');
}
}