2009-08-18 4 views
1
# BEGIN 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END 

저는 초보자 인 htaccess도 누구나 그 행의 의미를 설명하는 데 도움이됩니까?htaccess를 사용하여 요청을 제어하는 ​​방법

답변

4

상세히 조금 더 다음 조건이 참일 경우 <IfModule> block

  • <IfModule mod_rewrite.c>
    내용 만 처리된다. 이 경우 mod_rewrite 모듈이로드 된 경우에만 포함 된 지시문이 처리됩니다. RewriteEngine On
    RewriteEngine On

  • 그 디렉토리와 그 하위 디렉토리에 대한 재 작성 엔진을 사용하는 데 필요합니다.
  • RewriteBase /
    RewriteBase /

    /에 디렉토리 별 기본 URL 경로를 설정합니다. 그러나 URL 경로가 실제 경로가 아닌 경우에만 필요합니다.

  • RewriteCond %{REQUEST_FILENAME} !-f
    이 조건은 요청 된 파일 이름 (파일 시스템에 매핑 요청 된 URL 경로가) 일반 파일이 아니어야한다고.

  • RewriteCond %{REQUEST_FILENAME} !-d
    이전과 동일한 것은 있지만, 기존 디렉토리가 아니어야합니다. 해당 조건 모두에 해당하면 /index.php로하고 대체를 :

  • RewriteRule . /index.php [L]
    이 규칙은 비 비어의 URL (기본 URL 경로없이 요청 된 URL 경로를 더 정확하게) 경로를 일치합니다. 또한 마지막 규칙으로 플래그가 지정되므로 규칙이 적용될 때 현재 규칙 처리가 여기서 중지됩니다. <IfModule …>

  • </IfModule>
    대응.

+0

이것은 무엇입니까, 고맙습니다. – coderex

2

.htaccess는 /index.php에 rewrite베이스 (이 .htaccess가있는 디렉토리, 실제 보이는 디렉토리)에있는 디렉토리와 실제 파일을 제외한 모든 요청을 다시 쓰고 있습니다. 스택 오버플로 (Stack Overflow)와 같이 "꽤"URL을 얻으려면 많은 프레임 워크 및 컨텐츠 관리 시스템에서 상당히 표준적인 방법입니다.

mod_rewrite docs에도 관심이있을 수 있습니다.

관련 문제