nginx(last / break)重写

我有一个简单的nginx重写在这里,使用永久标志,它工作正常。

location /area1/ { rewrite /area1/(.*)$ / permanent; } 

但是,我想保留最初的url,这似乎从研究到只需要最后一个中断标志。

 location /area1/ { rewrite /area1/(.*)$ / break; } 

在改变永久性(或最后 )之后,似乎完全忽略了redirect。

请有人可以演示一个工作的内部redirect,保留最初的url – 我知道这应该是简单的,但我已经尝试了大量的configuration变化,上述和似乎没有工作,redirect是更复杂的开始,但我已经减less到其基本forms只是为了得到正确的语法,我仍然失败…

在我引用的许多网页中,这是一个 – https://www.nginx.com/blog/creating-nginx-rewrite-rules/

  server { listen 80; root /usr/share/nginx/html; access_log /var/log/nginx/root_host.access.log main; error_log /var/log/nginx/root_host.error.log; location /area1/ { rewrite /area1/(.*)$ / break; } if (!-e $request_filename) { rewrite /wp-admin$ $scheme://$host$uri/ permanent; rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last; rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; try_files $uri $uri/ /index.php?$query_string; } location / { try_files $uri $uri/ /index.php?$args; } } 

你的rewrite ... last并没有真正做任何事情。

您在内部重写/area1/ to / ,然后由最后一个try_files语句在内部重写为/index.php

如果没有location /area1/ block, /area1/最后的try_files语句将/area1/内部重写为/index.php