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

React Router如何添加与基础路径前缀相同的通配符(*)路由

React Router 多语言路由404匹配问题解决方案

React Router v5 版本

  • 确保所有路由包裹在Switch组件内,路由按路径精度从高到低排序,精确路径放在前面,模糊匹配的404路由放在最后即可,不需要给所有路由添加exact属性,只有当父级路径可能被子集路径包含时才需要添加。
    代码示例:
import { Switch, Route, Redirect } from 'react-router-dom';
// 引入页面组件
import Home from './pages/Home';
import Profile from './pages/Profile';
import Stores from './pages/Stores';
import Products from './pages/Products';
import NotFound from './pages/NotFound';

function App() {
  return (
    <Switch>
      <Route path="/:lang/profile" component={Profile} exact />
      <Route path="/:lang/stores" component={Stores} exact />
      <Route path="/:lang/products" component={Products} exact />
      <Route path="/:lang" component={Home} exact />
      {/* 匹配所有带语言前缀的无效路径 */}
      <Route path="/:lang/*" component={NotFound} />
      {/* 可选:无语言前缀的路径统一重定向到默认语言首页 */}
      <Route path="*">
        <Redirect to="/zh-CN" replace />
      </Route>
    </Switch>
  );
}
  • 常见问题排查:如果还是出现正常路由被404拦截,检查是否把短路径(比如/:lang)放在了长路径(比如/:lang/profile)前面,Switch组件会优先匹配第一个命中的路由,顺序错了就会出现拦截问题。

React Router v6 版本

v6 已经移除了exact属性,默认采用精确匹配逻辑,且Routes组件会自动按路径精度排序,不需要手动调整路由顺序,直接按以下写法配置即可:

import { Routes, Route, Navigate } from 'react-router-dom';
// 引入页面组件
import Home from './pages/Home';
import Profile from './pages/Profile';
import Stores from './pages/Stores';
import Products from './pages/Products';
import NotFound from './pages/NotFound';

function App() {
  return (
    <Routes>
      <Route path="/:lang/profile" element={<Profile />} />
      <Route path="/:lang/stores" element={<Stores />} />
      <Route path="/:lang/products" element={<Products />} />
      <Route path="/:lang" element={<Home />} />
      {/* 匹配所有带语言前缀的无效路径 */}
      <Route path="/:lang/*" element={<NotFound />} />
      {/* 无语言前缀的路径统一重定向到默认语言首页 */}
      <Route path="*" element={<Navigate to="/zh-CN" replace />} />
    </Routes>
  );
}
  • 注意点:如果是嵌套路由结构,需要在父级路由组件内添加<Outlet />组件渲染子路由内容,否则子路由不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:54:02