nginx (last/break) 重写

nginx (last/break) 重写

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

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

但是我想保留初始 URL,从研究来看,似乎只需要最后的或者休息标记。

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

永久更改为休息(或者最后的), 它似乎完全忽略了重定向。

请有人演示一下保留初始 url 的有效内部重定向 - 我知道这应该很简单,但我已经尝试了上述大量的配置变化,但似乎没有任何效果,重定向开始时比较复杂,但我已经将其简化为基本形式只是为了获得正确的语法,但我仍然失败了......

在我引用的许多页面中,这是其中之一 -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;
    }
}

答案1

rewrite ... last实际上什么也没做。

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

如果不location /area1/存在块,则由最后一条语句/area1/内部重写。/index.phptry_files

相关内容