2021年9月27日月曜日

Apache mod_rewriteの設定

基本は、

RewriteRule PTN REPLACE [OPTION]

を書く。


PTNは正規表現で、わたってくるのは /foo/bar.htmlなど、/から始まるパス(.htaccessではなくhttpd.confに書く場合)。


PTNが一致した場合のみ、パスがREPLACEに変わる。REPLACEを絶対URLにして、OPTIONにRまたはPでRedirectあるいはProxyが出来る。

リダイレクトは、[R,L]。Lを明示する必要がある。

プロキシは、[P]。PはLを暗黙的に含んでいる。


RewriteRuleではパスしか検査できない。なので、それ以外も調べたい場合などは

RewriteCond 検査対象文字列 条件

を直前に列挙する。複数列挙すればAND条件。ORにしたい場合には特殊な書き方がある。

検査対象文字列は、いろいろな暗黙変数的なもの。検索すればすぐに出てくるだろう。

条件は正規表現またはフラグ。これも検索すればわかる。


正規表現は普通のPerl互換。

なので、「すべてをマッチ」したいためだけに ^(.*)$なんて書く必要はない。なぜか流行っている?けども。




0 件のコメント:

コメントを投稿