我有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路由。 我相信这很简单,如果你知道怎么做的话--任何聪明的网友的帮助都会感激不尽。
我认为有几个选择。
1) 你需要重新命名你的控制器或控制器方法,以免与WP页面冲突。
或
2) 您配置您的.htaccess,以忽略所有文件名或文件夹请求,并将其重写为CI兼容的查询。
类似于
RewriteRule ^members/(.*?)$ /members/getMemberJSON/$1 [R]
注:这是完全未经测试的,但只是个例子。 这完全是未经测试的,但只是一个例子。
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>