aswww log

エンジニアの技術録。アプリとかウェブとか

Apache2.4でfuelPHP1.4のアクセスURLからindex.php消してみた

fuelPHPでインストールしたての状態でページにアクセスする場合、URLは以下のとおりになりますが

http://hogehogehoge.jp/index.php/welcome/index

これの「index.php」を取り除いて

http://hogehogehoge.jp/welcome/index

みたいな感じでアクセスできるよう、本片手にApacheを設定してみましたメモ。

変更したのはhttpd.confのみ。.htaccessはfuelPHPがあらかじめ用意してくれた/var/www/パッケージ名/public/.htaccessを使用しました。デフォルトまんまだけど内容は以下のような感じ。

/var/www/パッケージ名/public/.htaccess

<IfModule mod_rewrite.c>
       ・
       ・
       ・
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d

        # for normal Apache installations
        <IfModule mod_php5.c>
                RewriteRule ^(.*)$ index.php/$1 [L]
       </IfModule>

</IfModule>

これをApacheのDirectory配下に配置するんだけど、今回の場合Directoryを/var/www/パッケージ名/public/がちょうどDirectory配下だったりするのでこのまま。

次にhttpd.confを以下のとおり変更する。

httpd.conf

    ・
    ・
    ・

LoadModule rewrite_module modules/mod_rewrite.so  #コメント外す

    ・
    ・
    ・

DocumentRoot "/var/www/パッケージ名/public"

<Directory "/var/www/パッケージ/public">
    Options -Indexes +FollowSymLinks
    AllowOverride All                         #.htaccessで上書きできるよう許可
    Require all granted
</Directory> 

※以下の設定は今回の.htaccessには関係無し
 ・Require all granted(アクセス制御:全ての権限を許可する)
 ・Options -Indexes +FollowSymLinks(オプション:ファイル一覧表示しない、シンボリックリンクによるファイル参照を許可)

変更して保存してApache再起動してアクセスして成功確認。でしたが、今回はいじってませんが/fuel/app/config/config.phpの設定も関係しているみたいですね。config.phpのindex_fileにfalse意外が設定されている場合は、false にするか削除しないといけないみたいですね。

fuelPHP アプリケーション設定
http://press.nekoget.com/fuelphp_doc/general/configuration.html

デフォルトのままであればコメントアウトされているはずなのでそのままで大丈夫だと思いますが、ちょっといじった覚えがある方はご注意を。


参考:
Apache .htaccess設定例:http://www.unix-vm.com/centos_2_7.htmlRequire%20all%20granted
アクセス制御関連ディレクティブ:http://park12.wakwak.com/~eslab/pcmemo/linux/apache/apache6.html