FuelPHPはデフォルトではプロジェクト名/public/という階層になります。
そのためローカルで起動すると、
http://localhost/hoge/public/welcome/
とかになるわけです。このpublicが余計なパスですしカッコよくないので消したいですよね。
当然、ウェブ公開するときには消してから公開もしたい。ではこのpublicを削除した状態で表示できるようにします。
成功すると、http://localhost/hoge/welcome/
というURLでページが閲覧できるようなります。
■参考イメージ
- プロジェクト名:hoge
- hoge/public/welcome/
①hogeフォルダの中に以下の.htaccessを作成して配置します。
1
2
3
4
5
6
7
|
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^(/)?$ /hoge/ public /index.php/$1 [L] RewriteCond ${REQUEST_FILENAME} !-f RewriteCond ${REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /hoge/ public /index.php/$1 [L] </IfModule> |
①Windows で .htaccess ファイルを作る
【問題点】
Windows で .htaccess という名前のファイルを作成しようとしても、うまくできないことがあります。メモ帳の [名前をつけて保存] から .htaccess で保存しても、.htaccess.txt になってしまう。
エクスプローラで名前を変更しようとしても、「ファイル名を入力してください。」のエラーになる。
【解決方法】
次のような方法があります。メモ帳で保存する際に、ファイル名を “.htaccess” のようにダブルクォーテーション付きのファイル名で保存する。
htaccess.txt というファイル名で作成しておき、MS-DOSプロンプト([スタート]→[プログラム]→[MS-DOSプロンプト])からファイル名変更する。例えば、htaccess.txt が C:\HomePage にあるとすれば、以下のようにする。
C:\<cd \HomePage
C:\HomePage>ren htaccess.txt .htaccess
Windows で作成することをあきらめて、FTP ソフトでサーバーに htaccess.txt を転送した後、FTP ソフトの機能でサーバー側の htaccess.txt ファイルを .htaccess にファイル名変更する。
②config/config.php を編集
コメントアウトされているはずなので、コメントを外して’/hoge/’を指定する。
1
|
'base_url' => '/hoge/' , |
③cssが読めなくなるので core/config/assets.php を編集
.’public/’を足すようにします。
1
2
|
//'url' => Config::get('base_url') 'url' => Config::get( 'base_url' ). 'public/' , |
これでpublicなしのURLで表示ができるようになります。