2012-12-05 4 views
0

다음은 Nginx 1.2.5에서 실행되는 서버의 구성 파일에서 훨씬 단순화 된 버전입니다. 그러나 301 Moved PermanentlyLocation: http://example.com/phpmyadmin/으로 데이터를 제공하기 전에는 rewrite 지시어의 기본 동작에서 예상 한 것과 다릅니다. . 내가 브라우저에서 http://example.com/pma에 갈 때왜 Nginx를 사용하여 "301 Moved Permanently"명령을 다시 작성합니까?

server { 
    listen 80; 
    location /pma { 
     rewrite^/phpmyadmin; 
    } 
    location /phpmyadmin { 
     root /var/www; 
     index Documentation.html; 
    } 
} 

는, 데이터가 제공되지만 http://example.com/phpmyadmin/에 주소 표시 줄 변경의 URL은이 http://example.com/pma를 유지하기로했다있다.

Nginx가 301 Moved Permanently을 보내지 않도록 내 서버의 실제 디렉토리 구조가 노출되지 않도록하려면 어떻게해야합니까?

답변

-1

시도 별칭 :

server { 
    listen 80; 
    location /pma { 
     alias /phpmyadmin; 
    } 
    location /phpmyadmin { 
     root /var/www; 
     index Documentation.html; 
} 
+0

는하지만 내가 원하는 리디렉션에게 제공 데이터의 실제 위치에 대한 정보와 함께 전송 될 (301)를 필요로하지 않는 리디렉션, 만 __internal__ 리디렉션한다 . 다시 한번 말하지만,이 예제는 매우 단순화되고 다시 작성되며 config는 원래 형태로 완벽하게 이해됩니다. 그리고 '재 작성'이 왜 '301'으로 이어질지에 대한 질문이 더 많습니다. 이것은 적어도 다시 작성 모듈의 공식 페이지가 아니라 문서화되지 않았습니다. –

+0

별칭 지시문을 사용하십시오. http://wiki.nginx.org/HttpCoreModule#alias –

+0

시도했습니다. 같은 것. Nginx는'301'을 보내고 URL은'http : // example.com/pma' 인 동안 브라우저에서'http : // example.com/phpmyadmin /'으로 바뀝니다. –

0

내가 대신 재 작성의 별칭을 사용할 필요가 있다고 생각합니다. 재 작성은 "새로운"URL을 생성, 그래서

server { 
    listen 80; 
    location /pma { 
     alias /var/www/phpmyadmin; 
     index Documentation.html; 
    } 
    location /phpmyadmin { 
     root /var/www; 
     index Documentation.html; 
    } 
} 
관련 문제