Windows

Windows HOSTS 文件和特定的伺服器文件夾

  • August 26, 2009

我一直在玩 Windows HOSTS 文件,它似乎位於 c:\windows\ (Windows 95、98 y Me)下,以及 C\Windows\system32\drivers\etc\ 下(Windows NT、2000、XP和遠景)

我想指出

http://mydomain/到我的 Web 伺服器的特定文件夾。我的主機文件目前看起來像:

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://domainA/)<http://127.0.0.1/domainA/文件夾。

例如。http://127.0.0.1/指向 /htdocs

我希望http://domainA/指向 /htdocs/domainA

解決方案

將下一行添加到 apache httpd.conf:

&lt;VirtualHost *:80&gt;
ServerName http://domainA/
DocumentRoot "/htdocs/domainA"
&lt;/VirtualHost&gt;

&lt;VirtualHost *:80&gt;
ServerName http://domainB/
DocumentRoot "/htdocs/domainB"
&lt;/VirtualHost&gt;

第二個答案:

您必須使用 apache 虛擬主機功能:

&lt;VirtualHost *:80&gt;
# url like http://127.0.0.1/.....
ServerName 127.0.0.1
DocumentRoot /htdocs
&lt;/VirtualHost&gt;

&lt;VirtualHost *:80&gt;
# url like http://domaina/.....
ServerName domaina
DocumentRoot /htdocs/domaina
&lt;/VirtualHost&gt;

虛擬主機文件

HOSTS 文件的唯一目的是將名稱映射到 IP 地址;它與 URLS 沒有任何關係(DNS 也是如此)。你不能這樣做。

除了按照建議重寫 URL 之外,您還可以使用主機標頭:

  • 在HOSTS文件中定義這兩個名字,使它們指向127.0.0.1
  • 在您的網路伺服器中定義兩個網站,一個響應“domainA”,另一個響應“domainB”

這樣,當您呼叫http://domainA>時,您將看到第一個網站;當你呼叫<http://domainB時,第二個會出現;Web 伺服器將自動辨識它被呼叫的名稱並為相應的網站提供服務,即使兩者都在相同的 IP 地址上執行。

如果要使用 IIS,則需要執行 Windows 的伺服器版本才能創建多個網站;XP 和 Vista 等客戶端系統上的 IIS 僅支持單個站點。

引用自:https://serverfault.com/questions/58886