我有一个网站,它有三个不同的目录。我想为每个不同的目录创建一个自定义错误页面。我所做的如下:
<Directory "directory1">
ErrorDocument 404 /directory1/error.php
</Directory>
<Directory "directory2">
ErrorDocument 404 /directory2/error.php
</Directory>
<Directory "directory3">
ErrorDocument 404 /directory3/error.php
</Directory>
现在,当我在根级 htaccess 中使用此代码时,我得到的结果是内部服务器。需要帮助来解决问题。
答案1
<directory>
指示不能使用在 htaccess 文件中。
相反,你可以:
在每个子文件夹中创建一个 htaccess 文件,只需使用
ErrorDocument
指令编写一些复杂的 mod_rewrite 规则
让 PHP 完成这项工作。
/.htaccess
ErrorDocument 404 /errors.php
/errors.php
<?php $error_include = sprintf('%s/%s/error.php', __DIR__, explode('/', pathinfo($_SERVER['REQUEST_URI'], PATHINFO_DIRNAME))[1]); if (@file_exists($error_include)) { include($error_include); } else { echo 'Not Found: and no error document!'; }