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;
}
バラよりこのファイルもっと学ぶ。