いくつかの異なるサーバーでスリムアプリを正常に実行しており、今日同じ構造を使用して AppFog でセットアップしようとしましたが、正常に実行されません。
ディレクトリ構造から始めます。
.htaccess
/public
.htaccess
index.php
/routes
/Slim
ルート.htaccessファイルには、AppFog ドキュメントの DocumentRoot コードが含まれています。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^brs.aws.af.cm$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.brs.aws.af.cm$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]
/publicディレクトリは、私のAPI コードが置かれる場所であり、Slim index.phpおよび.htaccessファイルは現在あります。index.phpファイルには、2 つの単純なルートが含まれています。
require '../Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
// Default GET route
$app->get('/', function () {
echo "Default GET route";
});
// Hello World route
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();
サーバーはhttp://brs.aws.af.cm/にセットアップされており、主なルートを以下にリストしました。
- / => デフォルトの GET ルートを使用します
- /hello/john => 404 エラー
- /public/hello/john => 機能しますが、URL に「/public」が必要です
そして、ここにいくつかの奇妙なことがあります。7 文字のルートでは 404 エラーが発生し、6 文字以下ではデフォルトの GET ルートが使用されます。
- /123456 => 動作しないはずですが、デフォルトの GET ルートを使用します
- /1234567 => 404 エラー
私は完全に困惑しています。DocumentRootコードと関係があると思いますが、正確にはわかりません。私も設定してみました
RewriteBase /public/
/public/.htaccessにありますが、何の影響もないようです。
どんな助けでも大歓迎です。ありがとう!