VirtualDocumentRoot 问题

VirtualDocumentRoot 问题

再会。

我正在设置一台 Mac 用于本地开发,并使用以下内容配置了 dnsmasq.conf:

address=/.dev/127.0.0.1

我希望通过 本地运行网站,http://client1.ext.dev/index.html它将映射到本地文件夹/www/sites/client1.ext/htdocs/index.html。当然,这里的变量是client#,它与之关联的ext可以是任何正常的 TLD——.com、.net、.info 等。

我已经尝试了我能想到的所有排列,但似乎无法让 httpd.conf 正确映射(技术上是我的 httpd-vhosts.conf 文件)。

<Virtualhost *:80>
  VirtualDocumentRoot /www/sites/%-2+/htdocs
  #ServerName sites.dev 
  ServerAlias *.dev
  UseCanonicalName Off
</Virtualhost>

在我的浏览器中使用这个 uri client1.com.dev/index.html,我的日志文件读取File does not exist: /www/sites/client1.com 为什么 VirtualDocumentRoot 的剩余映射不起作用?(“/htdocs”部分未被添加。)。

许多帖子表明应该如此,但是手册页(http://goo.gl/Ghff5G) 不显示 %-mapping 之外的任何其他目录。

我也尝试过在指令中使用 RewriteRules,但没有成功(而且我很确定我做得不正确)。

奖金

如果我有一个子域名,我的浏览器就会直接转到 OpenDNS(我已将其配置为我的内部 IP 之后的默认值)并说它找不到sub.client1.com.dev我想要映射到的域名/www/sites/sub.client1.com/htdocs

谢谢你!

答案1

由于您有 1:1 映射,您应该能够使用完整的 URL;

<Virtualhost *:80>
  VirtualDocumentRoot /www/sites/%0/htdocs
  ServerName %0
  UseCanonicalName Off
</Virtualhost>

以上内容也适用于子域名。

我做了一些类似的事情,除了使用 .dev TLD 代替实际的 TLD,并且对于不使用我的本地 dnsmasq dns 的设备,还使用 ​​xip.io 的别名。

# Any .dev folder in ~/Sites
#
<VirtualHost *:80>
    VirtualDocumentRoot "/Users/phunky/Sites/%1.0.%-1.0/public"
    ServerName %-2.0.%-1.0
    ServerAlias %-2.0.%-1.0.*.xip.io
</VirtualHost>

现在,如果我能弄清楚如何让子域映射到 VirtualDocumentRoot 内的备用文件夹,我会非常高兴。

相关内容