Nginx位置/覆盖所有其他位置
我正在尝试编写一个简单的nginx配置。我需要的是:Nginx位置/覆盖所有其他位置,nginx,nginx-location,Nginx,Nginx Location,我正在尝试编写一个简单的nginx配置。我需要的是: 如果根目录中存在文件,请为该文件提供服务 如果url为/default/url,则显示/some/path2/index.html 否则重定向到/default/url 我的配置如下 server { listen 127.0.0.1:80; server_name my.domain.com; root /some/path/html; location / { retur
server {
listen 127.0.0.1:80;
server_name my.domain.com;
root /some/path/html;
location / {
return 302 /default/url;
}
location = /default/url {
rewrite ^/(.*)$/some/path2/index.html;
}
location /default/e_schema {
proxy_pass http://other.host.com;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
无论url如何,它都会立即重定向到/default/url。
我试图将位置/块放在底部和顶部。我尝试使用位置~/.降低优先级,但没有任何帮助。如果我删除了位置/,一切正常,我的要求2和3就可以了
根据这个答案,它应该可以工作。您在位置块中放置了一个“=”
location = /default/url {
你能试着把这个拿走吗?我相信可能是设置了url,您在位置块中添加了“=”
location = /default/url {
你能试着把这个拿走吗?我相信可能是设置了url,问题就在这里
location = /default/url {
rewrite ^/(.*)$/some/path2/index.html;
}
这使得内部重定向到/path中的/some/path2/index.html,从而触发重定向到/default/url的location/块,以此类推
我的解决方案是创建空块,将路径从位置/
location /some/path2/index.html {}
问题就在这里
location = /default/url {
rewrite ^/(.*)$/some/path2/index.html;
}
这使得内部重定向到/path中的/some/path2/index.html,从而触发重定向到/default/url的location/块,以此类推
我的解决方案是创建空块,将路径从位置/
location /some/path2/index.html {}
否,删除后=结果相同。我添加它是因为我需要精确匹配,有像/default/url/style.css这样的文件,所以删除=将导致不保存这些文件。不,删除=后的结果是相同的。我添加它是因为我需要精确匹配,有像/default/url/style.css这样的文件,所以删除=将导致不保存这些文件。