2010-01-04 2 views
10

내 기본 '젠드'응용 프로그램이 기본 구조젠드와 htaccess로

/zend + webroot 
    /application 
    /config 
    /library 
    /public 
     .htaccess 
     index.php 

을 가지고 있으며, 기본 htaccess로는 ./public/index.php

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 
를 통해 다양한 컨트롤러/액션 세부 사항을 리디렉션

나는 지금 웹 루트는 'ZE 이상 공유 호스트로 이동 한 응용 프로그램을

http://domain/index.php 

액세스하려면이 기본 URL을 사용 nd '루트.

/webroot 
    /zend 
     /application 
     /config 
     /public 
      index.php 
      .htaccess 

하지만 난 단지 내가

http://domain/zend/index.php 

을 사용할 수 있도록 원하는 htaccess로 리디렉션가이 URL

http://domain/zend/public/index.php 

를 통해 내 응용 프로그램에 액세스 할 수 있습니다.

그리고 URL 요청을 리디렉션하기 위해 .htaccess 파일을 조정할 수 있는지 궁금합니다. 나는 이 tutorial을 읽을 수는 있지만 내가 didn를, 나

/webroot 
    /zend 
     .htaccess 
     /application 
     /config 
     /library 
     /public 
      index.php 

에 대한 t 작업이이 경우

RewriteEngine On 

RewriteRule ^\.htaccess$ - [F] 

RewriteCond %{REQUEST_URI} ="" 
RewriteRule ^.*$ /public/index.php [NC,L] 

RewriteCond %{REQUEST_URI} !^/public/.*$ 
RewriteRule ^(.*)$ /public/$1 

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^.*$ - [NC,L] 

RewriteRule ^public/.*$ /public/index.php [NC,L] 

수 누군가 자리 아무것도에서의 .htaccess 내용입니까?

답변

17

이 코드를 포함하는 젠드/index.php를 만들기 :

<?php include 'public/index.php'; 

이제이 코드를 포함하는 젠드/htaccess로 만들 :

SetEnv APPLICATION_ENV development 

RewriteEngine On 
RewriteRule .* index.php 

이 이미지/CSS/JS 파일이 모두 있는지 확인을 zend/public/within/zend/public/.htaccess 파일을 지우지 마십시오.

요청의 baseUrl에는 '/ public'이 포함되지 않으므로 언제든지 추가해야합니다. 당신이 참조한 CE 공개 파일.

감사합니다,

롭 ...

+0

나는 당신의 방법을 시험해 보았습니다. 그러나 웹 페이지는 모든 형식화 (CSS 등의 접근)를 잃었습니다. 해골 응용 프로그램 – ChrisBorg

+0

을 사용하고 있습니다. emeraldjava가 제공하는 링크에 대한 자습서가 실제로 저에게 효과적이었습니다. 그 중 하나가해서는 안되는 잘못된 점이 있습니까? – ChrisBorg

+0

@Rob Allen 저에게 도움이됩니다. 하나의 quetion, basePath를 전역 적으로 설정하여 공개 파일을 얻을 수있는 방법은 무엇입니까? 감사. – DS9

0

대부분의 공유 호스트 난 아직도 사용했습니다 당신이 웹 루트 외부에있는 파일을 업로드 할 수 있습니다. 예 :

/home/{username}/webroot/ 

...단지 webrootpublic 교체, 부트 스트랩에서 다음

/webroot 
    index.php 
    .htaccess 
/application 
/config 

, 또는 당신이있는 경우 SSH 액세스는 기존의 웹 루트를 삭제하고 젠드 공용 디렉토리에 대한 심볼릭 링크 등으로 교체 : 당신은 여전히 ​​같은 /home/{username}/에 업로드 할 수 있습니다 :

rm -f webroot 
ln -s public webroot