我做的是在输出任何内容之前在我的图片页面的最顶部进行一些URL解析:
foobar.com/pictures.php/2134613514/nice-sunset
如果出于任何原因出错,我想将用户发送到我的错误页面。
对于404,403等我使用.htaccess重定向到同一页面,这很容易:
ErrorDocument 401 /error.php?e=401
ErrorDocument 402 /error.php?e=402
ErrorDocument 403 /error.php?e=403
所以我在pictures.php中所做的是:
try
{
// parse PATH_INFO, grab image from db, ...
}
catch (Exception $e) // if that goes wrong for any reason
{
whack_error_to_log( $e );
header("Location: /error.php?e=503");
exit();
}
让我感到不安的是,用户会看到 foobar.com/error.php?e=503 作为网址,我希望他能看到 foobar.com/pictures / 2134613514 / nice-sunset ,因为理想情况下,一旦我发现错误,网址就会重新启动......
答案 0 :(得分:2)
试试这个:
try
{
// parse PATH_INFO, grab image from db, ...
}
catch (Exception $e) // if that goes wrong for any reason
{
whack_error_to_log( $e );
$_GET['e'] = 503;
include 'error.php';
exit();
}
它是一个黑客,但它应该工作
答案 1 :(得分:1)
包含脚本文件而不是重定向到它:
whack_error_to_log( $e );
$_GET['e'] = '503';
include 'error.php';
exit();