是 @, !符号对于URL和路由配置是否安全?

0 c# xml asp.net asp.net-mvc asp.net-mvc-routing

我在路由器映射中形成了一些网址

/section/{{some_section_name}}
/topic/{{some_topic_name}}
Run Code Online (Sandbox Code Playgroud)

现在我正在考虑将该部分转换为短路, /!{{some_section_name}}以避免显式拼写/section

同样我想用 /@{{some_topic_name}}而不是/topic/{{some_topic_name}}

我相信浏览器不会自己编码这些字符.可以使用!和上面提到的路线中的@符号?请在网上使用这些约定给我副作用.

Ode*_*ded 5

@字符在URL上具有特殊含义 - 它是(可选)用户名/密码与主机名之间的分隔符:

//<user>:<password>@<host>:<port>/<url-path>
Run Code Online (Sandbox Code Playgroud)

请参阅RFC 1738的 3.1节.

因此,虽然对于MVC来说不是严格意义上的问题,但更多的是URL模式的问题.


对于HTTP,对!角色没有这样的限制.允许的字符列在上面链接的RFC中.