【问题标题】:Using [L] flag when redirecting to another host重定向到另一个主机时使用 [L] 标志
【发布时间】:2014-09-10 07:18:49
【问题描述】:

apache docs 提及

您几乎总是希望将[R][L] 结合使用 (即使用[R,L]),因为[R] 标志在其前面 http://thishost[:thisport] 到 URI,然后将其传递给 规则集中的下一条规则,通常会导致 'Invalid URI 在请求中的警告。

现在,假设我有一个如下的重写语句:

RewriteRule ^pass/?$ https://www.example.com/ [R,NC]

既然在这里我将我的客户端重定向到另一个主机/域,我真的需要传递[L] 标志吗?

如果我也使用[QSA] 标志会有影响吗?

【问题讨论】:

    标签: apache mod-rewrite url-redirection


    【解决方案1】:

    确实是个好问题。

    在我的所有测试中,我无法创建这样一个场景,即从此规则中省略 L 会显示整体行为的任何变化。只有内部发生更改,因为将L 标志强制mod_rewrite 立即运行rewrite 循环而不是直到文件末尾。因此,如果不是出于其他原因,拥有L 的 IMO 出于性能原因会更好。

    关于QSA这里绝对不需要,因为QSA只有在你的规则修改QUERY_STRING时才需要,这里不是这样。

    【讨论】:

    • 我想强调的是,省略 L 标志确实会对 internal rewrite 规则产生影响。
    猜你喜欢
    • 2015-06-07
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 2011-12-31
    • 2020-06-09
    • 2017-04-08
    相关资源
    最近更新 更多