I developed the NuGet open source library for the first issue, which implicitly converts EveryMvc / Url to every-mvc / url.
Dotted URLs are much more SEO friendly and easier to read. ( More on my blog post )
NuGet Package: https://www.nuget.org/packages/LowercaseDashedRoute/
To install it, simply open the NuGet window in Visual Studio by right-clicking Project and selecting NuGet Package Manager, and on the Online tab, enter βLine-hatched routeβ and it should appear.
Alternatively, you can run this code in the package manager console:
Install-Package LowercaseDashedRoute
After that, you should open App_Start / RouteConfig.cs and comment on the existing route.MapRoute (...) and add instead:
routes.Add(new LowercaseDashedRoute("{controller}/{action}/{id}", new RouteValueDictionary( new { controller = "Home", action = "Index", id = UrlParameter.Optional }), new DashedRouteHandler() ) );
What is it. All URLs are lowercase, dotted, and converted implicitly if you do nothing.
Open Source Project Url: https://github.com/AtaS/lowercase-dashed-route
When it comes to the second problem, you can do this either by creating your own routes, or by processing not found using the error handling mechanism, but routing will be faster if you restrict the profile URLs to accept some rules (for example, not have no slashes) so that you can distinguish it from other URLs much easier, for example, from the URLs of content files, i.e. .css.js, etc.