在Nginx配置中,这两个符号(^和$)代表什么?

在Nginx配置中,这两个符号(^和$)代表什么?,nginx,Nginx,有谁能帮助理解为什么会有^和$?我知道^的意思是“开始”,而$的意思是“结束”。我只是不知道我们为什么需要它?你能列出一些与下面的重写匹配的URI,并告诉我有没有这两个符号的区别吗 rewrite ^/users/(.*)$ /show?user=$1? last; 它们的存在是为了确保在执行重写时匹配整个URL 例如,如果没有^,这些URL将匹配: /admin/users/foo /whatever/users/bar /users/dan/delete /users/dan/profi

有谁能帮助理解为什么会有
^
$
?我知道
^
的意思是“开始”,而
$
的意思是“结束”。我只是不知道我们为什么需要它?你能列出一些与下面的重写匹配的URI,并告诉我有没有这两个符号的区别吗

rewrite ^/users/(.*)$ /show?user=$1? last;

它们的存在是为了确保在执行重写时匹配整个URL

例如,如果没有
^
,这些URL将匹配:

/admin/users/foo
/whatever/users/bar
/users/dan/delete
/users/dan/profile
/users/danny
在这种情况下,实际上并不需要
$
,因为
*
是贪婪的(
匹配任何东西,
*
尽可能匹配)。这将导致表达式匹配剩余的输入,即使没有
$
。在更受限制的情况下,例如:

rewrite ^/users/dan$ /show?user=dan last;
出于同样的原因,
$
也很重要。如果没有它,这些URL将匹配:

/admin/users/foo
/whatever/users/bar
/users/dan/delete
/users/dan/profile
/users/danny

但是有了它,只有准确的url
/users/dan
才会匹配。

这些都是为了确保在执行重写时匹配整个url

例如,如果没有
^
,这些URL将匹配:

/admin/users/foo
/whatever/users/bar
/users/dan/delete
/users/dan/profile
/users/danny
在这种情况下,实际上并不需要
$
,因为
*
是贪婪的(
匹配任何东西,
*
尽可能匹配)。这将导致表达式匹配剩余的输入,即使没有
$
。在更受限制的情况下,例如:

rewrite ^/users/dan$ /show?user=dan last;
出于同样的原因,
$
也很重要。如果没有它,这些URL将匹配:

/admin/users/foo
/whatever/users/bar
/users/dan/delete
/users/dan/profile
/users/danny

但是有了它,只有确切的url
/users/dan
才能匹配。

重复阅读链接问题的答案,特别是在“锚”部分。我确切地知道“^”和“$”的意思,我只需要举例说明它们,这个链接对我来说并不清楚我的困惑。但还是要谢谢。重复阅读链接问题的答案,特别是在“锚”部分。我知道“^”和$的确切含义,我只需要举例说明它们,这个链接对我来说并不清楚我的困惑。但是还是要感谢。^/users/(.*)让我感到困惑的原因是我认为每个请求URI都以/,现在我明白了^/users的意思是“一个请求URI以整个/users开头”,另一个原因是我不知道为什么它仍然增加$,我也认为在这种情况下没有必要,你已经解决了我多年来的困惑。谢谢。^/users/(.*)让我感到困惑的原因是,我认为每个请求URI都以/开头,现在我明白了^/users的意思是“一个请求URI以整个/users开头”,另一个原因是我不知道为什么它仍然添加$,我也认为在这种情况下没有必要,你已经解决了我多年来的困惑。谢谢