0

私の問題は、ユーザーにカスタム url を持たせたいということhttp://mywebsite.com/usernameです。

について読んだことがあります.htaccess fileが、私は GoDaddy を使用しているので、web.config file.

問題は、現在、ユーザー プロファイルの URL が表示されず、どのユーザーにも固有の PHP コードが表示されないことです。すべてのユーザーに対してhttp://mywebsite.com/profileと表示されているだけです (サイトはまだテスト モードであるため、実際のユーザーはいません)。

現在、プロファイルの URL に特定のユーザー情報が表示されていない場合、URL の書き換えを機能させるにはどうすればよいuser?id=3ですか? そして、少なくとも現在のプロファイルを取得して特定のユーザー情報を取得するにはどうすればよいですか?

4

1 に答える 1

1

個人的には、.htaccess に頼るのではなく、必要なすべてのルーティング ロジックをアプリケーションで実行するようにします。これはがそれを行う方法です:

まず、ビルド済みのルーター クラス/モジュール/ライブラリを使用します。PHP でコーディングしている場合は、Alloy Routerなどを使用します。何らかのフレームワークを使用している場合、ルーティングは既に組み込まれている可能性があります。

次のステップは、以前に「キャッチ」されていないすべてのルートをキャッチする「すべてキャッチ」プロファイル ルートを作成することです。「website.com/about」、「website.com/contact」など、他のルートがたくさんある場合があります。これらは最初にキャッチされ、次にキャッチオール ルートが他のすべてを取得します。

キャッチオール ルートは、アプリケーションを「プロファイル」コントローラーにルーティングします。このコントローラーは、指定されたルートを見て、ルート内の「ユーザー名」がデータベース内のユーザー名と一致するかどうかを確認します。その場合は、その特定のユーザーのプロファイルを作成します。そうでない場合は、404 を提供します。

すべてのユーザー名が一意であり、他のルートと競合しないようにする必要があります (つまり、ユーザーは "about" というユーザー名を持つことはできません。そうしないと、ユーザーの URL が "about" ルートによってキャッチされます)。

最後に、アプリケーション内で、すべてのリンクを適切な URL に移動させる必要があります。上部のナビゲーション バーに「プロフィール」ボタンがある場合は、実際に「website.com/username」に移動することを確認する必要があります。ユーザー名は、現在ログインしているユーザーの実際のユーザー名です。他のユーザーのプロファイルへのリンクはすべて動的に作成され、ユーザー名を含む正しい URL に移動します。

于 2012-03-05T17:38:21.660 に答える