【发布时间】:2020-02-28 05:02:03
【问题描述】:
我使用 Wordpress 设计了一个网站,并一直在尝试将 Codeigniter 表单应用程序与其集成,并带有所有相应的 URL。
我将 CI 应用程序放在 Wordpress 站点的根文件夹中。该文件夹被命名为“智利”(它是由拉丁美洲国家分隔的一系列表格)。我将 .htaccess 文件更改为在必要时包含 /chile。我还补充说:
require '../wp-load.php';
到 CI index.php 文件。
我现在可以在 CI 应用程序中加载一些重要的 url,但它们似乎没有正确路由。
基本网址设置为:
$config['base_url'] = "http://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= preg_replace('@/+$@', '', dirname($_SERVER['SCRIPT_NAME'])).'/';
该网站是 www.dermusikplatz.com。该表格位于 www.dermusikplatz.com/chile/applications 下,我可以手动输入该表格。但是当我尝试提交表单时,网址奇怪地显示为 www.dermusikplatz.comapplications/save。一般来说,控制器和视图构建的 url 似乎没有正确设置。
我查看了有关路由的文档并尝试创建 $route 规则。但我不确定从什么路由到什么路由。我还看到了各种建议使用 MY_URL_helper 将 'site_url' 的值更改为 'ci_site_url' 的线程,以避免 Wordpress 和 CI 为此值之间的任何冗余,但我不知道从哪里开始即使在查看了帮助文档之后也是如此。
我也尝试过进入并更改以下语句中的每个路径值:
$this->load->view('applications/form');
到:
$this->load->view('/chile/applications/form');
但我知道这没什么意义,因为该目录不存在。我认为更改 .htaccess 文件和 base_url 会覆盖它,但似乎还有更多。
我有点迷路了,对 Codeigniter 不是很熟悉。
如果有人至少可以帮助我朝着正确的方向前进,我将不胜感激。谢谢。
【问题讨论】:
-
我从来没有真正做过这个,但看过一次,我记得我特别想我更喜欢设置 CI 来嵌套 Wordpress,而不是反过来。也许我错了,我不记得细节 - 但在你深入研究之前可能值得一看。我已经多次单独设置了。
-
@Vickel 是的,我做到了。谢谢。我已经按照主要答案中的步骤进行了操作。
-
如果您能够在应用程序中加载视图,那么您的设置可能是正确的。这可能只是解决方法而不是解决方案,您可以将
$config['base_url'] = "http://".$_SERVER['HTTP_HOST'];替换为$config['base_url'] = "http://".$_SERVER['HTTP_HOST']."/";并尝试吗? -
感谢您的反馈。当我尝试添加 . “/“ 要么 。 “/Chile/”(如下面的答案所述),它似乎打破了观点。它们看起来没有样式。并且它不能解决控制器路由的问题。在 CI 的 .htaccess 文件中,我已经添加了这些规则:
RewriteRule ^index\.php$ - [L] RewriteEngine On RewriteBase /chile/ RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/chile/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
标签: php wordpress forms codeigniter integration