【问题标题】:Redirecting an internal path to a virtual host将内部路径重定向到虚拟主机
【发布时间】:2009-03-06 15:08:57
【问题描述】:

我已经在一个drupal测试站点上工作了一段时间,它有一堆这样设置的虚拟主机:

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

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

12.0.0.1 本地主机 20.02.2.22 testsite1.example.com 20.02.2.22 testsite2.example.com 20.02.2.22 testsite3.example.com

这工作得很好,但是现在我需要将站点发送给远程的一些人,他们的技术不足以修改自己的主机文件并以我的方式查看它。

有没有一种方法可以设置 Apache,以便 URL“http://20.02.2.22/testsite1”在内部转发到 testsite1.example.com?我正在使用 Drupal,站点设置需要查看“testsite1.example.com”,以便正确选择要选择的实例。我一直在研究 apache rewrite,但我对此有点新手,所以非常感谢任何帮助。

【问题讨论】:

    标签: apache drupal mod-rewrite virtual hosts


    【解决方案1】:

    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>
    

    【讨论】:

    • 这很接近,但不是简单地在内部发送请求,而是导致浏览器请求不存在的 testsite1.example.com。不过谢谢,mod_proxy 似乎是一个很好的方向。
    【解决方案2】:

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

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

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

    这样,他们可以看到 yoursite.dyndns.com,但它会查看您的本地副本。

    【讨论】:

      【解决方案3】:

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

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

      如果你想购买新域名,我推荐你这个,便宜又优质的服务:http://server2.elite7hackers.us/recommend.php?site=godaddy

      【讨论】:

        猜你喜欢
        • 2012-03-29
        • 2012-02-06
        • 2016-07-16
        • 2018-06-03
        • 2012-08-18
        • 2019-04-16
        • 2013-02-05
        • 2011-08-23
        相关资源
        最近更新 更多