1

Я попытался использовать wordpress и codeigniter для интеллектуального соединения между лучшей CMS и лучшей PHP Framework. На самом деле я намеревался использовать codeigniter для управления базами данных и wordpress для отображения. Но я хотел использовать codeigniter внутри wordpress. Таким образом, у меня есть дерево файлов подобные:Ajax response call, 404 Not Found

www 
- codigniter-core folder 
    - .htaccess 
- wordpress-core folder 
- .htaccess 
- index.php 

Как я могу сделать WordPress .htaccess, чтобы покрыть также CodeIgniter муравья не trowing 404 ошибки в JQuery Ajax вызова. Мой текущий WordPress файл .htaccess это:!

<IfModule mod_rewrite.c> 

RewriteEngine На RewriteBase/ RewriteCond% {REQUEST_FILENAME} -f #RewriteCond% {REQUEST_FILENAME} -d RewriteCond $ 1 ^/CodeIgniter-ядро/ ! RewriteRule^(. *) $ /index.php/$1 [L]

Я также попытался задать вопрос Wordpress Forums и Codeigniter Forums, но ответа нет. Я думаю, что это адский вопрос или правило, но я не знаю ...

+3

Высказывание «лучших CMS» и «лучший PHP Framework» не является необходимым и не дает ничего, чтобы помочь объяснить вашу проблему. Держите вопрос в чистоте и делитесь своими личными чувствами в другом месте, это технический вопрос. – MyGGaN

ответ

14

У меня возникла эта проблема при создании файла контроллера, который я бы назвал с помощью метода jQuery ajax. Этот файл контроллера включал wp-blog-header.php.

Когда вы включаете wp-blog-header.php в файл вне рамки WP, WordPress выполняет проверку текущего файла, а если он не находится в своей базе данных, он возвращает 404. Работа вокруг заключается в добавлении заголовок состояния 200 после wp-blog-header.php.

header("HTTP/1.1 200 OK"); 

Теперь (JQuery) Ajax в файл возвращается должным образом без 404.

+0

Спасибо! Получалось 404 запроса WP Ajax, и это вылечило его. – supertrue

+0

Ты звезда! –

5

Это работало большое ... не может сказать, как долго я искал этот ответ. Я подозревал, что это связано с ошибкой заголовка, потому что firebug показывал ответ, но заголовок имел 404. Спасибо, что это меня очень много.

КСТАТИ Я использовал это, чтобы исправить 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']) != '') {