2013-03-05 1 views
0

/var/www/html에 codeigniter 프로젝트가 설치되어 있습니다. 다음과 같아야합니다 의 URL : http://example.com/clients/abc 제대로 내가 활성화 mod_rewrite를 작동하도록 경로를 얻기 위해 내가 CentOS는 아파치 2.2.15.htaccess가 DocumentRoot 디렉토리에서 제대로 읽히지 않습니다

를 실행하고 (내가 볼 수 phpinfo.php를 통해 켜져)와에 AllowOverride 모든 httpd.conf에 있습니다.

httpd.conf에 정의 된 내 documentroot는/var/www/html입니다.

htaccess로 파일은/var/www가에서/HTML은 다음과 같습니다

<IfModule mod_rewrite.c> 
    DirectoryIndex index.php 
    RewriteEngine on 
    RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 
</IfModule> 

그냥이 자체 내 모든 컨트롤러에 404 페이지를 얻을 내 contollers 아무도/전망 지수 이외의 렌더링하지 않습니다.

그러나. 난은/var/www가에서 두 번째 htaccess로 파일을 생성하고이 한 줄을 추가하는 경우 :

ErrorDocument 404 /index.php 

을 이제 내 재 작업 및 내 컨트롤러 내 모든 페이지를 제대로로드. 그러나 여전히 404 페이지가 방화범이 끌리지 않지만 아직 내 페이지가로드됩니다.

내가 이해하지 못하거나 존경하지 않는 이상하고 미친 일이 여기에 있습니다. 이중 리디렉션? 아파치는 DocumentRoot가 무엇을 의미하는지 모른다./var/www에 다른 .htaccess 파일이 없으면 /var/www/html/.htaccess 파일이 인식되지 않는 이유는 무엇입니까?

답변

2

발견.

는 httpd.conf 파일에서 그 디렉토리 설정 내에서 의견의 상당한 양이 있었기 때문에이 자리 어려웠다

<Directory "/var/www/html"> 
     AllowOverride All 

<Directory "/var/www/html"> 
     AllowOverride none 

을 변경하고 그것을 가려. .conf 파일에는 다른 많은 AllowOverride All 문도 있었는데, 이는 내가 이미 설정을했다고 생각하게 만들었습니다.

더 기다려주세요!

IRC의 '엄지 손가락'이라는 남자로부터 나는 내 .htaccess 파일의 내용을 바로 httpd.conf의 설정에 넣어야한다고 배웠습니다. 그렇게하면 AllowOverride none으로 다시 변경하여 상당한 성능 향상을 얻을 수 있습니다.

관련 문제