2017-02-01 6 views
1

私はCodeigniterで初めてです。この問題が発生したのは初めてです。私は、多くのモデル、コントローラ、およびマルチレベルビューを持つプロジェクトを持っています。すべての、しかし私のコントローラの1つが動作していません。私は私の問題を説明するために最善を尽くします。特定のコントローラがCodeIgniter 3.0で動作しないのはなぜですか?

のは、私は、各コントローラにアクセスするためのビューからコントローラAとコントローラBの

リンクを持っているとしましょう:

//This link go to Con A 
<a href="<?php print base_url(); ?>ConA/user">TEST1</a> 

//This link go to Con B 
<a href="<?php print base_url(); ?>ConB/user2">TEST2</a> 

コンAを

defined('BASEPATH') OR exit('No direct script access allowed'); 

class ConA extends CI_Controller 
{ 
function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('MAdmin'); 
} 

public function user() 
{ 
    $data = array (
     'titlepage' => APP_TITLEPAGE, 
     'titleapp' => 'User Management',    
     'listdept' => $this->MAdmin->get_dept(), 
     'complete' => 'false', 
     'contentpage' => 'admin/user');//This is the view directory. Will open user.php in myproject/application/views/admin 

    $this->load->view('shared/master_app', $data); 
} 

コンB

MyProjectと/

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /myproject 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /myproject/index.php?/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
ErrorDocument 404 /index.php 
</IfModule> 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class ConB extends CI_Controller 
{ 
function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('MAdmin'); 
} 

public function user2() 
{ 
    $data = array (
     'titlepage' => APP_TITLEPAGE, 
     'titleapp' => 'User Management',    
     'listdept' => $this->MAdmin->get_dept(), 
     'complete' => 'false', 
     'contentpage' => 'admin/user');//This is the view directory. Will open user.php in myproject/application/views/admin 

    $this->load->view('shared/master_app', $data); 
} 

ビュー内の共有/ master_app

<div class="wrapper wrapper-content"><?php $this->load->view($contentpage); ?></div> 

$ CONFIG

$config['base_url']= "http://".$_SERVER['HTTP_HOST'].str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']); 

の.htaccessオフラインモードで

  • (ローカルホスト)すべてがうまく
  • リダイレクト後のアドレスバーにURLを実行している:注

    <IfModule authz_core_module>Require all denied</IfModule> 
    <IfModule !authz_core_module>Deny from all</IfModule> 
    

    MyProjectと/アプリケーション210は

    の.htaccessリンクからは同じです(命名を除く)。

+0

のphp.iniファイルでのmod_rewriteを有効にしてください。 https://www.codeigniter.com/user_guide/general/styleguide.html –

+0

専門家ではありませんが、私はCodeigniterを起動するときに問題が発生しています。ローカルではすべてのURLが正常に実行されていますが、問題が発生したサーバー上で読み込まれませんでした。だから私はCIの命名規則に従わなかったことに気付きました。だから最初にそれをチェックしてください。 –

+0

この回答を確認してください。 http://stackoverflow.com/a/16972966/5077564 –

答えて

0

ローカルホストが正常に動作している場合、問題の主な原因はコントローラ名ConAまたはConBです。クラス名はCapitalキーワードから始まります。 Controllerクラスの名前を変更し、ファイルをCona.phpとして保存してください。多分それは動作します。場合によっては、この問題によって多くのバグが発生することがあります。まず、これを試してみてください。また、あなたのURLはすべて小文字でなければなりません。あなたは、のようなアンカータグを書くことができます。 :あなたはこのことを確認する必要があり

<a href="<?php print base_url('conb/user2'); ?>">TEST2</a> 
0

は、あなたのライブサーバー

関連する問題