gpt4 book ai didi

apache2 - 用于 WAMP 的站点可用 (apache) 和 httpd.conf - 使 XXXXX.domain.com 自动定向

转载 作者:行者123 更新时间:2023-12-03 03:47:58 25 4
gpt4 key购买 nike

我目前在 WAMP 中的 httpd.conf 文件中有此内容:

NameVirtualHost 127.0.0.1

<VirtualHost 127.0.0.1>
ServerAlias *.dev.co.uk
UseCanonicalName Off
VirtualDocumentRoot D:/wamp/www/%1/httpdocs
</VirtualHost>

我创建了一个目录“foo.bar”,然后尝试http://foo.bar.dev.co.uk我得到这个:

Not Found

The requested URL / was not found on this server.

我想让这个设置在我的本地 apache 服务器和 wamp 服务器上运行(我认为语法略有不同)。如果我需要提供更多信息,请发表评论,我会更新。

最佳答案

我从未使用过VirtualDocumentRoot,但看到您没有收到任何回复,我会尝试一下。

根据docs on Directory Name Interpolation ,看来您的问题在于您使用 %1 ,它仅匹配 http://foo.bar.dev.co.uk 的“foo”。

要匹配“foo.bar”,请尝试:

VirtualDocumentRoot D:/wamp/www/%1.0.%2.0/httpdocs

%1 匹配“foo”,而 %2 匹配“bar”。附加到每种格式的 .0 是为了允许我们在 foo 和 bar 之间包含点(因为 . 也用作提取 的子字符串的运算符)匹配的单词)。

如果这不起作用,请检查日志以查看 Apache 实际正在查找哪个目录。这可能会提供有关问题所在的线索。

更新

回应:

"This does make foo.bar.dev.co.uk however, unfortunately it stops foo.dev.co.uk from working, any ideas?"

使用目录名称插值来匹配具有不确定数量的子域的别名是很棘手的。

最直接的方法是简单地使用 %0 并以完整域名命名目录。

VirtualDocumentRoot D:/wamp/www/%0/httpdocs

这将与目录D:/wamp/www/foo.bar.dev.co.uk/httpdocsD:/wamp/www/foo.dev.co匹配。 uk/httpdocs.

如果您的可能域子集有限,则可以制定更具体的解决方案。例如,如果您有:

  • “foo.dev.co.uk”
  • “bar.dev.co.uk”
  • “foo.bar.dev.co.uk”
  • ..以及更多“X.Y.dev.co.uk”形式的域名

然后您可以在处理其他域之前处理前面的 VirtualHost block 的“foo”和“bar”。

<VirtualHost 127.0.0.1>
ServerAlias foo.dev.co.uk
ServerAlias bar.dev.co.uk
UseCanonicalName Off
VirtualDocumentRoot D:/wamp/www/%1/httpdocs
</VirtualHost>

<VirtualHost 127.0.0.1>
ServerAlias *.dev.co.uk
UseCanonicalName Off
VirtualDocumentRoot D:/wamp/www/%1.0.%2.0/httpdocs
</VirtualHost>

关于apache2 - 用于 WAMP 的站点可用 (apache) 和 httpd.conf - 使 XXXXX.domain.com 自动定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6237916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com