我试图删除HTML内容中的特定属性的内容,同时使用nginx代理中的sub_filter
模块。
这是我试图删除其内容的属性的一个示例:
integrity="sha256-JcCQTfQJfXQCI9Pgu4C8DsPBm7t6k/3SvAXTFPsXuBk= sha512-l4H3xn9koLbrXcevxo6Hs0TnepFHVLGgQM9tUMgsYxLDsyfVzWen1sqgozMDp1hh7dF1aR3bhNTp+jjrEBTIIA=="
到目前为止,我已经尝试了不同的正则表达式的变体,它们应该可以工作,但实际上在nginx中不工作,例如这个:sub_filter integrity=".*?" integrity="";
我的方法错了吗?如何在nginx中实现此任务?
1条答案
按热度按时间csga3l581#
你的方法没有错,但是你使用的正则表达式模式对nginx中的sub_filter模块无效。sub_filter使用PCRE正则表达式语法,模式完整性=".?“不是有效的PCRE。
其内容将是:
integrity="(?.?)=(?.?)”
此模式将匹配整个完整性属性,包括名称、sha 256校验和的值和sha 512校验和的值。
(?.?)和(?.?)捕获组将捕获sha 256和sha 512校验和的值
然后,可以使用sub_filter指令将整个完整性属性替换为空字符串:
sub_filter integrity="(?.?)=(?.*?)";这将有效地从HTML内容中删除完整性属性。
例如:
这将把所有请求代理到localhost:8080的服务器。