除了反复试验之外,我怎样才能知道 Debian 上的哪个 VirtualHost Apache 2.4.10 首先加载?

除了反复试验之外,我怎样才能知道 Debian 上的哪个 VirtualHost Apache 2.4.10 首先加载?

之后(或者说,在网络主机之间迁移期间,因为我想保留 VPS 上的 root 权限),我被温和地告知我的主页是“我试图打开该网站,但它打开了一个索引网站,而不是一个普通网站”。我去看看访问者的意思,它是一个自动生成的索引页,位于 /var/www 中,带有一个“html”文件夹,提供 Debian 精心设计的“成功了!”页面。

我检查了 000-default.conf,确保它指定了“/home/cjsh/mirror”的 DocumentRoot。重新启动。没有成功。我编辑了其他几个文件。没有成功。我全局将“/var/www”替换为“/home/cjsh/mirror”。现在它显示了正确的页面。但是,另一部分是我想将 HTTP 重定向到 HTTPS。目前我的网站同时提供这两种服务;我想http://cjshayward.com重定向至https://cjshayward.com,000-default.conf 应该可以做到,但是它似乎又没有被首先咨询。

我有几十个 conf 文件;除了 ssl-default.conf 之外,所有文件都按升序以 \d\d​​\d 开头。

我怎样才能找出首先加载的文件,或者告诉 Apache 我希望按字典顺序加载文件?

答案1

据我所知httpd.conf按从上到下的顺序进行解析,每行一个指令。

匹配的文件Include指令按字典顺序依次解析,然后继续解析该Include指令之后的下一个指令。允许
嵌套指令,即加载的文件生成指令也可以使用指令 :)IncludeIncludeInclude

此外,关于指令和章节如何合并也很有用。

显示虚拟主机处理方式的快速列表apachectl -S

Debian 喜欢将每个虚拟主机放在子目录中自己的文件中sites-available,然后使用a2enablee2ensite设置指向包含sites-enabled目录中文件的符号链接Include。请参阅Debian“sites-available”和“sites-enabled”目录的用途

包含的内容非常确定,但您不必依赖它们,只需手动管理 httpd.conf 就可以了。

相关内容