web-dev-qa-db-ja.com

mod_rewrite_rulesフィルターを介してマルチサイトに追加の非書き換え.htaccessディレクティブを追加します

WordPress経由で独自の.htaccessコンテンツを追加する の例によると、テーマ/プラグイン経由で.htaccessファイルを拡張することが可能です。例えば:

<?php
function my_htaccess_contents( $rules )
{
$my_content = <<<EOD
\n # BEGIN My Added Content
# Protect wpconfig.php
<Files wp-config.php>
    Order Allow,Deny
    Deny from all
</Files>
# END My Added Content\n
EOD;
    return $my_content . $rules;
}
add_filter('mod_rewrite_rules', 'my_htaccess_contents');

次の.htaccessファイルになります。

# BEGIN My Added Content
# Protect wpconfig.php
<Files wp-config.php>
    Order Allow,Deny
    Deny from all
</Files>
# END My Added Content

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

しかし、残念ながらマルチサイトでは機能しません。

これを処理する方法はありますか?

1
flowdee

組み込みの方法はありません。 .htaccessは、マルチサイトをセットアップするwp-adminのものの「画面に印刷」されます(wp-config.phpでも同じです)。その情報は、単一サイトのように.htaccessファイルに直接書き込まれることはありません。

マルチサイト/ htaccessのwordpressコアコードは次のとおりです: https://github.com/WordPress/WordPress/blob/703d5bdc8deb17781e9c6d8f0dd7e2c6b6353885/wp-admin/includes/network。 php#L543

1
gabrielperezs