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

如何配置网站使根域名直接访问子文件夹内index.html且URL不变

问题场景

托管静态站点时需要将/src/index.html设为根路径默认入口:访问https://example.com时直接返回该文件内容,浏览器地址栏保持根域名,无需追加/src/index.html后缀路径。
当前站点文件结构:
站点文件结构
此前尝试的两种配置均存在缺陷:

  • 写入重写规则RewriteRule ^ src/index.html:正则匹配范围过大,会将style.css等所有静态资源请求全部重写到src/index.html,导致页面样式、脚本等资源加载失败
  • 写入301跳转规则Redirect 301 /index.html /src/index.html:属于外部永久跳转,会触发浏览器地址栏变更为example.com/src/index.html,不符合URL保持根域名的要求
正确.htaccess配置

将以下内容写入站点根目录的.htaccess文件即可实现需求:

<IfModule mod_rewrite.c>
RewriteEngine On
# 仅匹配根路径空请求,内部转发到入口文件,不改变地址栏
RewriteRule ^$ /src/index.html [L]
</IfModule>
配置逻辑说明
  • 正则表达式^$仅会匹配请求路径完全为空的场景,也就是直接访问根域名的请求,不会命中静态资源、子页面等其他路径的请求,不会干扰正常资源加载
  • 规则末尾的[L](Last)标记表示命中当前规则后立即终止重写流程,避免和其他重写规则产生冲突
  • 该规则属于服务器端内部转发,不会向浏览器返回3xx跳转响应,因此浏览器地址栏会始终显示根域名,不会暴露/src/路径
排查注意点
  • 提前确认托管主机已开启Apache的mod_rewrite模块,绝大多数共享托管主机默认开启该模块,无需额外配置
  • 如果此前测试过301跳转规则,请先清除浏览器缓存,301为永久跳转,浏览器会在本地缓存跳转规则较长时间,不清除缓存会持续跳转到带/src/index.html的地址
  • HTML中引用静态资源时建议使用根路径开头的绝对路径(例如/src/style.css),避免相对路径解析错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:30:54