6

私のプロジェクトの構造は次のとおりです

/system
/applications
  /cache
  /core
  /helpers
  /hook
  /language
  /libraries
  /logs
  /third_party
  /admin-panel
     /config
     /controllers
        welcome.php
        dashboard.php
     /errors
     /models
     /views
        welcome.php
        dashboard.php
  /user-panel
     /config
     /controllers
            welcome.php
            dashboard.php
     /errors
     /models
     /views
        welcome.php
        dashboard.php
/admin
  index.php
index.php

プロジェクト フォルダー内の index.php にはアプリケーション フォルダーとして user-panel があり、admin フォルダー内の index.php にはアプリケーション フォルダーとして admin-panel があります。

この行を挿入しました $route['default_controller'] = "welcome"; $route['ようこそ'] = 'ようこそ'; ユーザーパネルと管理パネルの両方のroutes.php内

を使用して、ユーザーパネルと管理パネルの両方のウェルカムコントローラーにアクセスできますhttp://localhost/myproject and http://localhost/myproject/admin

しかし、使用してダッシュボードコントローラーにアクセスできませんhttp://localhost/myproject/dashboard or http://localhost/myproject/admin/dashboard

を使用してダッシュボードコントローラーにアクセスできますhttp://localhost/myproject/index.php/dashboard or http://localhost/myproject/admin/index.php/dashboard

しかし、私の URL に index.php を含めたくありません。削除したいです。また、管理フォルダー内で .htaccess を使用してみました。この中に次の行を書きます

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

しかし、これは私にはうまくいきませんでした。404 not found CI エラーが発生します。また、httpd.conf で AllowOerride None を AllowOverride All に変更して mod_rewrite を有効にしました。index.php を削除するにはどうすればよいか、プロジェクト ディレクトリのどこに .htaccess ファイルを配置すればよいか教えてください。

4

4 に答える 4

10

プロジェクトのルート フォルダがドメインのルートでない場合、つまり、Web サイトがドメインのサブディレクトリであるhttp://localhost/myproject場合は、.htaccess ファイルに次の行を追加する必要があります。RewriteBase

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

また、config.phpが次のように構成されていることを確認してください

$config['base_url'] = 'http://localhost/myproject/';
$config['index_page'] = '';

また、mod_rewrite は Apache の設定ファイルで有効になっています。

于 2012-08-14T07:20:42.647 に答える
2

system / application/configディレクトリからconfig.phpを開きます

交換してください

$ config ['index_page'] =“ index.php” by $ config ['index_page'] =“” </ p>

CodeIgniterディレクトリのルートに「.htaccess」ファイルを作成します

次の行を追加します。

    RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

場合によっては、uri_protocolのデフォルト設定が正しく機能しないことがあります。

この問題を解決するには、

`$config['uri_protocol'] = “AUTO”` 

 $config['uri_protocol'] = “REQUEST_URI” 

system / application / config/config.phpから

于 2012-08-14T08:36:02.343 に答える
1

次のことを確認してください。

  1. .htaccess は index.php ファイルと同じディレクトリ (通常はアプリケーションのルート) に配置する必要があります。
  2. codeigniter と .htaccess に関するマニュアルを読む
  3. apache がrewrite_moduleという名前の書き換えモジュールを実行していることを確認してください。Linux でモジュールを有効にする方法の詳細については、こちらを参照してください:ブログ投稿または wamp については、こちら: Wamp アイコン -> Apache -> Apache モジュール -> rewrite_module
于 2012-08-14T07:10:45.330 に答える
0

config.php ファイルを見てください。'index_page'

変更してみてください

$config['index_page'] = "index.php";

$config['index_page'] = "";
于 2012-08-14T07:10:56.613 に答える