![nginx를 사용하여 경로를 리디렉션하고 동시에 경로의 일부를 삭제하는 방법](https://linux55.com/image/92232/nginx%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EA%B2%BD%EB%A1%9C%EB%A5%BC%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%ED%95%98%EA%B3%A0%20%EB%8F%99%EC%8B%9C%EC%97%90%20%EA%B2%BD%EB%A1%9C%EC%9D%98%20%EC%9D%BC%EB%B6%80%EB%A5%BC%20%EC%82%AD%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
CentOS Linux에서 nginx 1.8.1을 사용하여 다음을 시도했습니다.
server_name server1.olddomain.com;
에서 로 트래픽 리디렉션server2.newdomain.com
- 이 작업을 수행할 때
sites
경로에서 제거하십시오.
예를 들어 nginx.conf
.
server {
...
server_name server1.olddomain.com;
...
location /sites/ITDept {
rewrite ^(.*) https://server2.newdomain.com/ITDept;
}
이는 위의 정확한 규칙에 따라 의도된 대로 작동하지만 다른 것은 작동하지 않습니다.
https://server1.olddomain.com/sites/ITDept/subfolder/subfolder
필요에 따라 리디렉션하지 않습니다 https://server2.newdomain.com/ITDept/subfolder/subfolder
. 로 리디렉션됩니다 https://server2.newdomain.com/sites/ITDept/subfolder/subfolder
.
나는 성공하지 못한 채 올바른 구문을 알아내려고 몇 시간을 보냈습니다. 누군가가 도울 수 있기를 바랍니다. 미리 감사드립니다.
답변1
방금 알아 냈을 수도 있습니다. 다시 쓰기 규칙을 다음과 같이 수정합니다.
rewrite ^/sites/(.*)$ https://server2.newdomain.com/$1 last;
이렇게 하면 가능할 것 같습니다. 누군가 더 나은 선택을 하지 않는 한. 이것이 작동하는지 확인하기 위해 여전히 많은 링크를 테스트하고 있지만 지금까지는 매우 좋습니다. 이 기사에 감사드립니다.HttpRewriteModule을 사용하여 Nginx에서 URL의 일부를 빠르고 쉽게 제거하는 방법은 무엇입니까?
답변2
로 시작하지 않는 URI로 무엇을 하고 싶은지 확실하지 않지만 필요한 /sites
것은 간단한 rewrite
것이어야 합니다.
server {
server_name server1.olddomain.com;
rewrite ^/sites(.*)$ https://server2.newdomain.com$1 permanent;
return 404;
}
바라보다이 파일더 알아보기.