アプリ版:「スタンプのみでお礼する」機能のリリースについて

http://www.example.com/search.cgi?a=mypage&b=go& …
を、
http://www.example.com/mypage/go/search?c=1&d=2
に変えたいですが、どのようにすればよいのでしょうか?

htaccessでは・・・

Options +FollowSymlinks
RewriteEngine on
RewriteRule
^/([0-9A-Za-z]+)\/([0-9A-Za-z]+)\/search?c=([0-9A-Za-z]+)&d=([0-9A-Za-z]+)$
/search.cgi?a=$1&b=$2&c=$3&d=$4 [L]

にしてもアクセスできません…

APACHEマニュアルでは「?」は文字数指定と言う文法に
なるらしく、「?」を表示させたいです。
http://httpd.apache.org/docs/1.3/mod/mod_rewrite …

どうすればよろしいでしょうか?ご教示ください。

A 回答 (1件)

RewriteRuleではquery string(URLの?以降の文字列)にマッチさせることは出来ません。

query stringの操作にはRewriteCondを使います。
しかしご質問のケースでは元のquery string(c=1&d=2)の部分は変更する必要がないので%{QUERY_STRING}をそのまま使えばよいと思います。

RewriteRule \
^/([0-9A-Za-z]+)/([0-9A-Za-z]+)/search$ \
/search.cgi?a=$1&b=$2&%{QUERY_STRING} [L]

でどうでしょう。(\は改行のエスケープなので1行で書く場合は必要ありません)
    • good
    • 0
この回答へのお礼

ありがとうございます!
順調に運用できました。大変助かりました。

お礼日時:2006/01/24 12:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!