Apache Mod_重写空查询字符串,后跟斜杠

Apache Mod_重写空查询字符串,后跟斜杠,apache,mod-rewrite,Apache,Mod Rewrite,我有一些非常奇怪的URL需要重定向。原始URL如下所示: server1.com/directory?/tfoo 这些URL需要转到此处: server2.com/search~?query=foo 我尝试了许多不同的可能性,但这就是我现在正在研究的: RewriteCond %{QUERY_STRING} ^$ RewriteRule ^/t(.*) https://server2.com/search?query=$2 [L,NE,NC] 基本上,我认为我必须寻找一个空白的查询

我有一些非常奇怪的URL需要重定向。原始URL如下所示:

 server1.com/directory?/tfoo
这些URL需要转到此处:

 server2.com/search~?query=foo
我尝试了许多不同的可能性,但这就是我现在正在研究的:

 RewriteCond %{QUERY_STRING} ^$
 RewriteRule ^/t(.*) https://server2.com/search?query=$2 [L,NE,NC]
基本上,我认为我必须寻找一个空白的查询字符串,然后尝试获取目录结构(foo)中给定的值。RewriteCond与我的原始URL匹配,但我似乎无法获取实际的查询参数

我用正则表达式做了很多尝试,试图完全忽略问号,但mod_rewrite似乎只在查询参数重定向的上下文中理解问号

非常感谢您的任何建议

谢谢

您可以使用:

RewriteEngine on

RewriteCond %{THE_REQUEST} /directory/?/t(.+)\s [NC]
RewriteRule ^ http://server2.com/search~?query=%1 [NE,L,R]
Deadooshka的解决方案(如上所述)有效:


RewriteCond%{QUERY\u STRING}“^/t(.*)$”
↵ <代码>重写规则“^/?目录$”https://server2.com/search?query=%1“[L,NE,NC]谢谢,@Deadooshka,这很有效!
    RewriteCond %{QUERY_STRING} "^/t(.*)$"
    RewriteRule "^/?directory$" "https://server2.com/search?query=%1" [L,NE,NC]`