0

最近、codeigniterプロジェクトをWebサーバーにアップロードしました。

それはproject1というフォルダにありますこれは私のディレクトリビューがどのように見えるかです

[www.myurl.com]
  |-> project1
        |-> application
        |-> css
        |-> images
        |-> js

私は2つの問題を抱えています。

1つ目は、(www.myurl.com/project1/main_controller/index.php/welcome)ではなく(www.myurl.com)にアクセスしたときにウェルカムビューをロードすることです。どうすればそのゴミをすべて取り除くことができますか?

2番目の問題は、使用する<?php echo base_url();?>とビューソースに正常に表示されるのに、クリックするとURL [www.myurl.com/project1/www.myurl.com/project1/]がエコーすることです。なぜこれを行うのですか?

4

2 に答える 2

2

CodeIgniterをサブディレクトリにインストールしたようです。CIサイトをルートURLからロードする場合は、アプリケーションとシステムのフォルダーがWebディレクトリのルートURLのすぐ下になるように、CIサイトを1つ上のディレクトリにコピーする必要があります。そこから、shailによって投稿された(そして以下に引用されている).htaccessルールは、パス内のindex.phpを削除するように注意する必要があります。

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ ci/index.php/$1 [L]

site_url()の問題に関しては、$config['base_url']変数がapplication/config / config.phpに設定されており、末尾にスラッシュが含まれていることを確認してください。

$config['base_url'] = "http://www.myurl.com/";

これをさらにテストするには、次のようにパラメータをsite_url()関数に渡してみてください。

echo site_url(welcome);

すべてが正しく設定されている場合は、http://www.myurl.com/welcomeに戻ります。

于 2012-09-05T05:28:18.757 に答える
1

CIを起動して実行するのはかなり簡単です。そのほとんどは、いくつかの構成ファイルを編集する必要があります。

アプリの正しいベースURLを指すようにCIを設定する必要があります。これを行うには、system / application / config / config.phpを開き、base_url配列項目を編集してサーバーとCIフォルダーを指すようにします。プレーンコピーをclipboardprintに表示しますか?

$config['base_url'] = "http://localhost/ci/";  

現在、CIセットアップには「welcome.php」と呼ばれるデフォルトのコントローラーがあります。これは、system / application/controllersフォルダーにあります。このチュートリアルでは、それを削除して、system / application / config/routes.phpファイルを開きます。「helloworld」コントローラーを指すようにデフォルトの配列項目を変更します。プレーンコピーをclipboardprintに表示しますか?

$route['default_controller'] = "Helloworld" 

CIには、不要なビューファイルもあります。system / application / view /フォルダーを開き、welcome_message.phpファイルを削除します。

ここでデフォルトのコントローラーを変更できます。

Urlを編集するにhttp://localhost/ci/index.php/helloworld/は、CodeIgniterのエクスペリエンスを向上させるためにできることがいくつかあります。たとえば、URLから迷惑なindex.phpビットを削除するなどです。このタスクを実行するには、ルートフォルダーに.htaccessファイルを作成し、次のコードを追加します。

RewriteCondのRewriteEngine$1!^(index.php | images | robots.txt)RewriteRule ^(。*)$ ci / index.php / $ 1 [L]

また、system / application / config /にあるconfig.phpファイルを開き、index_page配列項目を空白の文字列に編集する必要があります。プレーンコピーをclipboardprintに表示しますか?

$config['index_page'] = "";   

もう1つの気の利いたトリックは、サーバーでPHPの代替構文が有効になっていない場合に、CIがPHPの代替構文を解析する機能をオンにすることです。これを行うには、前と同じファイルsystem / application / config / config.phpを開き、rewrite_short_tags配列項目をTRUEに設定します。プレーンコピーをclipboardprintに表示しますか?

$config['rewrite_short_tags'] = TRUE;  

すべてがうまくいくことを願っています!

于 2012-09-05T05:04:32.977 に答える