2017-05-26 6 views
0

リダイレクトする必要のある非常に奇妙なURLがあります。Apache Mod_Rewrite空のクエリ文字列のあとにスラッシュを付けます。

server1.com/directory?/tfoo 

これらのURLはここに行く必要があります::オリジナルのURLは次のようになり

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はクエリパラメータのリダイレクトのコンテキストでquestionmarkを理解しているようです。

アドバイスは大変ありがとうございます。

ありがとうございます!

+0

'をするRewriteCond%{QUERY_STRING} "^/T $(*。)"'↵ 'のRewriteRule "^ /?directory $" "https://server2.com/search?query=%1" [L、NE、NC] ' – Deadooshka

+0

ありがとう、@Deadooshka、うまくいった! – lpm

答えて

0

Deadooshkaのソリューションを働いた:

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

あなたはこれを使用することができます(上記のコメント)

RewriteEngine on 

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