yuu_nkjm blog
2014-04-13(Sun) [長年日記]
[Apache][mod_rewrite] mod_rewriteによるURLの書きかえ
正規表現(A)は、リライトを実行するかどうかの条件(真偽値)であって、置換 url =~ s/(A)/(D)/ ということではない.
mod_proxyを場当たり的に使ってるので,よく躓く.上のページを見て,少し理解が進んだ.また分からなくなると思うが,自分のケースをメモ.
RewriteEngine on RewriteBase /event/ RewriteRule ^foo2014$ http://foo.nkjm.info/ [QSA,P,L] RewriteRule ^foo2014/(.*)$ http://foo.nkjm.info/$1 [QSA,P,L]
- ^foo2014$にマッチしたらリライトが実行される.QSA(query string append)はクエリ文字列を足す.PはプロキシになりURLが書き換わらない(それに対してRだとリダイレクトになる.mod_rewriteの設定をデバッグするときはRの方が分かりやすい.).Lはこのルールで評価を終了.
- ^foo2014/(.*)$にマッチしたらリライトが実行される.$1が正規表現の(.*)に置き換わる.
トラブルシューティング
[Tue Apr 01 14:30:23 2014] [warn] proxy: No protocol handler was valid for the URL /world/. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
こんなエラーが出た.Pを指定したのにapacheにproxyに関するモジュールが入っていなかったのが原因の様だった.proxy,proxy_httpをロードするようにしたら解決した.
Debian apache 設定 - OraRailsを参考にした.
- https://www.google.co.jp/ ×297
- https://www.google.com.vn/ ×2
- https://www.google.com.au/ ×1
- https://www.google.co.in/ ×1
- https://www.google.it/ ×1
- No protocol handler was valid for the URL ×2 / proxy: No protocol handler was valid for the URL ×2 / If you are using a DSO version of mod_proxy ×1 / no protocol handler was valid for the url https ×1 / mod_proxy DSO ×1 / windows If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule. ×1 / anything ×1 / apache if you are using a DSO version of mod_proxy ×1