8

Apache から Nginx に移行中です。

現在、SERVER['request_uri'] を使用してルーティングを処理するカスタム コンテンツ管理ソリューションを使用しています。

私がやろうとしているのは、存在しないすべてのファイルとディレクトリの要求を /index.php にリダイレクトし、クライアントの uri を更新しないことです。ただし、ファイルが存在する場合は、代わりにそれを返したいと思います。

URL の例: localhost/content/page/1 <- $_SERVER['request_uri'] を /content/page/1 に設定する必要があります または localhost/public/script/exists.js <- 実際の値として返される必要がありますファイル。

4

1 に答える 1

10

ブロックを追加するか、nginx vhostファイルでlocation /現在のブロックを更新する必要があります。location /

index.phpファイルまたはディレクトリが見つからない場合、これによりすべてのリクエストがにリダイレクトされます。

location / {
    try_files $uri $uri/ /index.php;
}

これは、サーバー ディレクティブ内に入ります。詳細については、http://wiki.nginx.org/HttpCoreModuleを参照してください。

vhost ファイルを変更したら、nginx を再起動する必要があります

注:サーバー ブロックの try_files ディレクティブは 0.7.44 で追加されました。

于 2012-12-22T06:18:24.763 に答える