Nginx动态位置块

hjqgdpho  于 2023-10-17  发布在  Nginx
关注(0)|答案(1)|浏览(129)

我试图使用别名文件夹内的Nginx块,但经过大量的斗争,我不能成功。这是我的错误代码。

"GET https://abctasarim.com/en/products/seismic-isolator-mold-release-agent/js/modules/sliderdimensions.js/ net::ERR_ABORTED 404 (Not Found)"

我试过这个规则

location  ~ ^/products/(.?)/js/modules/ {
    autoindex on;
    alias   /home/ytsejam/public_html/luftchem/luftchem/static_cdn/;
    expires 365d;
    access_log off;
    #add_header Cache-Control "public";
    #proxy_ignore_headers "Set-Cookie";
}

但我得到了404。我尝试了很多可能的组合。
你能帮帮我吗,
谢谢
ps:工作硬编码规则:

location /en/products/seismic-isolator-mold-release-agent/js/modules/  {
     autoindex on;
     alias   /home/ytsejam/public_html/luftchem/luftchem/static_cdn/js/modules/;
     expires 365d;
     access_log off;
     #add_header Cache-Control "public";
     #proxy_ignore_headers "Set-Cookie";
}
yxyvkwin

yxyvkwin1#

查看工作代码,URL /en/products/.../js/modules/foo.js位于/home/ytsejam/public_html/luftchem/luftchem/static_cdn/js/modules/foo.js
查看失败的代码,您希望忽略en前缀以及productjs/modules之间的长描述。
你的location正则表达式是错误的,因为它不允许en前缀,我不确定.?是什么。也许你的意思是.*?,它是一个对任何字符串都不贪婪的匹配。
在正则表达式位置中使用alias需要捕获URL的整个尾部并将其附加到alias值。有关详细信息,请参阅alias指令。
举例来说:

location ~ /products/.*?/(js/modules/.*)$ {
    alias /home/ytsejam/public_html/luftchem/luftchem/static_cdn/$1;
    ...
}

相关问题