以前、httpsは/のみhttpにリダイレクトにてトップページのみhttpにリダイレクトするという処理を行ったのですが、

https://hoge.jp/?/hoge/~~

あまり見かけないURLですが、上記のURLでもhttpにリダイレクトしてしまっていました。
QUERY_STRINGはURLに付加して渡された「?」以降の文字列ということなので、

RewriteCond %{QUERY_STRING} !^/hoge/*
RewriteRule ^/$ http://%{HTTP_HOST}/ [R=301,L]

POSTだとQUERY_STRINGにデータが入ってこないのでアプリ側で対応しかないのかと思いましたが、GETなら上記で回避することができました。
もう少し改良が必要ですので、検証する時間を作って調べてみます。

こちらの記事はなかの人(kenjionsoku)監修のもと掲載しています。
元記事は、こちら