2016-12-20 5 views
0

私のサーバーの私のpublic_htmlフォルダの下に2つのcodeigniterインストールがあります。 1つはpublic_htmlのすぐ下にあり、もう1つはpublic_html/posts_receiveの下にあります。サーバー上のサブフォルダでcodeigniterを使用するにはどうすればよいですか?

public_htmlの下のインスタンスは正常に動作しているが、私はpublic_htmlの内部でCodeIgniterのコントローラにアクセスしようとすると/ posts_receiveそれは示しています

が見つかりません

404ページのURL http://www.example.com/posts_receive/index.php/dashboard

を試してみましたこの問題を解決するために、私は.htaccessファイルをpublic_html/posts_receiveの下に追加しました。このファイルには以下が含まれています:

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

私のコントローラは、dashboard.phpという名前で、次の内容が含まれます:

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

class Dashboard extends CI_Controller { 


    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->helper(array('form', 'url')); 

     $this->load->library("pagination"); 
    } 

    public function index() { 
     $config = array(); 

     $data['link_sel']='dashboard'; 
     $data['stats']=$this->fetch_stats(); 
     $this->load->view("header_inc", $data); 
     $this->load->view("dashboard", $data); 
     $this->load->view("footer_inc", $data); 
    } 
} 
?> 

config.phpのが含まれています:

$config['base_url'] = 'http://www.example.com/posts_receive/'; 
$config['index_page'] = 'index.php'; 
+0

てみましたか?あなたはこれの結果を投稿できますか? – Rajesh

+0

私は同じエラーを表示して同じことを試みましたが、変更はありません –

+0

あなたはhtaccessを削除しても同じことですか? – Rajesh

答えて

2

あなたは1つのCodeIgniterのベースから、両方のアプリケーションを実行する必要があります。 applicationフォルダに2つのサブフォルダがあります。ドキュメントを見てください:https://www.codeigniter.com/userguide3/general/managing_apps.html

そこから、posts_recieveフォルダ内のrootと同じindex.phpファイルを作成し、それを正しいアプリケーションディレクトリに指定することができます。それが私がそれをやり遂げた方法です。そうでなければ、あなたのルートのCodeIgniterインスタンスは、そのアプリケーションに存在しないposts_recieveというコントローラにナビゲートしていると思うでしょう。これが役に立ちます。そうでなければ、物事が不明なときに尋ねるだけです。

+0

あなたの答えをありがとう。しかし、私は別のフォルダでこれらを使用する必要があります。 –

+1

2つの別々のシステムフォルダが必要ですか?どうして?同じCodeIgniter Coreから実行し、2つのアプリケーションフォルダに分割してみましょう。 – Clemenz

0

内側.htaccessRewriteBase /posts_receive部分は必要ありません。

RewriteRule ^(.*)$ index.php?$1 [L] 

RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 

になるはずです(<IfModule mod_rewrite.c>は、サーバの設定条件である。それはあなたがこれらの設定が動作するためにのmod_rewriteモジュールは、Webサーバーにインストールされ、アクティブ持っているべきであることを意味する。)

$config['index_page']を空にしておくことができますconfig.php

$config['index_page'] = ''; 

そして、あなたはindex.phpを一部せずにコントローラを呼び出すことができます:// www.example.com/posts_receive/dashboard`:あなたは、http `

http://www.example.com/posts_receive/dashboard 
関連する問題