RegEx用于验证rewriteMap中的URL

时间:2019-02-05 11:00:23

标签: regex url-rewriting web-config

我正在为办公室编写一个工具,使人们可以在web.config文件的rewriteMap中提交要使用的映射,并且我正在尝试使用RegEx针对一组规则验证两条路径但是我似乎不太了解所有基础知识,因此我正在寻求一些帮助,以使这两个表达式尽可能“防弹”。

这两个表达式的一般要求

  • 应区分大小写,因为它们将在HTML input的{​​{1}}属性中使用(在其他地方)。
  • 应该与 possible (在那里有关键字)一样基本,因为将来可能在编辑它们的人们将具有不同程度的RegEx知识-例如,使用pattern代替的[a-zA-Z0-9_]
  • 匹配项不得包含协议(\whttp)或域(httpswww.domain.tld)。 *

表达domain.tld(路径将从重定向到

我目前拥有的东西:

key

要求

  • 不能以^[a-zA-Z0-9\-_].+?[a-zA-Z0-9\-_]$ 开头或结尾。
  • 可以是目录或文件。
  • 可能包含空格。
  • 在目录结构中可能有多个层次,也可能没有多个层次。
  • 不能以某些(内部)保留的目录名称开头-当前该列表仅包含/,但还会添加更多名称。 **

以下(非详尽列表)提供了一些我需要拒绝的值的示例:

administration

表达VALUE | SHOULD BE ---------------------------|-------------- /old | old /old/dir_name/ | old/dir_name https://www.domain.tld/old | old domain.tld/file name.ext | file name.ext administration | (reject completely) administration/dir-name | (reject completely) (路径将被重定向到

我目前拥有的东西:

value
  • 必须以^/(.+?/(.+?[a-zA-Z0-9])?)?$ 开头。
  • 可以是目录或文件(但我们主要将重定向到目录)。
  • 如果是目录,则必须以/结尾。
  • 文件名将始终带有扩展名。
  • 目录名称将永远不会包含/
  • 可能包含空格。
  • 目录结构中的深度可能不高,也可能不是根目录。

以下(非详尽列表)提供了一些我需要拒绝的值的示例:

.

web.config文件(其中VALUE | SHOULD BE ----------------------------|---------------- /new | /new/ new/dir_name | /new/dir_name/ https://www.domain.tld/new/ | /new/ domain.tld/file name.ext | /file name.ext /new/dir.name/file_name.ext | (reject completely) rule的{​​{1}})中相关的Redirects是:

name

*我目前正在RegReg的那部分工作;感觉最好把它排除在我的示例之外,因为它很不完整。
**这个要求仅在我开始编写此问题后才添加,这就是为什么正则表达式示例中未解决此问题。

0 个答案:

没有答案