Назад | Перейти на главную страницу

Файл Windows HOSTS и конкретная папка сервера

Я играл с файлом Windows HOSTS, который, кажется, находится в папке c: \ windows \ (Windows 95, 98 y Me) и в папке C \ Windows \ system32 \ drivers \ etc \ in (Windows NT, 2000, XP и Vista)

Я хотел бы указать

http: // мойдомен / в конкретную папку моего веб-сервера. I Файл Hosts в настоящее время выглядит так:

127.0.0.1       domainA
127.0.0.1       domainB

Но я бы хотел

http://domainA/ points to http://127.0.0.1/domainA/
http://domainB/ points to http://127.0.0.1/domainB/

Как я могу этого добиться?

Тесты

Чтобы использовать rewriteModule, раскомментируйте следующую строку в файле httpd.conf:

LoadModule rewrite_module modules/mod_rewrite.so

Следующий код не то, что я искал.

RewriteEngine  on
RewriteCond %{HTTP_HOST}   ^domainA [NC]
RewriteRule ^/(.*)         http://127.0.0.1/domainA/$1 [L,R]

С помощью приведенного выше кода при вводе текста в браузере http: // domainA / он автоматически меняет его на http://127.0.0.1/domainA/ но я хочу, чтобы это оставалось http: // domainA / при обслуживании содержания http://127.0.0.1/domainA/ папка.

например. http://127.0.0.1/ указывает на / htdocs

я хочу http: // domainA / указать на / htdocs / domainA

Решение

Добавьте в apache httpd.conf следующие строки:

<VirtualHost *:80>
ServerName http://domainA/
DocumentRoot "/htdocs/domainA"
</VirtualHost>

<VirtualHost *:80>
ServerName http://domainB/
DocumentRoot "/htdocs/domainB"
</VirtualHost>

Второй ответ:

Вы должны использовать возможности виртуального хоста apache:

<VirtualHost *:80>
# url like http://127.0.0.1/.....
ServerName 127.0.0.1
DocumentRoot /htdocs
</VirtualHost>

<VirtualHost *:80>
# url like http://domaina/.....
ServerName domaina
DocumentRoot /htdocs/domaina
</VirtualHost>

vhosts docs

Вы говорите о двух разных мыслях:

  1. разрешение имен (dns, hosts-файл)
  2. перезапись URL (преобразование URL)

вы не можете писать URL-адреса с помощью файла hosts.

делать :

 http://domainA/ points to http://127.0.0.1/domainA

Вам нужно использовать api для записи URL на вашем веб-сервере:

или

Пример конфигурации для apache:

RewriteEngine  on
RewriteCond %{HTTP_HOST}   ^domainA [NC]
RewriteRule ^/(.*)         http://127.0.0.1/domainA/$1 [L,R]


RewriteCond %{HTTP_HOST}   ^domainB [NC]
RewriteRule ^/(.*)         http://127.0.0.1/domainB/$1 [L,R]

Единственная цель файла HOSTS - сопоставление имен с IP-адресами; он не имеет ничего общего с URL-адресами (то же самое и с DNS). Вы просто не можете этого сделать.

Помимо перезаписи URL-адресов, как предлагается, вы также можете использовать заголовки хоста:

  • Определите два имени в файле HOSTS и сделайте их обе указать на 127.0.0.1
  • Определите два веб-сайта на своем веб-сервере, один из которых отвечает на «domainA», а другой - на «domainB».

Таким образом, когда вы звоните http: // domainA, вы увидите первый веб-сайт; когда ты звонишь http: // domainB, появится второй; веб-сервер автоматически распознает, с каким именем он был вызван, и обслуживает соответствующий веб-сайт, даже если оба работают на одном IP-адресе.

Если вы хотите использовать IIS, вам необходимо запустить серверную версию Windows, чтобы создать несколько веб-сайтов; IIS в клиентских системах, таких как XP и Vista, поддерживает только один сайт.