2012-02-24 12 views
2

URLからパラメータを非表示にしたい。私はのUUID代わりのIDSを使用していると私はURLでそれを渡したときに、それは少し長いと醜いです。最初の考えは、アンカーの隠された入力isteadの小さなフォームを使用することでしたが、フォームごとにすべてのアンカーを置き換えることは不快になります、アンカーが既に別のフォームに配置されても動作しません。POSTにリライトしてGETパラメータを隠しておいて、良いアイデアをリダイレクトしていますか?

だから、$_GET$_POST/$_SESSIONに書き換えてから、このスクリプトに再度リダイレクトしました。すべての変数が使用可能になり、URLはきれいで短くなります。

しかし、このソリューションのパフォーマンスはどうですか?このようにするのは良い考えですか?

助けや他のアイデアをいただければ幸いです。前もって感謝します。

PS。

+1

URLの「美しさ」を気にかけているだけの場合は、アプリをフレームに入れます。これは、GETパラメータを使用してURLをブックマークするユーザにも役立ちます。 –

+0

UIDはフォーム内では問題ありませんが、ページ間で渡しますか?もしそうなら、彼らはハイパーリンクに入る必要があるでしょうから、時折ポストバックのようなものを使わない限り、それらをGET文字列に入れる必要があります。あなたはおそらくこの事をセッションに入れることができますか? (それが何であるか、それが何であるかわからないときに何をするべきかを知ることは難しい)。 – halfer

+1

@Eugen時間をWeb 0.8に戻しないでください。フレームは反パターンです。 HTTPを理解し、それを賢明に使ってください。周囲を回避しようとしないでください。 – deceze

答えて

3

かわいらしのためにPOSTまたはその逆にGET変更しないでください。両方のHTTPメソッドは、多くのコンテキストで非常に異なった方法で処理され、これらの種類の副作用を引き起こしたくありません。

POSTリクエストはPOSTリクエストを必要なサイトに誰かにリンクを送信しようとする、すなわち、自己完結型のURLにすることはできません。 POSTリクエストはブラウザの履歴に繋がります。つまり、戻るボタンをクリックするとPOST経由で送信されたページに戻ります。 POSTリクエストは検索エンジンによって索引付けされません。

POSTリクエストは、データをサーバーに変更するために使用されるはずです。定期的なリクエストには使用しないでください。

もっときれいなURLが必要な場合は、他の方法でレコードを参照してください。それとも気にすることをやめるのではなく、実際にはであり、それは重要ではありません。です。

+0

これは合理的に思えます。特に、URLを持つメールをユーザーに送信するためです。また、私の解決策では、バックボタンの問題が悪く聞こえます。私はそれが最高の答えだと思う:) – zelazowy

0

あなたはuniversalyこの戦略を採用する場合はもちろん、あなたのサイトの幅全体にわたるすべての検索エンジンのメリットを失うことになります。あなたがすべき唯一の本当に使用$_POSTあなたは、(あなたがセキュアなデータHTTPSなどを送信しているか、どこ)の記憶媒体に保存する必要のあるデータを提出しているそう勧告は、「要求された」データのため$_GETです。したがって、ここでユースケースを特定し、そのパターンに従う必要があります。

私はあなたが「醜い」URLについて言っているのか理解が、これに是正措置を探しに慎重にあなたを助言します。 1つの方法は、入力パラメータに対してurlrewriteを実行することですが、データベースの検索などが必要になります(マッピングされた素敵なURL文字列を取得するためには、コストがかかる可能性があります)。

私は他の考えが発生したときにそれを取り返します。

+0

検索エンジンはそれほど重要ではありませんが、あなたと@decezeは正しいです、GETに仕事とPOSTをさせることができます。 – zelazowy

関連する問題