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

Zend(1.2)应用下WordPress子目录blog访问报404错误求助

解决Zend 1.2部署中/blog子目录404的问题

我来帮你搞定这个404问题!核心原因是你当前的.htaccess重写规则把/blog的请求也转发到了Zend的入口文件,而没有让Apache直接访问这个独立的子目录。咱们一步步来修正:

第一步:修正.htaccess的重写规则

你的现有规则里的RewriteCond %{REQUEST_FILENAME}!^blog/存在语法错误(变量和条件之间缺少空格),而且用这种方式排除目录不够直观。直接替换成下面的配置,放在根目录的.htaccess里:

Order deny,allow
RewriteEngine On

# 优先处理:所有以/blog/开头的请求,直接跳过后续重写规则
RewriteRule ^blog/ - [L]

# 原有Zend重写条件:仅当请求的文件、目录、软链接不存在时才转发
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

# 转发到Zend的入口文件(你的入口是www/index.php,确保路径正确)
RewriteRule .* www/index.php [L]

第二步:关键规则解释

  • RewriteRule ^blog/ - [L]:这条规则是核心,意思是任何以/blog/开头的请求,直接停止后续的重写处理([L]代表Last,即终止规则链),让Apache直接去读取blog目录里的文件,不会再转发到Zend的入口。
  • 后面的规则保留了你原来的逻辑:只有当请求的资源不是真实存在的文件、目录或软链接时,才转发到Zend的www/index.php处理路由。

第三步:额外检查点

  • 确保blog目录有正确的权限:Apache用户(通常是www-data或apache)需要有读取该目录及其中文件的权限。
  • 确认blog目录里有默认索引文件:比如index.php、index.html,否则Apache找不到默认页面也会返回404。
  • 检查Apache是否开启了mod_rewrite模块:如果模块没开启,.htaccess的重写规则完全不会生效,可以通过phpinfo()查看,或者在Apache配置里确认LoadModule rewrite_module modules/mod_rewrite.so这一行没有被注释。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:29:09