2

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

我们的要求是通过 CI 以编程方式在 WP 站点上添加/编辑用户,同时保护 CI 免受 WP 的影响。为了实现这一点,我们在与 CI 相同的安装上创建了 WP 站点的副本,但将其指向实时 WP 数据库并阻止所有公共访问此副本。这样我们就可以在本地使用 WP 功能,允许 CI 对 WP 进行读/写访问,并保持 CI 系统的安全,最大限度地降低通过 WP 攻击的风险。

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

所以问题是如何防止 WP 覆盖 CI 路由。如果你知道怎么做,我相信这很简单 - 任何智能互联网的帮助都非常感激。

4

2 回答 2

0

我认为有几个选择:

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

或者

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

东西的顺序

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

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

于 2012-10-02T22:56:18.440 回答
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>
于 2020-05-29T07:19:46.567 回答