web-dev-qa-db-ja.com

Apache:sd.example.comとsd.example.com/sdの両方が機能します-無効にする方法は?

Sd.example.comに仮想ホストをセットアップしました。 DocumentRootはhtdocs/sdです。 sd.example.comへの参照は期待どおりに機能します。しかし、sd.example.com/sdを参照しても、同じ結果が得られます。

これは予期された動作ですか、その場合、それを無効にする方法は? sd.example.com/sdがhtdocs/sd/sdをロードしようとすると、404になるはずだと思っていました。

期待していない場合は、vhosts confを投稿してください。

2
kraligor

まず、誤って「sd」を別の「sd」内に直接コピーしていないことを確認してください。これは、考えられるよりも頻繁に発生するためです。親ディレクトリへのシンボリックリンクがあるかどうかを確認する良い機会かもしれません。

また、sd.example.com/asedfasdfasdがエラーまたはsd.example.comと同じものを返すかどうかを確認します

可能であれば、仮想ホスト設定を投稿してください。sd.example.com/ sdがそのサブディレクトリにページをロードするか、sd.example.comにリダイレクトされることを確認できます

-私はこれをコメントとして書きますが、そうするのに十分な担当者がいません。

1
Jason McNoles

htdocsは通常、メインドメインのドキュメントルートですexample.com。私はあなたがあなたの例を間違ってタイプし、それが実際にexample.com/sdサブドメインと同じ結果が得られます。サブドメインを格納するためのサブディレクトリを作成することはお勧めできません。代わりに、完全に異なるドキュメントルートを使用する必要があります。たとえば、サーバー上にさまざまなドキュメントルート用に次のようなディレクトリを作成します。

  • /var/www/example.com/
  • /var/www/sd.example.com/
  • /var/www/www.example.net/

そうすれば、サブドメインが別のドメイン内にネストされることはありません。すべてがうまくいくだけです。

残念ながら、共有ホスティングでは、ディレクトリ構造とドキュメントルートを慎重に管理する余裕がない場合があります。共有ホスティングインターフェイスcPanelには、メインドメインをディレクトリでホストし、サブドメインとアドオンドメインのサブディレクトリを作成するという悪い癖があります。その場合、コードを.htaccessサブドメインへのアクセスを防ぐためのメインドメイン。

Redirect permanent /sd/ http://sd.example.com/
Redirect permanent /sd http://sd.example.com/
1