2017-11-22 9 views
0

私はnginxでproxy_passルールを実装しました。これはいくつかのリンクで動作します。私のルールは次のとおりです。nginxプロキシパスはURLを保存する

server_name www.example.com 

location ~ /en/(.*)$ { 
     resolver 8.8.8.8; 
     proxy_pass http://www.destinyweb.en/$1; 
     proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header Host $host; 
    } 

私の目的は、「www.example.com/en/index.jsp」と入力することで、proxy_passは「www.destinyweb.en/index.jspを」に私の要求をリダイレクトします。

対象となるウェブのリンクが「index.jsp」のようなもので、リンクが「/index.jsp」のようなものであればうまくいきます(index.jspの前にスラッシュが付きます)。リンクの中には、対象となるファイルの前に "/"があり、他にはないものがあります。

これがうまく機能のようなウェブサイトの内容は次のとおりです。

<a href="index.jsp">Hello</a> 

これが動作しないように、ウェブサイトの内容は次のとおりです。

<a href="/index.jsp">Hello</a> 

あなたのいくつかはにいくつかの正規表現を知っていますパーサ "/"?

ありがとうございます!

答えて

0

location正規表現に/を含めると便利です。したがって、次のようになります。

location ~ ^/en(/.*)?$ { 

は、スラッシュの有無と一致します。また、そのようproxy_passラインを変更したい:

proxy_pass http://www.destinyweb.en$1; 

$ 1が含まれたり、元の要求がなかったとして/を含みません。

関連する問題