web-dev-qa-db-ja.com

Nginx製品の古いカテゴリから新しいカテゴリへの単純なリダイレクト

製品を古いカテゴリから新しいカテゴリにリダイレクトしています。

私はそれを次のルールで機能させることができました:

rewrite ^/old-category/(.*) /new-category/$1;

しかし、「end line」記号$をいつ使用する必要があるのか​​、それが私の場合とそれの違いは何ですか?例えば:

rewrite ^/old-category/(.*)$ /new-category/$1;

また、ユーザーが古いカテゴリー名(製品なし)を書くだけの場合、ユーザーをリダイレクトしたいのですが、カテゴリーリダイレクト専用の新しいルールを作成するか、上記の現在のルールを編集して両方のケースで機能するようにします。

よろしくお願いします。

9
Analogtime

質問に順番に答える...

この

rewrite ^/old-category/(.*) /new-category/$1;

この

rewrite ^/old-category/(.*)$ /new-category/$1;

書かれたとおりは同等です。 .*ルールは0以上の「すべて」に一致するため、$は冗長であり、実際には必要ありません。

$ターミネータは、固有の方法で終わる文字列を照合する場合に便利です。たとえば、

rewrite ^/old-category/(.*)\.php$ /new-category/$1;

書き換えるPHP files

2番目の質問については、私が正しく理解していれば、これをリダイレクトしたい

http://example.com/old-category/

これに

http://example.com/new-category/

その場合、.*[〜#〜] zero [〜#〜]以上の文字と一致するため、rewriteルールによって既に行われています。

9
Mr Shunz