Regex 正则表达式(.htaccess)中的^(.*)和^之间的差异

Regex 正则表达式(.htaccess)中的^(.*)和^之间的差异,regex,.htaccess,mod-rewrite,Regex,.htaccess,Mod Rewrite,这两者之间的区别是什么: RewriteRule ^ http://example.com/page.html [R=301,L] 及 这两条规则之间没有真正的区别,但为了简单起见,我更喜欢第一条规则 由于您没有对来自匹配组的请求URI执行任何操作,因此不需要像在第二条规则中使用^(.*)$ 不同之处在于正则表达式模式: ^ - means match line start (will always match) ^(.*)$ - means match whole URI wi

这两者之间的区别是什么:

RewriteRule ^ http://example.com/page.html   [R=301,L]


这两条规则之间没有真正的区别,但为了简单起见,我更喜欢第一条规则

由于您没有对来自匹配组的请求URI执行任何操作,因此不需要像在第二条规则中使用
^(.*)$

不同之处在于正则表达式模式:

^      - means match line start (will always match)
^(.*)$ - means match whole URI with 0 or more characters and capture it in $1

正如anubhava所指出的-在您的上下文中没有区别,而且
^
应该匹配得更快,因为它不必解析到行的末尾
$
,并且不必在
$1
变量中存储任何内容。

通常正则表达式具有捕获块的唯一原因
(…)
是指是否将在替换中使用该匹配项。例如,在每个URL前面加上
/foo
,你可以从
RewriteRule^(.*)$/foo/$1[R,L]
+1开始,在进入
mod_rewrite
池之前,每个人都应该先学习
regex
的基础课程:)@RaviThapliyal:真的吗
^      - means match line start (will always match)
^(.*)$ - means match whole URI with 0 or more characters and capture it in $1