You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 2.2 Razor Pages正则排除Identity目录生成站点地图求助

解决Razor Pages站点地图排除Identity目录的问题

我注意到你在使用SodaPop.RazorPagesSitemap库时,遇到了正则表达式在线测试有效但实际项目中无法排除Identity目录的问题,结合你的代码和场景,我发现了核心问题和对应的解决方案:

核心问题:URL大小写不匹配

你在services.AddRouting中开启了LowercaseUrls = true,这意味着所有生成的URL路径都是小写格式(比如/identity/account/login),但你的正则表达式里写的是\/Identity\/(大写的I)——这就导致实际路径和正则的大小写不匹配,自然无法触发忽略规则。

修正后的正则表达式方案

针对你需要排除Identity目录及其所有子目录的需求,推荐以下两种正则配置:

  1. 精准匹配小写Identity路径(首选)
    因为你已经强制URL小写,直接匹配小写路径即可,逻辑清晰且性能更优:

    services.AddRazorPagesSitemap(options=> {
        options.IgnoreExpression = @"^\/identity\/.*$";
    });
    

    这个正则会匹配所有以/identity/开头的路径,覆盖该目录下的所有子页面和子目录。

  2. 兼容大小写的正则(备用)
    如果你担心存在大小写不一致的边缘情况,可以使用不区分大小写的正则(通过(?i)标志实现):

    services.AddRazorPagesSitemap(options=> {
        options.IgnoreExpression = @"(?i)^\/identity\/.*$";
    });
    

额外验证建议

  • 可以先手动输出几个Identity相关的URL,确认它们的实际格式(是否小写、路径结构),确保正则和实际路径完全匹配。
  • 检查SodaPop.RazorPagesSitemap库的文档,确认IgnoreExpression是匹配完整路径部分(不包含域名),这和我们的正则逻辑保持一致。

这样修改后,应该就能正确排除所有Identity相关的路径,不会出现在生成的站点地图中了。

内容的提问来源于stack exchange,提问作者Patrik Volka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 15:57:33