解决方案

解决方案

我一直在研究 Windows HOSTS 文件,它似乎位于 c:\windows\ (Windows 95、98 和 Me)下,以及 C\Windows\system32\drivers\etc\ 下(Windows NT、2000、XP 和 Vista)

我想指出

http://我的域名/到我的 Web 服务器的特定文件夹。我的 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://域名A/它会自动将其更改为http://127.0.0.1/域名A/但我希望它留在http://域名A/在提供内容的同时http://127.0.0.1/域名A/文件夹。

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

我想http://域名A/指向 /htdocs/domainA

解决方案

在 apache httpd.conf 中添加以下几行:

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

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

答案1

第二个答案:

您必须使用 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 文档

答案2

HOSTS 文件的唯一用途是将名称映射到 IP 地址;它与 URL 完全无关(DNS 也是如此)。您无法通过这种方式做到这一点。

除了按照建议重写 URL 之外,您还可以使用主机标头:

  • 在 HOSTS 文件中定义这两个名称,并使其两个都指向 127.0.0.1
  • 在您的 Web 服务器中定义两个网站,一个回答“域 A”,另一个回答“域 B”

这样,当你打电话时http://域名A,你会看到第一个网站;当你调用http://域名B,第二个就会出现;即使两个都在同一个 IP 地址上运行,Web 服务器也会自动识别它被调用的名称并提供适当的网站。

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

答案3

您谈论的是两种不同的想法:

  1. 名称解析(dns、hosts 文件)
  2. url 重写(转换 url)

您无法使用 hosts 文件进行 url 写入。

去做 :

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

您需要在您的 Web 服务器上使用 URL 写入 API:

或者

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]

相关内容