问题标签 [errordocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6291 浏览

virtualhost - Apache 错误文档不起作用

我在 linux 环境中运行 apache2 网络服务器。我想将用户重定向到自定义错误页面。所以创建了错误页面并在 htdocs 中创建了符号链接,也是这样。静态文件-> /app/静态文件。在 httpd.conf 文件中,我创建了虚拟主机定义并包含错误页面,如下所示:

当我的应用服务器关闭时,它不会将我重定向到 503 自定义错误页面。我只获取服务器特定的错误页面。但是如果我将此 ErrorDocument 放在虚拟主机定义之外,它会将我重定向到自定义错误页面。我打了三天头。但找不到原因。我在所有浏览器中都试过了。有人可以帮助我吗?

0 投票
2 回答
3212 浏览

php - 允许被阻止的 IP 查看 403 ErrorDocument

我有一个脚本,它会根据垃圾邮件数据库中的查找自动将 IP 地址添加到 my.htaccess 文件中。但是,我希望这些地址的后续访问能够查看我创建的 403 ErrorDocument。显然,他们不能,因为他们被拒绝了。我的 .htaccess 看起来像这样:

关于如何做到这一点的任何建议?我正在通过 PHP 添加地址。

提前致谢。

0 投票
1 回答
1411 浏览

.htaccess - 带有 htaccess 的 404 页面

如果我有一个重写规则设置来获取任何不是文件的名称并显示page-layout-select.php

如果页面没有返回任何内容,就像我输入任何内容(页面名称不存在)一样,我将如何设置 404 它仍然加载页面布局选择但没有内容(因为它不存在)

对此的任何帮助都会很棒

谢谢

0 投票
2 回答
247 浏览

apache - 是否可以使用 apaches ErrorDocument 404 来实际更改 URL 而不是需要绝对路径?

我们有一个 htaccess 文件:

这可以显示 404.shtml 文件。问题是当有人键入 thedomain.com/folder1/folder2 时,它会破坏布局,因为页面使用的是相对路径而不是绝对路径。我知道我可以使用绝对路径来解决这个问题,但我想知道是否有一种方法可以实际更改 404.shtml 的路径,因此可以保留相对路径。

提前致谢。

0 投票
2 回答
1057 浏览

php - 从 PHP 向 Apache 返回 Http 状态代码?

在我的本地开发机器上,我下载了 PDT + Zend Server,其中包括在 Windows 7 上运行的 Apache 2.2.16 和 PHP 5.3.5。在我的本地站点上,我包括了一个 .htaccess,其中包含 404、403 和 500 的 ErrorDocuments . 在我的 PHP 中,当用户请求一个不存在的文档时,我使用 header("Http/1.0 404 Not Found")。在我的本地服务器上,一切正常。我的自定义 ErrorDocument 出现了,我很高兴。

我将所有内容上传到我在 Linux 服务器上运行 Apache 2.2.38 和 PHP 5.3.8 的共享主机,突然间,ErrorDocuments 仅在它们不是来自 PHP 时才起作用。

PHP.ini 或 httpd.conf 或 .htaccess 中是否有一些设置允许 Apace 查看来自 PHP 的错误代码,这使我的开发服务器正常工作,但不是我的共享主机?

在研究这一点时,我所看到的只是“一旦它传递给 PHP,Apache 就看不到状态码”。在这种情况下,为什么我的开发服务器可以正常工作?

编辑

为清楚起见,这里是 .htaccess:

.htaccess有效,因为如果用户导航到 myhost.com/jdkslfjdls,用户会收到 Errors/Http404.php 的内容。

但是,如果用户导航到 myhost.com/images/GetImage.php?Id=5(当没有图像 #5 时),则用户不会收到任何内容。

如果他们导航到(内部 IP 地址)/images/GetImage.php?Id=5,用户会收到 Errors/Http404.php 的内容。

如果用户尝试访问 GetImage.php?Id=6(当有图像 #6 但他们没有权限时),也会出现类似的问题。在共享服务器上,他们得到一个空白页面或浏览器的 403 错误。在我的开发服务器上,他们得到了我实际的自定义 403 错误页面。

同样,如果我尝试访问 .inc 文件,则 403 错误文档适用于共享服务器。

0 投票
1 回答
856 浏览

php - ErrorDocument 和 Mod 重写

我想知道是否有一种方法可以使用 Mod Rewrite 来处理所有可能的 http 状态错误代码(4XX 和 5XX 的),而不是像这样在 htaccess 中声明它们:

在某处我发现了这个小技巧:

但它不是只处理 404 个吗?如果没问题,我该如何修改我的缓存破坏重写规则以使其也能处理此功能?

我需要类似的东西:

你能帮我吗?非常感谢!

0 投票
1 回答
1525 浏览

php - Index.php 作为自定义错误页面

我正在使用 Apache 2.2.X 和 PHP 5.2.X(作为 Apache 模块安装)来构建一个新网站,我想阅读您关于我如何尝试处理服务器错误的建议。
我正在考虑使用我主页的同一文件 (/index.php) 来显示自定义错误消息。这是我的 .htaccess 设置:

现在,在我的 index.php 文件中,我有一些如下所示的代码:

一切都像魅力一样。
好吧,除了我无法修复的一件事之外的所有内容:如果我强制 Apache 以 500 状态代码响应(例如,将格式错误的代码插入到我的 .htaccess 中),我不会被重定向到“/index.php? error=500",但我得到的是默认的 500 错误页面。使用任何其他状态代码(例如 403 或 404),我的配置绝对可以完美运行。

但现在我有一个疑问,我开始认为使用另一个页面来处理错误会更好(例如,“/error.php”)。
“DrawHomepage()”需要将“robots”元标记设置为“index,follow”,而“DrawErrorPage()”需要将它设置为“noindex,nofollow”。对?那么......如果网络爬虫第一次访问我的主页时收到错误响应会发生什么?如果网络爬虫第一次访问我的主页有 200 次访问,但一个月后访问了 500 次,会发生什么情况?如果我将“机器人”元标记保留为“索引,关注”,即使我显示错误,会发生什么?

这个问题有解决方法吗?你会怎么办?

非常感谢!

0 投票
1 回答
964 浏览

php - 将 mod_rewrite 与 ErrorDocument 一起使用

我在我的 PHP 框架中使用 mod_rewrite 将用户友好的链接重定向到应用程序的一个主要入口点。我正在使用的 .htaccess 文件如下所示:

现在,我想将该规则与ErrorDocument指令一起使用。我该怎么做?我的框架将响应代码设置为404缺少控制器时:

我尝试添加该行ErrorDocument 404 /index.php?url=404ErrorDocument 404 /error但似乎没有任何效果,并且我得到了默认浏览器的错误页面。

怎么了?

谢谢你。

0 投票
2 回答
186 浏览

php - 如何通过 .htaccess 将 GET/POST 参数发送到页面

如果请求的 URI 出现 500 错误,我想重定向到错误页面。我做了这样的事情:

将请求的 uri 作为 GET 参数发送到“500.php”以处理请求。但是 500.php 没有收到 GET 参数。

我该怎么做呢?

提前致谢。

0 投票
2 回答
1853 浏览

php - 如何正确拦截 PHP 中的 404 错误?

本质上,我正在做的是使用 .htaccess 中的 ErrorDocument 拦截 404,并将其指向 getFile.php。getFile 然后从 url 中获取文件名并在 mysql 数据库中搜索它,获取数据并应用适当的标题。

在我的开发环境(在 ubuntu 下运行的最新 LAMP 服务器)中,一切似乎都运行良好,但是该站点托管在 GoDaddy 上,并且返回的标头似乎存在一些问题。我认为 GoDaddy 返回 404,然后仍然发送数据。

结果是当我右键单击要以这种方式处理的链接时,我可以“另存为”,一切正常。如果文件是图像,则打开没有问题。但是,如果我只是单击链接并且它是要下载而不是在浏览器中查看的文件,我会在所有浏览器中收到“找不到文件”错误。Firebug 控制台声称这是一个 404 错误,无论文件是否成功传输。我的代码如下:

和 .htaccess 文件:

现在这是 /FILES/dbFiles 中的完整 .htaccess 文件。我不知道 GoDaddy 是否期待那里有更多的东西,但它似乎就像在我自己​​的服务器上写的一样工作。

我尝试了多种标题信息组合,但没有任何积极影响。

我的代码显然有效,但我似乎无法阻止 404 发生。

谢谢!-杰尔