質問: ### 前提・実現したいこと 他のサーバーで動いている PHPのYiiフレームワーク2.0を使用したWebサイトを新しいサーバーで動かせるようにしたいです。 サーバー AmazonLinux2 php 7.2.14 apache 2.4.37 プロジェクトの全てのページにアクセスが出来るようにしたいです。 宜しくお願い致します。 ### 発生している問題・エラーメッセージ プロジェクトのTOPページ(index.php)はアクセス出来るのですが、 サブディレクトリ内のファイルにはcontroller経由でアクセスすると404エラーになってしまいます。 エラーログをみても何も表示されません。 前のサーバーでは問題なく動いているのでソースは問題ないと思います。 ### 試したこと ・ファイル、ディレクトリの権限を全て777にする。 ・apacheのrewrite_moduleが読み込まれていて、動かせることを確認。 ・controller経由の画面遷移時の直前まで通っていることを確認。 ### 補足情報 他のサーバー apache2.2.15 php5.5.38 また、似たような問題が起きている人もいるみたいですが、解決していないです。 https://forum.yiiframework.com/t/requested-url-not-found-on-this-server/74275 https://forum.yiiframework.com/t/getting-404-errors-on-server/87474/3
回答: Yii に限ったことではありませんが、フレームワークではすべてのリクエストを、一度フレームワークのエントリとなる php に渡して、そこから適切な処理を行うことで動作しています。 そのため、Web サーバーの設定で、すべてのリクエストをエントリphp へリライトする指定が必要となります。 Yii の場合はドキュメントルートの .htaccess で制御するので、こちらがどうなっているか確認してみてください。 また、Web サーバで .htaccess を無効にしている場合もありますので、そちらも確認しましょう。