2016-07-11 8 views
0

codeigniterとデフォルトコントローラの動作に少し問題があります。 私のCIは、localhost/web/new_infoの開発環境のサブディレクトリにあり、192.168.30.108/web/new_infoのようなプロダクション用の同じパスにあります。CodeIgniter - メインコントローラを呼び出すとサーバールートにURLがリセットされる

のようなURLを呼び出すときに

は常にローカルホスト/ウェブ/ new_info/

を歓迎ページには、例えば、サーバーのルートに私を取りますlocalhost /。

しかし、私は経由で "歓迎" コントローラを呼び出すことができます。

  • はlocalhost /ウェブ/ new_info/
  • はlocalhost /ウェブ/ new_info/index.phpを/歓迎

をし、私ができます歓迎のメソッドを呼び出すだけでなく同様

  • はlocalhost /ウェブ/ new_info /歓迎/ログアウト

私のコントローラには、settingsという別のサブディレクトリがあり、別のwelcome.php intselfが含まれています。

歓迎/そこに私は問題なく、直接このコントローラにアクセスすることができ、ページがまま。

私は

... 
$config['base_url'] = 'http://localhost/web/new_info/'; 
$config['index_page'] = ''; 
... 

と汎用的なルート

$route['default_controller'] = 'welcome'; 
$route['404_override'] = ''; 
$route['translate_uri_dashes'] = FALSE; 

XAMPPと同じように行動するのapache2実行している実サーバを持っている.htaccessの設定で

SetEnvIf Host 192.168.30.108$ CI_ENV=production 
SetEnvIf Host localhost$ CI_ENV=development 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /web/new_info/ 
RewriteRule ^(welcome(/index)?|index(\.php)?)/?$/[L,R=301] 
RewriteRule ^(.*)/index/?$ $1 [L,R=301] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)/$ $1 [L,R=301] 
RewriteCond %{REQUEST_URI} ^system.* 
RewriteRule ^(.*)$ /index.php/$1 [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 
<IfModule !mod_rewrite.c> 
ErrorDocument 404 /index.php 
</IfModule> 

/開発/ config.phpを方法。 mod_rewriteを完全に無効にしてからウェルカムコントローラを呼び出すと、サーバールートにリダイレクトされます。

現在、私はCI 3.0.3を使用しています。最新の3.0.6で同様の動作をテストしました。

私が欲しいのは、localhost/web/new_info/welcomeを呼び出してそこに滞在することです。 ありがとうございます!

答えて

1

いいえ、自分で見つけました。.htaccessのダムコピー貼り付け。

すなわちライン

RewriteRule ^(welcome(/index)?|index(\.php)?)/?$/[L,R=301] 

は、私の場合には

RewriteRule ^(welcome(/index)?|index(\.php)?)/?$ /web/new_info/ [L,R=301] 

なければなりません。htaccessファイルの作成者は、彼のページでそれを言及していませんでした。

しかし、htaccessファイルを変更するだけでは役に立ちませんでした。セッションを完全に再開する必要がありました。それ以外の場合は変更が適用されませんでした。私にとっては少し珍しいことですが、私はこのファイルの変更が瞬時であると考えました。

それでも、今は問題ありません。

関連する問題