- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mod_rewriteでの'?'表示)
mod_rewriteでの'?'表示
このQ&Aのポイント
- mod_rewriteを使用してURLの変換を行いたい場合、htaccessファイルを使用してRewriteRuleを設定しますが、一部の文字(「?」など)は特殊な扱いがあります。
- RewriteRuleのパターンマッチングにおいて、「?」は文字数指定として扱われるため、そのまま表示させることはできません。
- 代替案として、URLエンコードされた「%3F」を使用することで、「?」を表現することができます。具体的な設定方法については、APACHEマニュアルを参考にしてください。
- みんなの回答 (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行で書く場合は必要ありません)
お礼
ありがとうございます! 順調に運用できました。大変助かりました。