
마지막 세그먼트를 제거하는 데 필요한 URL입니다.(?order=asc)
https://www.example.com/segment_1/segment_2/page/the_number_goes_here/?order?asc
이것은 내가 시도하는 코드입니다.
location ~ ^/([^/]+)/([^/]+)/page/(\d+)/ {
try_files $uri $uri/ /index.php?$args;
# Capture the 2 segments and page number
set $segment_1 $1;
set $segment_2 $2;
set $page_number $4;
# Redirect without the sufix
rewrite ^ /$segment_1/$segment_2/page/$page_number/ permanent;
}
답변1
그리고location
rewrite
지시문은 다음을 처리합니다정규화된 URI여기에는 쿼리 문자열("마지막 세그먼트"라고 함)이 포함되지 않습니다.
쿼리 문자열은 $args
변수에서 사용할 수 있습니다.
그만큼rewrite
지령?
선택적으로 대체 값 끝에 a를 추가하여 원래 쿼리 문자열을 제거할 수 있습니다 .
예를 들어:
rewrite ^ /$segment_1/$segment_2/page/$page_number/? permanent;
또한 예제 코드에서 다음을 수행하십시오.
- 페이지 번호
$3
는 에 캡처되어 있습니다.$4
- Nginx는 항상 and 지시어를 먼저
try_files
평가하므로 이 명령문은 중복될 수 있습니다 .set
rewrite
먼저 평가됩니다