.htaccessのmod_rewriteについて教えてください。


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

回答の条件
  • 1人2回まで
  • 登録:2007/04/15 23:55:11
  • 終了:2007/04/16 05:52:13

ベストアンサー

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/04/16 00:07:35

ポイント60pt

これでhttp://localhost/Sample/Page1/へアクセスした場合は http://localhost/index.php/Sample/Page1となるはずなのです。

あくまで http://localhost/index.php へのアクセスにしかならないと思いますが。


それはともかく、エラーの内容はエラーログに出ているはずです。

確認してみてください。

id:tokyosmash

回答ありがとうございます。

エラーログを確認してみたところmod_rewriteが有効になっていませんでした。有効にしたつもりだったのですが、Apacheを再起動していなかったので設定が反映されていなかったようです。

「おかしくなったらログを見る」という事を学びました。


>これでhttp://localhost/Sample/Page1/へアクセスした場合は http://localhost/index.php/Sample/Page1となるはずなのです。

これはZendの公式ページから持ってきた表現です。

私もイマイチ理解できていませんが、index.phpに置かれたフロントコントローラ(MVCのC)へ

?ctr=Sample&act=Page1

というクエリ?を送るようなイメージです。Sampleというアクションコントローラを呼び出し、Page1というアクションを実行させるらしいです。


いつも適切な回答ありがとうございます。助かっています。またよろしくお願いします。

2007/04/16 01:05:34

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません