我尝试使用wordpress和codeigniter在最佳CMS和最佳PHP框架之间进行智能连接。实际上我打算使用codeigniter进行数据库管理和wordpress进行显示。但我想在wordpress中使用codeigniter。所以,我有一个像这样的文件树:
www
- codigniter-core folder
- .htaccess
- wordpress-core folder
- .htaccess
- index.php
如何使wordpress .htaccess还能覆盖codeigniter ant而不是在jquery ajax调用中抛出404错误。我目前的wordpress .htaccess文件是:
<IfModule mod_rewrite.c>
RewriteEngine On RewriteBase / RewriteCond%{REQUEST_FILENAME}! - f #RewriteCond%{REQUEST_FILENAME}!-d RewriteCond $ 1!^ / codeigniter-core / RewriteRule ^(。*)$ /index.php/$1 [L]
我也尝试向Wordpress Forums和Codeigniter论坛询问,但没有回答。我认为这是重写条件或规则的地狱,但我不知道......
答案 0 :(得分:15)
创建一个我将通过jQuery ajax方法调用的控制器文件时遇到了这个问题。该控制器文件包含wp-blog-header.php。
当你在WP框架之外的文件中包含wp-blog-header.php时,WordPress检查当前文件,如果它不在其数据库中,则返回404.解决方法是添加一个wp-blog-header.php之后的200状态标题。
header("HTTP/1.1 200 OK");
现在(jQuery)文件的ajax在没有404的情况下正确返回。
答案 1 :(得分:5)
这很有效......不能告诉你我多久都在寻找这个答案。我怀疑这与标题错误有关,因为firebug显示了响应,但标题有404.感谢这为我节省了很多时间。
BTW我用它来修复Quick Search plugin by Giulio Ganci
只需打开插件文件夹中的“search.php”文件,然后添加
即可header("HTTP/1.1 200 OK");
在第一行代码之后。完成后,此文件中的前几行代码应如下所示
<?php
require('../../../wp-blog-header.php');
header("HTTP/1.1 200 OK");
if (isset($_GET['s']) && trim($_GET['s']) != '') {