nginx에 대한 Apache 재작성 규칙

nginx에 대한 Apache 재작성 규칙

Apache와 nginx에 대한 재작성 규칙을 만들어야 합니다.

필수 변경 사항:

/search?q=test&**p**=1 to /search?q=test&**page**=1

Apache의 경우 아래 코드는 잘 작동하지만 nginx용으로 변환할 수 없습니다.

RewriteCond %{QUERY_STRING} ^q=(.*)&p=([0-9]+)(.*)$
RewriteRule ^(search/?)$ /search?q=%1&page=%2 [NC,L,R]

나는 다음과 같은 것을 시도했습니다 :

  if ($query_string ~ "^q=(.*)&p=([0-9]+)(.*)$"){
    rewrite ^/(search/?)$ /search?q=%1&page=%2 redirect;
  }

그러나 그것은 다음과 같이 끝납니다.

/search?q=%1&page=%2&q=%1&page=%2&q=%1&page=%2&q=%1&page=%2&q

내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변1

모듈 재작성에 대한 Nginx 문서몇 가지 예가 있습니다. 본질적으로 정규식 결과를 식별하기 위해 잘못된 문자를 사용하고 있습니다. $보다는 이어야 합니다 %.

다시 쓰기 규칙과 일치하도록 정규식을 반복해야 할 수도 있습니다.

관련 정보