2016-11-14 39 views
1

urlパスの場所名をnginxのクエリ文字列に書き直そうとしています。nginxのクエリ文字列パラメータにURLパスパラメータを書き込む

私はourdomain.com/hotels/london?some_key=valueは、我々は、Apacheでそれをやっていたourdomain.com?d=london&some_key=value

になりたい -

RewriteRule ^hotels/([^/]+)/?\??(.*)$ ?d=$1&$2 [QSA] 

そして、我々は現在、(リバースプロキシとして動作)haProxy上でやっている -

reqrep ^([^\ :]*)\ /hotels/([^/\ \?]+)/?\??([^\ ]*)(.*)$  \1\ /?d=\2&\3\4 

どのようにnginxで同じことをするのですか? nginx URIは、常にリードする/を持って

rewrite ^/hotels/([^/]+)/?$ /?d=$1 permanent; 

:よう

答えて

5

は何かを試してみてください。 ?とクエリ文字列は正規化されたURIの一部ではありませんが、rewriteディレクティブは、末尾に?がなければ自動的に引数を追加します。

詳細はthis documentを参照してください。

関連する問題