Os docs dizem:
URLs can begin with a slash (/) for local web-paths (relative to the DocumentRoot), or be a full URL which the client can resolve. Alternatively, a message can be provided to be displayed by the browser.
../../src/wrong_pwd.php
não começa com uma barra, então espero que o Apache a trate como uma mensagem. Parece que você não pode retornar um documento que está fora do DocumentRoot
, então eu suspeito que o que você quer nunca funcionará (isso é sensato; afinal, o cliente tem que ser capaz de recuperar o documento em caso de erro) .
Você pode usar Alias
para aliasar a página de erro a um local fora da raiz do documento. Algo como:
Alias /error/wrong_pwd.php /path/to/src/wrong_pwd.php
ErrorDocument 401 /error/wrong_pwd.php
Não testado, YMMV, etc. Talvez seja necessário conceder acesso explicitamente a esse diretório com um < Directory
> quadra; consulte a documentação mod_alias . É claro que existem preocupações de segurança aqui - geralmente você não quer expor sua fonte ao mundo. (Se este for o caso, talvez você possa criar um wrapper PHP leve e visível para a web, que include()s
the /path/to/src/wrong_pwd.php
...)