2013-05-23 7 views
0

그래서 모든 요청이 index.php를 통과하도록 설정하고 싶습니다. .htaccess로 모든 요청을 index.php로 리디렉션

일부 Google 검색

나에게이 mod_rewrite를이 작동

<IfModule mod_rewrite.c> 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !(index\.php|public|css|js|robots\.txt) 
    RewriteRule^index.php [L,QSA] 
</IfModule> 

했다. 그러나 실제로 index.php를 클릭하면 실행되지 않습니다. 그래서 www.domain/test가 www.domain/index.php/test로 취급되기를 원합니다.

브라우저에서 www.domain/index.php/test를 누르는 경우 동일한 작업을 수행해야하지만 어딘가에 홈 폴더로 리디렉션됩니다.

또한이 리디렉션이 css, js 및 로봇에서 발생하지 않도록하고 싶습니다.

룰을 index.php에 대해 아무 것도하지 않게하려면 어떻게해야합니까?

+0

... 이미 그렇게하지 않았습니까? 'RewriteCond % {REQUEST_FILENAME}! -f' - "파일이 존재하지 않으면 ..." – stslavik

답변

1

이렇게하면됩니다.

<IfModule mod_rewrite.c> 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond $1 !^(index\.php|public|css|js|robots\.txt|test) 
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 
+0

작동하지 않았습니다. domain/test가 모두 작동을 멈추었습니다 (입력 파일이 지정되지 않았습니다). 그리고 domain/index.php/test는 이전과 똑같은 기능을합니다. –

+0

폴더 이름 테스트가있는 경우 조건에 추가하고 내 대답을 다시보고 작동하지 않는다는 것을 알려주십시오 – rcpayan

+0

내 원본 파일과 함께 작동하도록 관리했습니다. 실수는 index.php 내부에서 발생했습니다. 어쨌든 도움 주셔서 감사합니다. –

관련 문제