Bagaimana saya bisa menggunakan DocumentRoot dan status server dalam host virtual Apache?


8

Saya memiliki pengaturan host virtual ini sebagai yang pertama dalam daftar host virtual. ini

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

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

Host virtual lainnya ada di bawah ini dan dinyatakan sebagai *: 80.

Ketika saya menyertakan DocumentRoot di host virtual ini, permintaan pada server untuk http://localhost/server-statusselalu menekan /index.php melalui aturan penulisan ulang di /www/drupal5/.htaccess. Jika saya menghapus deklarasi DocumentRoot, / permintaan status server berfungsi dengan baik, tetapi kemudian situs tidak tersedia sama sekali http://localhost/.

Bagaimana saya bisa mulai http://localhost/server-statusbekerja serta situs memuat http://localhost/?


Bisakah Anda memposting konten /www/drupal5/.htaccess? Mudah-mudahan, dimungkinkan untuk mengubah aturan penulisan ulang sehingga permintaan untuk / server-status tidak ditulis ulang.
Steven Monday

Klarifikasi yang saya pikir saya butuhkan adalah: apakah mungkin untuk mod_rewrite untuk menimpa apa yang terjadi pada jalur / server-status meskipun itu telah ditangani di <Lokasi>

Jawaban:


12

Menemukan solusinya ketika saya googled 'server-status mod_rewrite'. Secara kebetulan itu dijawab dalam sebuah forum drupal: http://drupal.org/node/52511

Menambahkan RewriteCond %{REQUEST_URI} !=/server-statuske aturan penulisan ulang untuk mengarahkan ulang semua lalu lintas ke /index.php memperbaikinya.

Sangat membingungkan bahwa mod_rewrite dapat menulis ulang uri yang sudah mengatur handler.


Terima kasih, ini berhasil!
Luke Duda

3

Jika Anda menggunakan Apache 2.3 atau lebih tinggi, Anda juga harus dapat menggunakan ENDbendera di entri VirtualHost Anda, untuk menyimpan harus memodifikasi file .htaccess.

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

Seharusnya mencegah aturan selanjutnya dari menulis ulang hal-hal.


3

Cukup tambahkan entri vhost kosong ke bagian atas file konfigurasi vhost misalnya

<VirtualHost *:80>
</VirtualHost>

2
Bagaimana cara memecahkan pertanyaan awal?
Pothi Kalimuthu

Apache secara default ke OP pertama kali bernama vhost, instal Drupal mereka, alih-alih pergi ke halaman status server. Vhost kosong akan menghentikan pemrosesan status / server agar tidak dikirim ke Drupal dan memungkinkan laman status dimuat
xref
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.