Apache “Fichier introuvable” au lieu de 404. document d’erreur

Je veux définir un document d’erreur 404 personnalisé, mais j’ai un problème avec ça!

Premièrement, j’ai deux RewriteRules dans mon fichier .htaccess:

RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3.php?lang=$1 [L] RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3/$4.php?lang=$1 [L] 

Donc mon URL ressemble à: / de-de / page / autre / stuff et opend /page/other/stuff.php?lang=de-de

Maintenant, il est temps de définir mon propre document d’erreur: ErrorDocument 404 /404.php

S’il y a une erreur dans “/ de-de / page / autre /” par exemple “/ de-de / false / page /” j’ai eu le document d’erreur avec succès. Mais s’il y a une erreur dans le nom du fichier php (par exemple “Info-mal” au lieu de “Objets”), je reçois uniquement le message “Fichier introuvable”. mais pas mon document d’erreur.

Qu’est-ce qui ne va pas? Que puis-je faire pour le réparer?

Merci de votre aide!

 AuthType Basic AuthName "Password Protected Area" AuthUserFile /var/www/vhosts//development/tests/demo./.htpasswd Require valid-user  RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,QSA]  RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3.php?lang=$1 [L] RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3/$4.php?lang=$1 [L] ErrorDocument 404 /404.php 

Apache Error Log:

 [404] GET /de-de/support/support/fdfssdf HTTP/1.0 AH01071: Got error 'Primary script unknown\n' 

Utilisez RewriteCond pour vérifier si le fichier php existe:

 RewriteCond %{REQUEST_URI} ^/([^/.]+)/([^/.]+)/([^/.]+)/?$ RewriteCond %{DOCUMENT_ROOT}/%2/%3.php -f RewriteRule ^ /%2/%3.php?lang=%1 [L] RewriteCond %{REQUEST_URI} ^/([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ RewriteCond %{DOCUMENT_ROOT}/%2/%3/%4.php -f RewriteRule ^ /%2/%3/%4.php?lang=%1 [L]