Apache Mod_Rewrite空查询字符串后跟斜杠

时间:2017-05-26 21:10:03

标签: apache mod-rewrite

我有一些我需要重定向的超级怪异网址。原始网址如下所示:

 server1.com/directory?/tfoo

这些网址需要转到此处:

 server2.com/search~?query=foo

我尝试了很多不同的可能性,但这就是我现在正在使用的方法:

 RewriteCond %{QUERY_STRING} ^$
 RewriteRule ^/t(.*) https://server2.com/search?query=$2 [L,NE,NC]

基本上,我认为我必须寻找一个空白的查询字符串,然后尝试继续获取目录结构中给出的值(foo)。 RewriteCond匹配我的原始URL,但我似乎无法获取实际的查询参数。

我尝试使用RegEx尝试完全忽略问号,但看起来mod_rewrite只能理解查询参数重定向上下文中的问号。

非常感谢任何建议。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用:

RewriteEngine on

RewriteCond %{THE_REQUEST} /directory/?/t(.+)\s [NC]
RewriteRule ^ http://server2.com/search~?query=%1 [NE,L,R]

答案 1 :(得分:0)

Deadooshka的解决方案(上面评论)有效:

    RewriteCond %{QUERY_STRING} "^/t(.*)$"
    RewriteRule "^/?directory$" "https://server2.com/search?query=%1" [L,NE,NC]`