nginxで稼働中サイトのサブディレクトリをapache環境で動くwordpressにリバースプロキシ設定しました。
パーマリンクで設定された各ページは正しく表示されるようになったのですが、
例えばログイン画面など、PHPファイルを直接パス指定した場合に「file not found(404)」になってしまいます。
※ 不思議なことに、htmlファイルを指定すると問題無く表示されます。
前提 以下をリバースプロキシで別サーバで動くwordpressへ
https://example.com/blog/
**https://example.com/blog/wp-login.php**へアクセス
→ 「file not found(404)」になってしまいます。
**https://example.com/blog/**へアクセス
→ リバースプロキシで設定どおりhttps://example.com/blog/index.php が表示されます。(wordpressトップ)
**https://example.com/blog/index.php**へアクセス
→ 上記と実質同じパスなのに、「file not found(404)」になってしまいます。
**https://example.com/blog/license.txt**へアクセス
→ なぜかhttps://example.com/blog/index.php が表示されます。(wordpressトップ)
設定状況は以下のような形です。
nginx (リバースプロキシ元)
server { listen 80; server_name example.com; return 301 https://$host$request_uri; } server { listen 443 default ssl; ssl on; ssl_certificate /etc/nginx/ssl.crt/server.crt; ssl_certificate_key /etc/nginx/ssl.key/server.key; ~ 中略 ~ location /blog/ { proxy_pass https://wordpress稼働サーバIP/blog/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
apache(リバースプロキシ先)は特段変わった設定をしていません。
**httpd.conf** <Directory "/var/www/html"> Options FollowSymLinks ExecCGI AllowOverride All Require all granted </Directory>
blogディレクトリ内でwordpress用のパーマリンク設定をhtaccessで行っています。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /blog/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] </IfModule>
なお、リバースプロキシ先(apacehのwordpress)のIPアドレスを直接指定するとアクセスは出来ます。
https://wordpress稼働サーバIP/blog/wp-login.php**へアクセス
→ アクセスは出来る。しかしログインには失敗**
そこでwp-config.phpの先頭に以下のように定義すると、ログインから一連の動作は問題無く動くようになりました。
<?php define( 'WP_SITEURL', 'http://wordpress稼働サーバIP/blog' ); define( 'WP_HOME', 'http://wordpress稼働サーバIP/blog' );
しかし、この設定をすると当然、**wordpress内のリンクすべてが「http://wordpress稼働サーバIP」の生IPURLになってしまう**のです。
※ またSSL証明書の警告も、、
出来ることをどんどん試してみた結果、ちょっと逆に散らかってしまってますが
どなたかご存知なことがあればご教示ください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。