CodeIgniter &WordPress整合路由。

问题描述 投票:2回答:2

我有2个独立的网站,一个是CI会员管理系统,另一个是WP公共和会员区网站。它们分别托管在不同的域和服务器上。

我们的要求是,在保持CI不受WP保护的情况下,从CI上程序化地添加WP网站上的用户。为了达到这个目的,我们已经在与CI相同的安装上创建了一个WP网站的副本,但将其指向真实的WP数据库,并阻止了所有公众对该副本的访问。这样我们就可以在本地使用WP的功能,允许CI对WP进行读写访问,并保持CI系统的安全,将通过WP进行攻击的风险降到最低。

我在CI中添加了index.php。require_once ./wordpress/wp-load.php; 这个功能很好用 (在修复了 网站_url 函数),我们现在可以添加和编辑用户了YAY!但是...... 对一些CI函数的AJAX请求:- /members/getMemberJSON 正在返回 404的(在不加载WP时工作正常。我认为由于在WP网站上的事实 /members/%username% 页面已经存在。

所以问题是如何防止WP覆盖CI路由。 我相信这很简单,如果你知道怎么做的话--任何聪明的网友的帮助都会感激不尽。

wordpress codeigniter routing
2个回答
0
投票

我认为有几个选择。

1) 你需要重新命名你的控制器或控制器方法,以免与WP页面冲突。

2) 您配置您的.htaccess,以忽略所有文件名或文件夹请求,并将其重写为CI兼容的查询。

类似于

RewriteRule ^members/(.*?)$ /members/getMemberJSON/$1 [R]

注:这是完全未经测试的,但只是个例子。 这完全是未经测试的,但只是一个例子。


0
投票
I modified the Codeigniter index.php one.

======================================
require_once 'wp-load.php';

above this line 
require_once BASEPATH.'core/CodeIgniter.php';

Use Single .htaccess file in root wordpress folder

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpressFolderName/CIFolderName/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpressFolderName/CIFolderName/index.php [L]
</IfModule>
© www.soinside.com 2019 - 2024. All rights reserved.