I would like to know how could I check the existing of a file by a given url inside native php router (index.php) here is what I’ve tried :
function does_file_exists($url){
  try{
    $headers = get_headers($url);
    if(is_array($headers))
    {
      return (stripos($headers[0],"200 OK") || stripos($headers[0],"304 OK")) ? true : false;
    }
    else
    {
    }
  }
  catch(Exception $e)
  {
  }
  return false;
}
Inside (index.php)
$url = "http://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if(does_file_exists($url))
{
  $ext = pathinfo($url, PATHINFO_EXTENSION);
  if(in_array($ext, $unauthorized_file_type))
  {
    Redirect('404.php');
    exit();
  }
  else
  {
    header("Location: $url");
    exit();
  }
}
The page takes long time to output a message ‘Warning: get_headers(http://[website]/test): failed to open stream: HTTP request failed’ may be due to reccursion. How can I solve that without .htaccess file?
Advertisement
Answer
You can do this by using the file_exists command in PHP.See the following example:
if (file_exists(__DIR__ . "/views/dashboard.php")) {
          include __DIR__ . “/views/dashboard.php”;
}
__DIR__ here refers to the directory of the currently-executing script, so you will want to make all paths relevant to that.