• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mod_rewriteでの'?'表示)

mod_rewriteでの'?'表示

このQ&Aのポイント
  • mod_rewriteを使用してURLの変換を行いたい場合、htaccessファイルを使用してRewriteRuleを設定しますが、一部の文字(「?」など)は特殊な扱いがあります。
  • RewriteRuleのパターンマッチングにおいて、「?」は文字数指定として扱われるため、そのまま表示させることはできません。
  • 代替案として、URLエンコードされた「%3F」を使用することで、「?」を表現することができます。具体的な設定方法については、APACHEマニュアルを参考にしてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.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行で書く場合は必要ありません)

oiranoinu
質問者

お礼

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