REQUEST_URI htaccess nginx

REQUEST_URI htaccess nginx

ajuda de conversão de reescrita de htaccess para nginx

RewriteEngine On
RewriteCond %{REQUEST_URI} apiv01
RewriteRule ^(.*)$ api.php?params=$1 [NC]

Quero quando acessar uri GEThttp://localhost/hospital_project/apiv01/listHospital/3211pode exibir

    {"header":{"code":"401","message":"wrong token"}}

Eu usei a configuração da anilcetina assim:

location /hospital_project {
if ($uri ~ "apiv01"){
        set $rule_0 1$rule_0;
        }
if ($rule_0 = "1"){
        rewrite ^/(.*)$ /hospital_project/api.php?params=$1;
        }

}

Também usei a configuração dehttps://winginx.com/en/htaccessassim:

location /hospital_project {
  rewrite apiv01 /hospital_project/api.php?params=$1;
}

Mas quando eu acessohttp://localhost/hospital_project/apiv01/listHospital/3211a saída é igual ahttp://localhost/hospital_project/apiv01(sem efeito)

Normal se eu usarhttp://localhost/hospital_project/api.php?params=apiv01/listHospital/3211

--- Editar também eu uso

localização /hospital_project/apiv01 { try_files $uri $uri/ /hospital_project/api.php?params=$request_uri; } mas também sem efeito

isso resolve usando proxy reverso para apache2 assim

location /hospital_project {

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8888;
}

mas ainda estou curioso para saber se estou usando rewrite no nginx

Responder1

O nginx implementa padrões de controlador frontal de uma forma mais simples e eficaz que o Apache. A maneira nginx é assim no seu caso:

location ~ ^/(hospital_project/apiv01.+)$ {
    try_files $uri $uri/ /hospital_project/api.php?params=$1;
}

Você adiciona esse local apenas na parte superior da configuração do nginx. Você não precisa usar ifnenhuma rewritediretiva.

Responder2

desculpe, quero dizer que eu uso;

location /hospital_project/ {
  rewrite apiv01 /hospital_project/api.php?params=$1;
}

mas nenhum efeito

também eu uso

location /hospital_project/apiv01 {
    try_files $uri $uri/ /hospital_project/api.php?params=$request_uri;
}

mas também nenhum efeito

isso resolve usando proxy reverso para apache2 assim

    location /hospital_project {

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:8888;
    }

mas ainda estou curioso para saber se estou usando rewrite no nginx

informação relacionada