2016-11-22 11 views
2

codeIgnitorを初めて使用しています。インデックスファイルにいくつかのリンクがあります。 私のローダコードならば、私は今のURLからindex.phpでCodeignitor- index.phpを削除した後に新しいページを読み込む方法

http://localhost/app/Loader/demo_page

このようなURLを見て削除している:このリンクを私をクリックすると

class Loader extends CI_Controller { 

    public function __construct(){ 
     parent::__construct(); 
     $this->load->helper('url'); 
    } 
    public function index() 
    { 
     $this->load->view('header'); 
     $this->load->view('center'); 
     $this->load->view('footer'); 
    } 
    public function demo_page() 
    { 
     $this->load->view('demo'); 
    } 
} 

、私はエラーが見つかりませんます。

どうすればよいですか?

私はまた、URLからコントローラ名を削除したいと思って、domain/app/mydemopage.phpのようなかなりのURLを表示したいとします。 助けてください。

+0

は、あなただけのSEOフレンドリーURLのためにこれをやっている場合は、その後、routes.phpの使用routes.phpの中であなたの全体のパスを貼り付けて、あなたがしたいURLを定義します。 –

+0

はい、私は試みましたが、ルーティングは動作していません。 –

答えて

1

URL書き換えモジュールが必要です。 この作業を行うには、使用するWebサーバーによって異なります。

Apacheの場合は、httpd.confを編集し、次の行のコメントを外して(先頭には#を削除してください)、Webサーバーを再起動してください。

LoadModule rewrite_module modules/mod_rewrite.so

あなたのCodeIgniterのルートフォルダに.htaccessファイルを/編集を追加し、これを挿入します。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

あなたはRewriteEngineここでは使用できないエラーが発生した場合は、必ずCodeIgniterののWebルートフォルダがWebサーバの設定httpd.confFileInfoオーバーライドを可能にします。

AllowOverride FileInfo

+0

私はApacheサーバーを使用していますが、試しましたがまだ動作していません。オブジェクトが見つかりませんエラー –

+0

@ RedEye_0詳細なエラーメッセージのログをチェックすることで、何がうまくいかないかを知る必要があります。プロジェクトフォルダ内の 'index.php'ファイルを削除しないでください。 – josephting

1

あなたの.htaccessファイル内の行の下に追加します。

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_FILENAME} !-d 

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

以下の例でルートファイルを変更することができます。文字列で私はコントローラと関数(メソッド)の名前を渡しています。 $ルート配列では、私が好きなようにかなりの名前を渡しています。

#Route file path : CI_project/applications/config/routes.php 

$route['default_controller'] = "Dashboard"; 
$route['contact-us'] = "dashboard/contact_us"; 

しかし、あなたは、コードの仕事の上にしたい場合は、書き換えモジュールを有効にすると.htaccessにこのコードを与える必要がありますのでご注意ください。

.htaccessファイルのコード:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /prjectName/ 
    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 
    RewriteCond %{REQUEST_URI} ^application.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 
# If we don't have mod_rewrite installed, all 404's 
    # can be sent to index.php, and everything works as normal. 
    # Submitted by: Pawan Nagar 
<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /index.php 
</IfModule> 
関連する問題