index.cgiという、フォームに入力されたパラメータを元に検索結果を返すスクリプトがあるとします。

※フォームはindex.cgiで生成。

[目的1] フォームからのGET送信時にブラウザのアドレスバーに表示されるURLを静的にしたい。
[目的2] 変換されたURLから検索結果が返ってくるようにしたい。

 イメージ
 [A] http://example.com/?foo=aa&bar=bb → [B] http://example.com/foo_aa/bar_bb/

暫定的にですが、以下のように実現させました。
(1) フォームのactionに、ラッパースクリプトとしてurl.cgiを指定する。
 [A] → [C] http://example.com/url.cgi?foo=aa&bar=bb
(2) url.cgiが、[C]を[B]に変換して301リダイレクト。※[目的1]実現。
 [C] → [B]
(3) mod_rewriteで、そのURLが実在しない場合のみ、[B]を例えば以下のように変換させる。
 [B] → [D] http://example.com/(index.cgi)?param=foo_aa/bar_bb/
(4) index.cgiが、内部でparamを再変換して、検索結果を表示する。※[目的2]実現。

 ・これは一般的なやり方として「アリ」か?
 ・僕が気づいてない弊害や問題点はないか?
 ・もっとスマートな解法はないか?

是非アドバイスをお願い致します。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2010/06/22 07:10:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

  • id:atemiya
    なんか変な改行が挿入されてしまって、少し読みづらいと思いますが、
    ご容赦頂けますと幸いです。
  • id:atemiya
    補足です。
    [D]のようにURLを処理した理由は、
    http://example.com/?foo=aa&bar=bb&dummy=
    → http://example.com/foo_aa/bar_bb/
    http://example.com/?foo=aa&bar=&dummy=cc
    → http://example.com/foo_aa/dummy_cc/
    のように、変換されるURLを可変にしたいからです。

    500文字制限のため、要点以外をだいぶ略したので、
    わかりづらい説明がありましたら、お手数ですがご指摘ください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません