2017-11-15 4 views
1

나는 serverfault.com에서이 질문을했지만 완전히 대답하지 못했습니다.URL을 HTML 파일에 리디렉션 된 매개 변수

요청한 URL을 파일 시스템의 html 파일로 리디렉션해야합니다. 나는 이미 이것에 대한 답을 알고있다 :

location /this/is/some/url { 
    index file.html; 
    alias /path/to/the/; 
} 

파일 시스템의 file.html 위치는 /path/to/the/file.html이다.

그러나 URL 끝 부분에 빈 매개 변수를 추가해야합니다 (/this/is/some/url). 그래서 이것은 /this/is/some/url?_escaped_fragment_=처럼 보일 것입니다.

필자는 여러 가지 예제를 다시 작성했지만 올바르게 사용하지 않았기 때문에 도움이되지 않았습니다.

답변

1

매개 변수가없는 경우 리디렉션을해야합니다. 빈 매개 변수이므로 $request_uri에서 정규 표현식을 사용하는 것이 가장 간단 할 수 있습니다.

location /this/is/some/url { 
    index file.html; 
    alias /path/to/the; 

    if ($request_uri !~ [?].*\b_escaped_fragment_=) { 
     return 302 $uri?_escaped_fragment_=&$args; 
    } 
} 

위의 예는 그러므로 본 & 후행 다른 파라미터가있을 수 있음을 가정한다.

+0

고맙습니다. 추가 매개 변수가 필요 없다면'& $ args' 부분을 제거하는 것이 안전할까요? – Nurjan

+1

네, 분명히 - 나는 단지 완성을 위해 그것을 추가했다. –

관련 문제