【问题标题】:How can I allow users of my site to have a personal URL with .net core?如何允许我网站的用户拥有带有 .net 核心的个人 URL?
【发布时间】:2020-09-06 09:41:59
【问题描述】:

如果我的网站位于 example.com,并且我有一个名为 Joe 的用户,我如何允许 Joe(或在该网站上注册的任何其他人)拥有像 example.com/Joe 这样的个人/自定义 URL?我正在使用托管在 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

【问题讨论】:

  • 我认为结构类似于example.com/Users/:id could rewrite to example.com/Users/Joe,example.com/Profiles/:id could rewrite to example.com/Profiles/Joe等等。
  • @Dobestar,让用户名和用户名一样友好是否可行,因为用户名可以重复你将如何处理这种情况.. 你将如何处理两个同名用户?
  • 学习是对的,所以建议不要在url上使用username,而是使用userid。您可以查看示例:stackoverflow.com/users/7687666
  • 这个问题的进展如何?您需要进一步的帮助吗?
  • 如果我想让用户选择他们的个人资料“名称” - 在录制时我可以检查它是否是唯一的 - 我如何设置重写规则以在数据库然后重定向到正确的 url,例如如果有人将他们的页面别名设置为 Bumblebee123,那么 url 'Users/Bumblebee123' 应该检查 db,找到记录,说它的 ID 为 5,然后重定向到 'Users/Index?id=5'

标签: c# .net-core azure-web-app-service razor-pages


【解决方案1】:

您可以在项目中使用 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=$1", skipRemainingRules: true);
        app.UseRewriter(rewrite);

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

【讨论】:

    猜你喜欢
    • 2014-10-28
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 2010-11-01
    相关资源
    最近更新 更多