2016-12-31 93 views
0

我感到困惑的这条规则:重写规则 - 光标^ - 匹配

RewriteCond %{HTTPS} !=on 

RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,QSA] 

这怎么可能,如果它是一个位置锚插入符可以匹配整个URL?

我找不到任何官方声明,它是一个捕获所有符号。

回答

1

插入符号意味着看着一条线的开头

插入符号匹配,因为正则表达式只需要在URL中找到的某处。它不需要匹配整个URL。

由于典型的正则表达式只比较URL的开头,因此不需要查看URL的每个字符,因此此设计决策可以提供更多性能。

+0

Thx很多为您的答案。但是如何在没有像这样的parttern定义的情况下匹配任何内容:^(。+) – Masi

+0

每个字符串都有一个开始。脱字符匹配_开始时不消耗角色。所以即使是空字符串也是匹配'^'。它也匹配'^ $',因为它从索引0开始到索引0结束。 –

+0

关于你的回答,我希望在这个网站https://regex101.com/上指出插入符应该突出显示所有内容。但它不... – Masi