PDA

View Full Version : [apache] configurare una directory visibile dall'esterno ma con una regola


Rubberick
13-10-2007, 12:46
Ciao ragazzi... ho un problemino...

ho un server dove sono presenti vari utenti...

questi utenti hanno a disposizione una cartella

D:\utenti\nomeutente\public

vorrei fare in modo che il contenuto della public sia visibile all'esterno...

con un url del tipo www.sito.com/users/nomeutente

diciamo che l'ho risolto questo problema modificando la configurazione di apache cosi':

Alias /users/utente_a/ "D:/utenti/utente_a/public/"
<Directory "D:/utenti/utente_a/public">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Il problema e' che... ogni volta che ho un nuovo utente... devo replicare il codice per utente_b e cosi' man mano a continuare... ovviamente... e' seccante dover farlo sopratutto se gli utenti sono molti...

C'e' modo di usare una sorta di maschera tipo:

Alias /users/*/ "D:/utenti/*/public/"
<Directory "D:/utenti/*/public">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

????

Forse ci vorrebbe una cosa del tipo if * exist... nn so :/ nn sono super pratico delle direttive di apache! Grazie!

Rubberick
13-10-2007, 15:39
uppino

dad_89
13-10-2007, 19:28
AliasMatch ^/users/([a-zA-Z0-9]+)/?(.*)/ "D:/utenti/$1/public/$2"
<Directory "D:/utenti/$1/public/$2">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Cosė dovrebbe funzionare.

Rubberick
14-10-2007, 10:30
=( non funziona forse e' sbagliato qualcosa?

ma devo mettere solo quel codice la o anche qualcos'altro?

Rubberick
14-10-2007, 10:50
Se la cartella invece di essere utenti e': D:\hosts\nomeutente\services\public

con nomeutente che varia e l'indirizzo www.sito.com/public/nomeutente/

il codice dovrebbe essere questo? xche' nn va... sono con apache 1.3 su win

AliasMatch ^/public/([a-zA-Z0-9]+)/?(.*)/ "d:/hosts/$1/services/public/$2"
<Directory "d:/hosts/$1/services/public/$2">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Rubberick
15-10-2007, 15:40
ehm uppino

dad_89
15-10-2007, 20:30
A me quell'alias funziona, cmq puoi provare anche con questo;

AliasMatch ^/public(.*) "D:/hosts/$1/services/public/$2"

Rubberick
16-10-2007, 21:24
ho risolto cosi' :)

AliasMatch ^/hosts/(.*)/public(.*) d:/hosts/$1/services/public/$2
<DirectoryMatch "d:/hosts/(.*)/services/public/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</DirectoryMatch>

Ho qualche dubbio xo' sulla parte iniziale con il (.*) ma ([a-zA-Z0-9]+) nn ho capito xche' nn lo prende :|

EDIT: cacchio ho capito xche' io uso nache underlines e trattini xD!

correggo con
AliasMatch ^/hosts/([a-zA-Z0-9_\-\.]+)/public(.*) d:/hosts/$1/services/public/$2
<DirectoryMatch "d:/hosts/([a-zA-Z0-9_\-\.]+)/services/public/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</DirectoryMatch>