2009-07-01 4 views

답변

3

.htaccess 파일에 RewriteBase 매개 변수를 설정해야 할 가능성이 가장 높습니다.

가정하여 재 작성 규칙은 다음과 같이 보일 :

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

그리고 당신이 subfolder 하위 폴더로 사이트를 이동하는 가정, 그냥 RewriteEngine on에서, 당신의 재 작성 규칙에 다음 행을 추가합니다.

RewriteBase /subfolder 

당신의 완전한 재 작성 규칙과 같이 보일 것입니다 :

RewriteEngine on 
RewriteBase /subfolder 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

추신 : 프론트 컨트롤러/요청 개체/라우터는 시간의 99 %가 제대로 자동적으로 baseUrl을 결정합니다. 이 아닌으로 명시 적으로 설정해보십시오. 위의 변경 사항이 다시 쓰기 규칙에 적용되지 않으면 무시한 후에 만 ​​다시 시도하십시오.

var_dump(Zend_Controller_Front::getInstance()->getBaseUrl()); 
+0

내가 이전 젠드한다 RewriteRule을 사용하고 있었다 :

당신은 언제든지 결정된 baseUrl은 다음과 요청 될 얻을 수있는 RewriteRule의 \ (JS | ICO | GIF | JPG |!. png | css) Rewritebase를 사용하지 않고 $ index.php 개선이 있습니다! 훌륭한 일! – rasx

0

당신은 당신이 앞에 추가 할 필요가/newfolder /를 설정에서 모든 set_include_path 문에. 그런 다음 setBaseURl이 제대로 작동해야합니다.