Ajax响应调用,404 Not Found

时间:2010-03-06 17:43:43

标签: ajax wordpress .htaccess codeigniter http-status-code-404

我尝试使用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论坛询问,但没有回答。我认为这是重写条件或规则的地狱,但我不知道......

2 个答案:

答案 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']) != '') {