Nginx 简单将产品从旧类别重定向到新类别

Nginx 简单将产品从旧类别重定向到新类别

我正在将产品从旧类别重定向到新类别。

我已设法按照以下规则使其工作:

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

但我想知道什么时候应该使用“行尾”符号 $,以及在我的情况下,有无 $ 有什么区别。例如:

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

另外,如果用户只是写旧的类别名称(不带产品),我想重定向他们,我是否应该为类别重定向创建一个新规则,或者我可以编辑上面的当前规则以在两种情况下都起作用。

提前感谢您的回答。

答案1

按顺序回答您的问题...

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

和这个

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

如书面是等价的。该.*规则匹配 0 个或更多“所有内容”,因此$是多余的/不是真正需要的。

当你$想匹配以具体方式, 例如

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

重写仅限 PHP 文件

至于你的第二个问题,如果我理解正确的话,你想重定向这个

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

对此

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

如果是这样,那么规则已经完成了rewrite,因为.*匹配或更多字符。

相关内容