みんなで乾杯!
ご容赦ください、私は本当にこれについていくつかの調査を行いましたが、最終的な解決策に達することができなかったので、あなたの意見を聞くためにここにいます.
私が構築したいのは、次のような動的な階層ページを持つ小さな i18n-CMS です。
domain.tld/en/I/am/a/path
美しく、SEO に優れ、人に優しい URL を作成できる、パフォーマンスの負担が最も少ない方法を見つけたいと考えています。
私は Closure-Table を使用しているので、データベースに 2 つのテーブルがあり、1 つはページノード用、もう 1 つはパスツリー用、もう 1 つはローカライズされたページ用のテーブルで、特定のページノードを参照します (合計 3 つ)。
これまでの私のさまざまなソリューション:
- 確かに、すべての異なるリクエスト セグメントを通過し、「I」の下の「am」の下の「a」の下に英語の「パス」があるかどうかをチェックするアルゴリズムを作成できますが、これは多数のリクエスト セグメントを考慮すると非常に賢明ではないようです。ページヒット。
またはそれは?
肯定的: パスは計算されるため、パスをどこにも保存する必要はありません。そのため、ページを移動しても、パスを再計算して再度保存する必要はありません。
- データベースへのパス全体を VARCHAR(2000) などとして保存し、英語で「I/am/a/path」というパスを持つページがあるかどうかを確認して、それを取得するだけです。
これはかなり厄介なようです。
私が今そうしているように。現在、パスの最後に「ID」を追加しています。そのような:
domain.tld/en/I/am/a/path.1
したがって、「domain.tld/en.1」と入力すると、正しいスラッグを持つものに転送されます。しかしここでも、1 ページごとにスラッグをデータベースに保存する必要があります。
また、id を削除したいです (mod-rewrite と .htaccess でこれを行うことはできますか?)
これについてさらに洞察はありますか?私はウェブ開発者ではないので、パフォーマンスについてはよくわかりません。
よろしくお願いします。
メレン