问题标签 [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.
php - .htaccess 跨浏览器
我试图在 linux 服务器上使用 .htaccess 文件为 404 错误加载自定义错误文档,页面获取当前页面 URL,然后根据它检索到的 id 重定向到另一个站点(从数据库中检索)网址。
当前的错误文档存储在这里:
/error_docs/ - 除了已经存在的 HTML 文件之外,我无权上传任何内容
/HTTPDocs/301redir.php 是 .htaccess 文件所在的站点根目录。
我已使用以下内容将 301redir.php 页面加载为错误文档,该页面在 FF 中有效,但在其他浏览器中无效。
错误文档 404 /310redir.php
使用 .htaccess 是我改变这一点的唯一真正选择,有没有办法解决这个问题并让它在所有浏览器上工作?
php - 我如何让 Apache 进一步处理 PHP 脚本中设置的错误状态?
我的环境是:安装为 apache2handler 的 PHP 5.2 共享主机
我配置了 ErrorDocuments:
但是,PHP手册中最简单的示例不想与 Apache2 合作并执行兼容的错误处理:
如何修改此代码以触发指定的错误并使 Apache 对其进行排序?
php - ErrorDocument 似乎在我的 .htaccess 中不起作用
有人可以建议吗?我希望我网站的访问者的默认页面是 index.php,对于所有不存在的页面,访问者应该看到 errordoc.php
所以我把它放在 .htaccess 中:
不幸的是,一切都将进入 index.php,包括错误。我试过问我的朋友谷歌,但今天是他的休息日!
php - 为不存在的子域创建错误页面
我的一个网站上有许多子域。当有人访问不存在的子域时,我想重定向到主域上的 404 页面。
noexist.example.com --> example.com/404.php?subdomain=noexist (或者如果 HTTP_REFERRER 可以给我该信息,则没有查询字符串)
我在安装了 cPanel 的 VPS 上运行 LAMP。我可以通过 WHM 编辑域的 DNS 区域文件。
apache - ErrorDocument not working with local file
I am working on a web app that I'm running on Tomcat 6.0.18, and I am using Apache 2 as a reverse proxy. This works fine. I'm also trying to get Apache to display error pages when, for example, I've shutdown Tomcat for redeployment etc. However, the ErrorDocument
directive in my httpd.conf doesn't seem to work at all for local files. I've tried external urls and strings and both of these cases work fine. But the below does not work:
The Oops.html file is in my htdocs folder. Here is some log output from httpd when I try accessing app when Tomcat is not running but httpd is:
Note that I'm not using an .htaccess file. It seems that there is some problem with the settings related to htdocs folder. Below are some bits from my httpd.conf file that has to do with the htdocs foler. I'm new to working with Apache so I'm not sure how relevant this is or if I should post more.
Any help much appreciated!
EDIT:
When Tomcat is running I see these lines in the error log:
Something isn't configured correctly but I have no I what or where. Thanks for the responses so far, but still stumped.
.htaccess - 如何在 htaccess 中结合 ErrorDocument 和重定向?
我有一个非常简单的 5 页静态网站。
每当访问者访问不存在的页面时,我想做一个 301 重定向到索引页面,而不是 404。我试过这样的事情:
但这似乎不起作用。我如何让它做一个 301 重定向到索引页面?
php - 自定义 404 页面 - PHP
我有一个自定义 404 页面,除了我想在此页面上显示的消息外,它工作正常。
我希望它说出无法找到的页面的 url,而是显示 404 页面的 url。
这就是我所拥有的...
You were looking for <?php echo $_SERVER['REQUEST_URI'] ?>.
htaccess 文件包含以下行:ErrorDocument 404 /404/
php - Apache 的 ErrorDocument 指令不重定向
我的 .htaccess 文件中有一堆 ErrorDocument 指令,以便捕获 Apache 可能向用户抛出的几乎所有可能的错误,并将所述用户重定向到我的错误控制器,然后以更用户友好的方式呈现错误。但是,它似乎不起作用。
例如,当我输入一个无效的 URL 时,例如 mysite.com/""##$##$! 我总是收到 Apache 的默认 403 错误消息,而不是重定向到我的 errors.php 文件。下面是我正在使用的指令。我需要做任何其他事情才能使其正常工作吗?(AllowOverride All 已设置)
如果这是处理绝对自定义错误处理的错误方法,请告诉我,我将不胜感激朝正确方向轻推。
谢谢!
编辑:哦,只是想我会提到这一点。我编写了自己的 MVC 结构来重定向请求,并且效果很好。在 PHP 中,如果用户请求一个不存在的 URL,我自己的 404 错误将正常触发(或我定义的任何其他错误)。所以基本上,如果我输入 mysite.com/!!!! 进入 URL,它会起作用,我得到一个 404。但是,每当我使用双引号字符开始请求时,都会触发默认的 Apache 403 错误。奇怪的。此外,500 错误也将无法重定向到 errors.php,并且只会返回默认的 Apache 500 屏幕(例如,使用 header("HTTP/1.0 500 Internal Server Error");die(); 进行测试时) .
编辑 3:我只是尝试放入ErrorDocument 200 "message"
我的 .htaccess 文件并没有发生任何事情,我打开的任何页面都可以正常打开。在最坏的情况下,这应该会陷入无限循环。最好的情况下,它应该输出“消息”。它也没有,它只是忽略了ErrorDocument。Apache 的访问日志记录了一个正常的 200 OK 标头,但 .htaccess 完全忽略了它。
ruby-on-rails - 用于非 Rails URL 的 Rails 404 处理程序
我继承了一个包含数百个分散的 HTML 和非框架 PHP 文件的站点,我将其移植到 Ruby on Rails 3.0。
在 Rails 应用程序中添加功能时,相应的页面会从文档根目录中删除;但是,由于 Google 或外部站点中经常有这些链接,因此不能接受简单地返回 404。
例如,像“/contact.php”这样的 URL 应该重定向到“/app/contact/”。
对于前几个案例,我在旧位置创建了简单的存根 html 文件,其中包含 Meta 标记以执行重定向。这不能很好地扩展,特别是当我开始替换产品页面时,其中有数千个。
我的偏好是删除旧页面,然后让 404 处理程序将它们发送到新的 Rails 应用程序,该应用程序将使用正则表达式和数据库查找检查 URL 以尝试找出替换页面是什么,然后发出 301 重定向到那个新页面。
在 httpd.conf 中,我放置了指令:
当我点击“http://localhost/does-not-exist”时,这会导致我的 ErrorController 按预期被调用。
但是,在控制器中,我在 request、request.headers 或 ENV 中的任何地方都找不到原始路径(“/does-not-exist”)——我一直在调用可能的方法,例如 request.request_uri(其中包含 /app/ error/handle404),并检查 request.headers 和 ENV 却没有找到预期的原始路径。
Apache access_log 仅显示对 /does-not-exist 的请求,表明它透明地调用了 /app/error/handle404(没有进行重定向或导致进行第二次请求)。
如何访问原始 URL?
编辑:澄清一下,这是事件的顺序:
- 用户点击像 http://mysite/foo.php 这样的遗留路径,可能来自博客中的一些古老链接。
- ...但是 foo.php 不再存在!
- 这是 404,因此 Apache 调用 ErrorDocument
- 指令是“ErrorDocument 404 /railsapp/error/handle404”
- Rails 将此路由到 ErrorController 操作“handle404” - 这工作正常
- 问题:在 ErrorController 中,request.request.uri、request.headers 没有提供任何关于用户实际尝试访问哪个 URL 的线索,例如“/foo.php”;我需要知道原始 URL 以提供适当的替换页面。
php - 在 .htaccess 中设置 ErrorDocument 404 会导致 jQuery 的 AJAX 调用永远不会出错
好的,所以我尝试使用 .htaccess 为各种错误代码设置 ErrorDocuments。它工作得很好,除了现在,以下 jQuery AJAX 代码将永远不会运行 error() 函数:
有什么建议吗?我想我知道原因: .htaccess 指出所有错误,如下所示:
并且 /error.php 具有以下内容:
所以当它传输到 index.php 时,它可能会丢失 404 文档状态。
你有什么建议?