我很难弄清楚如何将这个htaccess规则重写为nginx规则。它是为一个在url中使用静态资产版本的遗留项目编写的。
例如,服务器上的文件位于:assets/js/jquery.min.js
获取它的URL是:assets/js/jquery.min.1661243858.js
htaccess规则为
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?\/)*?([a-zA-Z\.\-]+)(\d+)\.(bmp|css|cur|gif|ico|jpe?g|js|png|svgz?|webp|webmanifest)$ $1$2$4 [L]
</IfModule>
我尝试了一些转换器,发现一篇博客文章讨论了这个问题。但是它似乎不起作用。我使用ddev作为我的环境。当前我在.ddev/nginx_full/nginx-site.conf中设置的nginx规则,我删除了#ddev-generated:
location ~* (.+)\.(?:\d+)\.(js|css|png|jpg|jpeg|gif|webp)$ {
try_files $uri $1.$2;
}
1条答案
按热度按时间rryofs0p1#
所以问题是我假设执行
ddev start
应用了在.ddev/nginx_full/nginx-site.conf
中所做的更改。它没有。我需要使用ddev restart
。nginx规则是正确的。