• 締切済み

.htaccessのRewriteRuleの設定

Sabelというフレームワークでtest用プロジェクトを作成して、 testフォルダ  addonフォルダ  appフォルダ     ・     ・     ・  publicフォルダ   .htaccessファイル というフォルダ構造で、publicフォルダの中に.htaccessファイルがあり内容は [.htaccessファイル] <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} \/\..+$ RewriteRule .* /notfound [R,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule !\.(js|ico|gif|jpg|png|bmp|swf|css|html)$ index.php [QSA,L] </IfModule> URLからのアクセスは、 http://localhost/test/public/index.php/index/index と入力するとちゃんとindexコントローラのページが表示できます(http://localhost/test/public/index.phpでもアクセスできます) ですが自分としては、 http://localhost/test/public/index/index とindex.phpを抜かしてアクセスさせたいのですが、 この.htaccessファイルのままでは、 「404 Not Found 該当するページが見つかりません。 ページは削除されたか、移動された可能性があります。 」 のページになってしまいます・・・ なにを記述すればindex.phpなしでアクセスできるようになるのでしょうか? Sabel ドキュメントとか(非公式) http://ebine.org/sabel/doc/index.html

みんなの回答

  • jstar
  • ベストアンサー率0% (0/0)
回答No.1

プロジェクトにドメインを与え、バーチャルホストの設定を行ってください。 開発環境(ローカル)であれば適当なドメイン、例えばtest.localを/etc/hostsで定義し、バーチャルホストで下記のように設定してください。 <VirtualHost test.local:80> ServerName test.local DocumentRoot "/path/to/test/public" </VirtualHost> 上記はtest用プロジェクトのディレクトリが/path/to/testだとしています。 http://test.local/index/index でアクセスできるようになります。

takagoo100
質問者

お礼

ご返答ありがとうございます。 これはバーチャルホストではなくて、.htaccessの設定だけでなんとかできないのでしょうか? というのも、今はローカル環境で試していますが、 ゆくゆくはバーチャルホストをいじれないサーバ(つまり安いサーバ)を借りて そこでこのフレームワークを利用しようかと思ってまして、htdcos内だけで何とかするしかなさそうなので・・・ [.htaccessファイル] <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,L] </IfModule> このように書いたのですが、やはり404 Not Foundでした・・・ なにかこの書き方は間違っているのでしょうか?

関連するQ&A