Imposta la pagina predefinita per Apache Virtual Hosts

Stiamo eseguendo Apache su un server con più voci VirtualHost . Ogni volta che qualcuno accede al server tramite l'indirizzo IP ( http://198.147.xx.xx ), viene visualizzato uno dei siti web che è un VirtualHost . Questo non è desiderato. Preferiremmo trovare una pagina vuota se si accede direttamente all'IP. Non sono sicuro se il sito scelto è solo il primo che viene nell'elenco delle voci Host Host o cosa.

Vogliamo impostare una pagina vuota, se qualcuno accede al server per IP. Ho pensato che semplicemente impostando un'altra voce di VirtualHost per l'indirizzo IP lo farebbe, e sembrava che, ma ora accedere a qualsiasi altro sito VirtualHost port alla stessa pagina vuota, standard. Ecco un esempio della nostra configuration:

  • URL di reindirizzamento all'interno di Apache VirtualHost?
  • Weird Apache accesso log
  • Imansible accedere alla port 80 dalla posizione remota, ma funziona in locale?
  • Comprendere l'ordine Apache e Consenti in <Directory> direttiva
  • Apache virtuale ospita punti al dominio principale
  • Tentare di redirect un url ad un'altra pagina per intervallo IP
  •  <VirtualHost *:80> DocumentRoot /vhosts/somesite.com/public ServerName somesite.com <Directory "/vhosts/somesite.com/public"> allow from all Options +Indexes AllowOverride All </Directory> ServerAlias www.somesite.com </VirtualHost> <VirtualHost 198.147.XX.XX:80> DocumentRoot /vhosts/default/public <Directory /vhosts/default/public> allow from all Options +Indexes </Directory> </VirtualHost> 

    Cosa facciamo male qui? C'è un modo migliore per impostare una pagina di destinazione predefinita per chiunque acceda al server tramite l'indirizzo IP?

  • Creare più variables in / etc / apache2 / envvars?
  • Apache LDAPS Authentication
  • Come scaricare tutte le richieste HTTP con apache
  • Come iniettare il codice HTML in each pagina HTML consegnata?
  • Perché apache rallenta durante la notte?
  • Come posso fare Apache in 2 directory separate con un comune URL?
  • One Solution collect form web for “Imposta la pagina predefinita per Apache Virtual Hosts”

    Se ricordo bene, il comportmento per gli host virtuali funziona così:

    • httpd cerca la vhost con i qualificatori più specifici. (indirizzo IP o l'intestazione host se NameVirtualHost è stato dichiarato)
    • In assenza di una voce specifica, viene utilizzato il primo host virtuale da definire. Questo viene definito l' host virtuale predefinito e quello che viene normalmente visualizzato quando viene eseguita una richiesta senza un'intestazione Host . (cioè per indirizzo IP)

    Il problema in cui si sta eseguendo ora è che il tuo host virtuale basato su IP è più specifico del tuo host virtuale predefinito (alless quando l'intestazione Host non corrisponde a ServerName o ServerAlias ). Per get il comportmento che stai cercando, penso che dovresti farlo:

    • Crea un virtualhost predefinito di *: 80 con una pagina vuota.
    • Regola il tuo virtualhost somesite.com modo che il suo ServerAlias contenga tutti i nomi che non si desidera che colpiti l'host virtuale predefinito.

    Speriamo che qualcuno ha una soluzione che si avvicina al raggiungimento del risultato finale desiderato; è stato un po 'e sarei interessato ad imparare da esso.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.