2012-09-12 4 views
0

나는 내 htaccess로 파일에 다음과 같습니다htaccess로 무시 디렉토리와 그 하위 디렉토리

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(mailinglist)/.*$ - [L] 
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule> 

나는 기본적으로 내가 메일 링리스트 디렉토리입니다 경우 그 마지막 줄 타격에서 htaccess로를 제거 할.

이것은/mailinglist 디렉토리의 루트에있는 항목에만 적용됩니다. 일단/mailinglist/w/1과 같이 깊게 간다면 마지막으로 다시 쓰는 규칙을 위반하고 명중합니다. 내가/mailinglist 디렉토리에있는 경우 마지막으로 다시 쓰기 규칙을 처리하지 못하게하려면 어떻게해야합니까?

그 이유는 내가 그 디렉토리에 htaccess와는 다른 세트를 가지고 있기 때문에이 htaccess가 그것을 제어하기를 원하지 않기 때문입니다.

+0

Jon과 Drew에게 감사드립니다. 내가 지금 가지고있는 문제는이 조건이 더 이상 적용되지 않는 mailinglist 디렉토리의 2 하위 디렉토리로 갈 때입니다. 나는 아직도 HTACCESS에 대한 REGEX를 배우고 있으며 많은 하위 디렉토리를 인식하도록 추가 할 항목이 무엇인지 모릅니다. – csteel

답변

0

봅니다 :

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^(mailinglist)/.*$ 
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule> 

는 그냥한다 RewriteCond로 mailinglist에 대한 검사를 투입합니다. URI가 mailinglist으로 시작하지 않으면 조건은 index.php로만 다시 작성됩니다.

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteRule ^(mailinglist)/.*$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule> 

조건은 바로 다음과 같은 규칙에 적용되므로 2 개 !-f!-d 조건은에 잘못 적용되고있다 :

+0

내가 깊은 2 개의 디렉토리 즉'http : // www.example.com/mailinglist/w/1'로 갈 때 RewriteRule을 친다. 메일 링리스트 디렉토리에 RewriteRule이있는 것을 방지하려면 어떻게합니까? – csteel

0

조건이 잘못된 규칙에 적용되고, 당신은 당신의 규칙 주위를 교체 할 필요가 통과, index.php 규칙에 이러한 조건이 없습니다.

관련 문제