CodeIgniter&;WordPress集成路由
我有两个独立的网站,一个是CI会员管理系统,另一个是WP公共和会员区网站。它们托管在不同的域和服务器上 我们的要求是通过编程从CI在WP站点上添加/编辑用户,同时保护CI不受WP的影响。为了实现这一点,我们在与CI相同的安装上创建了WP站点的副本,但将其指向了live WP数据库,并阻止了对此副本的所有公共访问。通过这种方式,我们可以在本地使用WP功能,允许CI对WP进行读/写访问,并保持CI系统的安全,从而将通过WP进行攻击的风险降至最低 我在CI index.php中添加了:CodeIgniter&;WordPress集成路由,wordpress,codeigniter,routing,Wordpress,Codeigniter,Routing,我有两个独立的网站,一个是CI会员管理系统,另一个是WP公共和会员区网站。它们托管在不同的域和服务器上 我们的要求是通过编程从CI在WP站点上添加/编辑用户,同时保护CI不受WP的影响。为了实现这一点,我们在与CI相同的安装上创建了WP站点的副本,但将其指向了live WP数据库,并阻止了对此副本的所有公共访问。通过这种方式,我们可以在本地使用WP功能,允许CI对WP进行读/写访问,并保持CI系统的安全,从而将通过WP进行攻击的风险降至最低 我在CI index.php中添加了:require_
require_once./wordpress/wp-load.php代码>
这非常有效(在修复了站点url功能之后),我们现在正在添加和编辑用户耶!但是
对某些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>
1) 您需要重命名控制器或控制器方法,以免与WP页面冲突
或
2) 您可以将.htaccess配置为忽略所有文件名或文件夹请求,并将其重写为与CI兼容的查询
按……的顺序
RewriteRule ^members/(.*?)$ /members/getMemberJSON/$1 [R]
注意:这完全没有经过测试,只是一个例子。我修改了Codeigniter index.php。
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>
======================================
需要一次“wp load.php”;
在这条线以上
需要_once BASEPATH.'core/CodeIgniter.php';
在根wordpress文件夹中使用单个.htaccess文件
重新启动发动机
重写Base/wordpressFolderName/CIFolderName/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/wordpressFolderName/CIFolderName/index.php[L]
我修改了Codeigniter index.php。
======================================
需要一次“wp load.php”;
在这条线以上
需要_once BASEPATH.'core/CodeIgniter.php';
在根wordpress文件夹中使用单个.htaccess文件
重新启动发动机
重写Base/wordpressFolderName/CIFolderName/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/wordpressFolderName/CIFolderName/index.php[L]
本页上的解决方案可能会有帮助:本页上的解决方案可能会有帮助: