nginx 在一个语句中重写 login 和 login/

nginx 在一个语句中重写 login 和 login/

目前我正在使用

location /login {
                rewrite ^/login/$ /login.php last;
                rewrite ^/login$ /login.php last;
}

重写 www.example.com/login 和 www.example.com/login/。我想知道这是否也可以在一个语句中实现。我试过了,rewrite ^/login(/)$ /login.php last;但没有成功。

此外,自从我开始使用重写后,我注意到我的一些 css 路径被破坏了,因为我使用了相对路径。我会将它们全部转换为绝对路径,但我问自己在使用重写时是否还有其他需要注意的影响。

编辑:

这就是我处理 .php 的方式

location ~ \.php$ {
   if (!-f $request_filename) {
      return 404;
   }
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index index.php;
   include fastcgi_params;
   try_files $uri $uri/ /index.php;
}

答案1

location /login {
    rewrite ^/login/?$ /login.php last;
}

在 RegEx 中,问号使得前面的标记成为可选项。

相关内容