常规表达式中的^(.*)$和^之间的区别(.htaccess)

Mik*_*wak 3 regex .htaccess mod-rewrite

有什么区别:

RewriteRule ^ http://example.com/page.html   [R=301,L]
Run Code Online (Sandbox Code Playgroud)

RewriteRule ^(.*)$ http://example.com/page.html [R=301,L]
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

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

由于您没有对匹配组中的REQUEST_URI执行任何操作,因此无需捕获它,就像您在第二个规则中使用 ^(.*)$

区别在于正则表达式:

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