Apache で、特定のサブドメインへのリクエストに対してのみ DirectorySlash をオフにするにはどうすればよいですか?

Apache で、特定のサブドメインへのリクエストに対してのみ DirectorySlash をオフにするにはどうすればよいですか?

Apacheによって提供された1つ私のサブドメインサイト(としますsub.mydomain.com)のURLそれなし末尾のスラッシュは、基礎となるフォルダ内のインデックス ファイルに直接 (外部リダイレクトなしで) 参照します。サブドメイン リクエストは、内部的にサブフォルダにリダイレクトされます。その他のすべての URL は、スラッシュ バージョンへの外部リダイレクトを使用して、通常の Apache の方法で動作するはずです。

すべてのディレクティブは .htaccess ファイル内に記述する必要があります。これを機能させるには、次の操作を実行する予定です。

  1. DirectorySlashリクエストに応じてスイッチをオフにするsub.mydomain.com/...
  2. sub.mydomain.com/…リクエストを書き直す/sub/...
  3. スラッシュのないディレクトリURLを書き換えて、 基になるディレクトリ内を/sub/...取得します。index.html

2.と3.のやり方はよく分かっていますが、DirectorySlash off リクエストのみsub.mydomain.com、しかし または ではありませんwww.mydomain.comother.mydomain.com?

答え1

聞くところによると、subサブドメインはメインドメインと他のすべてのサブドメイン (wwwotherなど)と同じディレクトリにマップされるようです。

subしかし、サブドメインへのすべてのリクエストが内部的に書き換えられると、/sub サブディレクトリおそらく、別の を.htaccess作成/sub/.htaccessして設定するだけでDirectorySlash Off、サブドメインへのすべてのリクエストに適用されますsub。(別のホスト名で同じサブディレクトリにアクセスしていないと仮定します。必要に応じてこれを防ぐことができます。)

この/sub/.htaccessファイルは、要件の #3 を実装する場所でもあります。

ルート.htaccessファイルは、サブドメインへのすべてのリクエストをサブディレクトリsubに書き換えるだけです/sub


余談:ServerFault でこの質問をしているということは、一般的にはサーバーを完全に制御できると想定されています。その場合、このsubサブドメインを、サブディレクトリを直接指す独自の vHost コンテナ/sub(または、理想的にはメイン ドメイン ディレクトリ ツリーの外側のどこか) に構成することが望ましいでしょう。この場合、要件の 2 を実装する必要はなく、DirectorySlash Offサブドメイン全体に対して設定するだけです。

関連情報