Ajax响应调用,404 Not Found

Gab*_*opa 1 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
Run Code Online (Sandbox Code Playgroud)

我怎么能使wordpress .htaccess也覆盖codeigniter ant而不是jquery ajax调用中的404错误.我目前的wordpress .htaccess文件是:

<IfModule mod_rewrite.c>
Run Code Online (Sandbox Code Playgroud)

RewriteEngine On RewriteBase/RewriteCond%{REQUEST_FILENAME}!-f #RewriteCond%{REQUEST_FILENAME}!-d RewriteCond $ 1!^/codeigniter-core/RewriteRule ^(.*)$ /index.php/$1 [L]

我也试过问这个Wordpress论坛和Codeigniter论坛,但没有答案.我认为这是重写条件或规则的地狱,但我不知道......

Nic*_*son 15

创建一个我将通过jQuery ajax方法调用的控制器文件时遇到了这个问题.该控制器文件包含wp-blog-header.php.

当您在WP框架之外的文件中包含wp-blog-header.php时,WordPress会检查当前文件,如果它不在其数据库中则返回404.解决方法是添加200状态标头在wp-blog-header.php之后.

header("HTTP/1.1 200 OK");
Run Code Online (Sandbox Code Playgroud)

现在(jQuery)文件的ajax在没有404的情况下正确返回.


小智 5

这很有效......不能告诉你我多久都在寻找这个答案.我怀疑这与标题错误有关,因为firebug显示响应但标题有404.谢谢这节省了我很多时间.

BTW我用它来修复Giulio Ganci快速搜索插件

只需打开插件文件夹中的"search.php"文件并添加即可

header("HTTP/1.1 200 OK");
Run Code Online (Sandbox Code Playgroud)

在第一行代码之后.完成后,此文件中的前几行代码应如下所示

<?php
    require('../../../wp-blog-header.php'); 
    header("HTTP/1.1 200 OK");


    if (isset($_GET['s']) && trim($_GET['s']) != '') {
Run Code Online (Sandbox Code Playgroud)