有人能和我分享一下301重定向中[R=301]和[R=301,L]的区别吗?哪一项最适合重定向urls?
虽然两者都工作得很好,但我确实注意到,[R=301,L]将URL更改为新的URL,而[R=301]只重定向内容。
有人能分享一些关于这方面的见解吗?
发布于 2013-09-23 20:52:53
与R=301无关,L标志表示Last,当您想要标记结束特定重写规则时,应该将其放在规则中。
根据
L标志会导致mod_rewrite停止处理规则集。在大多数上下文中,这意味着如果规则匹配,则不会再处理其他规则。这与Perl中的最后一个命令或C中的break命令相对应。使用此标志指示应立即应用当前规则,而不考虑其他规则。
发布于 2013-09-23 20:57:03
R进行重定向,并且L禁止应用此重定向下的任何规则。如果没有L,那么rest规则将应用于新的URL。
官方文件说:
您几乎总是希望将R与L结合使用,因为R标志本身会在URI前面加上http://thishost[:thisport],但随后会将其传递给规则集中的下一个规则,这通常会导致“Invalid URI in request”警告。
发布于 2013-09-23 20:54:31
标志L和HTTP之间的主要区别在于,R标志导致显式外部R=301重定向(有一个例外),而如果没有R标志,则规则也可能仅导致隐式内部重定向,这取决于实际的规则和请求。
可选的状态代码只是指定重定向响应的类型。301表示永久重定向:
https://stackoverflow.com/questions/18959715
复制相似问题