Codeigniter中的分段奇怪地起作用

时间:2018-11-07 08:05:52

标签: php .htaccess codeigniter

我目前正在使用具有特定体系结构的系统(不是我的)。在主应用程序文件夹中,有一个共同的资产和另外两个具有相同资产的文件夹(用户和管理员),这为我们提供了这种架构:

  • 应用
    • 管理员
      • config
      • 控制器
      • 等...
    • 用户
      • config
      • 控制器
      • 等...
    • 控制器
    • 等...

在根文件夹中,有2个文件:user.phpadmin.php,除了行外,每个文件都具有与经典index.php相同的代码

$application_folder = 'application/admin';

到目前为止,代码正在运行...但是我发现了一个奇怪的反应。 在控制器下的文件夹admin中,我正在调用一个方法,该方法可以工作,除了一件事之外...视图未正确加载。

在所有其他方法中,我都有这种代码,只有一个参数:

public function results($param){
  $data = [];

  //some other code

  $this->load->view("election/header");
  $this->load->view("election/menu");
  $this->load->view("election/results", $data);
  $this->load->view("election/footer");
}

这是完美的工作方式,但是当我有了第二个参数时,奇迹般地,该方法不再显示页眉/菜单/页脚。仅自定义视图result ... 我还发现,例如,如果我向预览方法results中随机添加另一个参数,则会发生相同类型的错误。页眉/页脚/菜单通常不再显示。 我想路由/ htaccess或网段有问题...但是我不能把手放在上面...

这是根.htaccess文件

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^kanri(/(.*))?$ admin.php?/$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^user(/(.*))?$ user.php?/$2 [L]
</IfModule>

还有admin/routing.php

$route['default_controller'] = 'login';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

感谢D. Dimitrov,解决方案很简单。我只需要使用site_url()函数来替换相对路径。我还不完全知道为什么,但是既然可以了,那就全是傻瓜了:>