我有一个简单的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 。