困っていること
XREA FREEを利用して、Slimで作成したアプリケーションをデプロイしたのですが、404が返されてしまいます。
ローカル上でビルトインサーバーを立ててアクセスすると正常にレスポンスは返されています。
もし過去に同じレンタルサーバーを使ってSlimのアプリをデプロイしたことがある方や、原因が分かる方がいらっしゃれば、ご教示いただきたく思います。
試したこと
slimのディレクトリ構造
・public
ーindex.php
1:ローカル環境での動作確認
フロントコントローラー(index.php)の階層ででビルトインサーバーを立てて、「localhost:8000/」でアクセスすると正常にコンテンツが表示される。
2:本番環境での動作確認
ドキュメントルート(public_html)の2階層下(階層2)にslimを配置し、「http://ホスト名/階層1/階層2/public/」でアクセスすると、Slimによって
{ "statusCode": 404, "error": { "type": "RESOURCE_NOT_FOUND", "description": "Not found." } }
が返されます。(これがjsonが返されるということはslimそのものは動作しているはず...)
※アクセスしているURL(http://ホスト名/階層1/階層2/public/)が間違っているか、.htaccsessの記述がおかしいかのどちらかかと思っているのですが原因がわかりません...。
もしくはサーバーからcomposerインストールせずに、プロジェクトをそのまま直接アップロードしたことが原因でしょうか...(autoload.phpへのパスは通してslim自体は正常に動作してるっぽいです)
環境
本番環境
PHP7.2
CentOS 7.5
Apache/2.4.6
以下.htaccsess(デフォルトの記述)
<IfModule mod_rewrite.c> RewriteEngine On # Some hosts may require you to use the `RewriteBase` directive. # Determine the RewriteBase automatically and set it as environment variable. # If you are using Apache aliases to do mass virtual hosting or installed the # project in a subdirectory, the base path will be prepended to allow proper # resolution of the index.php file and to redirect to the correct URI. It will # work in environments without path prefix as well, providing a safe, one-size # fits all solution. But as you do not need it in this case, you can comment # the following 2 lines to eliminate the overhead. RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ RewriteRule ^(.*) - [E=BASE:%1] # If the above doesn't work you might need to set the `RewriteBase` directive manually, it should be the # absolute physical path to the directory that contains this htaccess file. # RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L] </IfModule>
ローカル環境
PHP7.1
centOS6
Apache/2.2.15
あなたの回答
tips
プレビュー