URLに付く [ ] を外したい
現在稼働中のWebシステムの保守を担当しています。
先日、お客様から「URLに付いている [ ] を消して欲しい」との依頼がありましたが、
やり方が分からず、困っております。
現在、
xxx/aaa[]/1,2,3/bbb[]/1,2,3/ このようになっているURLを
xxx/aaa/1,2,3/bbb/1,2,3/ に変更したいという依頼です。
現在、以下のようなフォームがあり
<form action="xxx.php" method="GET">
<input type="checkbox" name="aaa[]" value="1">
<input type="checkbox" name="aaa[]" value="2">
<input type="checkbox" name="aaa[]" value="3">
<input type="checkbox" name="bbb[]" value="1">
<input type="checkbox" name="bbb[]" value="2">
<input type="checkbox" name="bbb[]" value="3">
</form>
このフォームを送信するとURLは以下のようになりますが、
xxx.php?aaa[]=1,2,3&bbb[]=1,2,3
これを .htaccess で
xxx/aaa[]/1,2,3/bbb[]/1,2,3/
というように書き換えています。
このURLを、
xxx/aaa/1,2,3/bbb/1,2,3/
に変更することはできますでしょうか?
html、.htaccess、php、どの部分が改修になっても構いません。
[ ] を削除したいという理由としては、
インターネットの広告を出すときに、広告登録フォームでURLがエラーになるから、ということでした。
広告登録フォームでURLがエラーにならなければ良いのかと思い、
xxx/aaa%5b%5d/1,2,3/bbb%5b%5d/1,2,3/ というように
[ ] の部分をURLエンコードする方法をお伝えしましたが、%が付くのもダメということでした。
xxx/aaa_0/1/aaa_1/2/aaa_2/3/bbb_0/1/bbb_1/2/bbb_2/3/ というように
カンマ区切りじゃなくなるのも嫌だそうです。
あくまで
xxx/aaa/1,2,3/bbb/1,2,3/
の形が良いとのことでした。
お礼
回答ありがとうございます。 2バイト文字が入るとsdiffの出力がずれるという問題ですが、4文字以上にならないと問題が起こらないようです。 awkはまだよく勉強していないので良くわかりませんが、回答して頂いたものをそのまま試してもうまくできませんでした。
補足
質問の例がわかりにくく、回答者の方にご迷惑おかけしました。少し補足します。 (1)gooの画面で入力したとき、半角スペースが複数続くと自動的に1つの半角スペースにされてしまうようで、質問の例の意図が伝わりにくくなってしまいました。 そこで半角スペースの変わりに_を使って例を書き直します。 (2)質問の例そのものが適切でありませんでした。全角文字が4文字以上あるとずれるようです。全角文字が多ければ多いほどずれる量も大きくなります。 例1 aaa__________aaa bbb_______|__xxx ddddd_____|__yyyy ee___________ee 例2 aaa__________aaa bbb_______|__xxx ああああ___________|__いいい ee___________ee 上の部分をメモ帳にコピーペーストすれば等幅で見られると思います。 使っているsdiffのバージョンは2.7です。