
htaccess から nginx への書き換え変換のヘルプ
RewriteEngine On
RewriteCond %{REQUEST_URI} apiv01
RewriteRule ^(.*)$ api.php?params=$1 [NC]
アクセスURIがGETされたらhttp://localhost/hospital_project/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://localhost/hospital_project/apiv01/listHospital/3211出力はhttp://localhost/hospital_project/apiv01(無効)
使用している場合は正常ですhttp://localhost/hospital_project/api.php?params=apiv01/listHospital/3211
--- 編集も使用
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でrewriteを使用するかどうかはまだわかりません
答え1
nginx は、Apache よりもシンプルで効果的な方法でフロント コントローラー パターンを実装します。この場合、nginx の方法は次のようになります。
location ~ ^/(hospital_project/apiv01.+)$ {
try_files $uri $uri/ /hospital_project/api.php?params=$1;
}
この場所は、nginx 設定の先頭に追加するだけです。if
またはrewrite
ディレクティブを使用する必要はまったくありません。
答え2
申し訳ありませんが、私が使用したのは;
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でrewriteを使用するかどうかはまだわかりません