2016-09-24 5 views
1

私はウェブサイトを持っていて、 '/ blog'の下にワードプレスのブログ(別のインスタンスでホストされています。 私は以下の構成でnginxのプロキシを使用していますがnginxを使用して '/ blog'を別のインスタンスでホストされているワードプレスのウェブサイトにリダイレクトする

location ^~ /blog 
    proxy_set_header X-Real-IP   $remote_addr; 
    proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for; 
    proxy_set_header Host     $http_host; 
    proxy_set_header X-NginX-Proxy  true; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_http_version 1.1; 
    proxy_pass   11.111.11.111 
    proxy_redirect  off; 
    } 

私も変更しているワードプレスの設定 - >一般

WordPressのアドレス(URL) - http://mywebsite.com/blog

サイトアドレス(URL) - http://mywebsite.com/blog

'/ blog'は完全に機能していないので、cssとjsを読み込めません。

誰でもどのようにこれを行うか考えています。私はこの問題に関する多くの記事を読んだが、誰も私の問題を解決しなかった。おかげさまで

+0

ブログは他のインスタンスのルートにホストされていますか? –

+0

はい、そのインスタンスは他のインスタンスのルートにホストされています –

答えて

2

パブリックURI /blogからアップストリームURI /にマッピングされていない可能性があります。

locationおよびproxy_passディレクティブを使用して、proxy_passステートメントにURIを追加してこの機能を実行できます。詳細は、this documentを参照してください。たとえば:

location ^~ /blog/ { 
    proxy_pass http://192.0.2.0/; 
} 

あなたの全体的な構成に応じて、上記の、正しく転送されることから(/を付けずにIE)URL //example.com/blogを防ぐことができ、その場合には、(1)処理するための特定の場所のブロックを追加します(2)上記の場所ブロックにrewrite ... breakを追加します。

オプション(上記に加え)(1)例:

location = /blog { rewrite^/blog/ last; } 

オプション(2)例:この第二のオプションで

location ^~ /blog { 
    rewrite ^/blog(?:/(.*))?$ /$1 break; 
    proxy_pass http://192.0.2.0; 
} 

、エイリアシング機能は、rewriteステートメントに移動させますproxy_passにはURIが追加されていません。詳細は、this documentを参照してください。

+0

@RichardSmithに遅れて申し訳ありません。あなたの2番目の方法を試してみましたが、内部リンクの一部が正常に動作していません 1)**/wp-admin/post.php **:その_redirecting_を**/wp-admin/editに公開しています.php ** 2)また** wp-admin/edit-tags.php?taxonomy =カテゴリ**:_redirecting_から**/wp-admin/edit-tags.php ** わからない理由それはリダイレクトの原因ですか? –

関連する問題