web-dev-qa-db-ja.com

NGINX:書き換えでクエリ文字列を削除します

クエリ文字列を使用せずに、サイトのインデックスに301を書き換えたいのですが。このような:

http://example.com/anypage.asp?anyvar=anyvalue

に:

http://example.com/

これが実際の例です:

http://atipico.com.br/conteudo.asp?P_categ=23

私はこれに従おうとしています: http://wiki.nginx.org/NginxHttpRewriteModule#rewrite

(コメントは私の試みです):

location ~ /conteudo\.asp(.*)$ {
    #rewrite ^ / permanent;
    #rewrite ^ /? permanent;
    #return 301 /;
    #return 301 /?;
    #if ($args) { return 301 /; }
}

常にhttp://atipico.com.br/?P_categ=23に書き換えます

何か案は?

3
Roger

これは私が見つけた最良のルールであり、私には有効です。

rewrite ^/content /? permanent;

つまり、すべてのリクエストを書き直してください。

  • ドメインのルートから開始(^ /)

  • 「コンテンツ」が続くより

  • サイトのルート(インデックス)へ(/)

  • 含まれている可能性のあるすべてのクエリ文字列を削除する(?)

  • ヘッダーに301リダイレクトを表示します。

それだけだと思います。

6
Roger