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

如何修复CakePHP环境下WordPress的重定向异常问题

搞定你的CakePHP+WordPress重定向问题!

我来帮你拆解并解决这个烦人的重定向问题——咱们先理清楚核心矛盾:你现在的多层.htaccess规则撞车了!原本/var/www/.htaccess已经把所有请求都转发到CakePHP的html/webroot/目录,但/var/www/html/.htaccess又多做了一次转发到webroot/的操作,这就导致WordPress的/blog路径被错误地加上了webroot/前缀,最终出现了example.com/webroot/blog的错误重定向。另外你之前加的尾部斜杠移除规则,顺序没放对也可能添乱。

下面是一步步的修复方案:

1. 保留/var/www/.htaccess的原样(它没问题)

这个文件的作用是把根请求直接导向CakePHP的webroot,规则是对的,不用改:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ html/webroot/ [L]
RewriteRule (.*) html/webroot/$1 [L]
</IfModule>

2. 重点修改/var/www/html/.htaccess(这是问题核心)

这个文件里的转发到webroot的规则完全多余,而且是罪魁祸首。我们调整一下:

  • 保留www重定向的规则(这个是对的)
  • 移除重复的webroot转发规则
  • 把尾部斜杠移除的规则调整到合适位置,避免干扰WordPress的链接

修改后的代码:

<IfModule mod_rewrite.c>
RewriteEngine on

# 先处理www跳转,优先级最高
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R=301,L]

# 移除尾部斜杠,但排除真实目录(不然WordPress的目录链接会出问题)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# 这里删掉原来的webroot转发规则!因为上层已经处理过了
</IfModule>

3. 简化/var/www/html/webroot/.htaccess

把之前注释掉的尾部斜杠规则彻底删掉,因为我们已经在上面的文件里统一处理了,保持CakePHP的核心路由规则干净:

<IfModule mod_rewrite.c>
RewriteEngine On

# CakePHP的核心路由,处理非文件/目录的请求
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

4. WordPress的.htaccess保持默认就行

/var/www/html/webroot/blog/.htaccess的规则是WordPress自动生成的,完全没问题,不用修改:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress

最后别忘了清缓存!

因为你之前用了301永久重定向,浏览器会死死记住旧的规则,所以修改完一定要清除浏览器缓存,或者用无痕模式测试,确保新规则生效。

这样调整后,首页的双斜杠问题会被解决,WordPress的/blog也能正常访问,不会再跳去webroot/blog啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:14:18