2009-08-26 4 views
2

좋아요. 또 다른 질문이 있는데 저는 초급이에요.어떻게이 2 개의 .htaccess RewriteRules를 하나로 합치시겠습니까?

나는이 RewriteRule의이 올바르게 쿼리를 리디렉션하지만 나 다른 디렉토리를 사용하는 것을 허용하지 않습니다이 : 모든 디렉토리를 건너

RewriteRule ^([0-9A-Za-z]+)/?$ /query.php?id=$1 [L] 

이제이 RewriteRule의를하지만 지금은 규칙이 위에서 할 필요가 이 작업에 대해 주석 처리했습니다.

RewriteRule ^(css|js|admin|pages|includes|images)(/|$) - [L] 

둘을 결합 할 수 있습니까? 그렇다면 어떻게?

+1

작동 순서가 좋습니까? 그래서 만약 내가 첫 번째 rewriterule 두 번째 후 그것을 작동합니까? –

답변

4

RewriteRule이 파일에서 발생한 순서대로 검사되므로 css|js|admin|pages|includes|images 규칙을 먼저 넣으면 먼저 일치하고 다른 규칙에 도달하기 전에 다시 쓰기 프로세스가 중지됩니다. 해당 규칙의 마지막에 [L] 플래그를 유지하십시오.

+0

감사합니다. 정확히 내가 무엇을보고 있었는지 확인하는 것이 필요합니다. –

0

이 깔끔한 트릭도있다 : 동적 또는 쇼 일부 모듈을로드 할 수 있도록

파일 경로가 존재하지 않는 파일이나 디렉토리가 아닌 경우입니다
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+) query.php?id=$1 [L] 

는 (PHP 스크립트로 요청을 보내기 유용한 404 페이지).

+0

감사합니다. 그렇다면 404 리디렉션과 비슷합니까? 맞춤 404 페이지는 어디에 배치합니까? –

+0

파일 시스템의 파일이나 디렉토리가 아닌 모든 것을 PHP 스크립트로 리디렉션합니다. 즉, PHP 스크립트를 처리 할 수 ​​있습니다. 내부 루틴에 따라 요청한 URI가 존재하지 않아야한다고 결정한 경우 404 상태 오류 및 오류 페이지 내용을 보낼 수 있습니다. – djc

관련 문제