2014-07-26 3 views
-1

내 기본 디렉토리에서 htaccess 파일을 사용하고 있습니다. 그것은 내가 사용하고있는 CMS에서 왔습니다. 문제는 그 때문에 하위 디렉토리에 액세스 할 수 없다는 것입니다. domain.com/cms에 액세스하려면 무엇을 변경해야합니까?htaccess 파일로 인해 하위 디렉토리에 액세스 할 수 없음

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] 
    RewriteRule ^(.*) http://%1/$1 [R=301,L] 

    RewriteEngine On 
    RewriteCond %{REQUEST_URI} !^public 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 

답변

0

첫 번째 규칙은 관련이 없습니다. 두 번째 규칙은 public으로 시작하지 않는 모든 url에 public 접두어가 붙도록합니다. example.com/cms/cookies은 내부적으로 example.com/public/cms/cookies이됩니다. 당신이 원하는 것은 규칙에서 제외시키는 것입니다.

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] 
    RewriteRule ^(.*) http://%1/$1 [R=301,L] 

    RewriteEngine On 
    RewriteCond %{REQUEST_URI} !^/(public|cms) 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 

규칙을 일치시키지 않으려는 다른 하위 디렉토리로 확장 할 수 있습니다. 내가 아는 한 %{REQUEST_URI}은 항상 슬래시로 시작하기 때문에 내부 서버 오류가 발생하지 않았다는 것에 놀랐습니다. 내 답변에 슬래시를 추가했습니다.

+0

절반의 효과가 있습니다. 잠깐. 한번보세요 : http://bruteforce.tv/cms/ –

+0

나는 거기에 나타날 것으로 예상되는 단서가 없습니다. [This] (http://bruteforce.tv/public/)? 나머지 사이트는 하위 도메인에 있으므로 규칙이 일치하지 않습니다. [This] (http://bruteforce.tv/)는 금지 된 오류를 제공합니다. 너무 많이 말하지 마세요. – Sumurai8

+0

좋아. 내 루트 디렉토리에는 방금 편집 한 htaccess 파일 위치가 있습니다. 문제는 내 루트 디렉토리의 htacess 파일 때문에 /cms 디렉토리에있는 다른 웹 사이트에 액세스 할 수 없다는 것입니다. 루트 디렉토리에 htaccess 파일이없는 것처럼/cms를 실행할 수 있도록 편집해야합니다. –

관련 문제