Apache仮想ホスト内でDocumentRootとserver-statusを使用するにはどうすればよいですか?


8

仮想ホストのリストの最初に、この仮想ホストをセットアップしました。です

<VirtualHost localhost:80>
ServerName localhost
DocumentRoot "/www/drupal5"

<Location /server-status>
    SetHandler server-status
    Order Deny,Allow
    Allow from localhost
</Location>
</VirtualHost>

残りの仮想ホストは以下にあり、*:80として表されます。

この仮想ホストにDocumentRootを含めると、サーバーhttp://localhost/server-statusで/www/drupal5/.htaccessの書き換えルールを通じて常に/index.phpをヒットするように要求されます。DocumentRoot宣言を削除すると、/ server-statusリクエストは正常に機能しますが、サイトはまったく使用できませんhttp://localhost/

どのように私はhttp://localhost/server-statusロードするサイトと同様に仕事に行くことができhttp://localhost/ますか?


の内容を投稿できます/www/drupal5/.htaccessか?うまくいけば、/ server-statusの要求が書き換えられないように書き換えルールを変更することが可能です。
スティーブン

私は、私は必要だと思う明確化は次のようになります。それはmod_rewriteのは、それが<場所>で取り扱われていていても/サーバ・ステータス・パスに何が起こるかを上書きすることは可能である

回答:


12

「server-status mod_rewrite」をグーグル検索したときに解決策が見つかりました。偶然にもそれはdrupalフォーラムで答えられました:http : //drupal.org/node/52511

RewriteCond %{REQUEST_URI} !=/server-statusすべてのトラフィックを/index.phpにリダイレクトするための書き換えルールに追加すると、修正されました。

mod_rewriteがすでにハンドラーを設定しているURIを書き換えることができるとは非常に混乱しています。


ありがとう、うまくいきました!
ルーク・ダダ

3

Apache 2.3以降を使用している場合はEND、VirtualHostエントリでフラグを使用して、.htaccessファイルを変更する必要をなくすこともできます。

RewriteCond %{REQUEST_URI} /server-status
RewriteRule ^ - [END]

後続のルールが物事を書き換えることを防ぐ必要があります。


3

空のvhostエントリをvhost構成ファイルの先頭に追加するだけです。

<VirtualHost *:80>
</VirtualHost>

2
元の質問をどのように解決しますか?
Pothi Kalimuthu 2013年

Apacheは、サーバーステータスページに移動するのではなく、Drupalインストールであるvhostという名前のOPをデフォルトで使用します。空のvhostは/ server-statusの処理がDrupalに送信されるのを停止し、ステータスページの読み込みを許可します
外部参照
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.