2011-10-17 3 views
0

내 프로젝트 중 하나 인 LAMP Environment에서 CakePHP 1.3을 사용하고 있습니다. 갑자기 내 웹 사이트 경로 문제에 대해 다음과 같이 충격을 받았습니다.CakePHP 웹 사이트 경로 액세스 문제

http://localhost/project/app/webroot/index.php/mydocuments/ 

지금까지 제대로 돌아 왔지만 like :

http://localhost/project/mydocuments/ 

하지만이 경로 문제를 일으키기 위해 어떤 설정이 변경되었는지는 모르겠습니다.

CakePHP는 내 폴더 구조처럼 3 개의 기본 .htaccess 파일을 가지고 있습니다. 한 htaccess 파일은 루트 폴더 (앱 폴더 외부)에 있습니다. 하나의 htaccess 파일이 app 폴더에 있고 app/webroot 폴더에 하나 더 있습니다. 아직 여기에 설명되어 있지만 그 경로는 여전히 문제입니다 ..

답변

3

Apache를 사용 중이며 Apache docroot가 app/webroot 폴더를 가리키고 있다고 가정합니다.

Apache에서이 작업을 수행하려면 webroot 디렉토리에 .htaccess 파일이 있어야합니다. 이 도움이

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ webroot/ [L] 
    RewriteRule (.*) webroot/$1 [L] 
</IfModule> 

희망 :

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule> 

아파치 docroot에이 앱의 루트에이 같은 다른 htaccess로 파일이 필요 (권장하지 않음) 앱 루트의 경우

!

+0

답변을 주셔서 감사합니다.하지만 내 폴더 구조에 3 개의 기본 .htaccess 파일이 있고 루트 폴더 (앱 폴더 외부), 앱 폴더에 htaccess 파일 하나, 앱/webroot 폴더에 하나 더 설명되어 있습니다. 여기,하지만 여전히 그 경로는 문제입니다. –

1

두 번째로 wrdevos가 말하는 것입니다. 에 AllowOverride 없음에

대부분의 시스템에서
<Directory "/var/www/html"> 
    AllowOverride All 
    # Other options should follow... 
</Directory> 

가 디폴트 : 그 꼭대기에, 또한 에 AllowOverride이 같은 모든 설정되어 당신의 DocumentRoot의 디렉토리 지시어에서 옵션 (아파치 설정에서) 있는지 확인 .htaccess 파일은 전혀 실행되지 않습니다.

+0

답변을 주셔서 감사합니다.하지만 제 질문은 - 지금까지는 잘 작동했지만 어제 경로가 변경되어서 .htaccess 파일이 전혀 변경되지 않았습니다. .. 지금까지도 나는 .htaccess 파일에서 allowoverride를 언급하지 않았다. –

+0

다시 쓰기 모듈이 아직 실행되고 있습니까? apachectl -t -D DUMP_MODULES를 실행하고 rewrite_module이 개요에 있는지 확인하십시오. – Oldskool