Условный файл хоста

Я работаю локально над проектом и хочу, чтобы некоторые запросы домена перешли в 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.

1
задан 6 April 2013 в 03:36

2 ответа

Насколько я понимаю, это невозможно с / etc / hosts, но я могу ошибаться

Вы правильно поняли.

DNS (и / etc / hosts является частью преобразователя DNS) разрешает хосты.
Он ничего не делает с URL.

В 86.75.3.09 www.example.com/dir/* не указано имя компьютера / хоста, поэтому следует выдать ошибку или игнорировать строку.

Это нормальная работа DNS, и именно так она и работает.

Запутанно HTTP - странная утка. протокол HTTP проверяет имена серверов и каталоги. Хост будет использовать DNS для разрешения IP, а затем отправит дейтаграмму, которая включает URL. Вот почему у вас могут быть разные правила для разных каталогов, когда вы играете с прокси (или даже с несколькими доменами веб-сайтов на одном IP).

Но как написано ранее. HTTP странная утка здесь. И сначала нужно будет разрешить IP через DNS.


Я подумал о том, чтобы опубликовать это как комментарий, поскольку это не поможет вам решить проблему, кроме как понять, где что-то пойдет не так. К сожалению, комментарии не позволяют много форматировать. : (

0
ответ дан 6 April 2013 в 03:36

Я решил аналогичную проблему, установив домен третьего уровня 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]

1
ответ дан 12 December 2019 в 17:53

Другие вопросы по тегам:

Похожие вопросы: