3

有什么区别:

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

RewriteRule ^(.*)$ http://example.com/page.html [R=301,L]
4

2 回答 2

5

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

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

区别在于正则表达式模式:

^      - means match line start (will always match)
^(.*)$ - means match whole URI with 0 or more characters and capture it in $1
于 2013-10-21T15:26:05.477 回答
3

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

于 2013-10-21T15:35:57.367 回答