2011-09-16 7 views
0

URLの書き換えについてウェブで検索しましたが、何か良い兆候がありましたが、私が探したいと思ったものは見つかりませんでした。たとえば、私はwww.example.com?id=11を持っています。www.example.com/mikeのようなものを表示したいと思います。ここで、mikeはそのIDのユーザーです。URL書き換えのヒントが必要です

今では最善の解決策としてリライトを使用することです:www.example.com?id=11

www.example.com/11/mike私はそのルールを作成する方法を知っているが、ID番号なしでそれをコールする可能性はありますか?いつか、それを隠すために?

+1

URLを書き換えられる前に、そのユーザーのIDパラメータを 'mike'のようなものに一致させるために、最初にいくつかの種類のdbクエリを実行する必要はありませんか? –

答えて

1

最初に、www.abc.com/11/mikeからwww.abc.com?id=11に書き換えます。つまり、第1の外部リクエストが第2の内部リクエストに書き込まれ、処理されます。

11の代わりにmikeからオブジェクトを取得する方法をアプリケーションが知らない限り、です。それがない場合は、例えば、あなたは書き換えることができます:

www.abc.com/11/mike to www.abc.com/?id=mike 

をか、限り、あなたのウェブサーバが適切に設定されて、すべてのクエリ文字列なしでそれを行うと$_SERVER['PATH_INFO']からデータを読み取ることができます。

2

あなたが/ mikeを望むなら、それをあなたのコードで傍受し、それをインデックスとして保存しなければならないでしょう。 id = 11で検索する代わりに、代わりにslug = mikeを実行します。

このルートに行く場合は、不要なデータベースのロードを防ぐために、関連するフィールドをインデックスにする必要があります。

1

スクリプトに渡されるデータが$_GETの変数である必要がある場合は、そのURLを渡す必要があります。

$_GETの代わりに$_POSTのデータを使用して切り替えることはできますが、お勧めしません。また、あなたのスクリプトが期待するものを変更し、IDの代わりにユーザー名を使用すると、ユーザー名を渡す必要があります(IDを渡すこともできます)。

関連する問題