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

如何让WordPress与自定义MVC应用同站共存并隐藏自定义应用的public访问路径

如何让WordPress与自定义MVC应用同站共存并隐藏自定义应用的public访问路径

看起来你正处于从WordPress逐步迁移到自定义MVC应用的过渡阶段,目前两者单独运行都正常,但卡在了URL路径的优化上——不想让用户看到自定义应用的public前缀对吧?我结合你的场景整理了两个可行的解决方案:

方案1:针对路由创建目录转发(适合过渡阶段)

这是你已经尝试验证有效的临时方案,非常适合你这种后续会完全替换WordPress的场景,操作简单直接:

  1. 在public_html根目录下,创建和自定义应用路由对应的文件夹,比如要实现/products路径,就新建public_html/products目录
  2. 在这个新建的目录里创建.htaccess文件,写入以下规则:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteBase /
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ public/index.php [QSA,L]
</IfModule>

这样当你访问https://www.example.com/products/index时,请求会被悄悄转发到自定义应用的public/index.php处理,URL里完全看不到public,也不会触发WordPress的404页面。

方案2:修改根目录.htaccess规则(更优雅的长期方案)

如果后续自定义应用的路由越来越多,逐个创建目录太繁琐,可以直接修改WordPress所在的public_html/.htaccess,让指定前缀的请求优先交给自定义应用处理:

  1. 打开public_html/.htaccess,在# BEGIN WordPress这一行之前添加以下规则:
# 优先处理自定义MVC应用的路由请求
<IfModule mod_rewrite.c>
RewriteEngine On
# 这里把你自定义应用的所有路由前缀列出来,用|分隔,比如products|users|dashboard
RewriteCond %{REQUEST_URI} ^/(products|users)/ [NC]
RewriteRule ^(.*)$ public/index.php?/$1 [NC,QSA,L]
</IfModule>
  1. 保持自定义应用public/.htaccess的规则不变:
Options -Indexes
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,L,R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [NC,QSA,L]

这样配置后,所有匹配前缀的请求会先被转发到自定义应用,其他请求依然走WordPress的路由,完美实现同站共存且隐藏public前缀。

小提示

  • 后续完全迁移到自定义应用时,只需要把根目录的.htaccess替换成自定义应用的规则,删掉WordPress相关内容即可
  • 确保你的服务器开启了mod_rewrite模块,不然所有重写规则都不会生效
  • 修改完.htaccess后,建议用隐身窗口测试,避免浏览器缓存影响结果

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 12:08:02