1

みんなで乾杯!

ご容赦ください、私は本当にこれについていくつかの調査を行いましたが、最終的な解決策に達することができなかったので、あなたの意見を聞くためにここにいます.

私が構築したいのは、次のような動的な階層ページを持つ小さな i18n-CMS です。

domain.tld/en/I/am/a/path

美しく、SEO に優れ、人に優しい URL を作成できる、パフォーマンスの負担が最も少ない方法を見つけたいと考えています。

私は Closure-Table を使用しているので、データベースに 2 つのテーブルがあり、1 つはページノード用、もう 1 つはパスツリー用、もう 1 つはローカライズされたページ用のテーブルで、特定のページノードを参照します (合計 3 つ)。

これまでの私のさまざまなソリューション:

  1. 確かに、すべての異なるリクエスト セグメントを通過し、「I」の下の「am」の下の「a」の下に英語の「パス」があるかどうかをチェックするアルゴリズムを作成できますが、これは多数のリクエスト セグメントを考慮すると非常に賢明ではないようです。ページヒット。

またはそれは?

肯定的: パスは計算されるため、パスをどこにも保存する必要はありません。そのため、ページを移動しても、パスを再計算して再度保存する必要はありません。

  1. データベースへのパス全体を VARCHAR(2000) などとして保存し、英語で「I/am/a/path」というパスを持つページがあるかどうかを確認して、それを取得するだけです。

これはかなり厄介なようです。

  1. 私が今そうしているように。現在、パスの最後に「ID」を追加しています。そのような:

    domain.tld/en/I/am/a/path.1

したがって、「domain.tld/en.1」と入力すると、正しいスラッグを持つものに転送されます。しかしここでも、1 ページごとにスラッグをデータベースに保存する必要があります。

また、id を削除したいです (mod-rewrite と .htaccess でこれを行うことはできますか?)

これについてさらに洞察はありますか?私はウェブ開発者ではないので、パフォーマンスについてはよくわかりません。

よろしくお願いします。

メレン

4

1 に答える 1

0

ページ リクエストは、編集者がページ アドレスを変更するよりも 100 万倍頻繁に発生するように思えます。したがって、私は間違いなく save-to-db オプションを使用します。できることは、そのページの「スラッグ」を保存する追加のフィールドを作成することです。.htaccess と組み合わせて、「スラッグ」アドレスからページをリダイレクトできます。たとえば http://www.fuuu.com/futest-fuでは、「futest-fu」は ID 番号 (または任意の番号) に書き換えられるスラッグです。とりわけ、Wordpress はこのように動作します。いくつかの洞察については、この議論をチェックしてください: http://wordpress.org/support/topic/where-are-the-permalinks-slug-stored-in-the-database

于 2013-09-12T13:41:29.560 に答える