ページ名を取得するためにルーティングを使用しているCMSシステムがあります。最初のアイテムと最後のアイテム(ページ名)の間に無制限の値(サブディレクトリ、製品名、さまざまなローカリゼーション)を設定する必要があります。
例えば:
/ Products / Computers / ComputerType1 /
と
/ Productos / Ordenadores / ComputerType1 /
ここで、ComputerType1はページ名です。
routes.Add(new Route("{*route}/{pageName}", routeHandler));
ルートの中央部分({* route})をワイルドカードにして、ページ名の前に無制限の数のサブディレクトリを配置できるようにする方法が見つかりません。現在、これを回避するには、次のようなデフォルトのワイルドカードルートを使用する必要があります。
routes.Add(new Route("{*route}", routeHandler));
すべてをキャッチします。ただし、ワイルドカードは、ルートコードで上記の無視として指定した場合でも、gifURLを許可しているようです。
routes.Ignore("{resource}.axd/{*pathInfo}");
routes.Ignore("{resource}.asmx/{*pathInfo}");
routes.Ignore("{resource}.ashx/{*pathInfo}");
routes.Ignore("{resource}.gif/{*pathInfo}");
routes.Ignore("{resource}.png/{*pathInfo}");
routes.Ignore("{resource}.jpg/{*pathInfo}");
routes.Ignore("{resource}.ico/{*pathInfo}");
routes.Ignore("{resource}.pdf/{*pathInfo}");
routes.Ignore("{resource}.css/{*pathInfo}");
routes.Ignore("{resource}.js/{*pathInfo}");
これを行うためのより良い方法はありますか?これはカスタムルートハンドラーを介して処理する必要がありますか?