wenn .htaccess generell nicht geht braucht man über den Rest nicht reden
Genau so hab ich es in mit .htaccess auch. Und in dem entsprechenden Script (bei dir /error.php?code=404) kannst du dann die aufgerufene
URL auswerten, den Rückgabecode neu setzen etc.