【发布时间】:2018-07-13 22:40:03
【问题描述】:
我需要一个正则表达式,它可以匹配带有大写字母的 url,但如果它包含像 .jpg、.css、.js 等文件名则不匹配
我想将所有大写的 url 重定向到小写,但前提是它不指向文件资源。
【问题讨论】:
标签: regex redirect nginx regex-negation
我需要一个正则表达式,它可以匹配带有大写字母的 url,但如果它包含像 .jpg、.css、.js 等文件名则不匹配
我想将所有大写的 url 重定向到小写,但前提是它不指向文件资源。
【问题讨论】:
标签: regex redirect nginx regex-negation
尝试使用像 regexpal.com 这样的正则表达式可视化工具。
这是一个正则表达式的示例,它近似于您正在尝试执行的操作:
\w+\.(?:com|net)(?:/[A-Z]+){1,}[/]?(?:\.jpg|\.png|\.JPG|\.PNG){0}$
\w+\.(?:com|net) 捕获word.com 或word.net 形式的域。 (如果您还想捕获子域,则需要添加其他域或改进它。)(?:/[A-Z]+){1,}[/]?捕获全大写目录,如 /FOO/BAR/,带有可选的尾部斜杠。(?:\.jpg|\.png|\.JPG|\.PNG){0}$ 恰好捕获了零个列出的扩展;您显然需要添加到这个扩展列表中。但也许要重新考虑您的路由;最好将所有资产保存在服务器上的专用目录中,这样您就可以在处理其他 URL 时简单地将任何请求传递给mysite.com/assets/。
【讨论】:
[A-Z]+ 组更改为\w+。