【问题标题】:301 Htaccess RewriteRule Query_String301 Htaccess 重写规则查询字符串
【发布时间】:2011-04-18 13:53:46
【问题描述】:

问题: 访问者打开网址 website.com/?i=133r534|213213|12312312 但此网址不再有效他们需要被转发到 website.com/#Videos:133r534|213213|12312312

我的尝试:在过去的几个小时里,我尝试了许多使用 Query_String 的 mod_rewrite (.htaccess) 规则,但都失败了。 this topic 中的最后一条消息显示了此问题的解决方案,但在我的情况下,规则是什么。

我很好奇你会如何解决这个问题:)!

【问题讨论】:

    标签: .htaccess mod-rewrite get query-string


    【解决方案1】:

    下面将处理您展示的简单案例。如果需要在 ? 之前允许查询字符串或文件名中的其他参数,则需要添加额外的逻辑。

    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^i=(.*)
    RewriteRule ^.*  /#Video:%1? [NE,R=permanent]
    

    为什么这很棘手?

    • RewriteRule 不查看查询字符串,因此您必须使用 RewriteCond 来评估 QUERY_STRING 变量并捕获您稍后需要的部分(通过 %1 引用)
    • 哈希字符 (#) 通常被转义,您必须指定 [NE] 标志
    • 尾随 ?在替换字符串上需要抑制原始查询字符串

    我在 Apache 2.2 上对此进行了测试。

    【讨论】:

    • 伟大的汤姆!非常感谢,这个对我有用,我现在明白了:)
    猜你喜欢
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 2016-11-01
    相关资源
    最近更新 更多