任何人都可以与我分享301 重定向[R=301]
之间的区别吗?[R=301,L]
哪个最适合重定向网址?
虽然两者都工作得很好,但我确实注意到[R=301,L]
将 URL 更改为新 URL,而[R=301]
仅重定向内容。
任何人都可以分享一些对此的见解吗?
R=301
当您想要标记结束特定的重写规则时,无论L
标志意味着Last
并且应该放置在规则中。
根据官方文档:
[L] 标志导致 mod_rewrite 停止处理规则集。在大多数情况下,这意味着如果规则匹配,则不会处理更多规则。这对应于 Perl 中的最后一条命令,或 C 中的 break 命令。使用此标志指示应立即应用当前规则而不考虑进一步的规则。
R
进行重定向并L
禁止应用低于此规则的任何规则。如果没有,L
则其余规则将应用于新 URL。
官方文档说:
您几乎总是希望将 [R] 与 [L] 一起使用(即使用 [R,L]),因为 [R] 标志本身会将 http://thishost[:thisport] 附加到 URI ,但随后将其传递给规则集中的下一条规则,这通常会导致“请求中的 URI 无效”警告。
标志 [L] 和 [R=301,L] 之间的主要区别在于 R 标志导致显式外部 HTTP 重定向(有一个例外),而没有 R 标志,规则也可能导致隐式内部重定向,视实际规则和要求而定。
可选的状态码只是指定重定向响应的类型。301 表示永久重定向: