AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 108071
In Process
Timo
Timo
Asked: 2010-02-01 08:14:31 +0800 CST2010-02-01 08:14:31 +0800 CST 2010-02-01 08:14:31 +0800 CST

如果子域不存在

  • 772

apache2 中有没有办法为不存在的子域添加虚拟主机?

现在我试试这个:

<VirtualHost *:80>
        ServerAdmin [email protected]

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log


</VirtualHost>

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName *.devhouse.nl
        DocumentRoot /var/www/errors
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/errors/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

</VirtualHost>

Include sites-available/devhouse.nl.vhost

(第二个虚拟主机)

但这不起作用。我在 /var/www 中看到的文件不在 /var/www/errors 中

我怎样才能解决这个问题?

apache-2.2 virtualhost
  • 2 2 个回答
  • 1452 Views

2 个回答

  • Voted
  1. Olaf
    2010-02-01T08:52:59+08:002010-02-01T08:52:59+08:00

    您可以创建一个默认的 VirtualHost,只要没有配置匹配的 NamedVirtualHost,就会触发它。这基本上看起来像你给出的第一个例子。然后为您要处理的所有域添加 NamedVirtualHosts(例如添加ServerName www.example.com等)。

    每当请求未配置的虚拟主机时,默认将服务该请求。在此,您可能希望显示特定内容和/或触发重定向到现有(或不同)服务器。

    您可能需要NameVirtualHost *:80在 VirtualHost 块之前声明。

    • 1
  2. Ladadadada
    2010-02-01T14:03:15+08:002010-02-01T14:03:15+08:00

    如果NameVirtualHost *:80您的配置文件中还没有或类似的东西,它必须是。当您的 VirtualHosts 使用相同的 IP 地址和端口(您的)时,这是必要的。这告诉 Apache 它应该使用 HTTP 请求中的 Host: 标头来选择哪个 VirtualHost 应该处理该请求。

    如果您使用 NameVirtualHost,您还必须在每个 VirtualHost 中有一个 ServerName 指令。这是 Apache 匹配 Host: 标头的内容。ServerName 指令不能包含 * 字符。ServerName 必须与您的域完全匹配。如果您想匹配 www.devhouse.nl 和 devhouse.nl,那么您将需要一个 ServerAlias 指令。您可以拥有任意数量的 ServerAlias 指令,但只有一个 ServerName。

    ServerName devhouse.nl
    ServerAlias www.devhouse.nl
    ServerAlias mail.devhouse.nl
    

    具有上述内容的 VirtualHost 将匹配发送到这三个域之一的 HTTP 请求。任何其他请求都将转到默认的 VirtualHost。

    配置文件中列出的第一个 VirtualHost 将成为默认的 VirtualHost。如果请求与任何其他 VirtualHost 不匹配,这将处理请求。如果您希望您列出的第二个成为默认值,则必须在文件中交换它们。

    这方面的 Apache 文档非常好:http ://httpd.apache.org/docs/2.2/vhosts/examples.html

    您可以让 Apache 列出您的 VirtualHosts 以及它们与命令一起出现的顺序apachectl -S (这是一个大写的 S)

    最后Include看起来很奇怪。清单的第一部分是包含文件的内容吗?

    万一所有这些都太多了,你需要在这里做的是:

    1. 交换两个虚拟主机。
    2. 放在NameVirtualHost *:80两人面前。
    3. 摆脱*.ServerName 指令或将其替换www. 为默认 VirtualHost 中的内容并不重要,只要它是您要匹配的域即可。
    4. 将 ServerName 指令和可选的一些 ServerAlias 指令添加到第二个 VirtualHost。
    • 1

相关问题

  • 在您分发的应用程序中使用 Apache HTTPD 运行 SSL 的最佳方式是什么?

  • 阿帕奇的替代品

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve