Я работаю локально над проектом и хочу, чтобы некоторые запросы домена перешли в localhost
, а другие просто пошли, как обычно.
Я хочу, по сути, сделать это в моем файле hosts:
86.75.3.09 www.example.com/dir/*
127.0.0.1 www.example.com
Насколько я понимаю, это невозможно с /etc/hosts
, но я могу ошибаться. Тем не менее, я открыт для предложений. Я использую Apache и пытался использовать прокси для отправки /dir/*
запросов на реальный IP-адрес www.example.com
, но тогда они не могут определить, откуда я пришел - мне нужно, чтобы это выглядело как будто я получаю доступ к www.example.com
, перейдя непосредственно к www.example.com
.
То есть, это не делает то, что я хочу в конфигурации моего сайта:
ProxyPass /dir/ https://86.75.3.09/dir/
Потому что тогда иностранный сайт думает, что я обращаюсь к нему из 86.75.3.09
, а не example.com
.
Насколько я понимаю, это невозможно с / etc / hosts, но я могу ошибаться
blockquote>Вы правильно поняли.
DNS (и / etc / hosts является частью преобразователя DNS) разрешает хосты.
Он ничего не делает с URL.В
86.75.3.09 www.example.com/dir/*
не указано имя компьютера / хоста, поэтому следует выдать ошибку или игнорировать строку.Это нормальная работа DNS, и именно так она и работает.
Запутанно HTTP - странная утка. протокол HTTP проверяет имена серверов и каталоги. Хост будет использовать DNS для разрешения IP, а затем отправит дейтаграмму, которая включает URL. Вот почему у вас могут быть разные правила для разных каталогов, когда вы играете с прокси (или даже с несколькими доменами веб-сайтов на одном IP).
Но как написано ранее. HTTP странная утка здесь. И сначала нужно будет разрешить IP через DNS.
Я подумал о том, чтобы опубликовать это как комментарий, поскольку это не поможет вам решить проблему, кроме как понять, где что-то пойдет не так. К сожалению, комментарии не позволяют много форматировать. : ( SUP>
Я решил аналогичную проблему, установив домен третьего уровня local.example.com
для каталога тестового проекта вместе с mod_rewrite в правилах Apache и .htaccess. Файл hosts:
www.example.com 93.184.216.34
local.example.com 127.0.0.1
и файл .htaccess на соответствующем виртуальном сервере Apache
RewriteEngine на
RewriteCond% {HTTP_HOST} ^ local.example.com
RewriteRule ^ (. *) $ / Testdir / $ 1 [L, NC, QSA]