Cioè se tu a mano scrivi
http://www.lospicchiodaglio.it/ricette/vegetariane
lui ti porta a
http://www.lospicchiodaglio.it/index.it?pag=ricette&sub=vegetariane
?![]()
Cioè se tu a mano scrivi
http://www.lospicchiodaglio.it/ricette/vegetariane
lui ti porta a
http://www.lospicchiodaglio.it/index.it?pag=ricette&sub=vegetariane
?![]()
A volte penso che, nel darci l'intelletto, la natura sia stata più sadica che generosa.
Non so su quale versione delle rule stai facendo le prove adesso
se specifichi un url assoluto, viene fatto un check sull'hostname se non corrisponde, viene fatto un redirect e non un rewrite http://httpd.apache.org/docs/2.4/mod...ml#rewriterule (Absolute URL). Tra localhost e localhost non dovrebbe comportarsi così, ma onestamente non ho capito qual'è (è venerdì) la tua configurazione corrente visto che non hai virtualhost definiti da quello che ho capito, quindi qual'è l'hostname per apache?
In soldoni, non usare url assoluti, semmai usa path assoluti, ma ti bastano path relativi(vedi sempre il link sopra: URL-path)
Qui ci sono varie miniguide:
http://httpd.apache.org/docs/2.4/rewrite/
Riguardo i 404:
- apache ti dice qual'è la risorsa che non riesce a trovare, se l'url "parlante" o la risorsa che invece dovrebbe servire: nel primo caso non funziona il rewrite o non viene fatto il match delle rule, nel secondo è sbagliato il path alla risorsa
- mi pare tu abbia parlato di front-controller, forse in un'altro 3d, il 404 te lo restituisce apache o il front-controller?
Glosh... sarà che è lunedì, ma ho capito meno della metà delle cose che mi hai detto.
Allora, ecco alcuni spezzoni dell'httpd.conf che si riferiscono a quello che cerco di fare.
con queste modifiche fa la redirect e non la rewrite e non so come si faccia a fare la rewrite. I tutorial su internet la fanno facile.codice:# NAZZY: Alias per test front-head ALIAS /front-head "D:\SitiTest\FrontHead" [...] # NAZZY : rewrite per link parlanti <Directory "D:/SitiTest/entra4"> RewriteEngine On RewriteRule ^([^/]+)$ http://localhost/front-head/index.php?pag=$1 RewriteRule ^([^/]+)/([^/]+)$ http://localhost/front-head/index.php?pag=$1&sub=$2 RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ http://localhost/front-head/index.php?pag=$1&sub=$2&&subsub=$3 </Directory>
A volte penso che, nel darci l'intelletto, la natura sia stata più sadica che generosa.
Devi togliere il percorso completo, altrimenti apache pensa che tu VOGLIA fare un redirect...
codice:# NAZZY: Alias per test front-head ALIAS /front-head "D:\SitiTest\FrontHead" [...] # NAZZY : rewrite per link parlanti <Directory "D:/SitiTest/entra4"> RewriteEngine On RewriteRule ^([^/]+)$ index.php?pag=$1 RewriteRule ^([^/]+)/([^/]+)$ index.php?pag=$1&sub=$2 RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?pag=$1&sub=$2&&subsub=$3 </Directory>
Sarà che sono scarso nello scrivere, ma, abbi pazienza, così è difficile aiutarti, qualche guida/documentazione su quello che stai usando sarebbe bene tu la leggessi...
Hai definito un alias http://httpd.apache.org/docs/current...ias.html#alias che fa puntare l'url-path "/front-head" alla cartella "D:\SitiTest\FrontHead".
Hai informato apache che la directory "D:/SitiTest/entra4" ha una configurazione dedicata, rewrite incluso.
La tua app di prova in quale cartella si trova? entra4 o FrontHead ? (credo FrontHead.. ) modifica una delle impostazioni di conseguenza e restarta apache2
p.s. Non ho molta esperienza di apache su win, ma se non erro devi usare / e non \ nei percorsi
Ho scritto male il pezzo di codice, scusa.
In teoria win vorrebbe (solo lui sa perché) la \. Comunque non mi costa niente provare con /codice:# NAZZY: Alias per test front-head ALIAS /front-head "D:\SitiTest\FrontHead" [...] # NAZZY : rewrite per link parlanti <Directory "D:/SitiTest/FrontHead"> RewriteEngine On RewriteRule ^([^/]+)$ http://localhost/front-head/index.php?pag=$1 RewriteRule ^([^/]+)/([^/]+)$ http://localhost/front-head/index.php?pag=$1&sub=$2 RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ http://localhost/front-head/index.php?pag=$1&sub=$2&&subsub=$3 </Directory>
Poi ti faccio sapere come è andata (
A volte penso che, nel darci l'intelletto, la natura sia stata più sadica che generosa.