2009-08-12 11 views
0

.htaccess가 작동하는 방식을 이해하려고합니다..htaccess 리디렉션이 어떻게 작동합니까?

WWW :

가 어떻게 해당 사용자를 리디렉션 할 수 있습니다

www.website.com/users/bob :

는 말은 예를 들어, 내 사용자로 이동합니다. website.com/users.php?user=bob

+0

여기와 serverfault.com에 대한 질문은 끝이 없습니다. 이것에 대해서는 어떻습니까? 예 : http://stackoverflow.com/questions/1249368/mod-rewrite-beginner-questions – innaM

답변

3

.htaccess는 확인해주세요.

# turn on the engine 
RewriteEngine On 

RewriteRule ^users/(.*)$ /users.php?user=$1 

# Pattern: 
#^ = start of URL (.htaccess doesn't get the leading "/") 
# users/ = your path 
# (.*) = capture any character, any number of times 
# $  = end of string 

# Result: 
# /users.php?user= = your path 
# $1    = the first group captured in the pattern 
+0

위의 RewriteBase에 대해 언급해야합니다. –

+0

이제 $ 1 ... 여기에 두 번째 규칙을 추가하고 싶지만 website.com/users/bob 대신 website.com/show/whatever가 있으면 website.com/show.php로 리디렉션됩니다. ? id = 뭐든간에. 그 줄을 간단하게 복사하고, 세부 사항을 변경하고, 끝에 2 달러를 넣을 수 있습니까? – mrpatg

+0

아직 $ 1을 사용하고 있지 않습니다. 관련 규칙의 그룹입니다. 예를 들어/users/bob/bobbinson, match /users/([^/]*)/(.*)$ 다음 $ 1은 bob이고 $ 2는 bobbinson입니다. – Greg

0

technical details of mod_rewrite을 읽어 보시기 바랍니다. 내부 처리에 대한 좋은 통찰력을 얻을 수 있습니다. 구체적인 예를 들어

, 적절한 규칙은 다음과 같습니다 이제

RewriteRule ^users/([a-z]+)$ users.php?user=$1 

/users/bob가 요청 될 때, mod_rewrite를합니다

  1. 스트립 문맥 디렉토리 별 접두사 (/은 if .htaccess 파일이 문서 루트에 있음) 요청 된 경로에서
  2. 나머지 부분 (users/bob)을 하나가 일치 할 때까지 테스트합니다.
    • 그들이 (해당 경기로 $n%n를 교체하는 동안) 너무
  3. 는 새와 현재의 URL을 대체 시험 될 수있는 해당 RewriteCond 지시가있는 경우 , 패턴이 일치하고 조건이 true로 평가되면
  4. 대체 된 URL이 이미 절대 URL 경로가 아닌 경우 문맥 별 디렉토리 접두사를 다시 추가합니다 (begin) 또는 절대 URL (URL 스킴으로 시작)
관련 문제