我正在将产品从旧类别重定向到新类别。
我已设法按照以下规则使其工作:
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
,因为.*
匹配零或更多字符。