You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

配置Apache虚拟主机后访问/downloads出现404错误求助

嘿,我一眼就瞅出问题根源了——你的VirtualHost配置格式完全不对!<VirtualHost flimpsons/downloads:80> 这种写法根本不符合Apache的规则,VirtualHost指令后面该绑定的是IP地址+端口或者通配符(比如*:80),绝对不是站点路径。这直接导致Apache没法识别这个虚拟主机配置,自然找不到/downloads路径。

给你一步步整理好的修正方案:

1. 修正虚拟主机基础配置

先把VirtualHost的开头改对,假设你的站点用域名flimpsons.com访问(如果是IP访问就用*:80),核心配置应该是这样:

<VirtualHost *:80>
    ServerName flimpsons.com  # 换成你的实际域名或服务器IP
    DocumentRoot /var/www/flimpsons

    # 专门配置/downloads的目录列表
    <Directory "/var/www/flimpsons/downloads">
        Options +Indexes +FollowSymLinks  # 开启目录列表+允许跟随软链接
        AllowOverride None
        Require all granted  # 允许所有访问,可根据需求调整权限
    </Directory>

    # 可选:添加日志配置便于排查问题
    ErrorLog ${APACHE_LOG_DIR}/flimpsons-error.log
    CustomLog ${APACHE_LOG_DIR}/flimpsons-access.log combined
</VirtualHost>

2. 关键配置&权限检查

  • Options +Indexes是开启目录列表的核心,必须加上——没有它的话,Apache要么返回403,要么因为找不到index文件返回404。
  • 确保/var/www/flimpsons/downloads目录存在,且Apache进程(通常是www-data用户)有读取权限:
    执行以下命令调整权限:
    sudo chown -R www-data:www-data /var/www/flimpsons/downloads
    sudo chmod -R 755 /var/www/flimpsons/downloads
    

3. 验证配置并重启服务

修改完配置后,先检查语法是否正确:

sudo apache2ctl configtest

如果输出Syntax OK,就重启Apache生效:

sudo systemctl restart apache2

4. 额外排查小技巧

  • 如果你还有其他虚拟主机配置,检查有没有冲突(比如有没有重写规则拦截了/downloads路径)
  • 测试时记得按Ctrl+F5强制刷新浏览器,避免缓存影响结果

这么调整后,再访问http://你的域名/downloads应该就能正常看到目录列表啦!

内容的提问来源于stack exchange,提问作者andrew16

火山引擎 最新活动