将内部路径重定向到虚拟主机

时间:2009-03-06 15:08:57

标签: apache drupal mod-rewrite virtual hosts

我已经在drupal测试网站上工作了一段时间,其中有一堆虚拟主机设置如下:

<VirtualHost *:80>
ServerAdmin email@example.com
DocumentRoot "/path/to/root"
ServerName testsite1.example.com
</VirtualHost>

我一直在使用修改过的主机文件来查看每个测试站点,大致如下:

12.0.0.1 localhost
20.02.2.22 testsite1.example.com
20.02.2.22 testsite2.example.com
20.02.2.22 testsite3.example.com

这个工作正常,但是现在我需要将这些网站发送给远程的某些人,他们不够技术,无法修改他们自己的主机文件并按我的方式查看。

有没有办法设置Apache,以便网址“http://20.02.2.22/testsite1”会在内部转发到testsite1.example.com?我正在使用Drupal,并且站点设置需要查看“testsite1.example.com”,以便它可以正确选择要选择的实例。我一直在寻找apache重写,但我在这方面有点新意,所以任何帮助都非常感谢。

3 个答案:

答案 0 :(得分:3)

testsite1.example.com只能在您的计算机上解析,因此您无法重定向。您可以使用mod_proxy设置代理。希望这对你有用:

<VirtualHost *:80>
  ServerAdmin email@example.com
  DocumentRoot "/path/to/root"
  ServerName testsite1.example.com
  ServerAlias 20.02.2.22
  <Location /testsite1/>
    ProxyPass http://testsite1.example.com/ 
  </Location>
</VirtualHost>

答案 1 :(得分:0)

我展示本地测试站点的方式是动态DNS和端口转发的组合。

在内部,我的Drupal站点位于[我的机器ip]或localhost。

我为我的IP设置了一个免费的动态DNS名称,然后在我的路由器上,接受端口上的传入请求以路由到[我的机器ip]

通过这种方式,他们可以看到yoursite.dyndns.com,但它会查看您的本地副本。

答案 2 :(得分:0)

为什么您不购买新域名并将其指向您的服务器IP地址... 或者有免费的域名解决方案,如:

http://www.dot.tk/en/index.html?lang=en
or
http://dyn.com/dns/

如果您想购买新域名,我建议您使用这个价格便宜且优质的服务:http://server2.elite7hackers.us/recommend.php?site=godaddy