由于我已经使用 Apache 网络服务器 15 年多了,所以我想给这个新手一个机会。;) 我一直在尝试调整我的 NGINX 配置文件以使其简洁。
站点通常会将所有流量重写到特定的index.php
,但我有两个目录privacy
和eula
其中包含单独的index.php
,因此对于这两个目录,我希望它只调用目录中的文件。
例如:
location ~ /(privacy|eula) {
try_files $uri $uri/ =404;
}
导致我的浏览器将页面内容下载为.dms 文件。
如果我将位置分成两部分,如下所示:
location /privacy {
try_files $uri $uri/ =404;
}
location /eula {
try_files $uri $uri/ =404;
}
它按预期工作。
我搜索了一下,也找到了这样做的建议,但效果是一样的location ~ ^/(privacy|eula)
。我是否只能忍受 NGINX 非常冗长的事实,还是我做错了什么?
谢谢
答案1
这正则表达式 location
按顺序评估块直到找到匹配项。
在您的情况下,您已将其放置在块location ~ /(privacy|eula)
上方location ~ \.php$
,因此类似的 URI/eula/index.php
将不会被正确的位置处理,而是会被下载。
放置location ~ /(privacy|eula)
方块后该location ~ \.php$
区块。
看这个文件了解详情。