rewrite が適用されない
rewrite って上位フォルダから適用されるんじゃないんですね。。。
mod_rewrite は継承させる必要がある。
rewrite のルールは、上位から下位フォルダに対して継承させないと、そのフォルダでしか有効にならない。
例
これらのフォルダが有るとき
public_html/ └── myapp ├── .htaccess └── webroot └── .htaccess 2 directories, 2 files
この下位フォルダは上位フォルダのRewriteの影響を受けないことがある。
どうするか
inherit する
継承させることが出来る
RewriteOption inherit
これを書くと上位フォルダから順にrewrite が適用される。
各場所は上位フォルダ・下位フォルダのいずれでも良い。
上位フォルダに記述すると下位フォルダ全部
下位フォルダに記述するとその下位フォルダだけ上位フォルダから継承してくる。
Rewriteは、良くわからない現代魔法になってるよね・・・
CakePHPのサンプルとかにrewrite 一杯出てくるんだけど inherit しないからややこしくなってるような気がする。
重要なのはアクセス権について
上位フォルダのrewrite / .htaccessで設定したアクセス権を下位フォルダに適用させたいとき、コレが重宝される。
rewrite でアクセス制限やauth してると下層ディレクトリに適用されなくて悩んだ結果、コレが原因だとわかった。
2016/07/21
追記