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

使用.htaccess重写子目录文件名时出现404错误求助

问题排查与修正方案

你的配置存在两个核心问题:

1. .htaccess文件位置错误

你将en.htaccess放在/en子目录下,但该目录下的.htaccess仅会处理以/en/开头的请求(比如www.mydomain.com/en/about-us),而你期望处理的是根路径的/about-us请求,这条规则根本不会被触发,因此返回404。

2. Rewrite规则目标路径冗余

即便你要处理/en/about-us这类子目录请求,在/en子目录的.htaccess中已经设置了RewriteBase /en/,规则目标应该写about.html而非/en/about.html,后者会导致路径重复(实际解析为/en/en/about.html),同样会触发404。


正确配置方案

场景1:访问www.mydomain.com/about-us打开/en/about.html

直接在根目录的.htaccess中新增以下规则:

# 根目录.htaccess新增规则
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^about-us$ /en/about.html [L]

场景2:访问www.mydomain.com/en/about-us打开/en/about.html

将en.htaccess改名为.htaccess放在/en子目录下,内容调整为:

Options +FollowSymlinks 
RewriteEngine On
RewriteBase /en/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^about-us$ about.html [L]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:31:07