我怎样才能让我网站的用户拥有一个带有 .net 核心的个人 URL?

How can I allow users of my site to have a personal URL with .net core?

如果我的站点位于 example.com 并且我有一个名为 Joe 的用户,我如何允许 Joe(或在该站点上注册的任何其他人)拥有 personal/custom URL 比如例子。com/Joe?我在 Azure 中使用自定义域托管的 Razor Pages .net core 3.1。

目录结构如下:

example.com/Users/Index?id=1 could rewrite to example.com/Joe
example.com/Profiles/Index?id=7 could rewrite to example.com/Joe/Profile
example.com/Photos/Index?id=5 could rewrite to example.com/Joe/Photos

等等

您可以在您的项目中使用urlrewrite。详情请见offical document.

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }
        // add rewrite
        var rewrite = new RewriteOptions()
         .AddRewrite(@"user/(.*)", "home/user?username=", skipRemainingRules: true);
        app.UseRewriter(rewrite);

        app.UseStaticFiles();
        app.UseRouting();
        app.UseAuthorization();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");
        });
    }