同一站点双PHP脚本.htaccess配置:子目录论坛脚本访问404问题
解决根目录.htaccess拦截/community子目录导致404的问题
问题原因
你的public_html/.htaccess规则应该是把所有请求都导向了厂商提供的PHP脚本,导致访问/community时,请求还没到子目录的独立.htaccess就被拦截,触发了厂商脚本的404错误。
修复方案
方案1:直接跳过/community的请求处理
在public_html/.htaccess的最顶部添加以下规则,让服务器优先处理/community路径的请求,不经过厂商脚本:
RewriteEngine On # 匹配所有以community/开头的请求,直接放行到子目录 RewriteRule ^community/ - [L]
[L]标志告诉Apache这条规则执行后就停止处理后续规则,确保/community的请求不会被转发给厂商脚本。
方案2:修改现有转发规则排除/community
如果根目录.htaccess原本是用来将非静态资源请求转发给厂商脚本(比如类似CMS的规则),可以修改规则,把/community排除在外:
RewriteEngine On # 排除/community路径的请求 RewriteCond %{REQUEST_URI} !^/community/ # 仅当请求的不是真实文件或目录时,转发给厂商脚本 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.php [L]
这样只有不属于/community且不是真实文件/目录的请求才会被导向厂商脚本,/community的请求会正常由子目录的.htaccess和论坛脚本处理。
注意事项
- 修改后记得保存
public_html/.htaccess,并清空浏览器缓存再测试 - 如果问题依旧,检查
/community/.htaccess是否有冲突规则,确保子目录的Rewrite功能正常开启
内容的提问来源于stack exchange,提问作者Brent Daug
相关产品推荐
相关产品推荐

