1

私はnginx Webサーバーで作業しています。

folder1 www.site.com/folder1/ 内のすべての URL をリダイレクトしたいが、subfolder1 www.site.com/folder1/subfolder1 はリダイレクトしたくない

これらのルールをnginx構成に作成しましたが、うまくいきません。

場所 = /フォルダー/サブフォルダー {

}

場所/フォルダ {

rewrite ^/folder(.*) www.redirect.com 永久;

}

何か不足していますか?

4

3 に答える 3

0

「=」は「完全一致」のため削除します。したがって、フォルダー自体のみに一致し、「/folder/subfolder/a_file.html」の要求はそのブロックに一致しません。また、書き換えルールに $scheme を追加する必要があります。また、ホームページ ( http://www.redirect.com ) にリダイレクトするだけの場合は、「$1」の部分を削除できます。

location /folder/subfolder {

}

location /folder {

  rewrite ^/folder(.*)$ $scheme://www.redirect.com$1 permanent;

}
于 2013-03-29T13:55:26.903 に答える
0

新しいルール セットは次のようになります。有効なファイル ヒットは問題ないと仮定しています (つまり、ユーザーがファイルを知っていた)。この動作を望まない場合は、try_files を @rw ブロックの内容に置き換えます。

location /folder {
    try_files $uri $uri/ @rw;
}
location @rw {
    rewrite ^/folder/([^\/]*) http://www.redirect.com/ permanent;
}

これらは機能するはずです。

于 2013-03-29T13:37:37.900 に答える