Apacheのmod_rewrite

Zend FrameworkでMVCを使うには、mod_rewriteを使って、全てのリクエストをフロントコントローラー に転送することになるんですが、ローカルでテストするときだけ、なぜかうまく行かなくて悩んでました。

RewriteEngine on
RewriteBase /apps/
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

dp.SyntaxHighlighter.ClipboardSwf = ‘/blog/syntaxhighlighter/clipboard.swf’;
dp.SyntaxHighlighter.HighlightAll(‘code’);

こんな感じでApacheに設定すると、/apps/loginにアクセスするとloginコントローラーのデフォルトアクションが呼ばれます。

テストサーバ上ではうまく動いているのと、/apps/index.php/loginとリクエストすれば同じ形になるので、ローカルでおかしいのは追求せずにいたんですね。

mod_rewriteはちゃんとロードされていたので、ちょっと現実逃避でmod_rewriteの使い方を調べてみたら、Options FollowSymLinksが必要らしいです。Apacheのエラーログにもちゃんと出てました(←全く見てない)。

「mod_rewrite Options FollowSymLinks」でググったら、一発で出てきました。

mod_rewriteを使うには「Options FollowSymLinks」が必要

いやあ、ちゃんとエラーログくらい見なきゃいけませんね。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>