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



我目前在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我得到这个:

未找到

在上找不到请求的URL:此服务器。

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

我从未使用过VirtualDocumentRoot,但看到您没有得到任何响应,我会尝试一下。

根据目录名称插值的文档,你的问题似乎在于你使用的%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实际在查找哪个目录。这可能会为出了什么问题提供线索。

更新

响应:

"这确实使foo.bar.dev.co.uk然而,不幸的是,它停止了foo.dev.co.uk,有什么想法吗?"

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

最直接的方法是简单地使用%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块的"foo"one_answers"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>

一些可能支持的注释:

1) 解析本地主机ip
你必须让你的浏览器能够找到127.0.0.1上的内容。因此,如果没有完成,请首先编辑Windows操作系统计算机上的主机文件C:\Windows\System32\drivers\etc\hosts:

127.0.0.1 foo.bar.dev.co.uk

如果不允许在该主机文件中使用通配符。为此,您应安装此。

2) 端口:
确保您的服务器正在侦听http默认端口,例如,不要忘记在httpd.conf文件中添加此指令(因为我没有看到):

Listen 80

3) 控制:
在使用NameVirtualHost XXX.XXX.XXX指令时,请确保NameVirtualHost指示完全匹配。你的帖子看起来就是这样。

4) 路径:
作为一个Linux用户,这可能是我的一句愚蠢的话,但我认为Windows操作系统需要反斜杠作为路径,而不是斜杠。但我可能肯定错了,不想误导任何人。但是,由于"该目录名称插值模块中的所有指令都将字符串插入路径名,我会检查获得的插值字符串的结果。请参阅下一点。

5) 占位符:
确保模块vhost-alias已加载到您的wamp中。我还建议您在vhost中添加一个指令,这样您就可以在日志中检查所需的插值URL,找出错误,并相应地更正您的apache设置:

LogFormat "%h %l %u %t "%r" %>s %b" common
CustomLog logs/access_log common 

6) 现有解决方案
存在的问题总是存在的解决方案:见

一旦你检查了这些点,我想解决方案很快就会出现。

相关内容

最新更新