我已经为我网站上的文件夹写了一条重写规则。
看起来像这样:
#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
请告诉我如何将此错误添加到我的错误文档中 。 谢谢!
答案 0 :(得分:0)
当您收到500错误代码时,错误日志中应该有一些内容。如果什么也没有,那么正在执行和崩溃的是PHP。
ErrorDocument
的第二个参数是HTTP返回码。因此,您可以使用ErrorDocument 500
覆盖默认页面。
如果您确实在错误日志中获得了某些内容,请将其添加到您的问题中。您还应该考虑添加mod_rewrite日志记录以查看发生了什么。有关如何执行此操作的详细信息,请参阅Apache v2.2和v2.4中的不同之处:http://wiki.apache.org/httpd/RewriteLog