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