【问题标题】:Redirecting ? with htaccess重定向?与 htaccess
【发布时间】:2011-10-12 20:39:35
【问题描述】:

我正在尝试将“somepage?open=support”重定向到“support”,我这样做了:

RewriteCond %{QUERY_STRING} ^open=support$

重写规则 (.*) / 支持? [R=301,L]

但它仅适用于某些情况,例如:“site.php?1=2?open=support”,但不适用于“?1=2?open=support”。

我希望它适用于所有情况。

感谢有关此问题的任何建议。

【问题讨论】:

    标签: .htaccess apache2


    【解决方案1】:

    通过将^$ 放在RewriteCond 中,您实际上是在说查询字符串必须等于open=support。但听起来你想要包含 open=support。所以像

    RewriteCond %{QUERY_STRING} ^(|.*\&)open=support(|\&.*)$
    

    注意:我在您的示例中根本没有得到双 ?s,因此请忽略它们。但是,如果您允许 ? 在查询字符串中充当分隔符,例如 &,那么也许

    RewriteCond %{QUERY_STRING} ^(|.*[\?\&])open=support(|[\?\&].*)$
    

    【讨论】:

    • 这不起作用,我在末尾添加 $ 因为我只关心 url 开头。无论以前是什么,我都需要它来重定向所有以“ ?open=support ”结尾的网址。有什么想法吗?
    猜你喜欢
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多