URL書き換えを処理するために.htaccessファイルを使用してApacheで作成して実行するカスタムPHPアプリケーションがあります。私たちはPlesk OnyxでFPMを使用してNGINXの下で動作するように変換しようとしています。カスタムPHPアプリケーションでNGINXを正しく書き直して実行するにはどうすればよいですか?
https://somedomain.com/mypage (same as index/mypage)
https://somedomain.com/index/sitemap
https://somedomain.com/blog/some-article-name
REQUEST_URIを取ると、ページの応答をレンダリングするためにそれを使用するのindex.phpファイルにこれらのURLのマップ:
アプリケーションのようなリンクを生成します。次のように
アプリケーションの構造がネストされている:
docroot (/)
./index.php //handler for the request in/
./blog/index.php //handler for any request to /blog
それぞれのindex.phpは、それがコントローラとアクションに要求をマッピングすることができるようにパス= {REQUEST_URI}を受信することを期待します?
NGINXがtryfilesと書き換えを使用してこれを行うには複数の方法を試しましたが、運はありません。書き直しを使用して私は働くことができますが、レンダリング/マイページや/インデックス/サイトマップはありません。
私は/ index/sitemapをヒットしようとすると、index.phpを実行するのではなくダウンロードします。私がブログを試しても同じことが起こります。実際に動作する唯一のパスは/です。他のすべての人がindex.phpファイルをダウンロードするだけです。
ここは私の設定ですが、どこが間違っていますか?
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control “public”;
try_files $uri @fallback;
}
location/{
#index index.php index.html index.html;
rewrite ^/([^?]*) /index.php?path=$1 break;
rewrite ^blog/([^?]*) /blog/index.php?path=$1 break;
#try_files $uri @fallback;
}