【问题标题】:Apache not loading document root correctlyApache 未正确加载文档根目录
【发布时间】:2020-09-24 06:44:39
【问题描述】:

Apache 显示默认页面并且不加载站点配置。操作系统:Debian 10。

站点已启用,但不知何故它不显示来自 public_html 文件夹的文件。任何帮助表示赞赏。

<VirtualHost *:443>
SSLEngine On
ServerAdmin admin@abc.com
ServerName abc.com
ServerAlias *.abc.com
DocumentRoot /home/xx/public_html

SSLEngine on
SSLCertificateFile    /home/xx/ssl.cert
SSLCertificateKeyFile /home/xx/ssl.key

<Directory /home/xx/public_html>
Require all granted
</Directory>

ErrorLog /home/xx/logs/error.log
CustomLog /home/xx/logs/access.log common
LogLevel debug

</VirtualHost>

【问题讨论】:

    标签: apache ssl debian apache2.4


    【解决方案1】:

    没有足够的声誉可以发表评论,所以我正在尝试一个答案,如果有用的话会清理它。

    没有提及您在日志中发现的内容(如果有的话)。我假设您正在使用 HTTPS 进行访问,以确保您的请求将发送到端口 443,但如果您不是,我会先尝试通过在浏览器中输入 URL 时指定协议来尝试 - 否则您可能正在提出您的请求到服务器上的端口 80 和 不是 443 您的VirtualHost 正在侦听。

    http://example.com ====> 浏览器向端口 80 发送请求,默认端口为http https://example.com ====> 浏览器向 443 端口发送请求,https 的默认端口

    端口 80 是否还有一个 VirtualHost 条目将这些请求重定向到 443?如果您的浏览器尝试首先使用端口 80 将其加载为 http,那么也许这就是您看到 Apache 默认页面的原因,因为我相信服务器将尝试从 /var/www/html/ 为端口 80 上的请求提供服务,除非您有已经用另一个VirtualHost 等在别处指出了这些。

    我的意思是我在使用中的一个例子; ReWriteEngineRedirect permanent 可能是多余的,但我可以确认它对我来说功能正常,如下所示:

    <VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    Redirect permanent / https://www.example.com
    
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.example.com [OR]
    RewriteCond %{SERVER_NAME} =example.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
    </VirtualHost>
    

    对于我的设置,我更喜欢将 www 子域作为默认子域,并有意设置 DNS 以将其视为默认域,因此在我的实例中,裸域是 ServerAlias

    【讨论】:

    • 您好, 不应该处理它吗?除了我提到的地方,你在哪里定义 Apache 寻找 443?
    • 你说得对,这就是 Apache 会查看端口 443 的原因;但是,如果您在尝试在浏览器中加载站点时未指定 https:// 协议,我怀疑它被视为端口 80 上的常规 http 请求,而是将转到默认的 /var/www/html/ (除非端口 80 有其他指令,否则它将转到那些定义的位置)。对于我的服务器,我专门包含了一个 &lt;VirtualHost:80&gt; 条目来推送任何流浪的 http 尝试重定向到 https.
    • 我已经在 cloudflare 和 apache 级别进行 http 到 https 的重写。你是说没有80端口,在apache上重写甚至都行不通吗?如果是这样,我可能会使用防火墙重定向。
    猜你喜欢
    • 2017-03-09
    • 2015-01-28
    • 2012-10-14
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 2016-04-17
    相关资源
    最近更新 更多