1

いくつかの異なるサーバーでスリムアプリを正常に実行しており、今日同じ構造を使用して 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/にセットアップされており、主なルートを以下にリストしました。

  1. / => デフォルトの GET ルートを使用します
  2. /hello/john => 404 エラー
  3. /public/hello/john => 機能しますが、URL に「/public」が必要です

そして、ここにいくつかの奇妙なことがあります。7 文字のルートでは 404 エラーが発生し、6 文字以下ではデフォルトの GET ルートが使用されます。

  1. /123456 => 動作しないはずですが、デフォルトの GET ルートを使用します
  2. /1234567 => 404 エラー

私は完全に困惑しています。DocumentRootコードと関係があると思いますが、正確にはわかりません。私も設定してみました

RewriteBase /public/

/public/.htaccessにありますが、何の影響もないようです。

どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1