Mod重写参考500内部错误错误

时间:2016-10-07 05:04:36

标签: .htaccess mod-rewrite url-rewriting

我已经为我网站上的文件夹写了一条重写规则。

看起来像这样:

#page rewrites
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([\w-]+)/note $1/addednote_file.php [NC,L]

作为我上面的htaccess规则,如果我的根目录中的任何文件夹都有addnote_file.php,可以通过" / notes"来访问。

此脚本正常,

但是当我尝试使用和访问该文件时,如果我的根目录中不存在该文件夹,则会导致我的500内部服务器错误。

在一个例子中这个链接" myweb / test / events" 。 " / test /是文件夹,它存在于我的根目录中。但是" myweb / notexist / events" 。 " / notexists /"是一个文件夹,它不存在于我的根目录中。当我访问此链接" myweb / notexist / events"它显示500内部服务器错误,而不是显示我的错误页面。

我的错误文件是这样的:

ErrorDocument 404 /myweb/page-couldnt-fine-reporting.php
ErrorDocument 403 /myweb/page-couldnt-fine-reporting.php
ErrorDocument 304 /myweb/page-couldnt-fine-reporting.php

请告诉我如何将此错误添加到我的错误文档中 。 谢谢!

1 个答案:

答案 0 :(得分:0)

当您收到500错误代码时,错误日志中应该有一些内容。如果什么也没有,那么正在执行和崩溃的是PHP。

ErrorDocument的第二个参数是HTTP返回码。因此,您可以使用ErrorDocument 500覆盖默认页面。

如果您确实在错误日志中获得了某些内容,请将其添加到您的问题中。您还应该考虑添加mod_rewrite日志记录以查看发生了什么。有关如何执行此操作的详细信息,请参阅Apache v2.2和v2.4中的不同之处:http://wiki.apache.org/httpd/RewriteLog