首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署时不显示error_handlers页面

部署时不显示error_handlers页面
EN

Stack Overflow用户
提问于 2018-12-27 22:28:42
回答 1查看 70关注 0票数 0

我是谷歌应用程序引擎的新手,想在上面托管我的php网站。我发现有一个error_handlers选项可以将错误(缺少页面)重定向到自定义错误页面,但在部署时,错误页面永远不会显示。

我已经使用dev_appserver.py app.yaml在本地服务器上尝试过了,并且工作正常。如果我输入一个不存在的文件,它将重定向到错误页面。但当部署到web上时,它就不起作用了。

这是我的app.yaml。如果URL不是php或html文件,只需重定向到index.php即可。但如果它是一个php或html文件,但没有找到,它将转到error.html。

代码语言:javascript
复制
runtime: php55
api_version: 1

handlers:
# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
  static_files: \1
  upload: .+\.(gif|png|jpg)$
  application_readable: true

# Serve php scripts.
- url: /(.+\.(php\html))$
  script: \1

- url: /.*
  script: index.php

error_handlers:
  - file: error.html

在本地服务器上,它工作正常,并显示错误页面。部署后,由于缺少php或html,将出现404错误。error.html永远不会显示,即使URL是(域).com/error.html。error.html将显示404错误

我想知道是否有可能将丢失的页面重定向到自定义错误页面。

EN

回答 1

Stack Overflow用户

发布于 2019-01-02 23:21:01

在您的app.yaml中,我认为您在- url: /(.+\.(php\html))$中遗漏了一个\,如下所示:/(.+\.(php\\html))$

error_handlers仅适用于超时、超出配额和dos api拒绝错误。

在我看来,您正在将所有url重定向到index.php,并在那里为每个url创建适当的处理程序。在这种情况下,您应该使用set_error_handler捕获那里的错误。

对于404,我将推荐以下几点:

代码语言:javascript
复制
handlers:
 -url:/
  script: index.php

 -url:/*.
  script: 404_custom_error.php

在这种情况下,任何无法在index.php中处理的url都将由404自定义错误php脚本处理,如app.yaml example所示。

我发现有两个公开的问题跟踪者在讨论这个话题。第一个包含有关feature request的信息,第二个解释infrastructure will not intercept有效的404响应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53946638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档