【问题标题】:CodeIgniter & WordPress Integration RoutingCodeIgniter 和 WordPress 集成路由
【发布时间】:2012-09-21 02:13:30
【问题描述】:

我有 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 路由。如果你知道怎么做,我相信这很简单 - 任何智能互联网的帮助都非常感激。

【问题讨论】:

标签: wordpress codeigniter routing


【解决方案1】:

我认为有几个选择:

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

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

一些东西

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

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

【讨论】:

    【解决方案2】:
    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-02-28
      • 2012-02-03
      • 2016-04-05
      • 2013-07-23
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      相关资源
      最近更新 更多