2016-07-04 3 views
0

웹 서비스의 경우 "사용자에게 친숙한"URL을 페이지가 실제로 위치한 곳에 매핑하는 데 바니시를 사용하고 있습니다. 그래서 예를 들면 :광택을 사용하여 URL을 매핑 할 때 쿼리 문자열을 따라 전달

실제 URL : https://example.com/stuff/things/page.php

사용자 친화적 인 URL : https://example.com/page 다음과

그래서 우리는 VCL이 달성하고있는 방법대로 :

if (req.url ~ "page") { 
    set req.url = stuff/things/page.php 
} 

하지만 지금 쿼리 문자열이 프로세스에서 지워지는 문제가 발생합니다. 따라서 https://example.com/page?username=Ataraxia의 효과는 무언가가 https://example.com/stuff/things/page.php으로 매핑되지만 매핑 된 URL로 전달할 쿼리 문자열이 필요합니다. 아무도 내가 어떻게 바니시로 이것을 얻을 수 있는지 알고 있습니까? 정규식 연산을 통해 쿼리 문자열을 추출하여 매핑 된 URL에 추가해야한다고 생각하지만 vcl을 처음 사용하고 가능하다면 확신 할 수 없거나 더 좋은 방법이있는 것 같습니다.

답변

1

나는 그것을 테스트하지 못했지만이 일을 할 수 있습니다

if (req.url ~ "page") { 
    set req.url = "/stuff/things/page.php" + regsub(req.url, "[^?]*", ""); 
} 
+0

의견을 보내 주셔서 감사합니다. 나는 여전히 이것을 테스트 중이다. (나는 다른 문제를 겪고있다.) 일단 검증을하면 대답을 받아 들일 것이다. :) – Ataraxia

0

이 내가하는 일, 그리고 매력처럼 작동, 나는이 나중에 응답 이년 알지만, 사람을 도움이 될 수 있습니다.

if (req.url ~ "page") { 
    set req.url = regsub(req.url, "page", "stuff/things/page.php\1"); 
}