0

HTTP_REFERER、HTTP_USER_AGENT、および WordPress の特定のディレクティブを含む .htaccess ファイルを以下に示します。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} acertainwebsite\.com [NC,OR]
RewriteCond %{HTTP_USER_AGENT} acertainwebsite.com [NC]
RewriteRule .* - [F]

RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wordpress/$2 [L]
RewriteRule . index.php [L]
</IfModule>

FreeBSD で VPS を実行しています。ルート .htaccess ファイルのディレクティブ RewriteCond %{HTTP_REFERER} および RewriteCond %{HTTP_USER_AGENT} が下位レベルのサブディレクトリで適用されているかどうかをテストする方法がわかりません。

Wordpress 4.1.1 の最新バージョン。サブディレクトリ構造オプションを使用して、マルチサイト オプションをオン/有効にしてインストールされます。

一部のリファラー トラフィックがルート ディレクトリの .htaccess ファイルを通過している可能性があると思われます。.htaccess ファイルのディレクティブが上にカスケードすること、Apache が最初にサブディレクトリを検索し、次に親を検索し、次に親から親を検索することをどこかで読みました。

そこで質問です。マルチサイト インストールの各サブディレクトリに .htaccess ファイルを配置する必要がありますか? または、マルチサイト インストールのルート ディレクトリに .htaccess ファイルが 1 つあれば問題ありませんか?

マルチサイト ドメインの各サブディレクトリに .htaccess ファイルを配置する必要がある場合、サブドメインに空の .htaccess ファイルを配置するだけで十分でしょうか? それは、強制をチェックするために上向きのカスケードをトリガーしますか?

これがどのように機能するかについての適切な説明、またはそれをよりよく説明する別の情報源への参照がある場合は、お知らせください。ありがとう!!!

4

1 に答える 1

0

親ディレクトリとサブディレクトリの間で htaccess ファイルが機能する方法は、実際にはディレクティブに依存します。一部のディレクティブは、親の htaccess ディレクティブを使用し、それらのディレクティブのより厳密なサブセットのみをサブディレクトリに適用します (パーミッションを含むディレクティブなど)。一部のディレクティブは、親の htaccess 内のすべてのものよりも完全に優先されます (mod_rewrite など)。

mod_rewrite に関することは、サブディレクトリの htaccess ファイルにルールがある場合、それらのルールのみが実行されるということです。サブディレクトリに親の htaccess ルールを含めるバリエーションが含まれていない限り、親の htaccess ファイル内のルールは完全に無視されRewriteOptions Inheritます。Apache 2.2 では、ルールの継承は親ルールがサブディレクトリ内のルールの最後に追加されることを意味するだけですが、2.4 では親ルールのより具体的な追加/前置が可能です。

wordpress などのサブディレクトリにアプリケーションがある場合、これらのルールは有効になりますが、親ディレクトリのルールは完全に無視されます (リファラー ルールなど)。これらのルールを適用する場合は、これらのルールをサブディレクトリ htaccess ファイルにコピーする必要があります (この場合、既存のルールのに配置します)。

書き換え規則のない htaccess ファイルを含む (または含まない) サブフォルダーがある場合、親ディレクトリの規則が有効になります。

于 2015-03-26T00:25:54.603 に答える