我对此规则感到困惑:
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,QSA]
如果插入符号是位置锚点,那么插入符号如何匹配整个URL?
我找不到任何正式声明它是一个全部符号。
答案 0 :(得分:3)
插入符号表示查看行的开头。
插入符号在开头匹配而不消耗角色。所以即使空字符串匹配^
。空字符串也匹配^$
,因为它从索引0开始,到索引0结束。
插入符号匹配,因为正则表达式只需要在URL中找到。它不需要匹配整个URL。
使用正则^
作为正则表达式可以提高性能,因为典型的正则表达式只比较URL的开头,因此不需要查看URL的每个字符。