8

私は次のURLを持っています..

http://localhost/ci/site_controller/home

site_controller URLからコントローラーを削除したい..

 http://localhost/ci/home

CodeIgniter でこれを行うにはどうすればよいですか?

注: mod_rewrite の使用方法がわからないため、Google で検索しただけでなく、何を試したかを尋ねる場合。

編集

私はこれをroutes.phpに持っています

$route['default_controller'] = "site_controller/home";
$route['ci/home'] = 'ci/site_controller/home';
$route['404_override'] = '';

しかし、まだ機能していません!

.htaccess

RewriteEngine On
RewriteBase /ci/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

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

ErrorDocument 404 /index.php
4

9 に答える 9

10

URLごとにルートを設定できます:

config/routes.php ファイルで、各ページを次のように設定します。

$route['ci/home'] = "ci/site_controller/home";
于 2012-10-12T16:17:53.300 に答える
3

これは、CodeIgniter プロジェクトのデフォルト コントローラを定義するのに役立つ場合があります。

https://codeigniter.com/user_guide/general/controllers.html#defining-a-default-controller

たとえば、あなたの場合、application/config/routes.php ファイルを開き、次の変数を設定します。

$route['default_controller'] = 'site_controller';
于 2012-10-12T16:12:44.017 に答える
2

あなたが現在あなたのURLを持っていると仮定するhttp://localhost/ci/site_controller/homeと、以下のような明示的なルートを/application/config/routes.php

$route['ci/home'] = 'site_controller/home';

また

$route['ci/home'] = 'ci/site_controller/home';

コントローラーの名前空間が/application/controllers/ci/

于 2012-10-12T16:20:27.090 に答える
1

routes ファイルを使用して URL を再マップしてみてください

http://ellislab.com/codeigniter/user_guide/general/routing.html

于 2012-10-12T16:13:22.213 に答える
0

私はちょうどこのリンクで解決策を見つけました

$route['^(page1|page2|page3|page4)(/:any)?$'] = "YOURCONTROLLERNAME/$0";

それがあなたを助けることを願っています:)

于 2014-02-09T01:30:46.563 に答える
-1

ルートから をドロップ'ci'します。これはプロジェクト名であり、必須ではありません。ルートは常にコントローラー レベルで開始します。

$route['home'] = "site_controller/home";

動作します。しかし、もっと重要なことは、あなたの設計が正しいと確信していますか? コントローラーにならないのはなぜhome ですか?を作成すると、 でその機能/application/controllers/home.phpにアクセスできるようになります。index()http://localhost/ci/home

あなたは物事を複雑にしています。ルートはまったく必要ありません。

于 2012-10-12T17:37:51.483 に答える