ApacheサーバーからNginxサーバーに移動する必要のあるWebサイトがあります。Nginx書き換えルール/ try_filesが連携していません
RewriteEngine on
RewriteRule ^([^/\.]+)/?$ $1.php [L]
これは、元のリンクを維持するためにwww.example.com/hello.php www.example.com/helloをリダイレクトしますが、.PHPをomitingを次のようにこのウェブサイトの.htaccessファイルがありますurlの終わりから。
私は書き換えルールが.phpのファイルへのすべてのリンクをリダイレクトする、動作しますが、場合は、ディレクトリ内で検索するためのnginxののtry_filesルールを破っ
location/{
# Check if a file exists, or route it to index.php.
try_files $uri $uri/ /index.php;
}
rewrite ^/([a-z]+)$ /$1.php last;
..私のnginxのサーバーのブロックでこれを再現してみましたファイルが存在しません。
以下の管理者用リンクの例は、その中にindex.phpファイルがあるフォルダです。
www.example.com/admin
admin.phpと呼ばれるファイルがないのでtry_filesは...
www.example.com/admin/
にこれをリダイレクトする必要があります。代わりに、 '入力ファイルが指定されていません'というメッセージが表示されます。
書き換えを削除すると、try_filesが正しく機能します。ただし、この書き換えルールなしではサイトの残りの部分は機能しません。
try_filesと書き直しを一緒にする方法を知っている人はいますか?
おかげ
ベン