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

.htaccess路径重写异常:访问根目录错误跳转至app文件夹

解决.htaccess路径重写规则问题

你的规则出现循环重写,导致访问根路径时被错误导向app目录——原因是内部重写后的请求会再次触发规则处理,最终被第二个规则捕获。以下是修正后的规则:

RewriteEngine On

# 匹配根路径、/_next/或/images/开头的请求,内部重写到landing文件夹
RewriteCond %{REQUEST_URI} ^/$ [OR]
RewriteCond %{REQUEST_URI} ^/(_next|images)/
RewriteRule ^(.*)$ /landing/$1 [END]

# 其余所有请求内部重写到app文件夹
RewriteRule ^(.*)$ /app/$1 [END]

规则说明:

  • 拆分原条件为两个更精确的判断:直接匹配根路径^/$,或者匹配以/_next/、/images/开头的路径,避免原正则的模糊匹配。
  • 使用[END]标志替代[L],确保重写后停止所有后续的重写处理,防止内部重写后的请求再次进入规则循环。
  • 若你的Apache版本低于2.4(不支持END),可改用[L]并添加排除条件避免循环:
RewriteEngine On

# 排除已重写到landing或app的路径,防止循环
RewriteCond %{REQUEST_URI} !^/(landing|app)/
# 匹配根路径、/_next/或/images/开头的请求
RewriteCond %{REQUEST_URI} ^/$ [OR]
RewriteCond %{REQUEST_URI} ^/(_next|images)/
RewriteRule ^(.*)$ /landing/$1 [L]

# 排除已重写到app的路径,防止循环
RewriteCond %{REQUEST_URI} !^/app/
# 其余请求重写到app文件夹
RewriteRule ^(.*)$ /app/$1 [L]

调整后可实现:

  • 访问/、/_next/xxx、/images/xxx时正确加载landing文件夹内容
  • 其他所有路径都内部重写到app文件夹,不会出现循环重写导致的错误跳转

内容的提问来源于stack exchange,提问作者L. Grolleau

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:12:45