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

如何设置子文件夹为站点根目录,使绝对路径在本地和域名访问时一致

问题根源

/开头的绝对路径是相对于当前访问域名的根路径,而非网站文件所在的磁盘目录:

  • 用www.site_1.se访问时,域名根路径对应的服务器目录是C:/xampp/htdocs/site_1.se,所以/images/file.png会匹配到该目录下的对应资源
  • 用localhost访问时,域名根路径对应的服务器目录是C:/xampp/htdocs,所以/images/file.png会尝试匹配htdocs根目录下的资源,自然找不到目标文件

最优解决方案(推荐)

直接修改本地hosts文件用域名访问,和线上环境100%一致,无需修改任何代码或Apache配置,完全避免路径不匹配问题:

  1. 打开hosts文件:Windows系统路径为C:\Windows\System32\drivers\etc\hosts,需要管理员权限编辑;mac/Linux路径为/etc/hosts,需要root权限编辑
  2. 在文件末尾添加以下映射规则:
127.0.0.1 site_1.se www.site_1.se
127.0.0.1 site_2.se www.site_2.se
  1. 保存后重启浏览器,直接输入对应域名访问即可,路径解析规则和线上完全相同。

备选方案(必须用localhost路径访问的场景)

如果一定要用localhost/site_1.se的形式访问,可以通过Apache重写规则修正路径:

  1. 先确认Apache配置文件中已开启mod_rewrite模块:找到LoadModule rewrite_module modules/mod_rewrite.so配置行,去掉行首的#注释,重启Apache生效
  2. 在每个站点的根目录(比如C:/xampp/htdocs/site_1.se)下新建.htaccess文件,写入以下内容:
RewriteEngine On
# 仅针对localhost访问的场景做重写
RewriteCond %{HTTP_HOST} ^localhost$
# 排除已经指向当前站点目录的请求,避免死循环
RewriteCond %{REQUEST_URI} !^/site_1.se/
# 把所有请求重写到当前站点子目录下
RewriteRule ^(.*)$ /site_1.se/$1 [L]
  1. 每个站点对应修改规则里的site_1.se为自身目录名即可。

注:该方案存在额外的重写开销,部分输出当前URL的业务逻辑可能出现异常,仅作为临时兼容方案使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:45:03