Я использую ISPConfig для управления моими сайтами.
ISPConfig поставляется с 404.html по умолчанию (и другими файлами состояния).
Я использую Apache с PHP-фреймворком, и мой .htacces показывает это:
AddDefaultCharset utf-8
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?$0 [PT,L,QSA]
Когда кто-то обращается к неправильному URL, как http://example.com/i/do/not/exists, он перенаправляет их на мою ошибку 404 (http://example.com/404), но со знаком «%» в URL, он отображает ошибку ISPConfig 404 без перенаправления, игнорируя мой .htaccess.
Задача ещё не решена.
Других решений пока нет …