19

任何人都可以与我分享301 重定向[R=301]之间的区别吗?[R=301,L]哪个最适合重定向网址?

虽然两者都工作得很好,但我确实注意到[R=301,L]将 URL 更改为新 URL,而[R=301]仅重定向内容。

任何人都可以分享一些对此的见解吗?

4

3 回答 3

19

R=301当您想要标记结束特定的重写规则时,无论L标志意味着Last并且应该放置在规则中。

根据官方文档:

[L] 标志导致 mod_rewrite 停止处理规则集。在大多数情况下,这意味着如果规则匹配,则不会处理更多规则。这对应于 Perl 中的最后一条命令,或 C 中的 break 命令。使用此标志指示应立即应用当前规则而不考虑进一步的规则。

于 2013-09-23T12:52:52.590 回答
6

R进行重定向并L禁止应用低于此规则的任何规则。如果没有,L则其余规则将应用于新 URL。

官方文档说:

您几乎总是希望将 [R] 与 [L] 一起使用(即使用 [R,L]),因为 [R] 标志本身会将 http://thishost[:thisport] 附加到 URI ,但随后将其传递给规则集中的下一条规则,这通常会导致“请求中的 URI 无效”警告。

于 2013-09-23T12:57:02.827 回答
1

标志 [L] 和 [R=301,L] 之间的主要区别在于 R 标志导致显式外部 HTTP 重定向(有一个例外),而没有 R 标志,规则也可能导致隐式内部重定向,视实际规则和要求而定。

可选的状态码只是指定重定向响应的类型。301 表示永久重定向:

于 2013-09-23T12:54:30.787 回答