現在稼働中の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/
の形が良いとのことでした。
No.3ベストアンサー
- 回答日時:
>このフォームを送信するとURLは以下のようになりますが、
>xxx.php?aaa[]=1,2,3&bbb[]=1,2,3
HTMLの文法上は、そうなりません。
aaa[]=1&aaa[]=2&aaa[]=3&bbb[]=1&bbb[]=2&bbb[]=3
となるはずです。
もしaaa[]=1,2,3などとなっているのであれば、JavaScriptで送信データを生成しているはずですから、
そのプログラムでaaa/1,2,3となるように書き換えれば良いと思います。
--------------------
>あくまで
>xxx/aaa/1,2,3/bbb/1,2,3/
>の形が良いとのことでした。
いずれにしてもこの形式で「送信」するには、JavaScriptでデータを生成しないとダメだと思います。
サーバーで受信してからの話であればPHPで$_GET["aaa"][0]、$_GET["aaa"][1]を結合し直せば良いでしょうけど、
ただの二度手間じゃないですかね。
> aaa[]=1&aaa[]=2&aaa[]=3&bbb[]=1&bbb[]=2&bbb[]=3
> となるはずです。
確かに、サンプルのformを送信してみたら、
urlは回答いただいたものになりました。
aaa[]/1,2,3のように書き換えているところを探したら、
JavaScriptではなかったですが、
phpでリダイレクトさせている箇所を見つけました。
その部分をaaa/1,2,3に変更し、
あとはexplode(",", $_GET["aaa"])で修正前と同じ配列に戻して対応しました。
重要なヒントになりました。ありがとうございました。
No.2
- 回答日時:
>弊社では、今稼動しているソースを頼りに、カスタマイズなどの保守を行っています。
そういう事でしたら、[]を削除して問題ないかまずはソースを解析して調べるしかないのではないでしょうか。
何となく"[]"の有無でチェックボックスかどうかの判断をしてそうな気はしますけど。
ありがとうございます。
"[]"の有無でチェックボックスかどうかの判断…ではなかったですが、
受け取った値が配列だったらURLを書き換えてリダイレクトするという処理を見つけました。
No.1
- 回答日時:
[]を消すことによって、そのwebシステムにどういう影響があるのか消していいものなのかどうかわかるのは、そのwebシステムを構築し
た業者だと思いますので、たずねるならそのwebシステムを構築した業者ではないでしょうか?ありがとうございます。
Webシステムを構築した業者はどこだか分かりません。
倒産したのかなどの詳しい話は分かりませんが、
こういった内部仕様が分かる資料やそれを知っている人もいないようです。
弊社では、今稼動しているソースを頼りに、カスタマイズなどの保守を行っています。
ちなみに、
<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="aaa" value="1">
<input type="checkbox" name="aaa" value="2">
<input type="checkbox" name="aaa" value="3">
として、
チェックボックスすべてにチェックを付けて送信しても、
URLは
xxx.php?aaa=1&aaa=2&aaa=3&bbb=1&bbb=2&bbb=3 となるはずだと思いますが
.htaccess で書き換えられた結果は
xxx/aaa/3/bbb/3/ となってしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
4バイトを10進数に変換する方法
-
[XSLT]累乗と平方根
-
XMLのエラーコードの意味が理解...
-
ブレークポイントで止らない
-
CPUの考え方を教えてください ...
-
ルート要素ノードが2個ある場合?
-
重複するものを消したい
-
xmlファイルが上手にHTMLに変換...
-
バッチファイルでテキストファ...
-
ASP.NETでツリービューを作成し...
-
特殊記号が勝手にエスケープさ...
-
東芝のDynabookなのですがアン...
-
■XSLT■固定文字を使ったループ...
-
空かスペースを認識させること...
-
VBでXMLファイルを作ると xmlns...
-
SNMP リンクダウンとノードダ...
-
タグの有無の判定
-
XSLTでの正規表現判定
-
XMLで要素が記述された順番に意...
-
UTF8への変換について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
4バイトを10進数に変換する方法
-
動的な構造体配列の初期化
-
concat関数内でのシングルクォ...
-
ブレークポイントで止らない
-
VB.NETで最後フォのフォ...
-
MSXMLを使ってノードを削除した...
-
URLに付く [ ] を外したい
-
XMLのエラーコードの意味が理解...
-
XML表示を2段階で…
-
VB2008EEラジオボタンにて、
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
XMLで要素が記述された順番に意...
-
SNMP リンクダウンとノードダ...
-
XML、XSLTの適応エラー(IEから...
-
ルート要素ノードが2個ある場合?
-
昔Winnyってありましたけど、あ...
-
バッチファイルでテキストファ...
-
C#でTreeViewのCheckBoxのサイ...
-
同じタグ名の項目取得
おすすめ情報