スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

apacheでリダイレクト

http://hoge.jp/dir/index.html

http://hoge.jp/dir/index.html?arg=xxxxxxx
にリダイレクトしたい。xxxxxxxは7個の文字列が入る。

RedirectMatch ^/dir/index.html$ http://hoge.jp/dir/index.html?arg=xxxxxxx
はだめだった。リダイレクトの無限ループになってるっぽい。
文字列マッチのときに「?」以降(QUERY_STRING)をURLとして扱わない?

mod_rewriteを導入して
RewriteEngine On
RewriteRule ^/dir/index.html$ http://hoge.jp/dir/index.html?arg=xxxxxxx [R,L]
もだめだった。多分同じ理由で無限ループ。

で、
RewriteEngine On
RewriteCond %{QUERY_STRING} !^arg=.{7}$
RewriteRule ^/dir/index.html$ http://hoge.jp/dir/index.html?arg=xxxxxxx [R,L]
にして解決。

RewriteCond %{QUERY_STRING} !^arg=.{7}$
→ QUERY_STRINGが^arg=.{7}$にマッチしなければ
RewriteRule ^/dir/index.html$ http://hoge.jp/dir/index.html?arg=xxxxxxx [R,L]
→ URL変換してリダイレクト

http://hoge.jp/dir/

http://hoge.jp/dir/index.html?arg=xxxxxxx
に変換したかったから結局、
RewriteEngine On
RewriteCond %{QUERY_STRING} !^arg=.{7}$
RewriteRule ^/dir/index.html$ http://hoge.jp/dir/index.html?arg=xxxxxxx [R,L]
RewriteCond %{QUERY_STRING} !^arg=.{7}$
RewriteRule ^/dir/$ http://hoge.jp/dir/index.html?arg=xxxxxxx [R,L]

この記事のトラックバックURL

http://ysmt.blog21.fc2.com/tb.php/150-a2e74ba3

コメント

コメントする

管理者にだけ表示を許可する

Template Designed by DW99

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。