0

すべてのサブドメインからの404エラーのサインページを常に開くようにapacheを作成したいと思います。

問題は、私のサブドメインがpublic_htmlのサブフォルダーにあるため、ルートパスが異なることです。

たとえば、メインドメインはこれが非常にうまく機能します。

ErrorDocument 404 /Error/404.html

フォルダとメインドメインはErrorそれぞれpublic_htmlにあります。

public_html/forum/ただし、上記のルートパスにあるフォーラムサブドメインは存在せず、実際にpublic_html/forum/Error/404.htmlは存在しないものを検索します。

フォーラムフォルダのルールを書き直そうとしましたが、うまくいきませんでした。

ErrorDocument 404 /../Error/404.html

どうやら、何らかの理由でルートフォルダの下に移動できないようです。

リダイレクトをトリガーせずに、メインドメインとサブドメインから同じページを同じように参照するにはどうすればよいですか?(例:http://mysite/Error/404.htmlこれを達成しますが、私が望まないページのURLアドレスも変更します)

4

1 に答える 1

1

どうやら、何らかの理由でルートフォルダーの下に移動できないようです。

ドキュメント ルートの上をトラバースできることは、非常に深刻なセキュリティ リスクになるためです。Web サーバーが危険にさらされると、人々はサーバー全体のあらゆる場所であらゆる種類のファイルを提供できるようになります。

サーバー構成にアクセスできる場合は、/Errorフォルダーのエイリアスを設定できます。たとえば、フォーラムのサブドメインの vhost 構成で、次を追加できます。

Alias /Error /path/to/public_html/Error/

このように、 に行くと、http://forum.yourdomain.com/Error/404.html実際には が表示されhttp://main.yourdomain.com/Error/404.htmlます。次に、次を使用できます。

ErrorDocument 404 /Error/404.html

フォーラムのサブドメインで通常どおり。

ただし、サーバー/仮想ホスト構成にアクセスできない場合は、mod_proxy と mod_rewrite を使用する必要があります。したがって、 の htaccess ファイルでpublic_html/forum/、これらを先頭に追加します。

RewriteEngine On
RewriteRule ^Error/(.*)$ http://main.yourdomain.com/Error/$1 [L,P]
于 2012-09-26T05:34:43.187 に答える