gpt4 book ai didi

php - error_handlers 页面在部署时不显示

转载 作者:行者123 更新时间:2023-12-03 08:46:03 25 4
gpt4 key购买 nike

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

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

这是我的 app.yaml。如果 URL 不是 php 或 html 文件,只需简单地重定向到 index.php。但是如果是php或者html文件但是没有找到,就会去error.html。

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 是 (domain).com/error.html。 error.html 将显示 404 错误

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

最佳答案

在您的 应用程序.yaml 我认为您缺少 \- url: /(.+\.(php\html))$像这样:/(.+\.(php\\html))$error_handlers仅适用于超时、超过配额和 dos api 拒绝错误。

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

对于 404,我将推荐以下内容:

handlers:
-url:/
script: index.php

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

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

我找到了两个讨论这个话题的公共(public)问题跟踪器。第一个有关于 feature request 的信息第二个解释说 infrastructure will not intercept有效的 404 响应。

关于php - error_handlers 页面在部署时不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53946638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com