2016-10-25 7 views
2

「p」クエリを使用して表示するページを選択するページングを持つウェブサイトがあります。nginxでそのクエリのないURLにp = 1で終わるすべてのURLを書き換えるにはどうすればいいですか?

私の問題は

www.example.com/category.htmlと

www.example.com/category.html?p=1

が同じ内容であり、ということですSEOの目的で重複して表示されますが、どのようにnginxのすべての?p = 1クエリをクエリフリーの相手にリダイレクトするのですか?

おかげ

答えて

0

p引数の値が$arg_p変数に含まれています。 ステートメントを使用すると、変数の値をテストできます。 ifブロックで使用できるアクションは制限されています(詳細はthis documentを参照)。しかし、単純なreturnステートメントは許可されています。

ので、最も簡単な解決策は、このように、p=1を含む任意のURIからクエリ文字列を消し去るために、次のようになります。$uriは正規化リクエストURIで、すでにクエリ文字列が欠落していることを

server { 
    ... 
    if ($arg_p = 1) { 
     return 301 $uri; 
    } 
    location/{ ... } 
} 

注意。

関連する問題