2014-03-07 2 views
0

스스로 처리 할 수없는 성숙한 질문으로 도움을 요청해야합니다. 그래서 ...htaccess 제거 index.php 루트 폴더

내가 설정 한 htaccess로 파일 :

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.php($|\ |\?) 
RewriteRule^/%1 [R=301,L] 

이 코드는 사이트에있는 모든 디렉토리의 index.php를 제거합니다. 사이트 루트에서만 제거해야합니다. 문제는 루트가 "/"및 "/ some_folder /"와 같은 하위 디렉토리가 될 수 있다는 것입니다. 명시 적 하위 기반없이이 작업을 수행 할 수 있습니까?

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . ./ [L] 
따라서

문제 :

이 CNC에 대한 예를 들어 내가 지금 그것을 만들기 위해 관리 사이트 루트 = httр는 : //site.com/sub/ 제거의 index.php에만 필요 루트 디렉토리에 있습니다. 썩음 디렉토리는 다를 수와 결정에만 루트에서의 index.php를 제거하려면이 규칙을 사용하여 명시 적으로 기본 디렉토리

+0

당신이 원하는 것을 나에게 명확하지 않다. 즉, 입력이 정확히 무엇이고 출력은 무엇이되어야 하는가? –

+0

사이트 루트 = httр : //site.com/sub_dir/; input = /site.com/sub_dir/index.php; output = /site.com/sub_dir/; input2 = /site.com/sub_dir/sub2/index.php; output2 = /site.com/sub_dir/sub2/index.php; – Belkir

답변

0

없이해야한다 :

RewriteCond %{THE_REQUEST} \s/index\.php [NC] 
RewriteRule ^index\.php$/[L,R=301,NC] 
+0

안타깝게도 디렉토리가 하위 폴더 인 경우 작동하지 않습니다 – Belkir

+0

하지만 root 인 경우에만 index.php를 제거 하시겠습니까? 아니면 오해 했습니까? – anubhava

+0

네,하지만 제 경우에는 루트가 htaccess와 사이트가 거짓된 곳이며 htaccess와 하위 디렉토리가있을 수 있으며 루트의 하위 폴더로 이동합니다. – Belkir

관련 문제