私はWordpressマルチサイトをインストールしていますが、実際にサブドメインがどのように管理されているか、つまりブラウザがURL user1.domain.com
を要求したときにどのようにファイル/データを見つけるか知っていますか?
私はDNS Aレコードを調べて、ワイルドカードだけを見ました。
.htaccessを確認したところ、次のようになっていました。
RewriteEngine On
RewriteBase /
# Protect the htaccess file
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
# Protect wpconfig.php
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
# Disable directory browsing
Options All -Indexes
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule . index.php [L]
それで、私は.htaccessがサブドメインを管理していないと思いますか?
それでは、私のワードプレスマルチサイトは、ブラウザがURL user1.domain.comを要求したときに、ファイル/データの場所をどのようにして知るのでしょうか。
ロードプロセス中に、WPがwp-settings.php
をロードします。これにより、is_multsite()
が呼び出され、wp-config.php
で定義されているマルチサイト定数がマルチサイトインストールであるかどうかが確認されます。マルチサイトの場合は、ms-settings.php
がロードされます。 ms-settings.php
内では、WordPressは要求されたURIを解析してドメインを取得し、wpmu_current_site()
を呼び出してそのドメインに基づいて現在のすべてのサイト定数を設定します。