수색…


비고

이 항목에서는 RewriteRule 사용할 수있는 두 가지 상황에 대해 설명합니다. RewriteEngine on 예제에서는이 예 RewriteEngine on 지시문이 있다고 가정합니다.

디렉토리 별 컨텍스트에서 규칙 다시 쓰기

디렉토리 별 컨텍스트는 <Directory></Directory> 태그 사이의 정적 구성 파일의 일부입니다. 동적 구성 파일의 전체 내용은 .htaccess가 상주하는 폴더의 디렉토리 별 컨텍스트 내에 있습니다.

RewriteRule 디렉토리 별 컨텍스트에서 URL이있는 부분의 프로토콜, 호스트 이름, 포트 및 접두어가있는 디렉토리의 이전 부분과 쿼리 문자열 앞에 일치합니다.

정적 구성 파일

다음 규칙을 URL http://example.com/foo?id=1 에 사용하면 RewriteRule 의 첫 번째 인수에서 정규 표현식이 foo 와 일치합니다. 프로토콜 ( http ), 호스트 이름 ( example.com ) 및이 디렉토리의 접두사 ( / )가 제거됩니다. 다른 끝에서 쿼리 문자열 ( ?id=1 )도 제거됩니다.

<Directory "/">
  RewriteRule ^foo$ bar [L]
</Directory>

다음 예제에서 url http://example.com/topic/15-my-topic-name 사용하면 RewriteRule 의 첫 번째 인수가 topic/15-my-topic-name 과 일치합니다.

<Directory "/topic/">
  RewriteRule ^topic/([0-9]+)-[^/]*/?$ topics.php?id=$1 [L]
</Directory>

동적 구성 파일

다음 규칙을 www-root 폴더에있는 .htaccess 파일에 넣은 다음 URL http://example.com/foo?id=1 에서 사용하면 첫 번째 정규 표현식이 foo 와 일치합니다.

RewriteRule ^foo$ bar [L]

디렉토리 별 컨텍스트에서 일치하는 URL은 / 시작 하지 않습니다 . 그런 맥락에서, RewriteRule ^/ 시작하는 지시어는 절대 일치하지 않습니다.

가상 호스트 컨텍스트에서 다시 쓰기 규칙

가상 호스트 컨텍스트 사이의 정적 구성 파일의 일부이다 <VirtualHost></VirtualHost> 태그.

가상 호스트 컨텍스트의 RewriteRule 은 프로토콜, 호스트 이름 및 포트 다음과 쿼리 문자열 앞에있는 url 부분과 일치합니다.

다음 규칙을 URL http://example.com/foo?id=1 에 사용하면 RewriteRule 의 첫 번째 인수에서 정규 표현식이 /foo 와 일치합니다.

<VirtualHost 1.2.3.4:80>
  ServerName example.com

  RewriteEngine on
  RewriteRule ^/foo$ /bar [L]
</VirtualHost>


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow