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 문서몇 가지 예가 있습니다. 본질적으로 정규식 결과를 식별하기 위해 잘못된 문자를 사용하고 있습니다. $
보다는 이어야 합니다 %
.
다시 쓰기 규칙과 일치하도록 정규식을 반복해야 할 수도 있습니다.