Authentication




Cancel OK
B!コメントする  2012-03-07 11:02:00 by old

CodeIgniterでの移設時の注意

CodeIgniterで作成したものを別のサーバーに移設することになりました。
仮にWEBアプリとしますが、このWEBアプリは従来のサーバーではルートディレクトリ直下にあることもあって、開発環境もそれに合わせて作成しておりました。

CodeIgniter自体はベースとなるアドレスが決められるので、それを使ってコンテンツを指定したり、自動補完などがおこなわれていましたが、移設にあたっていくつか問題が出てきたので書いて見ます。

まず移設先のサーバーではルートディレクトではなくなり、WEBアプリごとにフォルダが切ってある中に移設となります。
そのため以下の2つのファイルをまず修正しました。

.htaccess
RewriteRule ^(.)$ /index.php/$1 [L]


/application/config/config.php
$config['baseurl'] = "http://". $SERVER['HTTP_HOST']. "/";


この2つを移設先のディレクトリに合わせて変更(仮に/hoge/に移設したと仮定)

.htaccess
RewriteRule ^(.
)$ /hoge/index.php/$1 [L]


/application/config/config.php
$config['baseurl'] = "http://". $SERVER['HTTPHOST']. "/hoge/.";


このようにすることで移設は完了なのですが、内部的な相対リンクで「../」と指定しているところで問題が発生。

従来はルートディレクトリということもあり「../」と指定することで画像フォルダやCSSを一括管理している場所を指定していました。
実際のところルートディレクトリに関係なく「../」というのは相対的に見て正常な値ではあったんですが、ディレクトリを掘り下げたことにより、base
urlで補完された際に正常に参照できない場合がありました。

当たり前といえば当たり前なんですが、最初にRewriteRuleやbase_urlを疑って色々とやって時間を浪費してしまったので、もしCodeIgniterで移設して一部の相対リンクものが正常に表示されない場合はこういうこともあるんだなと思って疑って見てください。


CodeIgniter  

  • コメント
  • コメントはまだありません