4

Javaアプリケーションでnginxを使用していますが、問題はnginxがスラッシュをマージしていて、Webサイトを正しいバージョンにリダイレクトできないことです。

例えば:

   http://goout.cz/cs/koncerty///praha/

にマージされます

   http://goout.cz/cs/koncerty/praha/

そして、不正な形式のURLを認識できず、リダイレクトを実行できません。

設定してみました

   merge_slashes off;

その後:

    rewrite (.*)//(.*) $1/$2 permanent;

ただし、これは効果がなく、//はURLに残ります。

どうすればこれを達成できますか?

4

4 に答える 4

6

これを試してください(テストされていません):

merge_slashes off;
rewrite (.*)//+(.*) $1/$2 permanent;

ただし、スラッシュのグループが複数ある場合は、複数のリダイレクトが発生する可能性があります。

このような:

http://goout.cz/////cs/koncerty///praha/

行くかもしれない:

http://goout.cz/cs/koncerty///praha/

そして最後に:

http://goout.cz/cs/koncerty/praha/
于 2013-02-14T04:29:10.937 に答える
1

これはうまく機能しますが、私のセットアップでは追加port_in_redirect off;が必要でした。

于 2014-02-11T11:13:47.160 に答える
0

間違いが原因で同じ問題が発生します。URLに2つのスラッシュを追加すると、nginxは2つのスラッシュを含むURLに対して301エラーコードを返します。

私にとっての解決策は次のとおりです。

ファイルに追加merge_slashes off;し、場所の部分に追加しますnginx.confrewrite (.*)//+(.*) $1/$2 break;

私の場所の設定は次のようになります。

    location / {
        rewrite (.*)//+(.*) $1/$2 break;
        proxy_pass http://http_urltest;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_buffers 4096 32k;
        proxy_buffer_size  32K;
        proxy_busy_buffers_size 32k;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

これらの2行を追加した後、2つのスラッシュを使用してURLにアクセスすると、1つのスラッシュを使用して結果が返されます。

于 2016-12-18T06:34:57.147 に答える
-2

これを試してください(nginxのみとopenresty構成のnginxの両方)これらの301リダイレクトを行うことでサイトのSEOを改善できます

このコードは、nginxサイトのconfファイルのサーバーセクション内に保持してください

server {

........
........

set $test_uri $scheme://$host$request_uri;
if ($test_uri != $scheme://$host$uri$is_args$args) {
    rewrite ^ $scheme://$host$uri$is_args$args? permanent;
}

location {
    ................
    ................
}

}

それは私にとってうまく機能していて、今このコードを使用しています

例:-

URLをリクエスト-http ://www.test.com//test///category/item//value/

結果のURL:-http: //www.test.com/test/category/item/value/

サイトのSEOが低下しないように301リダイレクト

于 2017-04-14T09:58:53.843 に答える