ブログ - pico wrapsモード と apache の alias に注意!
mod_rewrite でいつもつまずいて忘れてしまうのでメモメモ...
開発環境などで apache の alias を使ってサイトを構築している場合
pico で wraps モードを使おうとして設定しても正しく表示されない。
これの原因は mod_rewrite にある。
pico の wraps モードをONにしてmod_rewrite を有効にする。
このとき pico の .htaccess を .htaccess_rewrite_wraps の内容に設定するのだが、これだけだと base が違うので、ファイルが見つかりませんとなってしまうのだ。
仕方がないので .htaccess に RewriteBase を追加する。
たとえば
DocumentRoot が /var/www
Alias に /vvlab /home/user/www/vvlab
となっている場合、
RewriteBase がないと
/var/www/home/user/www/vvlab/.... へ INTERNAL REDIRECT されてしまうため、ファイルが見つかりませんとなる。
このときエラーログには /var/www/home がない!と書かれている。
(もちろんそんなパスはない)
そこで RewriteBase を設定する
RewriteBase /home/user/www/vvlab/modules/pico
これでめでたくうまく行く
でもこれはこれでポーティングするときに困るんだけどね...
開発環境などで apache の alias を使ってサイトを構築している場合
pico で wraps モードを使おうとして設定しても正しく表示されない。
これの原因は mod_rewrite にある。
pico の wraps モードをONにしてmod_rewrite を有効にする。
このとき pico の .htaccess を .htaccess_rewrite_wraps の内容に設定するのだが、これだけだと base が違うので、ファイルが見つかりませんとなってしまうのだ。
仕方がないので .htaccess に RewriteBase を追加する。
たとえば
DocumentRoot が /var/www
Alias に /vvlab /home/user/www/vvlab
となっている場合、
RewriteBase がないと
/var/www/home/user/www/vvlab/.... へ INTERNAL REDIRECT されてしまうため、ファイルが見つかりませんとなる。
このときエラーログには /var/www/home がない!と書かれている。
(もちろんそんなパスはない)
そこで RewriteBase を設定する
RewriteBase /home/user/www/vvlab/modules/pico
これでめでたくうまく行く
でもこれはこれでポーティングするときに困るんだけどね...