Директива ErrorDocument 404 /404.shtml в файле .htaccess игнорируется в WordPressом. Выполняется 404.php из активной темы.
ErrorDocument 403 /403.shtml работает, как положено.
Как сделать, чтобы директива выполнялась?
Мне не важна сама страница ошибки 404! Важен факт выполнения директивы и возможность подмены страницы при некоторых условиях
RewriteEngine On
RewriteCond %{HTTP_REFERER} …….
……………
RewriteRule 404\.shtml cgi-bin/onerror.pl
Чтобы снять вопрос: – "зачем это надо?"
Это активная защита от Хотлинка, которая прекрасно работает на сайтах без WordPress. Очень хочется применить её и под прессом WordPress.
wordpress не обрабатывает директивы .htaccess, это забота апача.
При включенном ЧПУ в .htaccess добавляются правила, по которым на любой неопознанный url поднимается /index.php (ну а как иначе-то?)
Если нужно добавить свою обработку рерайтов, то директивы нужно разместить перед директивами wordpress.