Creare un Webserver locale con Apache in Windows 10

Pubblicità
mah, è semplice la spiegazione.
Se il dominio punta alla cartella C:\sito, il sito poi non può accedere a cartelle sopra di esse, come un eventuale C:\sito2 o C:\ , ma potrà accedere solo a cartelle dentro a C:\sito , come ad esempio C:\sito\sito2 o C:\sito\cartella

Questo è come si comporta normalmente apache ma anche ngix.
Per fare quello che vuoi tu, invece, bisogna intervenire con il file di configurazione di apache, e modificare la parte relativa agli alias. La creazione di un secondo virtualhost è del tutto superflue, in quanto, da quello che ho capito, puntano entrambi allo stesso dominio xxxxxx.xxx.org

Quindi il tuo virtual host principale sarà strutturato così:
Codice:
<VirtualHost *:80>
    DocumentRoot "C:\Web\Sito"
    
    Alias /Prova "C:\Web\Prova"
    Alias /Prova2 "C:\Web\Prova2"
    
    <Directory "C:\Web\Sito">
        AllowOverride None
        Options FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>
 
mah, è semplice la spiegazione.
Se il dominio punta alla cartella C:\sito, il sito poi non può accedere a cartelle sopra di esse, come un eventuale C:\sito2 o C:\ , ma potrà accedere solo a cartelle dentro a C:\sito , come ad esempio C:\sito\sito2 o C:\sito\cartella

Questo è come si comporta normalmente apache ma anche ngix.
Per fare quello che vuoi tu, invece, bisogna intervenire con il file di configurazione di apache, e modificare la parte relativa agli alias. La creazione di un secondo virtualhost è del tutto superflue, in quanto, da quello che ho capito, puntano entrambi allo stesso dominio xxxxxx.xxx.org

Quindi il tuo virtual host principale sarà strutturato così:
Codice:
<VirtualHost *:80>
    DocumentRoot "C:\Web\Sito"
  
    Alias /Prova "C:\Web\Prova"
    Alias /Prova2 "C:\Web\Prova2"
  
    <Directory "C:\Web\Sito">
        AllowOverride None
        Options FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>
Ciao, OK.
E se invece le due cartelle fossero in percorsi completamente diversi. es. C:\Prova e D:\Prova2, per fare in modo che se scrivo xxx.xxx.org/prova accedo a C:\Prova, mentre se scrivo xxx.xxx.org/prova2 entro in D:\Prova2, come andrebbe strutturalo?
Ti ringrazio per l'aiuto che mi fornirai.
 
Beh, semplice
Codice:
<VirtualHost *:80>
    DocumentRoot "C:\Web\Sito"
    
    Alias /Prova "C:\Web\Prova"
    Alias /Prova2 "D:\Prova2"
    
    <Directory "C:\Web\Sito">
        AllowOverride None
        Options FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>
Semplicemente nell'alias indichi quale percorso hai bisogno.
Attenzione però! assicurati sempre che nella root principale del sito non siano presenti cartelle con il medesimo nome della cartella che devi andare a recuperare fuori. Esempio:
xxx.xx.org/prova deve andare a prendere il contenuto in D:\prova allora mi assicuro che in C:\sito (root principale del sito) non ci siano cartelle con nome prova
 
Beh, semplice
Codice:
<VirtualHost *:80>
    DocumentRoot "C:\Web\Sito"
   
    Alias /Prova "C:\Web\Prova"
    Alias /Prova2 "D:\Prova2"
   
    <Directory "C:\Web\Sito">
        AllowOverride None
        Options FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>
Semplicemente nell'alias indichi quale percorso hai bisogno.
Attenzione però! assicurati sempre che nella root principale del sito non siano presenti cartelle con il medesimo nome della cartella che devi andare a recuperare fuori. Esempio:
xxx.xx.org/prova deve andare a prendere il contenuto in D:\prova allora mi assicuro che in C:\sito (root principale del sito) non ci siano cartelle con nome prova
OK.
Ma solo per capire: perchè nel virtualhost c'è sempre C:\Web\Sito o C:\Web\Prova se le cartelle sono solo in C:\Prova e D:\Prova2?
 
Ma direi che c'è scritto tutto bene.
Io ho usato esempi, non i tuoi dati.
DocumentRoot C:\WEB\Sito -> Cartella principale dove sta il tuo sito, la modifichi con la TUA root del sito
Alias /prova C:\WEB\Provolino -> E' la cartella che raggiungi digitanto xxxx.xx.org/prova ( sostituisci con il percorso della cartella che vuoi raggiungere ) e che si trova in una cartella parallela alla root (quindi non in una sua sotto cartella)
Alias /davidino D:\test -> E' la cartella che raggiungi digitando xxxx.xxxorg/davidino ( sostituisci con il percorso della cartella che vuoi raggiungere ) e che si trova su un altro disco
 
Ma direi che c'è scritto tutto bene.
Io ho usato esempi, non i tuoi dati.
DocumentRoot C:\WEB\Sito -> Cartella principale dove sta il tuo sito, la modifichi con la TUA root del sito
Alias /prova C:\WEB\Provolino -> E' la cartella che raggiungi digitanto xxxx.xx.org/prova ( sostituisci con il percorso della cartella che vuoi raggiungere ) e che si trova in una cartella parallela alla root (quindi non in una sua sotto cartella)
Alias /davidino D:\test -> E' la cartella che raggiungi digitando xxxx.xxxorg/davidino ( sostituisci con il percorso della cartella che vuoi raggiungere ) e che si trova su un altro disco
Ah OK grazie mille e scusami.
Era quello che non riuscivo a capire proprio per il fatto che pure i miei sono solo esempi.

Quindi ricapitolando facendo finta che ho necessità di accedere due percorsi reali (ma non tali) come C:\Prova e D:\Prova2, potrei anche strutturarlo cosi:

<VirtualHost *:80>
DocumentRoot "C:\Prova"

Alias /Prova2 "D:\Prova2"

<Directory "C:\Prova">
AllowOverride None
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>

In modo che scrivendo solo xxx.xxx.org accedo a C:\Prova, mentre con xxx.xxx.org/prova2 entro in D:\Prova2.
Corretto?
 
yes, corretto
Ne approfitto per un'ultima cosa: leggendo su internet mi pare di aver capito che

AllowOverride None
Options FollowSymLinks
Require all granted

sono alcune impostazioni assegnate alla cartella, che in questo caso, da quello che capisco, sembrano relative alla C:\Prova. Per darle anche alla D:\Prova2 dove le aggiungo?
 
Se no nsbaglio ne
Ah OK grazie mille e scusami.
Era quello che non riuscivo a capire proprio per il fatto che pure i miei sono solo esempi.

Quindi ricapitolando facendo finta che ho necessità di accedere due percorsi reali (ma non tali) come C:\Prova e D:\Prova2, potrei anche strutturarlo cosi:

<VirtualHost *:80>
DocumentRoot "C:\Prova"

Alias /Prova2 "D:\Prova2"

<Directory "C:\Prova">
AllowOverride None
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>

In modo che scrivendo solo xxx.xxx.org accedo a C:\Prova, mentre con xxx.xxx.org/prova2 entro in D:\Prova2.
Corretto?

Se non sbaglio ti manca la sezione Directory per D:\Prova2
 
Prova a settarlo così, mettendo dentro le tue path
Codice:
<VirtualHost *>
    ServerName xxxx.xxx.org
    DocumentRoot C:\sito
<Directory "C:\Sito">
        AllowOverride None
        Options FollowSymLinks
        Require all granted
    </Directory>

    Alias /prova "D:\prova"
    <Directory "D:\prova">
        Options Indexes FollowSymLinks MultiViews
        Require all granted
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Le ultime versioni di apache richiedono anche un po' di opzioni nella frammento directory interessato che va fuori dal document root.
 
Prova a settarlo così, mettendo dentro le tue path
Codice:
<VirtualHost *>
    ServerName xxxx.xxx.org
    DocumentRoot C:\sito
<Directory "C:\Sito">
        AllowOverride None
        Options FollowSymLinks
        Require all granted
    </Directory>

    Alias /prova "D:\prova"
    <Directory "D:\prova">
        Options Indexes FollowSymLinks MultiViews
        Require all granted
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Le ultime versioni di apache richiedono anche un po' di opzioni nella frammento directory interessato che va fuori dal document root.
Senti ho problemi e non ne vengo fuori... Saresti così gentile da fornirmi un aiuto gratuitamente facendoti collegare al PC?
 
Pubblicità
Pubblicità
Indietro
Top