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

Apache .htaccess重写URL并保留原地址的实现问题

解决.htaccess转发请求到/public但URL不显示路径的问题

你的问题出在当前规则未排除对/public本身的请求,同时服务器mod_dir模块的默认行为可能触发了外部重定向,导致URL暴露/public路径。可以修改配置如下:

<IfModule mod_rewrite.c>
    RewriteEngine On
    # 排除已指向/public的请求,防止重写循环
    RewriteCond %{REQUEST_URI} !^/public/
    # 将所有请求内部重写到/public目录,URL不会改变
    RewriteRule ^(.*)$ /public/$1 [L]
</IfModule>

关键说明:

  • 新增的RewriteCond %{REQUEST_URI} !^/public/用来避免重写循环,防止服务器反复处理/public开头的请求。
  • 这个规则是内部重写(未加[R]标记),只会在服务器内部将请求映射到/public目录,浏览器地址栏的URL不会发生变化。
  • 确保该.htaccess文件放在网站根目录下,而非/public子目录内。
  • 如果/public目录下也有.htaccess文件,建议暂时禁用,避免规则冲突引发异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:40:50