2013年12月3日火曜日

FuelPHPのindex.phpを省略する

前回の状態でセットアップは完了かなと思っていたのですが、コントローラを追加しても上手く表示できませんでした。
試してみたところ、URLにindex.phpをつければ大丈夫なようでした。
でもスカッフォルドで作ったページで、編集ページへのリンクのindex.phpが省略されていてリンクが機能していません。

FuelPHPに最初から入っている .htaccessにmod_rewriteの設定がコメントアウトされている状態で入っていたので、これを有効にすると index.php を省略して表示できるようになりました。

ファイルを開けばすぐにわかると思いますが、変更内容はこんな感じ。
RewriteBaseの値は、動かす環境に合わせる必要があります。
diff --git a/public/.htaccess b/public/.htaccess
index bffe79e..e99dd49 100644
--- a/public/.htaccess
+++ b/public/.htaccess
@@ -9,7 +9,7 @@
 
        # NOTICE: If you get a 404 play with combinations of the following comme
nted out lines
        #AllowOverride All
-       #RewriteBase /wherever/fuel/is
+       RewriteBase /~ユーザ名/プロジェクト名/
 
        # Restrict your site to only one domain
        # !important USE ONLY ONE OPTION
@@ -26,9 +26,9 @@
        #RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
 
        # Remove index.php from URL
-       #RewriteCond %{HTTP:X-Requested-With}   !^XMLHttpRequest$
-       #RewriteCond %{THE_REQUEST}                             ^[^/]*/index\.ph
p [NC]
-       #RewriteRule ^index\.php(.*)$                   $1 [R=301,NS,L]
+       RewriteCond %{HTTP:X-Requested-With}    !^XMLHttpRequest$
+       RewriteCond %{THE_REQUEST}                              ^[^/]*/index\.ph
p [NC]
+       RewriteRule ^index\.php(.*)$                    $1 [R=301,NS,L]
 
        # Send request via index.php (again, not if its a real file or folder)
        RewriteCond %{REQUEST_FILENAME} !-f

0 コメント: