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

cPanel部署Django+React-Admin后无法访问子目录WordPress

解决React-admin与子目录WordPress的路由冲突

问题场景

在cPanel共享主机部署了Django后端+React-admin前端的应用,同时在子目录karmodir.ir/wp/安装了WordPress。访问该WordPress子目录时,请求被React-admin拦截重定向,导致WordPress页面空白。

当前配置

React-admin路由代码

export const App = () => (
  <CacheProvider value={cacheRtl}>
    <BrowserRouter>
      <Routes>
        {/* redirection for /wp/ */}
        <Route path="/wp/*" element={<Navigate to="/wp/" replace />} />
        {/* Main routing for SiteAdmin */}
        <Route path="/*" element={<SiteAdmin />} />
      </Routes>
    </BrowserRouter>
  </CacheProvider>
);

根目录.htaccess文件

# Redirect /wp/ to the correct WordPress path
RewriteEngine On

# Ensure the rule only applies to /wp/ requests
RewriteCond %{REQUEST_URI} ^/wp/
RewriteRule ^wp/(.*)$ http://karmodir.ir/wp/$1 [L,R=301]

# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/karmodir/jkar/jkar"
PassengerBaseURI "/"
PassengerPython "/home/karmodir/virtualenv/jkar/jkar/3.10/bin/python"
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END

# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION BEGIN
<IfModule Litespeed>
</IfModule>
# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION END

解决方案

1. 调整React-admin路由

移除针对/wp/*的重定向路由规则,让服务器优先处理/wp路径的请求,而非在前端拦截。修改后的路由代码如下:

export const App = () => (
  <CacheProvider value={cacheRtl}>
    <BrowserRouter>
      <Routes>
        {/* Main routing for SiteAdmin */}
        <Route path="/*" element={<SiteAdmin />} />
      </Routes>
    </BrowserRouter>
  </CacheProvider>
);

2. 修正根目录.htaccess配置

调整规则顺序,在Passenger配置前添加规则,让/wp开头的请求直接指向WordPress目录,绕过Passenger(即不交给React-admin/Django应用处理),同时移除多余的301重定向规则:

RewriteEngine On

# 让/wp路径的请求直接访问WordPress目录,跳过Passenger处理
RewriteRule ^wp/(.*)$ /wp/$1 [L]

# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/karmodir/jkar/jkar"
PassengerBaseURI "/"
PassengerPython "/home/karmodir/virtualenv/jkar/jkar/3.10/bin/python"
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END

# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION BEGIN
<IfModule Litespeed>
</IfModule>
# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION END

3. 检查WordPress配置

  • 登录WordPress后台,进入设置->常规,确认WordPress地址(URL)和站点地址(URL)均为http://karmodir.ir/wp/(若启用HTTPS,需改为https://karmodir.ir/wp/)。
  • 确保/wp目录权限为755,目录内文件权限为644,避免权限问题导致无法访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 12:45:25