URL パラメータ内のスラッシュの処理
Web 開発では、URL を介してパラメータを渡すのが一般的です。ただし、スラッシュなどの特殊文字はルート マッチングを妨げ、問題を引き起こす可能性があります。
次の例を考えてみましょう。
routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" });
URL http://localhost:5000/Home/About を使用する場合/100/200 (URL エンコードされたスラッシュを含む) では、一致するルートがないことがわかります。
解決策:
考えられる解決策の 1 つは、キャッチオール パラメータを使用することです。たとえば、ルートを次のように変更できます。
routes.MapRoute("Default", "{controller}/{action}/{*id}", new { controller = "Home", action = "Index", id = ""});
これにより、id パラメータはスラッシュを含む値を含む任意の値を受け入れることができます。
別のオプションは、カスタム URL エンコーダを使用することです。デコーダ。これには、URL にとって問題となる文字を、Base64 エンコードなどのより適切な形式に変換するクラスの作成が含まれます。例:
public class UrlEncoder { ... }
このクラスを使用して、必要に応じてパラメーターをエンコードおよびデコードできます。サンプル実装は次のとおりです。
public string UrlEncode(string encode) { ... } public string UrlDecode(string decode) { ... }
これにより、ルートの機能を維持しながら、特殊文字をより柔軟に処理できるようになります。
最終的に、最適なソリューションはアプリケーションの特定の要件によって異なります。 。スラッシュやその他の問題のある文字が含まれる可能性のあるパラメーターを操作する場合は、次のオプションを考慮してください。
以上がURL パラメータ内のスラッシュを効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。