nginx - Nginx - try_files 正则表达式
问题描述
我需要将网站从 Apache 迁移到 Nginx。
在这个项目中,有一个带有这些规则的 .htaccess :
RewriteCond %{REQUEST_URI} /(.+)/media/([0-9]+)\.(.+)\.(.+)\.(.+)
RewriteRule .* - [E=logofile:/temp/logo/%2.%3.%4.%5]
RewriteCond %{REQUEST_URI} /(.+)/media/([0-9]+)\.(.+)\.(.+)\.(.+)
RewriteRule .* - [E=logopath:%{DOCUMENT_ROOT}%{ENV:logofile}]
RewriteCond %{REQUEST_URI} /(.+)/media/([0-9]+)\.(.+)\.(.+)\.(.+)
RewriteRule .* - [E=capturefile:/temp/capture/%2.%3.%4.%5]
RewriteCond %{REQUEST_URI} /(.+)/media/([0-9]+)\.(.+)\.(.+)\.(.+)
RewriteRule .* - [E=capturepath:%{DOCUMENT_ROOT}%{ENV:capturefile}]
RewriteCond %{REQUEST_URI} /(.+)/media/([0-9]+)\.(.+)\.(.+)\.(.+)
RewriteRule .* - [E=genericfile:/temp/generic/%2.%3.%4.%5]
RewriteCond %{REQUEST_URI} /(.+)/media/([0-9]+)\.(.+)\.(.+)\.(.+)
RewriteRule .* - [E=genericpath:%{DOCUMENT_ROOT}%{ENV:genericfile}]
RewriteCond %{ENV:logofile} !^$
RewriteCond %{ENV:logopath} -f
RewriteRule .* %{ENV:logofile} [L]
RewriteCond %{ENV:capturefile} !^$
RewriteCond %{ENV:capturepath} -f
RewriteRule .* %{ENV:capturefile} [L]
RewriteCond %{ENV:genericfile} !^$
RewriteCond %{ENV:genericpath} -f
RewriteRule .* %{ENV:genericfile} [L]
我尝试使用以下代码在 Nginx 块中转换它们:
location ~* ^/(.+)/media/([0-9]+)\.(.+)\.(.+)\.(.+) {
try_files $uri $uri/ /temp/logo/$2.$3.$4.$5 /temp/capture/$2.$3.$4.$5 /temp/generic/$2.$3.$4.$5;
}
但它不起作用......然而,这个指令有效,但这还不够:
rewrite ^/(.+)/media/([0-9]+)\.(.+)\.(.+)\.(.+) /temp/capture/$2.$3.$4.$5;
如果你能帮我解决这个问题,那就太好了:)
克里斯托夫
解决方案
推荐阅读
- html - 显示源文件夹中的图像
- web-services - Google Places Autocomplete(包含在 Places 详细信息中)在使用会话令牌时未触发 SKU
- directx - HLSL 自定义位打包无法正常工作
- c# - Web API:从 Get 返回的数组长度为零
- python - Weird issue with regex match
- javascript - trying to remove padding from the ul tag of the popup
- javascript - Javascript 对象值返回为 [object,object]
- python - opencensus stats python stackdriver exporter可以在python 2 app engine标准环境下使用吗?
- javascript - Apple Touch Bar 键未触发按键事件
- sql - 如何查询在 AWS Athena 中使用 Presto 的列上分区的表