Newsgroup: it.comp.www.php
Titolo: problema con .htaccess

ciao a tutti, forse non è il posto adatto per discutere delle 
problematiche di apache, ma visto che si ha spesso a che fare con 
problemi di routing...
 
In pratica ho creato il mio .htaccess
 
RewriteEngine On
RewriteRule ^(.*)/vh/(.*)$     $1/virtual_hosts/$2     [L]
 
Quindi se mi collego a
 
http://test/web/vh/index.php
 
 
si dovrebbe aprire
 
http://test/web/virtual_hosts/index.php
 
 
Ma in realtà il server risponde con il tipico Error 404...
 
Cosa mi sfugge?

 Cosa mi sfugge?
 
Leggere il log di httpd per sapere cosa succede.
 
-- 
Andrea
 


 
 
$ cd /opt/lampp/logs
 
$ ls -l
totale 353348
-rw-r--r-- 1 daemon daemon   7584733 ott 12 20:44 access_log
-rw-r--r-- 1 root   root           8 ott 12 07:01 authdigest_shm.1073
srwx------ 1 daemon root           0 ott 12 07:01 cgisock.1073
-rw-r--r-- 1 root   root           0 apr 19  2014 
dummy-host2.example.com-access_log
-rw-r--r-- 1 root   root           0 apr 19  2014 
dummy-host2.example.com-error_log
-rw-r--r-- 1 root   root       94935 ott 11 10:24 
dummy-host.example.com-access_log
-rw-r--r-- 1 root   root       81010 set 21 22:43 
dummy-host.example.com-error_log
-rw-rw-r-- 1 daemon daemon   2509687 ott 12 20:43 error_log
-rw-r--r-- 1 root   root           5 ott 12 07:01 httpd.pid
-rw-r--r-- 1 daemon daemon 351493843 ott 12 08:05 php_error_log
-rw-r--r-- 1 daemon daemon      3379 ago 14 12:44 ssl_request_log
 
$ cat httpd.pid
1073
 


scusa ma tu questo lo chiami "leggere i log di httpd" ???
 
 
ergo i log dove apache scrive, ergo ti vai a vedere in 
/etc/apache/httpd.conf o in /etc/httpd.conf o dove trovi httpd.conf o un 
suo simile (in ubuntu apache2.conf) dove vengono scritti i log
 
  e vai a vedere cosa c'è dentro il file.
 
Ciao

 $ cd /opt/lampp/logs
 
Scusa, vado un po' fuori tema, ma il tarlo mi assale da giorni.
 
Se stai usando Ubuntu, perché usi LAMPP e non i pacchetti della distro?
Mi pare una complicazione sia inutile che dannosa.
 
Comunque i log sono error_log e access_log
 
Bye.

 suo simile (in ubuntu apache2.conf) dove vengono scritti i log
 
ah ok, adesso ho capito (troppo lavoro, e a fine giornata...)

 access_log
 
127.0.0.1 - - [13/Oct/2015:11:54:26 +0200] "GET /htaccess/vh/ HTTP/1.1" 
404 1052
 
 


 
e naturalmente l'url dovrebbe essere convertito in 
/htaccess/virtual_hosts/, ma niente da fare.
Giornate intere buttate per una cretinata :(

 404 1052
 
Difficile dirlo, ma a naso o non hai attivato il supporto a htaccess o 
quello a mod_rewrite.
 
Con LAMPP non ho idea. Con i pacchetti ufficiali, prova a dare un
 
a2enmod rewrite
 
seguito da un
 
service apache2 restart
 
E se ancora non funziona, aumenta il loglevel di mod_rewrite (dovresti 
trovare diverse guide in rete) e vedere cosa ti dice.
 
Bye.

 trovare diverse guide in rete) e vedere cosa ti dice.
 
domani ci provo, comunque io voglio fare in pratica una cosa 
semplicissima, cioè sostituire vh con virtual_hosts
 
http://sito/aaa/vh
 
http://sito/h/vh/index.php
 
http://sito/boh/vh/blabla
 
 
http://sito/aaa/virtual_hosts
 
http://sito/h/virtual_hosts/index.php
 
http://sito/boh/virtual_hosts/blabla
 
 
E' così difficile?
Cosa c'è di sbagliato nel mio htaccess?
Non c'è un modo per debuggare htaccess senza diventare pazzi?
Mamma mia :-(

 Mamma mia :-(
 
htaccess non c'entra molto
Tu stai debuggando mod_rewrite e le regexp che stai usando sono il male 
assoluto. :)
 
Credo che (.*) venga interpretato come greedy, e quindi trovi tutto, 
incluse le / e quindi non matchi mai la linea completa, ma non ho provato 
a vedere cosa fa, quindi potrei sbagliarmi.
 
L'unico modo, come dicevo, è alzare il loglevel e vedere che errori ti dà.
 
Bye.

.
 
-- 
Andrea
 

 E allora perché usi Apache httpd?
 
<flame>
Perché nginx non supporta htaccess.
</flame>
 
:D
 
Bye.


 
Ad ogni modo ho risolto così (non ho tempo per perdere un'altra giornata):
 
RewriteEngine On
RewriteRule ^vh/(.*)$     virtual_hosts/$1     [L]
 
Così tutto ciò che è
 
http://sito/vh/....
..
 
viene trasformato in
 
http://sito/virtual_hosts/....
..
 

 <flame>
 
Uso lighty, sono ignifugo.
 
-- 
Andrea
 



On 2015-10-14 07:24:44 +0000, alex said:




Ad ogni modo ho risolto così (non ho tempo per perdere un'altra giornata):




RewriteEngine On


RewriteRule ^vh/(.*)$ 
    
virtual_hosts/$1 
    
[L]




Magari la RE è greedy è il primo gruppo del tuo esempio iniziale
 




RewriteRule ^(.*)/vh/(.*)$ 
    
$1/virtual_hosts/$2 
    
[L]




catturava anche "/vh/".




Per saperlo avremmo dovuto vedere i log di mod_rewrite (non il risultato di ls var/log/).


Ripeto, devi leggere la documentazione di httpd, il problema è che confusionaria.






--
 


Andrea