それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

rewrite は inherit をつけて上位フォルダから継承させる

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

追記