2012-02-08 5 views
0

CodeIgniter를 기반으로 웹 사이트를 설정하려고합니다. 개발을 위해 domain dev.XXX.comCodeIgniter on subdomain 및 htaccess

no_wwwpublic_www 폴더가 있으므로 구조가 변경되었습니다. 모두 그래서 내 생각은

dev.XXX.com/public_www/index.php/test

dev.XXX.com/index.php/test

그래서 난 그냥 모든 요청

을에 public_www를 추가하려면 URL의 형태로 재 작성했다

dev.XXX.com의 루트에 있습니다

내 htaccess 파일에서 전자 내가있어 :

RewriteRule ^(.*)$ /public_www/$1 [L] 

하지만 난 항상 500을 얻을 - 내부 서버 오류

+0

그래서 index.php를 유지하고 싶습니까? – bottleboot

답변

5

시도 부가 루트 디렉토리 ( public_www) 사이트의 에서 .htaccess 파일에 다음.

RewriteEngine on 
RewriteBase/

#if its on dev.xxx.com 
RewriteCond %{HTTP_HOST} ^dev\.XXX\.com$ [NC] 
#if its not already public_www/ rewrite to public_www/ 
RewriteRule ^(?!public_www/)(.*)$ /public_www/$1 [L,NC] 

룰을 사용하면 무제한 다시 쓰기와 500 오류가 발생합니다. 위의 것을 막아야합니다. 내 버전은 무한 루프

나는 무한 루프에 대한 가능성이 잘못된 생각으로 리드하지만, 아래에 무슨 일이 일어날 지 이유

편집

당신은 아마 설명 할 수

  1. 모든 입력으로 시작하십시오.
  2. ^(.*)$ 패턴 그것은 /public_www/$1
  3. htaccess로 규칙 그것은 것이 시점에서 /public_www/public_www/$1
  4. 에 다시됩니다 다시
  5. ^(.*)$ 패턴을 입력 /public_www/$1
  6. 다시 일치
  7. 을 실행됩니다에 다시 작성합니다 모든 입력
  8. 일치합니다 디렉터리가 존재하지 않으므로 실패 할 가능성이 높음 ...

RewriteRule 패턴 ^(.*)$은 모든 inpu와 일치합니다. t로 다시 쓰게됩니다. .htaccess 규칙이 다시 실행됩니다.

+0

내 버전이 무한 루프로 연결되는 이유를 설명 할 수 있습니까? – soupdiver

+0

지금 내.htaccess 파일은 내 문서 루트에 있습니다/ 루트 아래에 no_www 및 public_www 폴더가 있습니다 내 htaccess를 바꾸면 아무 일도 일어나지 않습니다. 언제든지 내 public_www 폴더에 새로운 .htaccess를 만들면 계속받을 수 있습니다. public_www 폴더 – soupdiver

+0

@skelle에 액세스 할 때 오류 500이 발생합니다. .htaccess는'DocumentRoot'에 있어야합니다. –