如何解决Nginx没有重定向到上游位置
我以为我已经了解了Nginx重写规则的基础。我错了。
您能告诉我我在做什么错吗?
server {
listen 80;
server_name myserver;
index index.php index.html index.htm;
root /apps/user/websites/;
location / {
autoindex on;
}
location ~ myapp {
try_files $uri $uri /office/myapp/api/public/index.php;
}
location ~\.php$ {
try_files $uri $uri /office/fake/index.html;
# include fastcgi.conf;
# fastcgi_pass php-fpm-upstream;
}
}
如果我访问http:// myserver / office,将访问index.php,但不会像我想的那样被最后一个位置(〜.php $)捕获,而是将其作为文本文件处理并发送浏览器。 我原本希望收到office / fake / index.html文件。
非常感谢你, 安德烈斯
解决方法
正则表达式匹配位置的检查顺序与在配置文件中出现的顺序相同。拥有
location ~ myapp {
try_files $uri $uri /office/myapp/api/public/index.php;
}
之前
location ~\.php$ {
try_files $uri $uri /office/fake/index.html;
# include fastcgi.conf;
# fastcgi_pass php-fpm-upstream;
}
将为每个包含myapp
子字符串的URI(除了那些与现有文件匹配且不以.php
结尾的URI都提供一个无限循环),因为/office/myapp/api/public/index.php
URI与{{1 }}正则表达式。您应该交换这些位置,以使此配置可行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。