質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.32%
KUSANAGI

KUSANAGIとは、プライム・ストラテジー社が提供する高速化・最適化された仮想マシンイメージ。高いパフォーマンスと高度なセキュリティが特徴で、サーバーの立ち上げからカスタマイズすることなく、高速なWordPressを利用できます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

Q&A

解決済

1回答

119閲覧

サブドメインのWordpressをメインドメインのサブディレクトリにリバースプロキシ設定した際の管理画面内のURLについて

seinochi

総合スコア1

KUSANAGI

KUSANAGIとは、プライム・ストラテジー社が提供する高速化・最適化された仮想マシンイメージ。高いパフォーマンスと高度なセキュリティが特徴で、サーバーの立ち上げからカスタマイズすることなく、高速なWordPressを利用できます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

0グッド

0クリップ

投稿2025/02/27 11:02

状況

◆メインドメインサーバー

見出し内容
OSAlmaLinux 9.3
WebサーバーApache2.4
ドメインhogehoge.com

◆サブドメインサーバー

見出し内容
OSAlmaLinux 9.3
WebサーバーKUSANAGI Version 9.6.6-1.el9 (Nginx1.27とApache2.4のどちらも稼働)
ドメインsub.hogehoge.com

メインサイト( https://hogehoge.com/ )から
別サーバーのサブドメイン( https://sub.hogehoge.com/ )Wordpresssサイトへリバースプロキシを設定し
https://hogehoge.com/sub/ へアクセスしたら
サブドメイン( https://sub.hogehoge.com/ )を表示するように設定。

サブドメインのWordPressアドレス、サイトアドレスを https://hogehoge.com/sub/ へ変更。

上記設定をしましたが、管理画面内の投稿画面やメディアへのリンク先URLが
https://hogehoge.com/wp-admin/edit.php のようにサブディレクトリが削除されたURLとなってしまいます。

サブドメイン側のパスを合わせれば解決するのは分かるのですが
KUSANAGIの仕様上サブディレクトリでの動作保障がされていないため
サブドメイン側のWordpressはドキュメントルートで動かしたいです。

また、ログイン中のWordpressツールバーも利用したいため、
サブドメインURLではなくメインドメインURLで管理画面内を操作したいです。

この場合、どのように設定すれば良いのかご教示いただければ幸いです。

メインドメインが稼働しているサーバー

見出し内容
OSAlmaLinux 9.3
WebサーバーApache2.4
ドメインhogehoge.com

/etc/httpd/conf/httpd.conf に下記を追加

LoadModule proxy_module modules/mod_proxy_http.so LoadModule proxy_http_module modules/mod_proxy.so LoadModule ssl_module modules/mod_ssl.so SSLProxyEngine On ProxyRequests off <Location "/sub"> ProxyPass http://sub.example.com ProxyPassReverse http://sub.example.com ProxyPassReverseCookieDomain sub.example.com example.com ProxyPassReverseCookiePath / /sub/ </Location>

サブドメインが稼働しているサーバー

見出し内容
OSAlmaLinux 9.3
WebサーバーKUSANAGI Version 9.6.6-1.el9(Nginx1.27とApache2.4のどちらも稼働)
ドメインsub.hogehoge.com

①サーバー作成直後に下記コマンドを実行

※Nginx、Apache共に稼働していて、ドキュメントルートにWordpressがインストールされています。

kusanagi init kusanagi provision kusanagi httpd-behind-nginx

②wp-config.php に下記を追加

if (isset($_SERVER['HTTP_X_FORWARDED_HOST']) && $_SERVER['HTTP_X_FORWARDED_HOST'] === 'hogehoge.com') { $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST']; $_SERVER['SERVER_NAME'] = $_SERVER['HTTP_X_FORWARDED_SERVER']; $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR']; } define('WP_SITEURL', 'https://hogehoge.com/sub'); define('WP_HOME', 'https://hogehoge.com/sub'); define('WP_CONTENT_URL', 'https://hogehoge.com/sub/wp-content'); define('FORCE_SSL_ADMIN', true); $_SERVER['HTTPS'] = 'on';

③ドキュメントルート直下の .htaccess は初期のまま

# vim: ft=apache et sw=4 <FilesMatch "^\.ht"> Require all denied </FilesMatch> <Files "wp-login.php"> Require ip 127.0.0.1 AuthType Basic AuthName "ENTER YOUR NAME & PASSWORD TO LOGIN" AuthUserFile /home/kusanagi/.htpasswd Require valid-user </Files> #<Files "xmlrpc.php"> # Require all denied #</Files> <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_URI} !\.(gif|css|js|swf|jpeg|jpg|jpe|png|ico|swd|pdf|svg|eot|ttf|woff)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

メインサーバーのリバースプロキシ先を変更し、サブドメインサーバーにシンボリックリンクを設定、.htaccessを変更する事で解決しました。

メインドメインが稼働しているサーバー

/etc/httpd/conf/httpd.conf を下記に変更

LoadModule proxy_module modules/mod_proxy_http.so LoadModule proxy_http_module modules/mod_proxy.so LoadModule ssl_module modules/mod_ssl.so SSLProxyEngine On ProxyRequests off <Location "/sub"> ProxyPass http://sub.example.com/sub ProxyPassReverse http://sub.example.com/sub ProxyPassReverseCookieDomain sub.example.com example.com ProxyPassReverseCookiePath / /sub/ </Location>

サブドメインが稼働しているサーバー

シンボリックリンクを作成

ln -s /home/kusanagi/sub/DocumentRoot /home/kusanagi/sub/DocumentRoot/sub

.htaccessの修正

<IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase /sub/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_URI} !\.(gif|css|js|swf|jpeg|jpg|jpe|png|ico|swd|pdf|svg|eot|ttf|woff)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /sub/index.php [L] </IfModule>

投稿2025/02/28 03:16

seinochi

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.32%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問