【发布时间】:2013-09-23 12:50:33
【问题描述】:
谁能与我分享 301 重定向中 [R=301] 和 [R=301,L] 之间的区别?哪个最适合重定向网址?
虽然两者都可以正常工作,但我确实注意到 [R=301,L] 将 URL 更改为新 URL,而 [R=301] 仅重定向内容。
谁能分享一下这方面的见解?
【问题讨论】:
谁能与我分享 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)吗?我想不出任何你想重定向的情况,但只有在应用其他规则之后。
R 进行重定向,L 禁止应用低于此规则的任何规则。如果没有L,则其余规则将应用于新 URL。
官方文档说:
您几乎总是希望将 [R] 与 [L] 结合使用(即使用 [R,L]),因为 [R] 标志本身会预先添加 http://thishost[:thisport]到 URI,然后将其传递给规则集中的下一个规则,这通常会导致“请求中的 URI 无效”警告。
【讨论】:
标志 [L] 和 [R=301,L] 之间的主要区别在于,R 标志会导致显式外部 HTTP 重定向(有一个例外),而没有 R 标志,该规则也可能导致隐式内部重定向,取决于实际的规则和请求。
可选的状态码只是指定重定向响应的类型。 301 表示永久重定向:
【讨论】:
L 的重定向标志。