【问题标题】:Custom 404 and 500 errors not working自定义 404 和 500 错误不起作用
【发布时间】:2016-09-22 01:30:46
【问题描述】:

自定义 404 和 500 错误页面不起作用。尝试直接访问或通过错误访问时,两个页面都出现以下错误: error img


.htaccess 内容:

DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

ErrorDocument 404 /error_docs/404.php
ErrorDocument 500 /error_docs/500.php

错误页面都包含:

<p>text</p>

我已经多次检查了这两条路径,它们都是正确的。 如果我用文件路径替换文本,则会显示文本并且错误有效。 谢谢。

【问题讨论】:

  • 你的开发环境是什么?
  • 请原谅我的无知,DE 到底是什么?如果有帮助,我正在使用 Chrome / Notepad++?大声笑对不起,有点菜鸟:D
  • 基本上,至少按照我的理解,是你用来开发的每一个工具,在这种情况下,我想知道服务器的性质,但我猜你没有访问它,因为你是通过 ftp 工作的,对吗?
  • 服务器由我联系的朋友(物理上)拥有。我可以访问网络空间管理员帐户。并感谢 DE 的解释 :)
  • 也许您可以请您的朋友告诉您服务器日志中发生的错误。这可以让您更好地了解幕后发生的事情。

标签: php html .htaccess http-status-code-404 http-status-code-500


【解决方案1】:

删除这一行,你终于准备好了

RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

【讨论】:

  • 这让我进入了重定向循环
  • 你的开发环境是什么?
  • 您还有其他 .htaccess 规则吗?尝试清除浏览器缓存并重试
  • @J.Pichardo Bootstrap,主要是 php。
  • @Kinggeov 浏览器缓存和 cookie 清除没有帮助
【解决方案2】:

作为 XAMPP 中的示例,当您使用 ErrorDocument 时,它会重定向到 本地主机文件夹。如果我写:

ErrorDocument 404 /error_docs/404.php

它重定向到:

localhost/error_docs/404.php

事实上,ErrorDocument 总是重定向到 DocumentRoot

所以最好的方法(我现在知道)是使用绝对路径

【讨论】:

  • 我将路径更改为绝对路径 (prntscr.com/b7y5wn),现在我处于重定向循环中。有趣的是,如果我用链接替换文本,它会输出文本(ErrorDocument 正在工作)。
  • 很好看,但实际上我按照朋友的建议将文件移动到了根目录。也许为了这篇文章我应该保留它们,但我只是在尝试一个消除过程! :)
猜你喜欢
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
相关资源
最近更新 更多