301 Htaccess RewriteRule Query_String

MeP*_*oan 3 .htaccess mod-rewrite get query-string

问题:访问者打开网址http: //?i=133r534|213213 | 12312312,但此网址已无效,需要转发至website.com/#Videos:133r534|213213 | 012312312

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

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

Tom*_*omG 6

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

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

为什么这很棘手?

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

我在Apache 2.2上测试了这个.