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

Apache服务器配置.htaccess实现多语言404页面正确跳转

解决Apache .htaccess多语言404页面配置问题

你的问题出在Rewrite规则的顺序上:Apache会从上到下依次匹配规则,你原来的第一个规则^(.*)$会匹配所有不存在的请求(包括/ru/xxx这类路径),导致第二个针对ru/的规则根本没有执行的机会。

修正后的配置

把更具体的规则(ru/开头的请求)放在通用规则前面,同时加上R=404确保返回正确的404状态码(否则浏览器会识别为重定向而非错误页面):

RewriteEngine On
RewriteBase /

# 处理俄语路径下的不存在页面
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ru/(.*)$ /ru/404.html [L,R=404]

# 处理默认语言(其他路径)的不存在页面
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /404.html [L,R=404]

配置说明

  • RewriteCond %{REQUEST_FILENAME} !-f:确保请求的不是真实存在的文件
  • RewriteCond %{REQUEST_FILENAME} !-d:确保请求的不是真实存在的目录
  • [L]:表示这是最后一条匹配的规则,停止后续规则处理
  • [R=404]:强制返回404 HTTP状态码,让浏览器正确识别为错误页面(而不是302重定向)

这样配置后:

  • 访问example.com/non-existent_page会显示根目录的404.html,返回404状态
  • 访问example.com/ru/non-existent_page会显示ru/404.html,返回404状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:42:56