2016-10-04 1 views
0

를 정의하는 캡처 명명 그룹을 사용하는 경우 : 나는 2 DIRS 2 index.html을이이상한 행동 내가 아주 간단한 가상 호스트 구성이 별명을

server { 
    listen 80 default_server; 
    server_name datavis.dev.localserver.fr; 

    root /var/www; 

    location ~ ^\/datavis\/(?<datarep>[\w]+) { 
     alias /var/www/data-${datarep}-front; 
     autoindex on; 
    } 

}

을 경우 :/var/www /에서 데이터 - TEST1 - 앞의/var/www /에서 데이터 TEST2 전면

내가 오류 로그에서이 수익이 브라우저에서 http://datavis.dev.localserver.fr/datavis/test1/을 시도 :

2016/10/04 17:36:43 [error] 4614#4614: *1 opendir() "/var/www/data-test1-fron" failed (2: No such file or directory), client: 192.168.56.1, server: datavis.dev.localserver.fr, request: "GET /datavis/info/ HTTP/1.1", host: "datavis.dev.localserver.fr" 

마지막 글자가 제거되었습니다 ... 이유를 아는 사람이 있습니까?

답변

0

별칭은 /으로 끝나지 않지만 autoindex 경로에서 마지막 문자를 제거하고 싶습니다. 결과 경로가 /var/www/data-test-frontindex.html이 될 것이므로 index index.html도 제대로 작동하지 않습니다. ,

location ~ ^\/datavis\/(?<datarep>[\w]+)/ { 
    alias /var/www/data-${datarep}-front/; 
    autoindex on; 
} 
+0

감사합니다 나에게 버그처럼 보이는 : 그래서, 당신이 필요 /을 추가하는 것입니다 대단히! –

1

명시 적 이진 않지만 the example in the manualalias 문에 정규 표현식 위치로 묶을 때 생성되는 전체 URI를 표시합니다. 이 직접 질문에 대답하지 않더라도

그래서, 작업 다른 구성 될 수있다 :

location ~ ^/datavis/(\w+)(.*)$ { 
    alias /var/www/data-$1-front$2; 
    autoindex on; 
} 

분명히라는 이름의 캡처도 작동합니다.

+0

덕분에, 그래이 :) 작동, 내가 제 2의 캡처 그룹을 추가 한 이유 내가 너무 알고 싶 었 –