web-dev-qa-db-ja.com

すべてのURLに対してpath_aliasテーブルがクエリされますか?

公開された一連のフィルターのSEO対応のURLを生成しようとしています。例:

/analyst-relations/firm?related_firm=5072は次のようになります

/analyst-relations/firm/forrester

関連する用語またはエンティティの作成/変更/削除時に、プログラムでこのパスをpath_aliasテーブルに追加/更新/削除することで、私が想像した方法の1つは、ただし、path_aliasの動作を誤解しているようです。パスを正常に追加できました/analyst-relations/firm?related_firm=5072とエイリアス/analyst-relations/firm/forresterですが、公開されたフィルターリンクは以前のようにロードされます。 path_aliasテーブルは、すべてのURLに対してクエリされませんか?そうでない場合、このパスとエイリアスを何らかの方法でエンティティに「アタッチ」することは可能ですか?

編集:私はより良い公開フィルターを使用してフィルターをリンクとして公開しているので、フォーム送信はありません

1
plambre

@Cliveの comment はほとんどの場合正しいですが、SEOの観点からは、特定のフィルターをリンクとして公開し、Googleで検索できるようにすることは理にかなっています。パスエイリアスは AliasPathProcessor に実装されています。コアエイリアスルックアップシステムはクエリパラメーターを処理できず、エンティティデータを直接クエリすることでルックアップテーブルなしでエイリアスを作成できるため、独自のパスプロセッサを追加できます。インバウンドでは、パスを内部パスに変更してクエリパラメータをリクエストに追加し、アウトバウンドではその逆にする必要があります(ただし、$ optionsを使用してクエリパラメータを削除します。これはすべての送信リンクのため、リクエストを使用しないでください)。

2
4k4