You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache2将子目录设为站点根目录后,其他子目录站点无法访问的问题求助

Apache2将子目录设为站点根目录后,其他子目录站点无法访问的问题求助

嗨,我来帮你梳理下这个问题的原因和解决办法~

问题根源

你把example.com的DocumentRoot设置成了/var/www/html/example/public,这意味着现在Apache处理所有example.com的请求时,都会优先在这个public目录下去找对应的文件。当你访问http://example.com/example2时,Apache会尝试在/var/www/html/example/public/example2里找内容,但这个目录根本不存在,所以就返回了新站点的404错误,而不是去上级的/var/www/html/example2目录查找。

解决方案:使用Alias指令映射真实目录

最直接的解决方法是用Apache的Alias指令,把/example2这个请求路径映射到实际的文件目录/var/www/html/example2。你只需要在当前的VirtualHost配置里添加以下内容:

# 新增Alias配置,映射/example2到真实目录
Alias /example2 /var/www/html/example2

# 给example2目录配置权限
<Directory /var/www/html/example2>
    AllowOverride All
    # 如果你用的是Apache 2.2,保留下面两行
    Order Allow,Deny
    Allow from All
    # 如果你用的是Apache 2.4,注释上面两行,启用下面这行
    # Require all granted
</Directory>

额外步骤

  1. 确保Apache的alias模块已经启用,执行命令:
    sudo a2enmod alias
    
  2. 重启Apache服务使配置生效:
    sudo systemctl restart apache2
    

这样配置后,当你访问http://example.com/example2时,Apache就会正确地去/var/www/html/example2目录下读取内容,同时不影响example.com主站点的正常运行。

备注:内容来源于stack exchange,提问作者tulekparson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:49:32