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?
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.