When the path starts with an existing directory, the server resolves part of the path relative to it, breaking or limiting the traversal. A non-existent directory ensures the server doesn't prematurely resolve or restrict traversal logic, keeping the payload intact. Imagine the following path on the server:
/var/www/html
Now, a user submits this payload:
?language=existing_dir/../../../../etc/passwd
If existing_dir exists in /var/www/html, the server might resolve the path as:
/var/www/html/existing_dir/../../../../etc/passwd
This would then normalize to:
/var/www/etc/passwd
In this case, the traversal fails to escape the /var/www directory because the server resolves existing_dir as a valid starting point and truncates traversal relative to it.