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/?


sumber
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.


sumber
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.

cincodenada
sumber
3

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

<VirtualHost *:80>
</VirtualHost>
Nomad77
sumber
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