1

CMSの構築を考えていたので、投稿にワードプレスのようなパーマリンクを実装したいと思います。それ、どうやったら出来るの?
つまり、ページのカスタムURL構造を定義するにはどうすればよいですか?

4

3 に答える 3

1

..."http://...PostID?123&CatID=232&..." のような URL パラメーターを渡すリンクを作成することをお勧めします。これにより、ユーザーがその特定のリンクをクリックしたときにパラメーターを解析できるようになります。 URL に入力し、ID に基づいて正確な投稿を取得するか、必要に応じて他のフィールドを渡してさらにフィルタリングを行います。

于 2010-11-10T17:58:24.533 に答える
1

どの言語を使用していますか? 私は、あなたが PHP について考えていると仮定しています (ワード プレスへの参照を考慮して)。いくつかのオプションがあります:

  1. Mod-Rewrite
  2. ルーター

私の意見では、最適なオプションは、優れたルーティング機能を提供する最新の Web フレームワークを見つけることです。さらに、既存の CMS の変更を検討してください (多くの CMS が存在します。ワード プレスについて聞いたことがあるようです)。

于 2010-11-10T17:59:04.293 に答える
1

すべてを自分で構築したい場合は、最初にフロントコントローラーが何であるかを理解してください。これは、異なる URL に対して同じコードをどのように実行するかという根本的な問題に実際に対処するためです。このことを理解した上で、この設計パターンの問題を解決するには、URL の書き換えと物理ファイルの生成の 2 つの方法があります。

URL 書き換え

URL 書き換えでは、要求された URL をインターセプトして、フロント コントローラーに送信する必要があります。通常、これは Web サーバー レベルで行われますが、一部のアプリケーション サーバーは Web サーバーとしても機能します。Apache では、他の人が投稿したように、次のようなルールで mod_rewrite を使用します。

RewriteRule ^/(.*) /path/to/front/controller.ext [E=REQUEST_URI:%{REQUEST_URI},QSA,PT,NS]

このルールでは、最初に要求されたパスが "REQUEST_URI" という変数としてフロント コントローラーに送信されます。PHPでアクセスするための正しい構文がわからないことに注意してください。フロント コントローラー ハッシュ (MD5 など) では、この値を使用してデータベースからレコードを検索します。使用するハッシュ アルゴリズムが重複を生成することを考慮してください。CLOB を検索できないと仮定して、データベース内の varchar データの最大列サイズに関係なく URL を許可する場合は、ハッシュが必要です。

物理ファイルの生成

物理ファイルの生成では、想像している永続的な URL にマップされるファイルが作成されます。したがって、投稿時にファイルを作成/名前変更するものを作成します。これにより、ハッシュを保存する必要がなくなり、代わりに提供したい投稿に関する情報 (投稿の ID) をそのファイル内に配置し、それをフロント コントローラーに渡します。

おすすめ

私の好みは URL 書き換えアプローチなので、実行時に動的コード ファイルを書き出すことについて心配する必要はありません。とはいえ、魔法の少ないものが必要な場合、または多くのリクエストが予想される場合は、物理ファイルの生成が適しています。これは、より明白であり、サーバーが行う作業が少なくて済むためです。

于 2010-11-10T18:46:48.330 に答える