私はASP.NETMVC3アプリケーションを持っており、ユーザーは「やだやだやだならblablaの方がいい」という方針に沿って提案を投稿できます。提案の詳細ページでは、SEOに適したルートを次のように定義しました。
routes.MapRoute(null, "suggestion/{id}/{it}/would-be-better-if-{if}",
new { controller = "suggestion", action = "details" });
ご覧のとおり、「もしも」の部分を修正したいと思います。
このルートは、古い提案に対して完全に機能し、のようなリンクを生成しますsuggestion/5/this-site/would-be-better-if-it-had-a-iphone-application
。リンクをクリックすると、実際に適切な詳細ページが要求されます。
皮肉なことにテスターである私の友人は、思わず、実際にルートを破る提案を投稿することができました。
この提案のために生成されたリンクはです
/suggestion/84/this-site/would-be-better-if-would-be-better-if-was-always-alligned-in-the-middle
。
PhilHaackのRoutingDebuggerを試し、ルートが実際にまで機能することを確認したsuggestion/84/this-site/would-be-better-if-would-be-better-if-
ので、2番目の「would-be-better-if」が実際に受け入れられます。その後に何かを追加すると、実際にはURLがどのルートとも一致しなくなります(Omarに感謝します-コメントを参照してください-ヘルプが必要です)。
ルート定義は、SEOの観点から、このケースで管理できる限り良いと思うので、実際には変更したくないことを覚えておいてください。
では、どうしてルートの固定部分に等しいテキストがあると、リンクがルートと一致しなくなるのでしょうか。なぜルートが壊れているのですか?
理由を理解することで解決策が得られるか、少なくとも興味深い問題を適切に理解できると信じているので、私は実際にはその理由にもっと興味を持っています。