PHPのフレームワークZendFrameworkを勉強中です。そこで以下の.htaccessをドキュメントルートに置きました。
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
これでhttp://localhost/Sample/Page1/へアクセスした場合は http://localhost/index.php/Sample/Page1となるはずなのです。
しかし500エラーになります。WindowsにXamppを使ってApache等をインストールしています。
これはApacheの設定がおかしいのでしょうか?それともmod_rewriteの書き方ですか?
みなさんよろしくお願いします。
ちなみに上記mod_rewriteの書き方は以下を参考にしています。「.htaccessファイルの作成」という項目です。
http://www.zend.co.jp/tech/index.php?%A4%BD%A4%CE%C2%BE%2FZend%20Framework
これでhttp://localhost/Sample/Page1/へアクセスした場合は http://localhost/index.php/Sample/Page1となるはずなのです。
あくまで http://localhost/index.php へのアクセスにしかならないと思いますが。
それはともかく、エラーの内容はエラーログに出ているはずです。
確認してみてください。
回答ありがとうございます。
エラーログを確認してみたところmod_rewriteが有効になっていませんでした。有効にしたつもりだったのですが、Apacheを再起動していなかったので設定が反映されていなかったようです。
「おかしくなったらログを見る」という事を学びました。
>これでhttp://localhost/Sample/Page1/へアクセスした場合は http://localhost/index.php/Sample/Page1となるはずなのです。
これはZendの公式ページから持ってきた表現です。
私もイマイチ理解できていませんが、index.phpに置かれたフロントコントローラ(MVCのC)へ
?ctr=Sample&act=Page1
というクエリ?を送るようなイメージです。Sampleというアクションコントローラを呼び出し、Page1というアクションを実行させるらしいです。
いつも適切な回答ありがとうございます。助かっています。またよろしくお願いします。