2012-03-19 2 views
2

작동하지 라우팅이 나는 첫 번째 경로가 제대로 일치한다 follows-FatFree 생산

F3::route('GET /', 'Main->get_front_page'); 
F3::route('GET /login/check_for_login', 'Login->check_for_login'); 

많은 라우팅 경로를 사용하여 응용 프로그램을 가지고있다. 그러나 두 번째 경로는 일치하지 않으며 404가 표시됩니다. 첫 번째 경로 이후의 경로는 실제로 일치하지 않습니다.

문제가 더 복잡해지기 때문에 모든 경로가 내 로컬 컴퓨터에서 작동합니다.

+0

하위 디렉토리 또는 기본 사이트에서 사용하고 있습니까? –

+1

서브 디렉토리로 사용 중입니다. 그러나, 나는 그 문제를 해결했다. 내 rewrite_mod가 제대로 작동하지 않았습니다. 명령 en2mod가 작동하지 않습니다. 하나는 AllowOverride를 수동으로 변경해야합니다. 나는 나의 localhost에 그것을했다는 것을 잊었다. – Siddharth

답변

3

아파치 .htaccess 파일을 확인하십시오. 특히 RewriteBase URL. 나는 종종 이것을 잊어 버리는 경향이있다.

+1

내 htaccess로 파일이 RewriteBase/ 한다 RewriteCond % {REQUEST_FILENAME}에 this-한다 RewriteEngine처럼 보인다! -f 한다 RewriteCond % {REQUEST_FILENAME}! 한다 RewriteRule을 -d. *의 index.php [L, QSA] 나는 또한 사용하고 내 localhost에있는 동일한 .htaccess 파일. – Siddharth

+0

제공 할 수있는 로그/오류 메시지가 있습니까? – egis

+1

이 오류는 error.log에 있습니다. - [Mon Mar 19 12:23:56 2012] [오류] [클라이언트 122.169.95.17] 파일이 존재하지 않습니다 :/var/www/login, referer : http : // db .educateglobal.org/ 이것이 무슨 뜻인지 이해가되지 않습니까? 그런 파일을 찾는 이유는 무엇입니까? – Siddharth

0

공유 호스팅의 경우 fatfree 프레임 워크 배포가 로컬 서버에서와 같이 작동하지 않는다. 그래서 당신은 위의 코드를 사용하여 htaccess로 파일을 생성 .htaccess 파일

# Enable rewrite engine and route requests to framework 
RewriteEngine On 

# Some servers require you to specify the `RewriteBase` directive 
# In such cases, it should be the path (relative to the document root) 
# containing this .htaccess file 
# 
# RewriteBase/

RewriteRule ^(tmp)\/|\.ini$ - [R=404] 

RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php [L,QSA] 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 

를 작성하고 지방 무료 프레임 워크 프로젝트의 루트에 파일을 배치해야합니다. 나는 이것을 시도하고 잘 작동한다.