1. ホーム
  2. apache

[解決済み] htaccessファイルのRewriteOptions inheritは何をするのですか?[クローズド]

2022-02-11 15:36:03

質問

の設定を変更する際に .htaccess ファイルで、ディレクティブ RewriteOptions inherit がすでに存在しています。この行が何をするのか、そしてその行を削除して新しく始めるのか、あるいは既存のデータに私の設定を追加するのかについて、私は混乱しています。

このディレクティブは何をするのでしょうか、また、行を削除することによる副作用はあるのでしょうか?

補足 を使いたいのですが DirectoryIndex を使用して、デフォルトのインデックスファイルを選択します。

解決方法は?

その Inherit オプション のhtaccessファイル内のルールは、すべてこのルールに従うことを意味します。 ディレクトリは継承されます。

Inherit - これは、現在の設定が親の設定を継承するように強制します。仮想サーバ単位のコンテキストでは、これはメインサーバのマップ、条件、ルールが継承されることを意味します。ディレクトリ単位のコンテキストでは、これは親ディレクトリの .htaccess 設定または <Directory> セクションは継承されます。継承されたルールは、このディレクティブが使用されているセクションに 仮想的にコピーされます。ローカルルールと組み合わせて使用される場合、継承されたルールはローカルルールの後ろにコピーされます。このディレクティブの位置 (ローカルルールの下または上) は、この動作に影響を与えません。ローカルルールが書き換えを強制的に停止させた場合、継承されたルールは処理されません。

注意:親スコープから継承されたルールは、子スコープで指定されたルールの後に適用されます。

通常は .htaccess ファイルを特定のサブディレクトリに置くと、親ディレクトリのルールが優先され、適用されなくなります。参照 ディレクティブの適用方法 の中にある .htaccessファイル Apache HTTP サーバーチュートリアル .:

の中にある設定ディレクティブは .htaccess ファイルがあるディレクトリに適用されます。 .htaccess ファイルが見つかった場合、そのサブディレクトリにも適用されます。しかし,このような場合であっても,その中に .htaccess ファイルを上位のディレクトリに配置します。ディレクティブは、見つかった順番に適用されます。従って .htaccess のディレクティブを上書きすることがあります。 .htaccess ファイルは、ディレクトリツリーの上位にあります。そして、それらのファイルは、さらに上位にある、あるいはメインサーバ設定ファイル自体にあるディレクティブを上書きするかもしれません。

を使用すると RewriteOptions inherit オプションを使用すると、親ディレクトリの書き換えルールは基本的に サブディレクトリのルールの末尾に追加されます。Apache 2.4 では、サブディレクトリのルールの前か後に追加するオプションが追加されています。このディレクティブは mod_rewrite と rewrite ルールだけに影響します。このディレクティブは DirectoryIndex ディレクティブは影響を受けません。この htaccess ファイルがすでにドキュメントルートにある場合は、 "parent" htaccess ファイルが存在しないので削除してかまいません。