2014-08-28 2 views
0

저는 Apache 2.2.22를 Ubuntu 12.04.3 (Windows 8.1에서는 Oracle VM)에서 실행하고 있습니다. PHP phpinfo() 함수 사용하기로드 된 모듈의 apache2handler 섹션에서 mod_rewrite를 볼 수 있으므로 mod_rewrite가 활성화됩니다. CodeIgniter 2.2.0에서 index.php 제거

은 내가 여러 버전이 (CI의 루트 디렉토리에있는 htaccess로 파일)을 시도

$config['index_page'] = 'index.php'; to: $config['index_page'] = ''; 
$config['uri_protocol'] = 'AUTO'; to: $config['uri_protocol'] = 'PATH_INFO'; 

내 CI의 설정 파일 (application/config/config.php)을 다음과 같이 변경을했다 :

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

그러나 아직 작동하지 않아야합니다. 그 밖의 무엇을 내가 여기에서 놓치고 있냐?

답변

2

이것은 효과가 있습니다.

RewriteEngine On 
RewriteBase /testsite/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
+0

그렇다면'.htaccess' 파일을 루트 디렉토리에 만들어야합니까? '.htaccess' 파일이 codeigniter 2.2의 루트 디렉토리에 존재하지 않는다는 것을 알기 때문에 –

1

폴더 구조가 .../var/www/html/testsite이고 url이 localhost/testsite 인 것으로 가정하면 위의 다시 쓰기 규칙은/var/www/html/testsite에서 index.php를 찾을 것입니다. www/html이고/var/www/html/testsite는 아닙니다. (/ var/www/html이 기본 문서 루트가됩니다.)

따라서/var/www/html/testsite와 동일한 폴더에서/var/www/html에있는 .htaccess 파일에서 다음을 사용해보십시오. www/html/testsite /. 그래서 당신은 ... 코드로 /var/www/html/testsite/.htaccess이있을 것이다

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ index.php/$1 [L] 

모든 나는 선두/마지막 줄에 재 작성 규칙에 제목 아니에요, 그래서 제거했을 다시 기본 문서 루트로.

+0

답장을 보내 주셔서 감사합니다.하지만 작동하지 않았습니다. 별칭/실험 사이트/미디어/sf_testsite/ <디렉토리 "/ 미디어/sf_testsite /"> 옵션 -Indexes MultiViews을 에 AllowOverride 없음 주문이 허용 부터 허용 거부 : 내 CI는이처럼 내 VM 공유 디렉토리에서 설정 모두 – olen

관련 문제