Когда я нажимаю на ссылку http://127.0.0.1/test/test2/index.php (из POSTMAN), я получаю 403. Отлично. Но добавив Host -> mydomain.com в Headers, я получаю 200.
Если я правильно понимаю, вы, похоже, думаете, что добавление заголовка Host в вашем запросе - это как-то обходной путь. И это не ... это то, как имена хостов работают в HTTP.
Сервер волшебным образом не знает, что вы ввели http://domain.tld/test/
в адресную строку браузера. Ваш браузер выполняет поиск DNS для domain.tld
и устанавливает TCP-соединение с разрешенным IP-адресом; Затем он отправляет заголовки, откуда сервер получает информацию:
GET /test/ HTTP/1.1
Host: domain.tld
Это единственный способ, которым сервер знает, что вы запросили http://domain.tld/test/
.