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

如何通过项目目录的.htaccess重定向绝对链接至本地项目路径

本地多项目Web服务器绝对链接适配方案

本地开发环境的Web服务器下有多个项目目录,比如:

https://localhost/project1
https://localhost/project2

项目中使用的绝对链接(如/images/example.jpg)上线后能正常指向域名根目录,但在本地环境下会直接指向localhost/images/example.jpg,无法访问对应项目内的资源。之前在根目录.htaccess配置的规则只能单个项目生效,切换项目时还得修改根配置,非常麻烦。

下面是**每个项目目录单独配置.htaccess**的解决方案,实现逻辑:先检查服务器根目录是否存在请求的文件/目录,不存在则自动到当前项目目录中查找:

项目目录下的.htaccess配置代码

# 开启URL重写引擎
RewriteEngine On

# 设置当前项目的基础路径,替换成你的项目目录名,比如/project1/或/project2/
RewriteBase /project1/

# 检查根目录下是否存在请求的文件或目录,存在则直接访问
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]

# 根目录不存在对应资源,重写到当前项目目录下的对应路径
RewriteRule ^(.*)$ $1 [L,QSA]

规则说明

  1. RewriteEngine On:开启Apache的URL重写功能,必须放在所有规则最前面。
  2. RewriteBase /project1/:指定当前项目的根路径,每个项目只需把/project1/替换成自己的目录名(比如/project2/)即可。
  3. 前两条RewriteCond:检查服务器根目录(%{DOCUMENT_ROOT})下的请求路径(%{REQUEST_URI})是否为存在的文件(-f)或目录(-d),满足任一条件就直接放行(RewriteRule ^ - [L]),[L]表示这是最后执行的规则,不再往下处理。
  4. 最后一条RewriteRule:如果根目录没有找到对应资源,就把请求重定向到当前项目目录下的对应路径,[QSA]表示保留原请求的查询参数(比如/images/example.jpg?foo=bar这类带参数的请求会完整保留参数)。

注意事项

  • 确保Apache服务器已经启用了mod_rewrite模块。
  • 每个项目目录下都要放置这份.htaccess,并修改RewriteBase为自己的项目路径,无需修改服务器根目录的配置,切换项目时直接访问对应路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:06:25