2012-10-22 4 views
1

내가 Nginx에를 통해 다음과 같은 URL 재 작성하는 것을 시도하고있다 : 지금까지 발견 할 수 있었다 모든Nginx에의 URL 재 작성

http://www.domain.com/script/LONGSTRING/LONGSTRING/LONGSTRING/LONGSTRING/THREELETTERS.html 

방법이다 : 이런 식으로 뭔가에

http://www.domain.com/script.php?title=LONGSTRING&desc=LONGSTRING&file=LONGSTRING&id=THREELETTERS 

을 단일 변수를 포함합니다. 통과 할 변수가 다섯 개 있는데, 각 변수는 "/"로 끝납니다.

location /script/script.php { 
    rewrite^/script/$arg_title/$arg_desc/$arg_file/$arg_id.html last; 
} 

을 :

는 당신이 SEO 친화적 인 URL에 스크립트 매개 변수를 사용하여 URL을 재 작성 $arg_name 변수

을 통해의 nginx에서 스크립트 매개 변수 name에 액세스 할 수 있습니다

답변

2

는 간단한 재 작성과 같이된다 반전, 친숙한 URL을 PHP 스크립트 버전으로 다시 작성 :

location /script/ { 
    rewrite "^/script/([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]{3})$" 
      /script.php?title=$1&desc=$2&file=$3&id=$4 last; 
} 

기본적으로 ca 정규화 된 $ 1, $ 2, ... 변수로 참조 할 수있는 (각각의 둥근 괄호 쌍은 캡처입니다)

+0

이것은 질문과 반대입니다. 시작 및 끝 패턴은 틀린 방법입니다. 경로 기반의 param 기반입니다. –

+0

오케이, 네 말이 맞아 내가 잘못 했어, 다른 방향을 추가 했어. – cobaco