0

私はコードイグナイターを調査しています。アプリの起動時に、デフォルトのコントローラーが変更され、コントローラーがロードされます。

コントローラーはビューを適切にロードし、それで問題ないので、ルーティングは期待どおりに機能すると推測していますが、同じコントローラーのアドレスバーに他のメソッドを手動で入力すると、同じ URL パターン /controller/method を使用すると、404 エラーが発生します。ビューが存在します。

デフォルトのルーティング動作を変更する必要がありますか、それとも何か問題がありますか?

ありがとう

4

3 に答える 3

2

URL パターンから既に index.php を削除しているかどうかはわかりません。その場合は、ブラウザのアドレス フィールドに入力する必要がありますindex.php/controller/method。(説明どおりに手動でURLを入力した場合)

一方、すべてのリンクで index.php を使用したくない場合は、それを削除することを検討できます。詳細はこちら.

于 2013-05-16T19:45:46.877 に答える
0

これは、上記のindex.phpファイルが原因である可能性があります。または、index.php を削除したい場合は、アプリケーションに .htaccess ファイルを含めてください。

 config/config.php - modifiy 
 $config['base_url'] = 'index.php'
 $config['base_url'] = '' // set it to blank

.htaccess ファイルについては、以下のコードを参照してください

 RewriteEngine on
 RewriteCond $1 !^(index\.php|images|robots\.txt)
 RewriteRule ^(.*)$ /index.php/$1 [L]
于 2013-05-17T05:32:25.007 に答える
0

これに従ってください

root_folder/.htaccess

index.phpURLで削除する

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

ベース URL を設定する

root_folder/application/config/config.php

| to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
| The auto-detection mechanism exists only for convenience during
| development and MUST NOT be used in production!
|
| If you need to allow multiple domains, remember that this file is still
| a PHP script and you can easily do that on your own.
|
*/
$config['base_url'] = 'http://[::1]/my-project/';

index.phpフォームでのリクエスト投稿でも、URLで削除する

root_folder/application/config/config.php

/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = '';

デフォルトのコントローラーを設定します。私の場合は「ホーム」です

root_folder/application/config/routes.php

| controller and method URI segments.
|
| Examples: my-controller/index -> my_controller/index
|       my-controller/my-method -> my_controller/my_method
*/
$route['default_controller'] = 'home';

その後、すべてのコントローラーファイル名が大文字であることを確認してください。クラス名でもあります

これは、ライブサーバーにアップロードする必要がある場合にも重要です。

root_folder/application/controllers/Home.php

<?php

/**
 * 
 * 
 * @author Lloric Garcia <emorickfighter@gmail.com>
 */
defined('BASEPATH') OR exit('No direct script access allowed');

class Home extends MY_Controller {

    public function index() {

    }    

}

次に、これはあなたのURLになります

http://[::1]/my-project/home


それはライブサーバーでも私の設定です

これはすべて

https://www.codeigniter.com/userguide3/index.html

于 2016-11-28T05:42:29.260 に答える