Назад | Перейти на главную страницу

REQUEST_URI htaccess nginx

htaccess в помощь по преобразованию перезаписи nginx

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

Хочу при доступе uri ПОЛУЧИТЬ http: // локальный / больничный_проект / apiv01 / listHospital / 3211 может отображать

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

Я использовал такую ​​конфигурацию анилцетина:

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

}

Также я использовал конфигурацию https://winginx.com/en/htaccess как это:

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

Но когда я получаю доступ http: // локальный / больничный_проект / apiv01 / listHospital / 3211 выход равен http: // локальный / больничный_проект / apiv01 (нет эффекта)

Нормально, если я использую http: //localhost/hospital_project/api.php? params = apiv01 / listHospital / 3211

--- Редактировать также я использую

местоположение / больничный_проект / apiv01 {try_files $ uri $ uri / /hospital_project/api.php?params=$request_uri; } но и никакого эффекта

это решение с использованием обратного прокси для apache2, как это

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;
}

но мне все еще любопытно, использовать ли перезапись в nginx

nginx реализует шаблоны фронт-контроллера проще и эффективнее, чем Apache. В вашем случае способ nginx выглядит так:

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

Вы добавляете это место только в начало конфигурации nginx. Вам не нужно использовать if или rewrite директивы вообще.

извините, значит, я использую;

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

но никакого эффекта

также я использую

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

но тоже никакого эффекта

это решение с использованием обратного прокси для apache2, как это

    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;
    }

но мне все еще любопытно, использовать ли перезапись в nginx