質問: 表題の通り、 htaccessを使い、動的URLを静的URLにリライトしたいのですが、 GETパラメーターが変数の場合はできないのでしょうか? 例えば、下記のような RewriteRule ^test/(.*)$/ ^test/id[]=$1 または RewriteRule ^test/(.*)$/ ^test/id%5B%5D=$1 (※%5B%5Dは[]の特殊文字) としたいのですが、htaccessには記述できないでしょうか? GETパラメーターを変数で使用しているため、 上記のような書き方ができればベストなのですが...。 どなたかお分かりになられませんでしょうか。
回答: よく忘れてしまうので、自分の確認用にコメントさせていただきますね。 リクエストパラメータの一部のパターンマッチを RewriteRuleに適用するには、 RewriteCond %{QUERY_STRING} が必要だったかと...。 こんな感じでいかがでしょうか? * RewriteCondでQueryStringから対象になる文字列をパターンマッチで拾う * ?id[]=1&id[]=2 ... などと複数来ないことを想定してるので、この辺は現実に置き換えてください * 上記のパターンマッチで抽出された値での置き換えは、 /test/ で始まるURLにパラメータがくっついている場合 ``` RewriteEngine On RewriteCond %{QUERY_STRING} ^id\[\]=(.*)$ RewriteRule ^test(/+)$ /test/%1? [R=301,L] ```