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;
}
바라보다이 파일더 알아보기.