php - PHP重定向503而不更改URL

标签 php redirect error-handling http-headers

我要做的是在输出任何内容之前,在图片页面的顶部进行一些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 ,因为一旦发现错误,该网址就会重新出现...

最佳答案

尝试这个:

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();
}

它是一个hack,但它应该可以工作

关于php - PHP重定向503而不更改URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5397867/

相关文章:

perl - Mojolicious::Lite: 使用 "redirect_to"时如何传递参数;

使用 vue-router 登录后重定向到请求的页面

google-app-engine - 应用引擎 : How to redirect www request to non-www domain at DNS level

php - CodeIgniter不使用image_lib添加水印

PHP/Twitter oAuth - 自动推文

java - Spring的Class Cast异常错误

apache-spark - 写入文件时出现Databricks Checksum错误

java - 在服务编排场景中,如何在没有检查异常的情况下处理错误?

javascript - FullCalendar 后端 PHP/JS 到 symfony 3

PHP 部分相同的命名空间冲突