gpt4 book ai didi

regex - 在 nginx 上的正则表达式重写测试中使用变量

转载 作者:行者123 更新时间:2023-12-03 21:54:10 24 4
gpt4 key购买 nike

我有一个在 nginx 上运行的 Wordpress 多站点网络。我正在尝试使用 w3 总缓存设置缓存。我 99% 都在那里,但我只是坚持一个规则。

我找到了 some instructions这将我指向了这个重写规则,以使用漂亮的 URL 重写缩小的 css 和 js 文件:

# Rewrite minified CSS and JS files
location ~* \.(css|js) {
if (!-f $request_filename) {
rewrite ^/wp-content/w3tc/min/(.+\.(css|js))$ /wp-content/w3tc/min/index.php?file=$1 last;
}
}

我像这样修改它以在我的多站点环境中工作:
rewrite ^/wp-content/w3tc-$host/min/(.+\.(css|js))$ /wp-content/w3tc-$host/min/index.php?file=$1 last;

但是我发现该测试无法解释 $host变量,而是实际测试字符串 "$host" .有什么方法可以实际使用 $host 的值吗?测试中的变量?或者,使用一般规则是否是个好主意,例如:
rewrite ^/wp-content/w3tc-.*?/min/(.+\.(css|js))$ /wp-content/w3tc-$host/min/index.php?file=$1 last;

我愿意就此提出更好的建议 - 正则表达式对我来说不是一个强项。

最后,对于任何寻找替代答案的人:只需在缩小设置中禁用“重写 URL 结构”,就可以使缩小工作。这纯粹是为了缩小文件的漂亮 URL。

最佳答案

变量插值在重写正则表达式中不可用。我会使用类似的东西:

rewrite ^/wp-content/w3tc-(.*?)/min/(.+\.(css|js))$ /wp-content/w3tc-$1/min/index.php?file=$2 last;

关于regex - 在 nginx 上的正则表达式重写测试中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13744619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com