두 대의 다른 서버에서 Slim 앱을 성공적으로 실행하고 AppFog에서 동일한 구조를 사용하여 설정했지만 정상적으로 실행되지 않았습니다.Slim Framework에서 AppFog에서 실행되는 라우팅 문제
내 디렉토리 구조로 시작합니다 :
.htaccess
/public
.htaccess
index.php
/routes
/Slim
루트 htaccess로 파일은 AppFog 워드 프로세서에서 DocumentRoot의 코드가 포함되어 있습니다. 내 API 코드가 갈 곳
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]
/공공 디렉토리이며, 슬림 index.php를 및 htaccess로 파일은 현재입니다. 서버가 http://brs.aws.af.cm/에 설치하고 나는 아래의 주요 경로를 나열했습니다
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();
: :이 의 index.php 파일은 두 가지 간단한 경로를 포함
- /=> 기본 GET 경로를 사용
- /인사/존 => 404 오류
- /공공/인사/존 =이> 작동하지만, URL에 "/ 공개"필요
그리고 여기 몇 가지 이상한 점이 있습니다. 7 자 경로로 인해 404 오류가 발생하며 6 개 이하의 경로는 기본 GET 경로를 사용합니다.
- /123456 =>는 작동하지만 기본 GET 경로
- /1,234,567 => 404 오류
내가 완전히 난처한 상황에 빠진거야를 사용해서는 안된다. DocumentRoot 코드와 관련이 있다고 생각합니다. 그러나 정확히 무엇이 정확한지는 모르겠습니다. 또한 /public/.htaccess에
RewriteBase /public/
설정을 해봤지만 아무것도에 영향을 미칠 것 같지 않습니다.
도움을 주시면 감사하겠습니다. 감사!
저는 AppFog에 익숙하지 않지만 ** 루트 ** .htaccess 파일을 제거하고 공개 디렉토리의 .htaccess 파일에 포함 시키려고 시도 했습니까? 또한 공용 RewriteRule을 제거하고 index.php/$ 1에 다시 작성하십시오. – gmartellino
@GaryM Thanks. 나는 당신의 제안을 시도했지만, ** 루트 ** 디렉토리는 기술적으로 웹 루트이므로, 첫 번째 .htaccess 파일이/public/디렉토리로 실제로 리다이렉트 될 필요가 있다고 생각한다. – brad
AppFog에서 동일한 문제가 발생했습니다. 해결책을 찾았습니까? –