在本地主机上设置通配符域(OS X 10.5)?

时间:2009-03-26 04:50:28

标签: ruby-on-rails macos subdomain localhost wildcard-subdomain

我开始开发一个基本上充当WordPress MU的网站,用户可以注册并拥有自己的博客。我将在Rails中对此进行编码,但我希望能够使用通配符子域,因此我可以使用blog.example.com等格式。我做了一些搜索,但找不到任何好的资源。

由于我使用Rails,我不知道在哪里放这个,因为我使用的是Mongrel,而不是Apache。我可以通过在我的服务器上远程开发来绕过在本地计算机上执行此操作,但是我只想将此作为最后的手段。

如果需要,我可以提供有关我的开发环境的更多详细信息,但以下是基础知识:

  • Mac OS X Leopard 10.5.6
  • Ruby 1.8.7
  • Rails 2.3.2

4 个答案:

答案 0 :(得分:14)

严格地说,在hosts文件中不可能这样做(至少在OS X上)。可以通过将其配置为使用代理自动配置脚本来模拟Firefox的行为。

使用以下javascript创建文件(我使用〜/ .proxy.pac)

function FindProxyForURL(url, host) {
  if (shExpMatch(host,"*.<YOUR_DOMAIN>")) {
    //alert("proxy local")
    return "PROXY localhost";
  }
//alert("proxy direct")
return "DIRECT";
}

然后在Firefox&gt;偏好&gt;高级&gt;网络&gt;设置...&gt;自动代理配置URL:

file:///Users/USERNAME/.proxy.pac

从未在Safari中尝试过,但它也支持PAC文件,所以也许它可以工作......

我知道的唯一其他选择是在您的PC上设置一个完整的DNS服务器......

答案 1 :(得分:3)

我无法让Nick的代码使用标准的localhost:3000安装程序在Max OSX 10.5.8上运行ruby on rails。所以,我将功能更改为以下内容。这现在允许我转到http://localhost/http://foo.localhost/(并且还忽略端口)

function FindProxyForURL(url, host) {
  if (shExpMatch(host, "*localhost")) {
    return "PROXY localhost:3000";
  }
  return "DIRECT";
}

有趣 - www.localhost工作得不好 - firefox想重定向到www.localhost.com。需要注意的事情。

答案 2 :(得分:2)

我遇到了同样的问题,事实证明在OSX上运行命名非常容易(已经预装了!)查看http://mikeferrier.ca/2011/04/04/setting-up-wildcard-dns-on-localhost-domains-on-osx/了解说明。

答案 3 :(得分:-1)

效果很好,是在localhost上测试子域名的最佳解决方案..比较我使用ruby ghost gem的方式。