Windows HOSTS文件和一个特定的服务器文件夹

我一直玩的Windows HOSTS文件似乎是位于C:\ Windows \(Windows 95,98是我),并在C \ Windows \ system32 \驱动程序\ etc \中(Windows NT中,2000年,XP中和Vista)

我想指出

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/ 

我怎样才能做到这一点?

testing

要使用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虚拟主机function:

 <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文档

HOSTS文件的唯一目的是将名称映射到IP地址; 它根本没有任何与URL有关的东西(DNS也是如此)。 你不能这样做。

除了按照build议重写URL之外,还可以使用主机头文件:

  • 在HOSTS文件中定义两个名称,并使它们指向127.0.0.1
  • 在你的web服务器中定义两个网站,一个回答“domainA”,另一个回答“domainB”

这样,当你打电话给http:// domainA的时候 ,你会看到第一个网站; 当你调用http:// domainB时 ,第二个会显示出来; networking服务器将自动识别被调用的名称,并提供相应的网站,即使两者都运行在相同的IP地址上。

如果您想使用IIS,则需要运行Windows的服务器版本才能创build多个网站; 客户端系统(如XP和Vista)上的IIS只支持一个站点。

你讲两个不同的想法:

  1. 名称parsing(DNS,主机文件)
  2. url重写(转换url)

你不能用你的主机文件做url写入。

去做 :

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

你需要在你的web服务器上使用一个写api的url:

  • Apache Apache文档 mod_rewrite

要么

  • isapirewrite为IIS isapi免费版本

Apache的示例configuration:

 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]